Belle II Software  release-05-02-19
ECLCrystalData.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2018 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Sam de Jong *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 namespace Belle2 {
23  class ECLCrystalData {
24  private :
25 
26  //Crystal identifiers
28  int m_cell_ID;
30  int m_phi_ID;
32  int m_theta_ID;
33 
34  //indexes (whatever those mean...)
36  int m_phi_idx;
39 
40  //Crystal properties
42  float m_mass;
44  float m_volume;
46  float EvalMass();
47 
48  //Crystal Location
50  float m_PosR;
52  float m_PosP;
54  float m_PosX;
56  float m_PosY;
58  float m_PosZ;
59 
61  double EvalPhi();
63  double EvalR();
65  double EvalZ();
67  double EvalX();
69  double EvalY();
70 
72  void Mapping(int cid);
73 
74  public :
75 
76 
78  static const int Ring[69];
80  static const int sumPrevious[24];
81 
82  const int nECLCrystalTot = 8736;
83  const int nECLCrystalBAR = 6624;
84  const int nECLCrystalECF = 1152;
85  const int nECLCrystalECB = 960;
89  static const float CrystalMassEndcap[132];
91  static const float CrystalMassBarrel[46];
92 
93 
95  static const double theta[69];
96 
98  static const double EndcapRadius[132];
99 
101  static const double BarrelZ[46];
102 
104  ECLCrystalData();
106  explicit ECLCrystalData(int cid);
108  ECLCrystalData(int tid, int pid);
110  ~ECLCrystalData();
112  void Eval();
114  int GetCrystalIndex();
116  bool IsEndCap();
118  bool IsBarrel();
120  int GetCellID();
122  int GetCellID(int tid, int pid);
123 
125  double GetPhi() { return m_PosP; };
127  inline double GetTheta() { return theta[m_theta_ID]; } ;
129  double GetR() { return m_PosR; };
131  double GetZ() { return m_PosZ; };
133  double GetX() { return m_PosX; };
135  double GetY() { return m_PosY; };
137  double GetMass() { return m_mass; };
139  inline int GetThetaID() { return m_theta_ID; } ;
141  inline int GetPhiID() { return m_phi_ID; } ;
143  inline int GetNperThetaID() { return 16 * Ring[m_theta_ID];};
144 
145 
146  };
148 }
Belle2::ECLCrystalData::EvalZ
double EvalZ()
Set Z value of crystal.
Definition: ECLCrystalData.cc:220
Belle2::ECLCrystalData::m_PosY
float m_PosY
Crystal Position - Y.
Definition: ECLCrystalData.h:64
Belle2::ECLCrystalData::Eval
void Eval()
Set values for the crystal.
Definition: ECLCrystalData.cc:144
Belle2::ECLCrystalData::m_phi_ID
int m_phi_ID
phi ID of crystal
Definition: ECLCrystalData.h:38
Belle2::ECLCrystalData::BarrelZ
static const double BarrelZ[46]
BarrelCrystalID to z-coordinate.
Definition: ECLCrystalData.h:109
Belle2::ECLCrystalData::EndcapRadius
static const double EndcapRadius[132]
EndCapCrystalID to radius (spherical)
Definition: ECLCrystalData.h:106
Belle2::ECLCrystalData::Mapping
void Mapping(int cid)
set theta and phi value of crystal
Definition: ECLCrystalData.cc:262
Belle2::ECLCrystalData::~ECLCrystalData
~ECLCrystalData()
destructor
Definition: ECLCrystalData.cc:138
Belle2::ECLCrystalData::GetR
double GetR()
get radius of crystal
Definition: ECLCrystalData.h:137
Belle2::ECLCrystalData::IsBarrel
bool IsBarrel()
True if crystal is in barrel.
Definition: ECLCrystalData.cc:204
Belle2::ECLCrystalData::sumPrevious
static const int sumPrevious[24]
Number of crystals in preceding theta rings (endcaps only)
Definition: ECLCrystalData.h:88
Belle2::ECLCrystalData::EvalR
double EvalR()
Set R value of crystal.
Definition: ECLCrystalData.cc:229
Belle2::ECLCrystalData::Ring
static const int Ring[69]
ECL has 16-fold symmetry in phi.
Definition: ECLCrystalData.h:86
Belle2::ECLCrystalData::GetNperThetaID
int GetNperThetaID()
get number of crystals in theta ring
Definition: ECLCrystalData.h:151
Belle2::ECLCrystalData::ECLCrystalData
ECLCrystalData()
Blank Constructor.
Definition: ECLCrystalData.cc:101
Belle2::ECLCrystalData::m_PosX
float m_PosX
Crystal Position - X.
Definition: ECLCrystalData.h:62
Belle2::ECLCrystalData::nECLCrystalTot
const int nECLCrystalTot
Total number of ECL crystals
Definition: ECLCrystalData.h:90
Belle2::ECLCrystalData::m_theta_ID
int m_theta_ID
theta ID of crystal
Definition: ECLCrystalData.h:40
Belle2::ECLCrystalData::GetCellID
int GetCellID()
return cell ID
Definition: ECLCrystalData.cc:210
Belle2::ECLCrystalData::m_volume
float m_volume
Crystal Volume.
Definition: ECLCrystalData.h:52
Belle2::ECLCrystalData::m_cell_ID
int m_cell_ID
Cell ID of crystal.
Definition: ECLCrystalData.h:36
Belle2::ECLCrystalData::m_PosP
float m_PosP
Crystal Position - P.
Definition: ECLCrystalData.h:60
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::ECLCrystalData::theta
static const double theta[69]
Theta ID to theta(deg)
Definition: ECLCrystalData.h:103
Belle2::ECLCrystalData::GetCrystalIndex
int GetCrystalIndex()
return crystal index
Definition: ECLCrystalData.cc:183
Belle2::ECLCrystalData::GetPhi
double GetPhi()
get phi value of crystal
Definition: ECLCrystalData.h:133
Belle2::ECLCrystalData::CrystalMassBarrel
static const float CrystalMassBarrel[46]
Endcap crystal mass.
Definition: ECLCrystalData.h:99
Belle2::ECLCrystalData::CrystalMassEndcap
static const float CrystalMassEndcap[132]
Barrel crystal mass.
Definition: ECLCrystalData.h:97
Belle2::ECLCrystalData::EvalX
double EvalX()
Set X value of crystal.
Definition: ECLCrystalData.cc:161
Belle2::ECLCrystalData::EvalPhi
double EvalPhi()
Set phi value of crystal.
Definition: ECLCrystalData.cc:215
Belle2::ECLCrystalData::m_mass
float m_mass
Crystal Mass.
Definition: ECLCrystalData.h:50
Belle2::ECLCrystalData::nECLCrystalECF
const int nECLCrystalECF
Number of FWD ECL end-capcrystals.
Definition: ECLCrystalData.h:92
Belle2::ECLCrystalData::GetTheta
double GetTheta()
get theta value of crystal
Definition: ECLCrystalData.h:135
Belle2::ECLCrystalData::m_phi_idx
int m_phi_idx
Index.
Definition: ECLCrystalData.h:44
Belle2::ECLCrystalData::m_PosZ
float m_PosZ
Crystal Position - Z.
Definition: ECLCrystalData.h:66
Belle2::ECLCrystalData::GetX
double GetX()
get x position of crystal
Definition: ECLCrystalData.h:141
Belle2::ECLCrystalData::GetZ
double GetZ()
get z position of crystal
Definition: ECLCrystalData.h:139
Belle2::ECLCrystalData::nECLCrystalECB
const int nECLCrystalECB
Number of BWD ECL end-capcrystals.
Definition: ECLCrystalData.h:93
Belle2::ECLCrystalData::EvalY
double EvalY()
Set Y value of crystal.
Definition: ECLCrystalData.cc:166
Belle2::ECLCrystalData::nECLCrystalBAR
const int nECLCrystalBAR
Number of Barrel ECL crystals
Definition: ECLCrystalData.h:91
Belle2::ECLCrystalData::EvalMass
float EvalMass()
Evaluate mass of crystal.
Definition: ECLCrystalData.cc:173
Belle2::ECLCrystalData::IsEndCap
bool IsEndCap()
True if crystal is in endcaps.
Definition: ECLCrystalData.cc:199
Belle2::ECLCrystalData::m_PosR
float m_PosR
Crystal Position - R.
Definition: ECLCrystalData.h:58
Belle2::ECLCrystalData::GetMass
double GetMass()
get mass of crystal
Definition: ECLCrystalData.h:145
Belle2::ECLCrystalData::m_theta_idx
int m_theta_idx
Index.
Definition: ECLCrystalData.h:46
Belle2::ECLCrystalData::GetY
double GetY()
get y position of crystal
Definition: ECLCrystalData.h:143
Belle2::ECLCrystalData::GetThetaID
int GetThetaID()
get thetaID of crystal
Definition: ECLCrystalData.h:147
Belle2::ECLCrystalData::GetPhiID
int GetPhiID()
get phiID of crystal
Definition: ECLCrystalData.h:149