Belle II Software development
ECLCrystalData Class Reference

Class for obtaining crystal details for a given crystal cell An evolved look-up table. More...

#include <ECLCrystalData.h>

Public Member Functions

 ECLCrystalData ()
 Blank Constructor.
 
 ECLCrystalData (int cid)
 CrystalID constructor.
 
 ECLCrystalData (int tid, int pid)
 theta, phi ID constructor
 
 ~ECLCrystalData ()
 destructor
 
void Eval ()
 Set values for the crystal.
 
int GetCrystalIndex ()
 return crystal index
 
bool IsEndCap ()
 True if crystal is in endcaps.
 
bool IsBarrel ()
 True if crystal is in barrel.
 
int GetCellID ()
 return cell ID
 
int GetCellID (int tid, int pid)
 return cell ID of crystal with given theta and phi id
 
double GetPhi ()
 get phi value of crystal
 
double GetTheta ()
 get theta value of crystal
 
double GetR ()
 get radius of crystal
 
double GetZ ()
 get z position of crystal
 
double GetX ()
 get x position of crystal
 
double GetY ()
 get y position of crystal
 
double GetMass ()
 get mass of crystal
 
int GetThetaID ()
 get thetaID of crystal
 
int GetPhiID ()
 get phiID of crystal
 
int GetNperThetaID ()
 get number of crystals in theta ring
 

Static Public Attributes

static const int Ring [69]
 ECL has 16-fold symmetry in phi.
 
static const int sumPrevious [24] = {0, 3, 6, 10, 14, 18, 24, 30, 36, 42, 48, 54, 63, 72, 81, 90, 96, 102, 108, 114, 120, 124, 128, 132}
 Number of crystals in preceding theta rings (endcaps only)
 
static const float CrystalMassEndcap [132]
 Barrel crystal mass.
 
static const float CrystalMassBarrel [46]
 Endcap crystal mass.
 
static const double theta [69]
 Theta ID to theta(deg)
 
static const double EndcapRadius [132]
 EndCapCrystalID to radius (spherical)
 
static const double BarrelZ [46] = {210.15, 200.14, 190.44, 181.05, 171.95, 163.03, 154.45, 146.10, 137.98, 129.99, 122.27, 114.72, 107.34, 100.05, 92.96, 86.00, 79.15, 72.36, 65.72, 59.16, 52.69, 46.22, 39.87, 33.56, 27.29, 21.01, 14.81, 8.62, 2.78, -2.78, -14.81, -21.01, -27.29, -33.56, -39.87, -46.22, -52.69, -59.16, -65.72, -72.36, -79.15, -86.00, -92.95, -100.05, -107 - 28}
 BarrelCrystalID to z-coordinate.
 

Private Member Functions

float EvalMass ()
 Evaluate mass of crystal.
 
double EvalPhi ()
 Set phi value of crystal.
 
double EvalR ()
 Set R value of crystal.
 
double EvalZ ()
 Set Z value of crystal.
 
double EvalX ()
 Set X value of crystal.
 
double EvalY ()
 Set Y value of crystal.
 
void Mapping (int cid)
 set theta and phi value of crystal
 

Private Attributes

int m_cell_ID
 Cell ID of crystal.
 
int m_phi_ID
 phi ID of crystal
 
int m_theta_ID
 theta ID of crystal
 
int m_phi_idx
 Index.
 
int m_theta_idx
 Index.
 
float m_mass
 Crystal Mass.
 
float m_volume
 Crystal Volume.
 
float m_PosR
 Crystal Position - R.
 
float m_PosP
 Crystal Position - P.
 
float m_PosX
 Crystal Position - X.
 
float m_PosY
 Crystal Position - Y.
 
float m_PosZ
 Crystal Position - Z.
 

Detailed Description

Class for obtaining crystal details for a given crystal cell An evolved look-up table.

Definition at line 24 of file ECLCrystalData.h.

Constructor & Destructor Documentation

◆ ECLCrystalData() [1/3]

Blank Constructor.

Constructors and destructors.

