File indexing completed on 2025-06-03 00:12:28
0001 #ifndef L1Trigger_TrackTrigger_SensorModule_h
0002 #define L1Trigger_TrackTrigger_SensorModule_h
0003
0004 #include "DataFormats/DetId/interface/DetId.h"
0005
0006 namespace tt {
0007
0008 class Setup;
0009
0010
0011 class SensorModule {
0012 public:
0013 SensorModule(const Setup* setup, const DetId& detId, int dtcId, int modId);
0014 ~SensorModule() {}
0015
0016 enum Type { BarrelPS, Barrel2S, DiskPS, Disk2S, NumTypes };
0017
0018
0019 Type type() const { return type_; }
0020
0021 int dtcId() const { return dtcId_; }
0022
0023 int modId() const { return modId_; }
0024
0025 bool side() const { return side_; }
0026
0027 bool barrel() const { return barrel_; }
0028
0029 bool tilted() const { return tilted_; }
0030
0031 bool psModule() const { return psModule_; }
0032
0033 bool flipped() const { return flipped_; }
0034
0035 bool signRow() const { return signRow_; }
0036
0037 bool signCol() const { return signCol_; }
0038
0039 bool signBend() const { return signBend_; }
0040
0041 int numColumns() const { return numColumns_; }
0042
0043 int numRows() const { return numRows_; }
0044
0045 int layerId() const { return layerId_; }
0046
0047 double r() const { return r_; }
0048
0049 double phi() const { return phi_; }
0050
0051 double z() const { return z_; }
0052
0053 double sep() const { return sep_; }
0054
0055 double pitchRow() const { return pitchRow_; }
0056
0057 double pitchCol() const { return pitchCol_; }
0058
0059 double tilt() const { return tilt_; }
0060
0061 double sinTilt() const { return sinTilt_; }
0062
0063 double cosTilt() const { return cosTilt_; }
0064
0065 int encodedR() const { return encodedR_; }
0066
0067 double offsetR() const { return offsetR_; }
0068
0069 double offsetZ() const { return offsetZ_; }
0070
0071 int windowSize() const { return windowSize_; }
0072
0073 double tiltCorrection(double cot) const { return std::abs(tiltCorrectionSlope_ * cot) + tiltCorrectionIntercept_; }
0074
0075 double dPhi(double inv2R) const { return dPhi_ + (dR_ + scattering_) * std::abs(inv2R); }
0076
0077 double dZ() const { return dZ_; }
0078
0079 unsigned int ringId(const Setup* setup) const;
0080
0081 private:
0082 enum TypeTilt { nonBarrel = 0, tiltedMinus = 1, tiltedPlus = 2, flat = 3 };
0083
0084 DetId detId_;
0085
0086 int dtcId_;
0087
0088 int modId_;
0089
0090 bool side_;
0091
0092 bool barrel_;
0093
0094 bool tilted_;
0095
0096 bool psModule_;
0097
0098 bool flipped_;
0099
0100 bool signRow_;
0101
0102 bool signCol_;
0103
0104 bool signBend_;
0105
0106 int numColumns_;
0107
0108 int numRows_;
0109
0110 int layerId_;
0111
0112 double r_;
0113
0114 double phi_;
0115
0116 double z_;
0117
0118 double sep_;
0119
0120 double pitchRow_;
0121
0122 double pitchCol_;
0123
0124 double tilt_;
0125
0126 double sinTilt_;
0127
0128 double cosTilt_;
0129
0130 Type type_;
0131
0132 int encodedR_;
0133
0134 double offsetR_;
0135
0136 double offsetZ_;
0137
0138 int windowSize_;
0139
0140 double tiltCorrectionSlope_;
0141
0142 double tiltCorrectionIntercept_;
0143
0144 double scattering_;
0145
0146 double dR_;
0147
0148 double dPhi_;
0149
0150 double dZ_;
0151 };
0152
0153 }
0154
0155 #endif