Skip to content

Commit

Permalink
Merge pull request #35174 from CTPPS/pps-alignment-global-db
Browse files Browse the repository at this point in the history
Added PPSAlignmentConfiguration - a new conditions format for PPS global alignment
  • Loading branch information
cmsbuild authored Sep 17, 2021
2 parents 0c849f0 + 8a347c5 commit 7cee8f4
Show file tree
Hide file tree
Showing 19 changed files with 1,471 additions and 1 deletion.
702 changes: 702 additions & 0 deletions CalibPPS/ESProducers/plugins/PPSAlignmentConfigurationESSource.cc

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions CondCore/CTPPSPlugins/src/plugin.cc
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
#include "CondFormats/DataRecord/interface/PPSPixelTopologyRcd.h"
#include "CondFormats/PPSObjects/interface/PPSAlignmentConfig.h"
#include "CondFormats/DataRecord/interface/PPSAlignmentConfigRcd.h"
#include "CondFormats/PPSObjects/interface/PPSAlignmentConfiguration.h"
#include "CondFormats/DataRecord/interface/PPSAlignmentConfigurationRcd.h"

REGISTER_PLUGIN(CTPPSBeamParametersRcd, CTPPSBeamParameters);
REGISTER_PLUGIN(CTPPSPixelDAQMappingRcd, CTPPSPixelDAQMapping);
Expand All @@ -34,3 +36,4 @@ REGISTER_PLUGIN(CTPPSOpticsRcd, LHCOpticalFunctionsSetCollection);
REGISTER_PLUGIN(PPSDirectSimulationDataRcd, PPSDirectSimulationData);
REGISTER_PLUGIN(PPSPixelTopologyRcd, PPSPixelTopology);
REGISTER_PLUGIN(PPSAlignmentConfigRcd, PPSAlignmentConfig);
REGISTER_PLUGIN(PPSAlignmentConfigurationRcd, PPSAlignmentConfiguration);
1 change: 1 addition & 0 deletions CondCore/Utilities/plugins/Module_2XML.cc
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ PAYLOAD_2XML_MODULE(pluginUtilities_payload2xml) {
PAYLOAD_2XML_CLASS(CTPPSPixelDAQMapping);
PAYLOAD_2XML_CLASS(CTPPSPixelGainCalibrations);
PAYLOAD_2XML_CLASS(PPSAlignmentConfig)
PAYLOAD_2XML_CLASS(PPSAlignmentConfiguration)
PAYLOAD_2XML_CLASS(CastorChannelQuality);
PAYLOAD_2XML_CLASS(CastorElectronicsMap);
PAYLOAD_2XML_CLASS(CastorGainWidths);
Expand Down
1 change: 1 addition & 0 deletions CondCore/Utilities/src/CondDBFetch.cc
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ namespace cond {
FETCH_PAYLOAD_CASE(CTPPSPixelGainCalibrations)
FETCH_PAYLOAD_CASE(CTPPSRPAlignmentCorrectionsData)
FETCH_PAYLOAD_CASE(PPSAlignmentConfig)
FETCH_PAYLOAD_CASE(PPSAlignmentConfiguration)
FETCH_PAYLOAD_CASE(LHCOpticalFunctionsSetCollection)
FETCH_PAYLOAD_CASE(CastorChannelQuality)
FETCH_PAYLOAD_CASE(CastorElectronicsMap)
Expand Down
1 change: 1 addition & 0 deletions CondCore/Utilities/src/CondDBImport.cc
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ namespace cond {
IMPORT_PAYLOAD_CASE(CTPPSPixelGainCalibrations)
IMPORT_PAYLOAD_CASE(CTPPSRPAlignmentCorrectionsData)
IMPORT_PAYLOAD_CASE(PPSAlignmentConfig)
IMPORT_PAYLOAD_CASE(PPSAlignmentConfiguration)
IMPORT_PAYLOAD_CASE(LHCOpticalFunctionsSetCollection)
IMPORT_PAYLOAD_CASE(CastorChannelQuality)
IMPORT_PAYLOAD_CASE(CastorElectronicsMap)
Expand Down
1 change: 1 addition & 0 deletions CondCore/Utilities/src/CondFormats.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
#include "CondFormats/PPSObjects/interface/CTPPSPixelGainCalibrations.h"
#include "CondFormats/PPSObjects/interface/CTPPSRPAlignmentCorrectionsData.h"
#include "CondFormats/PPSObjects/interface/PPSTimingCalibration.h"
#include "CondFormats/PPSObjects/interface/PPSAlignmentConfiguration.h"
#include "CondFormats/PPSObjects/interface/LHCOpticalFunctionsSetCollection.h"
#include "CondFormats/PPSObjects/interface/PPSAlignmentConfig.h"
#include "CondFormats/DTObjects/interface/DTCCBConfig.h"
Expand Down
15 changes: 15 additions & 0 deletions CondFormats/DataRecord/interface/PPSAlignmentConfigurationRcd.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
/****************************************************************************
* Authors:
* Jan Kašpar (jan.kaspar@gmail.com)
* Mateusz Kocot (mateuszkocot99@gmail.com)
****************************************************************************/

#ifndef CondFormats_DataRecord_PPSAlignmentConfigurationRcd_h
#define CondFormats_DataRecord_PPSAlignmentConfigurationRcd_h

#include "FWCore/Framework/interface/EventSetupRecordImplementation.h"

class PPSAlignmentConfigurationRcd
: public edm::eventsetup::EventSetupRecordImplementation<PPSAlignmentConfigurationRcd> {};

#endif
10 changes: 10 additions & 0 deletions CondFormats/DataRecord/src/PPSAlignmentConfigurationRcd.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
/****************************************************************************
* Authors:
* Jan Kašpar (jan.kaspar@gmail.com)
* Mateusz Kocot (mateuszkocot99@gmail.com)
****************************************************************************/

#include "CondFormats/DataRecord/interface/PPSAlignmentConfigurationRcd.h"
#include "FWCore/Framework/interface/eventsetuprecord_registration_macro.h"

EVENTSETUP_RECORD_REG(PPSAlignmentConfigurationRcd);
199 changes: 199 additions & 0 deletions CondFormats/PPSObjects/interface/PPSAlignmentConfiguration.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,199 @@
/****************************************************************************
* Authors:
* Jan Kašpar (jan.kaspar@gmail.com)
* Mateusz Kocot (mateuszkocot99@gmail.com)
****************************************************************************/

#ifndef CondFormats_PPSObjects_PPSAlignmentConfiguration_h
#define CondFormats_PPSObjects_PPSAlignmentConfiguration_h

#include "CondFormats/Serialization/interface/Serializable.h"

#include <vector>
#include <string>
#include <map>

class PPSAlignmentConfiguration {
public:
// Auxiliary structures
struct PointErrors {
double x_;
double y_;
double ex_; // error x
double ey_; // error y

COND_SERIALIZABLE;
};

struct SelectionRange {
double x_min_;
double x_max_;

COND_SERIALIZABLE;
};

struct RPConfig {
std::string name_;
unsigned int id_;
std::string position_;
double slope_;
double sh_x_;

double x_min_fit_mode_, x_max_fit_mode_;
double y_max_fit_mode_;
double y_cen_add_;
double y_width_mult_;

int x_slice_n_;
double x_slice_min_, x_slice_w_;

COND_SERIALIZABLE;
};

struct SectorConfig {
std::string name_;
RPConfig rp_N_, rp_F_;
double slope_;

bool cut_h_apply_;
double cut_h_a_, cut_h_c_, cut_h_si_;

bool cut_v_apply_;
double cut_v_a_, cut_v_c_, cut_v_si_;

COND_SERIALIZABLE;
};

struct Binning {
double bin_size_x_; // mm
unsigned int n_bins_x_;

double pixel_x_offset_;

unsigned int n_bins_y_;
double y_min_, y_max_;

unsigned int diffFN_n_bins_x_;
double diffFN_x_min_, diffFN_x_max_;

unsigned int slice_n_bins_x_, slice_n_bins_y_;
double slice_x_min_, slice_x_max_, slice_y_min_, slice_y_max_;

COND_SERIALIZABLE;
};

// Getters
const SectorConfig& sectorConfig45() const;
const SectorConfig& sectorConfig56() const;

double x_ali_sh_step() const;

double y_mode_sys_unc() const;
double chiSqThreshold() const;
double y_mode_unc_max_valid() const;
double y_mode_max_valid() const;

double minRPTracksSize() const;
double maxRPTracksSize() const;
double n_si() const;

const std::map<unsigned int, std::vector<PointErrors>>& matchingReferencePoints() const;
const std::map<unsigned int, SelectionRange>& matchingShiftRanges() const;

const std::map<unsigned int, SelectionRange>& alignment_x_meth_o_ranges() const;
unsigned int fitProfileMinBinEntries() const;
unsigned int fitProfileMinNReasonable() const;
unsigned int methOGraphMinN() const;
double methOUncFitRange() const;

const std::map<unsigned int, SelectionRange>& alignment_x_relative_ranges() const;
unsigned int nearFarMinEntries() const;

const std::map<unsigned int, SelectionRange>& alignment_y_ranges() const;
unsigned int modeGraphMinN() const;
unsigned int multSelProjYMinEntries() const;

const Binning& binning() const;

const std::vector<double>& extraParams() const;

// Setters
void setSectorConfig45(SectorConfig& sectorConfig45);
void setSectorConfig56(SectorConfig& sectorConfig56);

void setX_ali_sh_step(double x_ali_sh_step);

void setY_mode_sys_unc(double y_mode_sys_unc);
void setChiSqThreshold(double chiSqThreshold);
void setY_mode_unc_max_valid(double y_mode_unc_max_valid);
void setY_mode_max_valid(double y_mode_max_valid);

void setMinRPTracksSize(unsigned int minRPTracksSize);
void setMaxRPTracksSize(unsigned int maxRPTracksSize);
void setN_si(double n_si);

void setMatchingReferencePoints(std::map<unsigned int, std::vector<PointErrors>>& matchingReferencePoints);
void setMatchingShiftRanges(std::map<unsigned int, SelectionRange>& matchingShiftRanges);

void setAlignment_x_meth_o_ranges(std::map<unsigned int, SelectionRange>& alignment_x_meth_o_ranges);
void setFitProfileMinBinEntries(unsigned int fitProfileMinBinEntries);
void setFitProfileMinNReasonable(unsigned int fitProfileMinNReasonable);
void setMethOGraphMinN(unsigned int methOGraphMinN);
void setMethOUncFitRange(double methOUncFitRange);

void setAlignment_x_relative_ranges(std::map<unsigned int, SelectionRange>& alignment_x_relative_ranges);
void setNearFarMinEntries(unsigned int nearFarMinEntries);

void setAlignment_y_ranges(std::map<unsigned int, SelectionRange>& alignment_y_ranges);
void setModeGraphMinN(unsigned int modeGraphMinN);
void setMultSelProjYMinEntries(unsigned int multSelProjYMinEntries);

void setBinning(Binning& binning);

void setExtraParams(std::vector<double>& extraParams);

// << operator
friend std::ostream& operator<<(std::ostream& os, const PPSAlignmentConfiguration& c);

private:
SectorConfig sectorConfig45_, sectorConfig56_;

double x_ali_sh_step_; // mm

double y_mode_sys_unc_;
double chiSqThreshold_;
double y_mode_unc_max_valid_;
double y_mode_max_valid_;

unsigned int minRPTracksSize_;
unsigned int maxRPTracksSize_;
double n_si_;

std::map<unsigned int, std::vector<PointErrors>> matchingReferencePoints_;
std::map<unsigned int, SelectionRange> matchingShiftRanges_;

std::map<unsigned int, SelectionRange> alignment_x_meth_o_ranges_;
unsigned int fitProfileMinBinEntries_;
unsigned int fitProfileMinNReasonable_;
unsigned int methOGraphMinN_;
double methOUncFitRange_; // mm

std::map<unsigned int, SelectionRange> alignment_x_relative_ranges_;
unsigned int nearFarMinEntries_;

std::map<unsigned int, SelectionRange> alignment_y_ranges_;
unsigned int modeGraphMinN_;
unsigned int multSelProjYMinEntries_;

Binning binning_;

std::vector<double> extraParams_;

COND_SERIALIZABLE;
};

std::ostream& operator<<(std::ostream& os, const PPSAlignmentConfiguration::RPConfig& rc);
std::ostream& operator<<(std::ostream& os, const PPSAlignmentConfiguration::SectorConfig& sc);
std::ostream& operator<<(std::ostream& os, const PPSAlignmentConfiguration::Binning& b);

#endif
Loading

0 comments on commit 7cee8f4

Please sign in to comment.