Definition at line 109 of file ECLCrystalData.cc.

110{
111 m_cell_ID = -1;
112 m_phi_ID = -1;
113 m_theta_ID = -1;
114 m_phi_idx = -1;
115 m_theta_idx = -1;
116
117 m_mass = -1;
118 m_volume = -1;
119 m_PosR = -1;
120 m_PosP = -1;
121 m_PosX = -1;
122 m_PosY = -1;
123 m_PosZ = -1;
124}
float m_PosY
Crystal Position - Y.
float m_mass
Crystal Mass.
float m_PosZ
Crystal Position - Z.
float m_volume
Crystal Volume.
int m_cell_ID
Cell ID of crystal.
float m_PosR
Crystal Position - R.
float m_PosP
Crystal Position - P.
int m_phi_ID
phi ID of crystal
int m_theta_ID
theta ID of crystal
float m_PosX
Crystal Position - X.

◆ ECLCrystalData() [2/3]

ECLCrystalData ( int  cid)
explicit

CrystalID constructor.

Definition at line 126 of file ECLCrystalData.cc.

127{
128 m_cell_ID = cid;
129 Mapping(cid);
130
131 Eval();
132
133}
void Eval()
Set values for the crystal.
void Mapping(int cid)
set theta and phi value of crystal

◆ ECLCrystalData() [3/3]

ECLCrystalData ( int  tid,
int  pid 
)

theta, phi ID constructor

Definition at line 135 of file ECLCrystalData.cc.

136{
137 m_phi_idx = -1;
138 m_theta_idx = -1;
139 m_theta_ID = tid;
140 m_phi_ID = pid;
141 m_cell_ID = GetCellID(tid, pid);
142
143 Eval();
144}
int GetCellID()
return cell ID

◆ ~ECLCrystalData()

destructor

Definition at line 146 of file ECLCrystalData.cc.

147{
148}

Member Function Documentation

◆ Eval()

void Eval ( )

Set values for the crystal.

Evaluate all properties from theta_ID and phi_ID.

Definition at line 152 of file ECLCrystalData.cc.

153{
154 //Crystal properties
155 m_mass = EvalMass();
156 m_volume = m_mass / 4.51;
157
158 //Crystal Location
159 m_PosP = EvalPhi();
160 m_PosR = EvalR();
161
162 m_PosZ = EvalZ();
163 m_PosX = EvalX();
164 m_PosY = EvalY();
165
166
167}
double EvalPhi()
Set phi value of crystal.
double EvalR()
Set R value of crystal.
float EvalMass()
Evaluate mass of crystal.
double EvalZ()
Set Z value of crystal.
double EvalY()
Set Y value of crystal.
double EvalX()
Set X value of crystal.

◆ EvalMass()

float EvalMass ( )
private

Evaluate mass of crystal.

Definition at line 181 of file ECLCrystalData.cc.

182{
183 if (IsEndCap()) {
185
186 } else {
188 }
189}
int GetCrystalIndex()
return crystal index
static const float CrystalMassEndcap[132]
Barrel crystal mass.
bool IsEndCap()
True if crystal is in endcaps.
static const float CrystalMassBarrel[46]
Endcap crystal mass.

◆ EvalPhi()

double EvalPhi ( )
private

Set phi value of crystal.

Definition at line 223 of file ECLCrystalData.cc.

224{
225 return 22.5 * m_phi_ID / Ring[m_theta_ID];
226}
static const int Ring[69]
ECL has 16-fold symmetry in phi.

◆ EvalR()

double EvalR ( )
private

Set R value of crystal.

Definition at line 237 of file ECLCrystalData.cc.

238{
239 if (IsEndCap()) {
240 return EndcapRadius[GetCrystalIndex()] * sin(TMath::DegToRad() * theta[m_theta_ID]);
241 }
242
243 return 147.7;
244}
static const double theta[69]
Theta ID to theta(deg)
static const double EndcapRadius[132]
EndCapCrystalID to radius (spherical)

◆ EvalX()

double EvalX ( )
private

Set X value of crystal.

Definition at line 169 of file ECLCrystalData.cc.

