GEAR  1.9.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Friends Pages
FTDLayerLayout.h
1 // -*- C++ _*_
2 #ifndef GEAR_FTDLAYERLAYOUT_H
3 #define GEAR_FTDLAYERLAYOUT_H 1
4 
5 namespace gear
6 {
7 
18 
19 public:
22  virtual ~FTDLayerLayout() { /* nop */ ; }
23 
26  virtual int getNLayers() const = 0;
27 
31  virtual int getNPetals(int layerIndex) const = 0;
32 
46  virtual int getNSensors(int layerIndex) const = 0;
47 
50  virtual bool isDoubleSided(int layerIndex) const = 0;
51 
57  virtual int getSensorType(int layerIndex) const = 0;
58 
61  virtual double getPhiHalfDistance(int layerIndex) const = 0;
62 
65  //FIXME: TO BE DEPRECATED OR PRIVATE? All the positions having to
66  // return this class is relative to the petals or
67  // sensors. to be checked
68  virtual double getZposition(const int & layerIndex) const = 0;
69 
74  // FIXME: TO BE DEPRECATED OR PRIVATE? To be checked
75  virtual double getZoffset(const int & layerIndex) const = 0;
76 
80  virtual double getZoffsetSign0(const int & layerIndex) const = 0;
81 
82 
86  virtual double getPhi0(const int & layerIndex) const = 0;
87 
88 
91  virtual double getAlpha(int layerIndex) const = 0;
92 
93  // description of the support petal =========================================================================================
94  // this is a trapezoidal frame really
95  // => we need a few additional parameters to desribe the
96  // holes in petal ....
97 
98 
99 
106  virtual double getSupportZposition(const int & layerIndex,const int & petalIndex) const = 0;
107 
108 
112  virtual double getSupportRinner(int layerIndex) const = 0;
113 
117  virtual double getSupportRadLength(int layerIndex) const = 0;
118 
122  virtual double getSupportThickness(int layerIndex) const = 0;
123 
127  // FIXME: Change Length <--> Width (I think is the usual notation)
128  virtual double getSupportLengthMin(int layerIndex) const = 0;
129 
133  virtual double getSupportLengthMax(int layerIndex) const = 0;
134 
138  virtual double getSupportWidth(int layerIndex) const = 0;
139 
140 
141 
142 
143  // description of the sensitive petal =========================================================================================
144 
145 
158  virtual double getSensitiveZposition(const int & layerIndex, const int & petalIndex, const int & sensorId) const = 0;
159 
163  virtual double getSensitiveRinner(int layerIndex) const = 0;
164 
168  virtual double getSensitiveRadLength(int layerIndex) const = 0;
169 
172  virtual double getSensitiveThickness(int layerIndex) const = 0;
173 
177  virtual double getSensitiveLengthMin(int layerIndex) const = 0;
178 
182  virtual double getSensitiveLengthMax(int layerIndex) const = 0;
183 
186  virtual double getSensitiveWidth(int layerIndex) const = 0;
187 
188 
189 
190 
196  virtual double getPhiPetalCd(const int & layerIndex, const int & petalIndex) const = 0;
197 
199  //FIXME: To be checked if necessary
200  virtual double getMaxRadius(const int & layerIndex,const bool & sensitive=false ) const = 0;
201 
204  //FIXME: To be checked if necessary
205  virtual double getStartPhi(const int & layerIndex, const int & petalInd,
206  const bool &sensitive=false ) const = 0;
207 
210  //FIXME: To be checked if necessary
211  virtual double getEndPhi(const int & layerIndex,const int & petalInd,
212  const bool & sensitive=false ) const = 0;
213 
219  //FIXME: To be checked if necessary
220  virtual double getThicknessForAngle(const int & layerIndex, const double & tetha,
221  const double & phi, const bool & sensitive=false ) const = 0;
222 };
223 
224 } // namespace gear
225 #endif /* ifndef GEAR_FTDLAYERLAYOUT_H */
virtual double getSupportLengthMax(int layerIndex) const =0
The length (x-direction) of the largest edge of the trapezoid support in layer layerIndex - layer ind...
virtual double getZoffsetSign0(const int &layerIndex) const =0
Z-offset sign of the petal 0 in a staggered setup - the z position of the petals is zposition + zsign...
virtual double getSensitiveThickness(int layerIndex) const =0
The thickness in mm of the sensitive area in petals in layer layerIndex.
virtual double getSupportRinner(int layerIndex) const =0
The R-min of the support petals in the XY-plane in mm, for the layer layerIndex - layer indexing star...
virtual double getPhi0(const int &layerIndex) const =0
Azimuthal angle of the first petal (angle between petal centroid and x-axis for the petal indexed as ...
virtual double getSupportLengthMin(int layerIndex) const =0
The length (x-direction) of the smallest edge of the trapezoid support in layer layerIndex - layer in...
virtual double getPhiPetalCd(const int &layerIndex, const int &petalIndex) const =0
Azimuthal angle of the petal petalIndex Centroid at layer layerIndex.
virtual double getSensitiveZposition(const int &layerIndex, const int &petalIndex, const int &sensorId) const =0
The position of the sensitive in z direction in mm for sensor sensorIndex of the petal support petalI...
virtual double getZposition(const int &layerIndex) const =0
The z-position of the centroid of the disk structure.
virtual int getNSensors(int layerIndex) const =0
The number of sensors per petal on a specific layer - Sensor indexing is defined as follows: (illustr...
virtual double getSupportThickness(int layerIndex) const =0
The thickness in mm of the supports in layerIndex - layer indexing starting at 0 for the layer closes...
virtual int getSensorType(int layerIndex) const =0
The sensor type of the disk: pixel or micro-strip The return value corresponds to the following value...
virtual double getPhiHalfDistance(int layerIndex) const =0
Angular half-width of the petals of a layer - half of the opening angle of the trapezoid.
virtual int getNPetals(int layerIndex) const =0
The number of petals in the layer layerIndex - layer indexing starts at 0 for the layer closest to IP...
Abstract description of layers in a FTD detector.
virtual double getZoffset(const int &layerIndex) const =0
Z-offset of the petals in a staggered setup - the z position of the even numbered petals is getZposit...
virtual double getMaxRadius(const int &layerIndex, const bool &sensitive=false) const =0
returns maximum radius for a given layer
virtual double getSensitiveLengthMax(int layerIndex) const =0
Same as getPetalLengthMax() except for the sensitive part of the petal.
virtual double getSensitiveLengthMin(int layerIndex) const =0
Same as getPetalLengthMin() except for the sensitive part of the petal.
virtual double getEndPhi(const int &layerIndex, const int &petalInd, const bool &sensitive=false) const =0
returns ending phi for first petal in layer layerIndex (on side facing IP)
virtual double getSensitiveRadLength(int layerIndex) const =0
The radiation length in sensitive volumes in layer layerIndex - layer indexing starts at 0 for the la...
virtual double getAlpha(int layerIndex) const =0
Angle of rotation in the own plane of a petal in a tilted configuration.
virtual ~FTDLayerLayout()
Destructor.
virtual double getSupportWidth(int layerIndex) const =0
The width of the support in layer in mm for petals in layer layerIndex - layer indexing starting at 0...
virtual int getNLayers() const =0
The total number of layers.
virtual double getStartPhi(const int &layerIndex, const int &petalInd, const bool &sensitive=false) const =0
returns starting phi for first petal in layer layerIndex (on side facing IP)
virtual double getSensitiveWidth(int layerIndex) const =0
The width of the sensitive area in petals in layer layerIndex in mm.
virtual double getSensitiveRinner(int layerIndex) const =0
The R-min of the petal in the XY-plane in mm for sensors in layer layerIndex - layer indexing starts ...
virtual double getThicknessForAngle(const int &layerIndex, const double &tetha, const double &phi, const bool &sensitive=false) const =0
returns thickness as viewed under the incidence angles phi and theta in layer layerIndex.
virtual bool isDoubleSided(int layerIndex) const =0
Whether the petals on a layer have sensors in front and back.
virtual double getSupportZposition(const int &layerIndex, const int &petalIndex) const =0
The position of the support in z direction in mm for the petalIndex petal in layer layerIndex - layer...
virtual double getSupportRadLength(int layerIndex) const =0
The radiation length in the support structure petals of layer layerIndex - layer indexing starts at 0...