File indexing completed on 2024-04-06 12:02:28
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #ifndef CondFormats_PPSObjects_PPSAlignmentConfig_h
0012 #define CondFormats_PPSObjects_PPSAlignmentConfig_h
0013
0014 #include "CondFormats/Serialization/interface/Serializable.h"
0015
0016 #include <vector>
0017 #include <string>
0018 #include <map>
0019
0020
0021
0022 struct PointErrors {
0023 double x_;
0024 double y_;
0025 double ex_;
0026 double ey_;
0027
0028 COND_SERIALIZABLE;
0029 };
0030
0031
0032
0033 struct SelectionRange {
0034 double x_min_;
0035 double x_max_;
0036
0037 COND_SERIALIZABLE;
0038 };
0039
0040
0041
0042 struct RPConfig {
0043 std::string name_;
0044 unsigned int id_;
0045 std::string position_;
0046 double slope_;
0047 double sh_x_;
0048
0049 double x_min_fit_mode_, x_max_fit_mode_;
0050 double y_max_fit_mode_;
0051 double y_cen_add_;
0052 double y_width_mult_;
0053
0054 int x_slice_n_;
0055 double x_slice_min_, x_slice_w_;
0056
0057 COND_SERIALIZABLE;
0058 };
0059 std::ostream &operator<<(std::ostream &os, RPConfig &rc);
0060
0061
0062
0063 struct SectorConfig {
0064 std::string name_;
0065 RPConfig rp_N_, rp_F_;
0066 double slope_;
0067
0068 bool cut_h_apply_;
0069 double cut_h_a_, cut_h_c_, cut_h_si_;
0070
0071 bool cut_v_apply_;
0072 double cut_v_a_, cut_v_c_, cut_v_si_;
0073
0074 COND_SERIALIZABLE;
0075 };
0076 std::ostream &operator<<(std::ostream &os, SectorConfig &sc);
0077
0078
0079
0080 struct Binning {
0081 double bin_size_x_;
0082 unsigned int n_bins_x_;
0083
0084 double pixel_x_offset_;
0085
0086 unsigned int n_bins_y_;
0087 double y_min_, y_max_;
0088
0089 COND_SERIALIZABLE;
0090 };
0091 std::ostream &operator<<(std::ostream &os, Binning &b);
0092
0093
0094
0095 class PPSAlignmentConfig {
0096 public:
0097
0098 const std::vector<std::string> &sequence() const;
0099 const std::string &resultsDir() const;
0100
0101 const SectorConfig §orConfig45() const;
0102 const SectorConfig §orConfig56() const;
0103
0104 double x_ali_sh_step() const;
0105
0106 double y_mode_sys_unc() const;
0107 double chiSqThreshold() const;
0108 double y_mode_unc_max_valid() const;
0109 double y_mode_max_valid() const;
0110
0111 double maxRPTracksSize() const;
0112 double n_si() const;
0113
0114 const std::map<unsigned int, std::vector<PointErrors>> &matchingReferencePoints() const;
0115 const std::map<unsigned int, SelectionRange> &matchingShiftRanges() const;
0116
0117 const std::map<unsigned int, SelectionRange> &alignment_x_meth_o_ranges() const;
0118 unsigned int fitProfileMinBinEntries() const;
0119 unsigned int fitProfileMinNReasonable() const;
0120 unsigned int methOGraphMinN() const;
0121 double methOUncFitRange() const;
0122
0123 const std::map<unsigned int, SelectionRange> &alignment_x_relative_ranges() const;
0124 unsigned int nearFarMinEntries() const;
0125
0126 const std::map<unsigned int, SelectionRange> &alignment_y_ranges() const;
0127 unsigned int modeGraphMinN() const;
0128 unsigned int multSelProjYMinEntries() const;
0129
0130 const Binning &binning() const;
0131
0132
0133 void setSequence(std::vector<std::string> &sequence);
0134 void setResultsDir(std::string &resultsDir);
0135
0136 void setSectorConfig45(SectorConfig §orConfig45);
0137 void setSectorConfig56(SectorConfig §orConfig56);
0138
0139 void setX_ali_sh_step(double x_ali_sh_step);
0140
0141 void setY_mode_sys_unc(double y_mode_sys_unc);
0142 void setChiSqThreshold(double chiSqThreshold);
0143 void setY_mode_unc_max_valid(double y_mode_unc_max_valid);
0144 void setY_mode_max_valid(double y_mode_max_valid);
0145
0146 void setMaxRPTracksSize(unsigned int maxRPTracksSize);
0147 void setN_si(double n_si);
0148
0149 void setMatchingReferencePoints(std::map<unsigned int, std::vector<PointErrors>> &matchingReferencePoints);
0150 void setMatchingShiftRanges(std::map<unsigned int, SelectionRange> &matchingShiftRanges);
0151
0152 void setAlignment_x_meth_o_ranges(std::map<unsigned int, SelectionRange> &alignment_x_meth_o_ranges);
0153 void setFitProfileMinBinEntries(unsigned int fitProfileMinBinEntries);
0154 void setFitProfileMinNReasonable(unsigned int fitProfileMinNReasonable);
0155 void setMethOGraphMinN(unsigned int methOGraphMinN);
0156 void setMethOUncFitRange(double methOUncFitRange);
0157
0158 void setAlignment_x_relative_ranges(std::map<unsigned int, SelectionRange> &alignment_x_relative_ranges);
0159 void setNearFarMinEntries(unsigned int nearFarMinEntries);
0160
0161 void setAlignment_y_ranges(std::map<unsigned int, SelectionRange> &alignment_y_ranges);
0162 void setModeGraphMinN(unsigned int modeGraphMinN);
0163 void setMultSelProjYMinEntries(unsigned int multSelProjYMinEntries);
0164
0165 void setBinning(Binning &binning);
0166
0167
0168 friend std::ostream &operator<<(std::ostream &os, PPSAlignmentConfig c);
0169
0170 private:
0171 std::vector<std::string> sequence_;
0172 std::string resultsDir_;
0173
0174 SectorConfig sectorConfig45_, sectorConfig56_;
0175
0176 double x_ali_sh_step_;
0177
0178 double y_mode_sys_unc_;
0179 double chiSqThreshold_;
0180 double y_mode_unc_max_valid_;
0181 double y_mode_max_valid_;
0182
0183 unsigned int maxRPTracksSize_;
0184 double n_si_;
0185
0186 std::map<unsigned int, std::vector<PointErrors>> matchingReferencePoints_;
0187 std::map<unsigned int, SelectionRange> matchingShiftRanges_;
0188
0189 std::map<unsigned int, SelectionRange> alignment_x_meth_o_ranges_;
0190 unsigned int fitProfileMinBinEntries_;
0191 unsigned int fitProfileMinNReasonable_;
0192 unsigned int methOGraphMinN_;
0193 double methOUncFitRange_;
0194
0195 std::map<unsigned int, SelectionRange> alignment_x_relative_ranges_;
0196 unsigned int nearFarMinEntries_;
0197
0198 std::map<unsigned int, SelectionRange> alignment_y_ranges_;
0199 unsigned int modeGraphMinN_;
0200 unsigned int multSelProjYMinEntries_;
0201
0202 Binning binning_;
0203
0204 COND_SERIALIZABLE;
0205 };
0206
0207 std::ostream &operator<<(std::ostream &os, PPSAlignmentConfig c);
0208
0209 #endif