170{
171 return m_PosR * cos(TMath::DegToRad() * m_PosP);
172}

◆ EvalY()

double EvalY ( )
private

Set Y value of crystal.

Definition at line 174 of file ECLCrystalData.cc.

175{
176 return m_PosR * sin(TMath::DegToRad() * m_PosP);
177}

◆ EvalZ()

double EvalZ ( )
private

Set Z value of crystal.

Definition at line 228 of file ECLCrystalData.cc.

229{
230 if (IsEndCap()) {
231 return EndcapRadius[GetCrystalIndex()] * cos(TMath::DegToRad() * theta[m_theta_ID]);
232 }
233
234 return BarrelZ[GetCrystalIndex()];
235}
static const double BarrelZ[46]
BarrelCrystalID to z-coordinate.

◆ GetCellID() [1/2]

int GetCellID ( )
inline

return cell ID

Definition at line 218 of file ECLCrystalData.cc.

219{
220 return m_cell_ID;
221}

◆ GetCellID() [2/2]

int GetCellID ( int  tid,
int  pid 
)

return cell ID of crystal with given theta and phi id

0-12 forward 13-58 barrel 59-68 backward

Definition at line 248 of file ECLCrystalData.cc.

249{
253 if (ThetaId < 13) {
254 const int forwRing[13] = {0, 3, 6, 10, 14, 18, 24, 30, 36, 42, 48, 54, 63 };
255 return forwRing[ThetaId] * 16 + PhiId;
256
257 } else if (ThetaId > 58) {
258 const int backRing[10] = {0, 9, 18, 24, 30, 36, 42, 48, 52, 56} ;
259 return ECLElementNumbers::c_NCrystalsForwardBarrel + backRing[ThetaId - 59] * 16 + PhiId;
260
261 }
262
263 return ECLElementNumbers::c_NCrystalsForward + 144 * (ThetaId - 13) + PhiId;
264}
const int c_NCrystalsForwardBarrel
Number of crystals in the forward and barrel ECL.
const int c_NCrystalsForward
Number of crystals in the forward ECL.

◆ GetCrystalIndex()

int GetCrystalIndex ( )

return crystal index

Definition at line 191 of file ECLCrystalData.cc.

192{
193 if (m_theta_ID <= 12) { //forward ECL crystal
195
196 } else if (m_theta_ID >= 59) { //backward ECL crystal
198
199 } else if (12 < m_theta_ID && m_theta_ID < 59) { //barrel ECL crystal
200 return m_theta_ID - 13;
201 }
202
203 B2ERROR("ERROR: invalid theta_ID=" << m_theta_ID);
204 return -1;
205}
static const int sumPrevious[24]
Number of crystals in preceding theta rings (endcaps only)

◆ GetMass()

double GetMass ( )
inline

get mass of crystal

Definition at line 132 of file ECLCrystalData.h.

132{ return m_mass; };

◆ GetNperThetaID()

int GetNperThetaID ( )
inline

get number of crystals in theta ring

Definition at line 138 of file ECLCrystalData.h.

138{ return 16 * Ring[m_theta_ID];};

◆ GetPhi()

double GetPhi ( )
inline

get phi value of crystal

Definition at line 120 of file ECLCrystalData.h.

120{ return m_PosP; };

◆ GetPhiID()

int GetPhiID ( )
inline

get phiID of crystal

Definition at line 136 of file ECLCrystalData.h.

136{ return m_phi_ID; } ;

◆ GetR()

double GetR ( )
inline

get radius of crystal

Definition at line 124 of file ECLCrystalData.h.

124{ return m_PosR; };

◆ GetTheta()

double GetTheta ( )
inline

get theta value of crystal

Definition at line 122 of file ECLCrystalData.h.

122{ return theta[m_theta_ID]; } ;

◆ GetThetaID()

int GetThetaID ( )
inline

get thetaID of crystal

Definition at line 134 of file ECLCrystalData.h.

134{ return m_theta_ID; } ;

◆ GetX()

double GetX ( )
inline

