CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
SensorModule.h
Go to the documentation of this file.
1 #ifndef L1Trigger_TrackerDTC_SensorModule_h
2 #define L1Trigger_TrackerDTC_SensorModule_h
3 
5 
6 namespace trackerDTC {
7 
8  class Setup;
9 
10  // representation of an outer tracker sensormodule
11  class SensorModule {
12  public:
13  SensorModule(const Setup& setup, const DetId& detId, int dtcId, int modId);
15 
17 
18  // module type (BarrelPS, Barrel2S, DiskPS, Disk2S)
19  Type type() const { return type_; }
20  // dtc id [0-215]
21  int dtcId() const { return dtcId_; }
22  // module on dtc id [0-71]
23  int modId() const { return modId_; }
24  // +z or -z
25  bool side() const { return side_; }
26  // barrel or endcap
27  bool barrel() const { return barrel_; }
28  // Pixel-Strip or 2Strip module
29  bool psModule() const { return psModule_; }
30  // main sensor inside or outside
31  bool flipped() const { return flipped_; }
32  // TTStub row needs flip of sign
33  bool signRow() const { return signRow_; }
34  // TTStub col needs flip of sign
35  bool signCol() const { return signCol_; }
36  // TTStub bend needs flip of sign
37  bool signBend() const { return signBend_; }
38  // number of columns [2S=2,PS=8]
39  int numColumns() const { return numColumns_; }
40  // number of rows [2S=8*127,PS=8*120]
41  int numRows() const { return numRows_; }
42  // layer id [1-6,11-15]
43  int layerId() const { return layerId_; }
44  // module radius in cm
45  double r() const { return r_; }
46  // module phi w.r.t. detector region centre in rad
47  double phi() const { return phi_; }
48  // module z in cm
49  double z() const { return z_; }
50  // sensor separation in cm
51  double sep() const { return sep_; }
52  // sensor pitch in cm [strip=.009,pixel=.01]
53  double pitchRow() const { return pitchRow_; }
54  // sensor length in cm [strip=5,pixel=.15625]
55  double pitchCol() const { return pitchCol_; }
56  // module tilt measured w.r.t. beam axis (0=barrel), tk layout measures w.r.t. radial axis
57  double tilt() const { return tilt_; }
58  // sinus of module tilt measured w.r.t. beam axis (0=barrel), tk layout measures w.r.t. radial axis
59  double sin() const { return sin_; }
60  // cosinus of module tilt measured w.r.t. beam axis (+-1=endcap), tk layout measures w.r.t. radial axis
61  double cos() const { return cos_; }
62  // encoded radius of disk2S stubs, used in Hybrid
63  int encodedR() const { return encodedR_; }
64  // encoded layer id [0-3]
65  int encodedLayerId() const { return encodedLayerId_; }
66  // stub radius offset for barrelPS, barrel2S, used in Hybrid
67  double offsetR() const { return offsetR_; }
68  // stub z offset for diskPS, disk2S, used in Hybrid
69  double offsetZ() const { return offsetZ_; }
70  // bend window size in half strip units
71  int windowSize() const { return windowSize_; }
72 
73  private:
74  // cmssw det id
76  // dtc id [0-215]
77  int dtcId_;
78  // module on dtc id [0-71]
79  int modId_;
80  // +z or -z
81  bool side_;
82  // barrel or endcap
83  bool barrel_;
84  // Pixel-Strip or 2Strip module
85  bool psModule_;
86  // main sensor inside or outside
87  bool flipped_;
88  // TTStub row needs flip of sign
89  bool signRow_;
90  // TTStub col needs flip of sign
91  bool signCol_;
92  // TTStub bend needs flip of sign
93  bool signBend_;
94  // number of columns [2S=2,PS=8]
96  // number of rows [2S=8*127,PS=8*120]
97  int numRows_;
98  // layer id [1-6,11-15]
99  int layerId_;
100  // module radius in cm
101  double r_;
102  // module phi w.r.t. detector region centre in rad
103  double phi_;
104  // module z in cm
105  double z_;
106  // sensor separation in cm
107  double sep_;
108  // sensor pitch in cm [strip=.009,pixel=.01]
109  double pitchRow_;
110  // sensor length in cm [strip=5,pixel=.15625]
111  double pitchCol_;
112  // module tilt measured w.r.t. beam axis (0=barrel), tk layout measures w.r.t. radial axis
113  double tilt_;
114  // sinus of module tilt measured w.r.t. beam axis (0=barrel), tk layout measures w.r.t. radial axis
115  double sin_;
116  // cosinus of module tilt measured w.r.t. beam axis (+-1=endcap), tk layout measures w.r.t. radial axis
117  double cos_;
118  // module type (barrelPS, barrel2S, diskPS, disk2S)
120  // encoded radius of disk2S stubs, used in Hybrid
122  // encoded layer id [0-3]
124  // stub radius offset for barrelPS, barrel2S, used in Hybrid
125  double offsetR_;
126  // stub z offset for diskPS, disk2S, used in Hybrid
127  double offsetZ_;
128  // bend window size in half strip units
130  };
131 
132 } // namespace trackerDTC
133 
134 #endif
double cos() const
Definition: SensorModule.h:61
double offsetR() const
Definition: SensorModule.h:67
int encodedLayerId() const
Definition: SensorModule.h:65
double sin() const
Definition: SensorModule.h:59
SensorModule(const Setup &setup, const DetId &detId, int dtcId, int modId)
Definition: SensorModule.cc:15
double phi() const
Definition: SensorModule.h:47
Class to process and provide run-time constants used by Track Trigger emulators.
Definition: Setup.h:41
double sep() const
Definition: SensorModule.h:51
bool signBend() const
Definition: SensorModule.h:37
Definition: DetId.h:17
bool psModule() const
Definition: SensorModule.h:29
double offsetZ() const
Definition: SensorModule.h:69
double pitchRow() const
Definition: SensorModule.h:53
double pitchCol() const
Definition: SensorModule.h:55
double tilt() const
Definition: SensorModule.h:57