CMS 3D CMS Logo

CSCChamberSpecs.h
Go to the documentation of this file.
1 #ifndef Geometry_CSCGeometry_CSCChamberSpecs_H
2 #define Geometry_CSCGeometry_CSCChamberSpecs_H
3 
28 
29 #include <cmath>
30 #include <string>
31 #include <vector>
32 
33 class CSCGeometry;
34 class CSCLayerGeometry;
36 class Topology; //@@ Can go once GeomDetType has it removed.
38 
39 class CSCChamberSpecs : public GeomDetType {
40 public:
41  typedef std::vector<float> CSCSpecsParcel;
42 
45 
48  int iChamberType,
49  const TrapezoidalPlaneBounds& mediaShape,
50  const CSCSpecsParcel& fupar,
51  const CSCWireGroupPackage& wg);
52 
54  ~CSCChamberSpecs() override;
55 
57  bool operator!=(const CSCChamberSpecs& specs) const;
58  bool operator==(const CSCChamberSpecs& specs) const;
59 
60  //@@ Topology() will be removed from GeomDetType interface (good, so we're no longer forced to pick something)
61  //@@ But still there as of Aug-2007. So much for design.
62 
64  const Topology& topology() const override;
65 
67  const CSCLayerGeometry* oddLayerGeometry(int iendcap) const {
68  return (iendcap == 1 ? poszOddLayerGeometry : negzOddLayerGeometry);
69  }
70  const CSCLayerGeometry* evenLayerGeometry(int iendcap) const {
71  return (iendcap == 1 ? poszEvenLayerGeometry : negzEvenLayerGeometry);
72  }
73 
84  int chamberType() const;
85 
91 
92  // CHAMBER 'PARAMETER' FUNCTIONS
93  //@@ FIXME these must all be sorted out in a world of real conditions & calibration
94 
95  float stripResolution() const { return specsValue(0); }
96  float wireResolution() const { return specsValue(1); }
97  float efficiency() const { return specsValue(2); }
98  float timeWindow() const { return specsValue(3); }
99 
103  float neutronRate() const { return specsValue(4); }
104 
108  int nStrips() const { return nstrips; }
109 
113  int nNodes() const { return int(specsValue(6)); }
114  int nWiresPerGroup() const { return int(specsValue(7)); }
115  int nFloatingStrips() const { return int(specsValue(8)); }
116 
120  float stripPhiPitch() const { return 1.E-03 * stripDeltaPhi; }
121 
126  float ctiOffset() const { return centreToIntersectionOffset; }
127 
131  float wireSpacing() const;
132 
136  float anodeCathodeSpacing() const { return specsValue(9); }
137 
138  float gasGain() const;
139 
140  float voltage() const { return specsValue(11); }
141 
142  float calibrationError() const { return specsValue(13); }
143 
144  float electronAttraction() const { return specsValue(14); }
145 
149  float fractionQS() const { return specsValue(15); }
150 
154  float chargePerCount() const;
155 
159  float wireRadius() const { return specsValue(17); }
160 
164  float shaperPeakingTime() const { return specsValue(18); }
165 
169  float constantNoise() const { return specsValue(22); }
170 
174  float e_pF() const { return specsValue(23); }
175 
181  //@@ Why 1/sqrt(time)?!?
182  float wireNoise(float timeInterval) const {
183  const float WIRE_CAPACITANCE = 8.; // in pF
184  return (constantNoise() + nWiresPerGroup() * WIRE_CAPACITANCE) / sqrt(timeInterval / 100.);
185  }
186 
187  float stripNoise(float timeInterval) const;
188 
189  //@@ The following is nonsense to be fixed at some stage
190  // float adcThreshold() const {return 9.99;}
191 
195  bool gangedStrips() const { return gangedStrips_; }
196 
197  // STATIC FUNCTION
198 
202  static int whatChamberType(int istation, int iring);
203 
204 private:
206  float specsValue(int index) const { return theSpecsValues[index]; }
207 
208  // A ChamberSpecs has 4 associated LayerGeometry's
213 
214  // theChamberType is a unique integer 1-10 for a station, ring pair.
215 
216  // The type value is defined as <br>
217  // 1 for S = 1 and R=A=4 split strips in ME11 <br>
218  // 2,3,4 = R+1 for S = 1 and R = 1,2,3 <br>
219  // 5-10 = 2*S+R for S = 2,3,4 and R = 1,2 <br>
220 
222 
223  // Careful that the following order of data members is required to ensure
224  // correct initialization in constructor initialization list!
225 
226  // Store for specs parameter values
228 
229  int nstrips; // no. of strips per layer
230  float stripDeltaPhi; // Delta-phi width of strip in this chamber type (in mrad)
231  float centreToIntersectionOffset; // Possible correction to whereStripsMeet
232 
234 
235  // Names of chamber types
236  static const std::string theName[10];
237 
238  // Name of this class
239  static const std::string myName;
240 };
241 
242 #endif // Geometry_CSCGeometry_CSCChamberSpecs_H
CSCChamberSpecs::e_pF
float e_pF() const
Definition: CSCChamberSpecs.h:174
CSCChamberSpecs::specsValue
float specsValue(int index) const
Accessor to chamber specs values.
Definition: CSCChamberSpecs.h:206
CSCChamberSpecs::operator!=
bool operator!=(const CSCChamberSpecs &specs) const
Allow comparison of Specs objects.
Definition: CSCChamberSpecs.cc:143
CSCChamberSpecs::CSCChamberSpecs
CSCChamberSpecs()
Default ctor.
CSCChamberSpecs::poszOddLayerGeometry
CSCLayerGeometry * poszOddLayerGeometry
Definition: CSCChamberSpecs.h:209
CSCChamberSpecs::chamberType
int chamberType() const
Definition: CSCChamberSpecs.cc:154
CSCChamberSpecs
Definition: CSCChamberSpecs.h:39
HistogramManager_cfi.specs
specs
Definition: HistogramManager_cfi.py:80
CSCChamberSpecs::theSpecsValues
CSCSpecsParcel theSpecsValues
Definition: CSCChamberSpecs.h:227
CSCChamberSpecs::theChamberType
int theChamberType
Definition: CSCChamberSpecs.h:221
BeamMonitor_cff.timeInterval
timeInterval
Definition: BeamMonitor_cff.py:8
GeomDetType.h
GeomDetType
Definition: GeomDetType.h:9
CSCChamberSpecs::nFloatingStrips
int nFloatingStrips() const
Definition: CSCChamberSpecs.h:115
CSCChamberSpecs::ctiOffset
float ctiOffset() const
Definition: CSCChamberSpecs.h:126
CSCChamberSpecs::evenLayerGeometry
const CSCLayerGeometry * evenLayerGeometry(int iendcap) const
Definition: CSCChamberSpecs.h:70
CSCChamberSpecs::wireRadius
float wireRadius() const
Definition: CSCChamberSpecs.h:159
CSCChamberSpecs::negzOddLayerGeometry
CSCLayerGeometry * negzOddLayerGeometry
Definition: CSCChamberSpecs.h:211
CSCChamberSpecs::topology
const Topology & topology() const override
Returns StripTopology of the odd-layer, positive-z geometry.
Definition: CSCChamberSpecs.cc:152
CSCChamberSpecs::constantNoise
float constantNoise() const
Definition: CSCChamberSpecs.h:169
CSCChamberSpecs::wireSpacing
float wireSpacing() const
Definition: CSCChamberSpecs.cc:175
CSCChamberSpecs::shaperPeakingTime
float shaperPeakingTime() const
Definition: CSCChamberSpecs.h:164
CSCGeometry
Definition: CSCGeometry.h:24
CSCChamberSpecs::electronAttraction
float electronAttraction() const
Definition: CSCChamberSpecs.h:144
CSCChamberSpecs::stripPhiPitch
float stripPhiPitch() const
Definition: CSCChamberSpecs.h:120
CSCChamberSpecs::neutronRate
float neutronRate() const
Definition: CSCChamberSpecs.h:103
CSCLayerGeometry
Definition: CSCLayerGeometry.h:25
CSCChamberSpecs::~CSCChamberSpecs
~CSCChamberSpecs() override
Destructor.
Definition: CSCChamberSpecs.cc:134
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
CSCChamberSpecs::myName
static const std::string myName
Definition: CSCChamberSpecs.h:239
CSCChamberSpecs::wireNoise
float wireNoise(float timeInterval) const
Definition: CSCChamberSpecs.h:182
relativeConstraints.geom
geom
Definition: relativeConstraints.py:72
CSCChamberSpecs::timeWindow
float timeWindow() const
Definition: CSCChamberSpecs.h:98
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
CSCChamberSpecs::voltage
float voltage() const
Definition: CSCChamberSpecs.h:140
CSCChamberSpecs::nNodes
int nNodes() const
Definition: CSCChamberSpecs.h:113
CSCChamberSpecs::wireResolution
float wireResolution() const
Definition: CSCChamberSpecs.h:96
CSCChamberSpecs::gasGain
float gasGain() const
Definition: CSCChamberSpecs.cc:182
CSCChamberSpecs::chamberTypeName
std::string chamberTypeName() const
Definition: CSCChamberSpecs.cc:156
CSCChamberSpecs::nstrips
int nstrips
Definition: CSCChamberSpecs.h:229
createfilelist.int
int
Definition: createfilelist.py:10
CSCChamberSpecs::negzEvenLayerGeometry
CSCLayerGeometry * negzEvenLayerGeometry
Definition: CSCChamberSpecs.h:212
CSCChamberSpecs::efficiency
float efficiency() const
Definition: CSCChamberSpecs.h:97
CSCChamberSpecs::stripDeltaPhi
float stripDeltaPhi
Definition: CSCChamberSpecs.h:230
CSCChamberSpecs::operator==
bool operator==(const CSCChamberSpecs &specs) const
Definition: CSCChamberSpecs.cc:150
CSCChamberSpecs::theName
static const std::string theName[10]
Definition: CSCChamberSpecs.h:236
CSCChamberSpecs::centreToIntersectionOffset
float centreToIntersectionOffset
Definition: CSCChamberSpecs.h:231
CSCWireGroupPackage
Definition: CSCWireGroupPackage.h:18
CSCChamberSpecs::calibrationError
float calibrationError() const
Definition: CSCChamberSpecs.h:142
TrapezoidalPlaneBounds
Definition: TrapezoidalPlaneBounds.h:15
CSCChamberSpecs::nWiresPerGroup
int nWiresPerGroup() const
Definition: CSCChamberSpecs.h:114
CSCChamberSpecs::whatChamberType
static int whatChamberType(int istation, int iring)
Definition: CSCChamberSpecs.cc:164
CSCChamberSpecs::CSCSpecsParcel
std::vector< float > CSCSpecsParcel
Definition: CSCChamberSpecs.h:41
CSCChamberSpecs::nStrips
int nStrips() const
Definition: CSCChamberSpecs.h:108
CSCChamberSpecs::fractionQS
float fractionQS() const
Definition: CSCChamberSpecs.h:149
CSCChamberSpecs::gangedStrips_
bool gangedStrips_
Definition: CSCChamberSpecs.h:233
CSCChamberSpecs::chargePerCount
float chargePerCount() const
Definition: CSCChamberSpecs.cc:188
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
Topology
Definition: Topology.h:39
CSCChamberSpecs::stripNoise
float stripNoise(float timeInterval) const
Definition: CSCChamberSpecs.cc:177
CSCChamberSpecs::poszEvenLayerGeometry
CSCLayerGeometry * poszEvenLayerGeometry
Definition: CSCChamberSpecs.h:210
CSCChamberSpecs::oddLayerGeometry
const CSCLayerGeometry * oddLayerGeometry(int iendcap) const
Accessors for LayerGeometry's.
Definition: CSCChamberSpecs.h:67
CSCChamberSpecs::gangedStrips
bool gangedStrips() const
Definition: CSCChamberSpecs.h:195
CSCChamberSpecs::stripResolution
float stripResolution() const
Definition: CSCChamberSpecs.h:95
CSCChamberSpecs::anodeCathodeSpacing
float anodeCathodeSpacing() const
Definition: CSCChamberSpecs.h:136