get x position of crystal

Definition at line 128 of file ECLCrystalData.h.

128{ return m_PosX; };

◆ GetY()

double GetY ( )
inline

get y position of crystal

Definition at line 130 of file ECLCrystalData.h.

130{ return m_PosY; };

◆ GetZ()

double GetZ ( )
inline

get z position of crystal

Definition at line 126 of file ECLCrystalData.h.

126{ return m_PosZ; };

◆ IsBarrel()

bool IsBarrel ( )
inline

True if crystal is in barrel.

Definition at line 212 of file ECLCrystalData.cc.

213{
214 return !IsEndCap();
215}

◆ IsEndCap()

bool IsEndCap ( )
inline

True if crystal is in endcaps.

Definition at line 207 of file ECLCrystalData.cc.

208{
209 return m_theta_ID < 13 || m_theta_ID > 58 ;
210}

◆ Mapping()

void Mapping ( int  cid)
private

set theta and phi value of crystal

Definition at line 266 of file ECLCrystalData.cc.

267{
268 if (cid < 0) {
269 B2ERROR("ECL ECLGeometryPar Mapping " << cid << ". Out of range.");
270
271 } else if (cid < 3 * 16) { //Forkward start
272 m_theta_ID = 0;
273 m_phi_ID = cid;
274 m_phi_idx = m_phi_ID % 3;
275 m_theta_idx = m_phi_ID / 3;
276 } else if (cid < 6 * 16) {
277 m_theta_ID = 1;
278 m_phi_ID = cid - 3 * 16;
279 m_phi_idx = m_phi_ID % 3 + 3;
280 m_theta_idx = m_phi_ID / 3;
281 } else if (cid < 10 * 16) {
282 m_theta_ID = 2;
283 m_phi_ID = cid - 6 * 16 ;
284 m_phi_idx = m_phi_ID % 4 + 6;
285 m_theta_idx = m_phi_ID / 4;
286 } else if (cid < 14 * 16) {
287 m_theta_ID = 3;
288 m_phi_ID = cid - 10 * 16 ;
289 m_phi_idx = m_phi_ID % 4 + 10;
290 m_theta_idx = m_phi_ID / 4;
291 } else if (cid < 18 * 16) {
292 m_theta_ID = 4;
293 m_phi_ID = cid - 14 * 16 ;
294 m_phi_idx = m_phi_ID % 4 + 14;
295 m_theta_idx = m_phi_ID / 4;
296 } else if (cid < 24 * 16) {
297 m_theta_ID = 5;
298 m_phi_ID = cid - 18 * 16 ;
299 m_phi_idx = m_phi_ID % 6 + 18;
300 m_theta_idx = m_phi_ID / 6;
301 } else if (cid < 30 * 16) {
302 m_theta_ID = 6;
303 m_phi_ID = cid - 24 * 16 ;
304 m_phi_idx = m_phi_ID % 6 + 24;
305 m_theta_idx = m_phi_ID / 6;
306 } else if (cid < 36 * 16) {
307 m_theta_ID = 7;
308 m_phi_ID = cid - 30 * 16 ;
309 m_phi_idx = m_phi_ID % 6 + 30;
310 m_theta_idx = m_phi_ID / 6;
311 } else if (cid < 42 * 16) {
312 m_theta_ID = 8;
313 m_phi_ID = cid - 36 * 16 ;
314 m_phi_idx = m_phi_ID % 6 + 36;
315 m_theta_idx = m_phi_ID / 6;
316 } else if (cid < 48 * 16) {
317 m_theta_ID = 9;
318 m_phi_ID = cid - 42 * 16 ;
319 m_phi_idx = m_phi_ID % 6 + 42;
320 m_theta_idx = m_phi_ID / 6;
321 } else if (cid < 54 * 16) {
322 m_theta_ID = 10;
323 m_phi_ID = cid - 48 * 16 ;
324 m_phi_idx = m_phi_ID % 6 + 48;
325 m_theta_idx = m_phi_ID / 6;
326 } else if (cid < 63 * 16) {
327 m_theta_ID = 11;
328 m_phi_ID = cid - 54 * 16 ;
329 m_phi_idx = m_phi_ID % 9 + 54;
330 m_theta_idx = m_phi_ID / 9;
331 } else if (cid < 72 * 16) {
332 m_theta_ID = 12;
333 m_phi_ID = cid - 63 * 16 ;
334 m_phi_idx = m_phi_ID % 9 + 63;
335 m_theta_idx = m_phi_ID / 9;
336 } else if (cid < ECLElementNumbers::c_NCrystalsForwardBarrel) {//Barrel start
341 } else if (cid < ECLElementNumbers::c_NCrystalsForwardBarrel + 9 * 16) { //Backward start
342 m_theta_ID = 59;
344 m_phi_idx = m_phi_ID % 9 + 72;
345 m_theta_idx = m_phi_ID / 9;
346 } else if (cid < ECLElementNumbers::c_NCrystalsForwardBarrel + 18 * 16) {
347 m_theta_ID = 60;
349 m_phi_idx = m_phi_ID % 9 + 81;
350 m_theta_idx = m_phi_ID / 9;
351 } else if (cid < ECLElementNumbers::c_NCrystalsForwardBarrel + 24 * 16) {
352 m_theta_ID = 61;
354 m_phi_idx = m_phi_ID % 6 + 90;
355 m_theta_idx = m_phi_ID / 6;
356 } else if (cid < ECLElementNumbers::c_NCrystalsForwardBarrel + 30 * 16) {
357 m_theta_ID = 62;
359 m_phi_idx = m_phi_ID % 6 + 96;
360 m_theta_idx = m_phi_ID / 6;
361 } else if (cid < ECLElementNumbers::c_NCrystalsForwardBarrel + 36 * 16) {
362 m_theta_ID = 63;
364 m_phi_idx = m_phi_ID % 6 + 102;
365 m_theta_idx = m_phi_ID / 6;
366 } else if (cid < ECLElementNumbers::c_NCrystalsForwardBarrel + 42 * 16) {
367 m_theta_ID = 64;
369 m_phi_idx = m_phi_ID % 6 + 108;
370 m_theta_idx = m_phi_ID / 6;
371 } else if (cid < ECLElementNumbers::c_NCrystalsForwardBarrel + 48 * 16) {
372 m_theta_ID = 65;
374 m_phi_idx = m_phi_ID % 6 + 114;
375 m_theta_idx = m_phi_ID / 6;
376 } else if (cid < ECLElementNumbers::c_NCrystalsForwardBarrel + 52 * 16) {
377 m_theta_ID = 66;
379 m_phi_idx = m_phi_ID % 4 + 120;
380 m_theta_idx = m_phi_ID / 4;
381 } else if (cid < ECLElementNumbers::c_NCrystalsForwardBarrel + 56 * 16) {
382 m_theta_ID = 67;
384 m_phi_idx = m_phi_ID % 4 + 124;
385 m_theta_idx = m_phi_ID / 4;
386 } else if (cid < ECLElementNumbers::c_NCrystalsForwardBarrel + 60 * 16) {
387 m_theta_ID = 68;
389 m_phi_idx = m_phi_ID % 4 + 128;
390 m_theta_idx = m_phi_ID / 4;
391 } else {
392 B2ERROR("ECL ECLCrystalData Mapping " << cid << ". Out of range.");
393 }
394}

Member Data Documentation

◆ BarrelZ

double const BarrelZ = {210.15, 200.14, 190.44, 181.05, 171.95, 163.03, 154.45, 146.10, 137.98, 129.99, 122.27, 114.72, 107.34, 100.05, 92.96, 86.00, 79.15, 72.36, 65.72, 59.16, 52.69, 46.22, 39.87, 33.56, 27.29, 21.01, 14.81, 8.62, 2.78, -2.78, -14.81, -21.01, -27.29, -33.56, -39.87, -46.22, -52.69, -59.16, -65.72, -72.36, -79.15, -86.00, -92.95, -100.05, -107 - 28}
static

BarrelCrystalID to z-coordinate.

BarrelCrystalID to Z.

Definition at line 96 of file ECLCrystalData.h.

◆ CrystalMassBarrel

float const CrystalMassBarrel
static
Initial value:
= {4.599, 4.619, 4.639, 4.659, 4.680, 4.701, 4.722, 4.744, 4.765,
4.786, 4.807, 4.828, 4.848, 4.868, 4.887, 4.906, 4.923, 4.940,
4.955, 4.969, 4.981, 4.992, 5.001, 5.008, 5.013, 5.016, 5.017,
5.016, 4.455, 4.455, 5.016, 5.017, 5.016, 5.013, 5.008, 5.001,
4.992, 4.981, 4.969, 4.955, 4.940, 4.923, 4.906, 4.887, 4.868,
4.848
}

Endcap crystal mass.

Definition at line 86 of file ECLCrystalData.h.

◆ CrystalMassEndcap

float const CrystalMassEndcap
static
Initial value:
= {4.99, 5.01, 4.99, 5.82, 5.94, 5.83, 4.75, 4.76, 4.77, 4.74, 5.14, 5.16, 5.16,
5.14, 5.76, 5.8, 5.79, 5.78, 4.14, 4.28, 4.15, 4.16, 4.28, 4.14, 4.32, 4.34,
4.34, 4.34, 4.34, 4.32, 4.85, 4.87, 4.87, 4.87, 4.87, 4.85, 4.99, 5.02, 5.02,
5.02, 5.02, 4.99, 5.37, 5.39, 5.39, 5.39, 5.39, 5.37, 5.89, 5.92, 5.92, 5.92,
5.92, 5.9, 4.03, 4.12, 4.05, 4.05, 4.12, 4.05, 4.05, 4.12, 4.03, 4.16, 4.18,
4.18, 4.18, 4.18, 4.18, 4.18, 4.18, 4.16, 4.47, 4.49, 4.49, 4.49, 4.49, 4.49,
4.49, 4.49, 4.47, 4.26, 4.34, 4.28, 4.28, 4.34, 4.28, 4.28, 4.34, 4.26, 5.88,
5.91, 5.91, 5.91, 5.91, 5.88, 5.46, 5.48, 5.48, 5.48, 5.48, 5.46, 5.02, 5.04,
5.04, 5.04, 5.04, 5.02, 4.63, 4.65, 4.65, 4.65, 4.65, 4.63, 4.4, 4.53, 4.42,
4.42, 4.53, 4.4, 5.74, 5.77, 5.76, 5.74, 5.09, 5.11, 5.11, 5.09, 4.56, 4.58,
4.58, 4.56
}

Barrel crystal mass.

Definition at line 84 of file ECLCrystalData.h.

◆ EndcapRadius

double const EndcapRadius
static
Initial value:
= {
217.25, 217.25, 217.25,
218.72, 218.72, 218.72,
220.29, 220.29, 220.29, 220.29,
222.00, 222.00, 222.00, 222.00,
223.96, 223.96, 223.96, 223.96,
226.01, 226.01, 226.01, 226.01, 226.01, 226.01,
228.21, 228.21, 228.21, 228.21, 228.21, 228.21,
230.67, 230.67, 230.67, 230.67, 230.67, 230.67,
233.20, 233.20, 233.20, 233.20, 233.20, 233.20,
235.89, 235.89, 235.89, 235.89, 235.89, 235.89,
238.89, 238.89, 238.89, 238.89, 238.89, 238.89,
241.94, 241.94, 241.94, 241.94, 241.94, 241.94, 241.94, 241.94, 241.94,
245.16, 245.16, 245.16, 245.16, 245.16, 245.16, 245.16, 245.16, 245.16,
172.06, 172.06, 172.06, 172.06, 172.06, 172.06, 172.06, 172.06, 172.06,
165.69, 165.69, 165.69, 165.69, 165.69, 165.69, 165.69, 165.69, 165.69,
159.78, 159.78, 159.78, 159.78, 159.78, 159.78,
154.36, 154.36, 154.36, 154.36, 154.36, 154.36,
149.37, 149.37, 149.37, 149.37, 149.37, 149.37,
144.82, 144.82, 144.82, 144.82, 144.82, 144.82,
140.67, 140.67, 140.67, 140.67, 140.67, 140.67,
136.89, 136.89, 136.89, 136.89,
133.49, 133.49, 133.49, 133.49,
133.49, 133.49, 133.49, 133.49
}

EndCapCrystalID to radius (spherical)

Definition at line 93 of file ECLCrystalData.h.

◆ m_cell_ID

int m_cell_ID
private

Cell ID of crystal.

Definition at line 29 of file ECLCrystalData.h.

◆ m_mass

float m_mass
private

Crystal Mass.

Definition at line 43 of file ECLCrystalData.h.

◆ m_phi_ID

int m_phi_ID
private

phi ID of crystal

Definition at line 31 of file ECLCrystalData.h.

◆ m_phi_idx

int m_phi_idx
private

Index.

Definition at line 37 of file ECLCrystalData.h.

◆ m_PosP

float m_PosP
private

Crystal Position - P.

Definition at line 53 of file ECLCrystalData.h.

◆ m_PosR

float m_PosR
private

Crystal Position - R.

Definition at line 51 of file ECLCrystalData.h.

◆ m_PosX

float m_PosX
private

Crystal Position - X.

Definition at line 55 of file ECLCrystalData.h.

◆ m_PosY

float m_PosY
private

Crystal Position - Y.

Definition at line 57 of file ECLCrystalData.h.

◆ m_PosZ

float m_PosZ
private

Crystal Position - Z.

Definition at line 59 of file ECLCrystalData.h.

◆ m_theta_ID

int m_theta_ID
private

theta ID of crystal

Definition at line 33 of file ECLCrystalData.h.

◆ m_theta_idx

int m_theta_idx
private

Index.

Definition at line 39 of file ECLCrystalData.h.

◆ m_volume

float m_volume
private

Crystal Volume.

Definition at line 45 of file ECLCrystalData.h.

◆ Ring

int const Ring
static
Initial value:
= {
3, 3, 4, 4, 4, 6, 6, 6, 6, 6, 6, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9,
9, 9, 6, 6, 6, 6, 6, 4, 4, 4
}

ECL has 16-fold symmetry in phi.

Multiply this by 16 to get the total number of crystals at each theta location.

Definition at line 79 of file ECLCrystalData.h.

◆ sumPrevious

int const sumPrevious = {0, 3, 6, 10, 14, 18, 24, 30, 36, 42, 48, 54, 63, 72, 81, 90, 96, 102, 108, 114, 120, 124, 128, 132}
static

Number of crystals in preceding theta rings (endcaps only)

Definition at line 81 of file ECLCrystalData.h.

◆ theta

double const theta
static
Initial value:
= {13.9486666667, 15.4862, 17.110575, 18.757625, 20.255425, 21.8637333333,
23.4259666667, 24.96125, 26.4777833333, 27.9407, 29.36275, 30.8382555556,
32.2618444444, 33.667039, 35.062886, 36.509337, 38.007345, 39.557769,
41.161373, 42.818633, 44.530027, 46.295838, 48.115876, 49.990235, 51.91882,
53.900865, 55.935415, 58.021324, 60.157158, 62.3412, 64.571442, 66.8455,
69.160698, 71.513983, 73.902011, 76.321253, 78.767888, 81.237718, 83.726351,
86.229301, 88.741891, 90, 90, 91.258109, 93.770699, 96.273649, 98.762282,
101.232112, 103.678747, 106.097989, 108.486017, 110.839302, 113.154501,
115.428558, 117.658801, 119.842842, 121.978676, 124.064585, 126.099135,
128.2902222222, 130.4424444444, 132.6918333333, 134.9551666667, 137.3811666667,
139.9081666667, 142.5951666667, 145.374, 148.0185, 150.8355
}

Theta ID to theta(deg)

Definition at line 90 of file ECLCrystalData.h.


The documentation for this class was generated from the following files: