Belle II Software  release-05-02-19
ECLShower.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Torben Ferber (ferber@physics.ubc.ca) *
7  * Guglielmo De Nardo (denardo@na.infn.it) *
8  * Alon Hershenhorn (hershen@phas.ubc.ca) *
9  * Poyuan Chen *
10  * *
11  * This software is provided "as is" without any warranty. *
12  **************************************************************************/
13 
14 #ifndef ECLSHOWER_H
15 #define ECLSHOWER_H
16 
17 #include <framework/datastore/RelationsObject.h>
18 #include <TVector3.h>
19 #include <math.h>
20 #include <TMatrixDSym.h>
21 
22 namespace Belle2 {
31  class ECLShower : public RelationsObject {
32  public:
33 
35  enum Hypothesis : unsigned int {
37  c_muonNPhotons = 1,
39  c_chargedHadron = 2,
43  c_nPhotons = 5,
45  c_neutralHadron = 6,
47  c_mergedPi0 = 7
48  };
49 
51  enum StatusBit : unsigned int {
53  c_hasDeadCrystal = 1 << 0,
54 
56  c_hasHotCrystal = 1 << 1,
57 
60 
63 
64  };
65 
68  m_isTrk(false),
69  m_status(0),
72  m_hypothesisId(0),
74  m_energy(0.0),
75  m_energyRaw(0.0),
76  m_theta(0.0),
77  m_phi(0.0),
78  m_r(0.0),
79  m_Error{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
80  m_time(0),
81  m_deltaTime99(0),
83  m_lateralEnergy(0.0),
84  m_minTrkDistance(0.0),
85  m_trkDepth(0.0),
86  m_showerDepth(0.0),
87  m_numberOfCrystals(0.0),
88  m_absZernike40(0.0),
89  m_absZernike51(0.0),
90  m_zernikeMVA(0.0),
91  m_secondMoment(0.0),
92  m_E1oE9(0.0),
93  m_E9oE21(0.0),
103  { }
104 
107  void setIsTrack(bool val) { m_isTrk = val; }
108 
111  void setStatus(int Status) { m_status = Status; }
112 
115  void setShowerId(int ShowerId) { m_showerId = ShowerId; }
116 
119  void setConnectedRegionId(int connectedRegionId) { m_connectedRegionId = connectedRegionId; }
120 
123  void setHypothesisId(int hypothesisId) { m_hypothesisId = hypothesisId; }
124 
127  void setCentralCellId(int centralCellId) { m_centralCellId = centralCellId; }
128 
131  void setEnergy(double Energy) { m_energy = Energy; }
132 
135  void setEnergyRaw(double EnergySum) { m_energyRaw = EnergySum; }
136 
139  void setTheta(double Theta) { m_theta = Theta; }
140 
143  void setPhi(double Phi) { m_phi = Phi; }
144 
147  void setR(double R) { m_r = R; }
148 
154  void setCovarianceMatrix(double covArray[6])
155  {
156  for (unsigned int i = 0; i < 6; i++) {
157  m_Error[i] = covArray[i];
158  }
159  }
160 
163  void setTime(double Time) { m_time = Time; }
164 
167  void setDeltaTime99(double TimeReso) { m_deltaTime99 = TimeReso; }
168 
171  void setEnergyHighestCrystal(double HighestEnergy) { m_energyHighestCrystal = HighestEnergy; }
172 
175  void setLateralEnergy(double lateralEnergy) { m_lateralEnergy = lateralEnergy; }
176 
179  void setMinTrkDistance(double dist) { m_minTrkDistance = dist; }
180 
183  void setTrkDepth(double trkDepth) { m_trkDepth = trkDepth; }
184 
187  void setShowerDepth(double showerDepth) { m_showerDepth = showerDepth; }
188 
191  void setNumberOfCrystals(double nofCrystals) { m_numberOfCrystals = nofCrystals; }
192 
195  void setAbsZernike40(double absZernike40) { m_absZernike40 = absZernike40; }
196 
199  void setAbsZernike51(double absZernike51) { m_absZernike51 = absZernike51; }
200 
203  void setZernikeMVA(double zernikeMVA) {m_zernikeMVA = zernikeMVA; }
204 
207  void setSecondMoment(double secondMoment) { m_secondMoment = secondMoment; }
208 
211  void setE1oE9(double E1oE9) { m_E1oE9 = E1oE9; }
212 
215  void setE9oE21(double E9oE21) { m_E9oE21 = E9oE21; }
216 
219  void setShowerHadronIntensity(double hadronIntensity) { m_ShowerHadronIntensity = hadronIntensity; }
220 
223  void setPulseShapeDiscriminationMVA(double mvaVal) { m_PulseShapeDiscriminationMVA = mvaVal; }
224 
227  void setNumberOfHadronDigits(double NumberOfHadronDigits) { m_NumberOfHadronDigits = NumberOfHadronDigits; }
228 
231  void setNumberOfCrystalsForEnergy(double numberOfCrystalsForEnergy) { m_numberOfCrystalsForEnergy = numberOfCrystalsForEnergy; }
232 
235  void setNominalNumberOfCrystalsForEnergy(double nominalNumberOfCrystalsForEnergy) { m_nominalNumberOfCrystalsForEnergy = nominalNumberOfCrystalsForEnergy; }
236 
239  void setListOfCrystalsForEnergy(const std::vector<unsigned int>& listofcrystals) { m_listOfCrystalsForEnergy = listofcrystals;}
240 
241 
245  bool getIsTrack() const { return m_isTrk; }
246 
250  int getStatus() const { return m_status; }
251 
255  int getShowerId() const { return m_showerId; }
256 
260  int getConnectedRegionId() const { return m_connectedRegionId; }
261 
265  int getHypothesisId() const { return m_hypothesisId; }
266 
270  int getCentralCellId() const { return m_centralCellId; }
271 
275  double getEnergy() const { return m_energy; }
276 
280  double getEnergyRaw() const { return m_energyRaw; }
281 
285  double getTheta() const { return m_theta; }
286 
290  double getPhi() const { return m_phi; }
291 
295  double getR() const { return m_r; }
296 
300  void getCovarianceMatrixAsArray(double covArray[6]) const
301  {
302  for (unsigned int i = 0; i < 6; i++) {
303  covArray[i] = m_Error[i];
304  }
305  }
306 
310  double getUncertaintyEnergy() const { return sqrt(m_Error[0]);}
311 
315  double getUncertaintyTheta() const { return sqrt(m_Error[5]);}
316 
320  double getUncertaintyPhi() const {return sqrt(m_Error[2]);}
321 
325  double getTime() const { return m_time; }
326 
330  double getDeltaTime99() const { return m_deltaTime99; }
331 
335  double getEnergyHighestCrystal() const { return m_energyHighestCrystal; }
336 
340  double getLateralEnergy() const { return m_lateralEnergy; }
341 
345  double getMinTrkDistance() const { return m_minTrkDistance; }
346 
350  double getTrkDepth() const { return m_trkDepth; }
351 
355  double getShowerDepth() const { return m_showerDepth; }
356 
360  double getNumberOfCrystals() const { return m_numberOfCrystals; }
361 
365  double getAbsZernike40() const { return m_absZernike40; }
366 
370  double getAbsZernike51() const { return m_absZernike51; }
371 
375  double getZernikeMVA() const {return m_zernikeMVA; }
376 
380  double getSecondMoment() const { return m_secondMoment; }
381 
385  double getE1oE9() const { return m_E1oE9; }
386 
390  double getE9oE21() const { return m_E9oE21; }
391 
395  double getShowerHadronIntensity() const { return m_ShowerHadronIntensity; }
396 
401 
405  double getNumberOfHadronDigits() const { return m_NumberOfHadronDigits; }
406 
411 
416 
420  std::vector<unsigned int>& getListOfCrystalsForEnergy() { return m_listOfCrystalsForEnergy; }
421 
422 
423 
425  TVector3 getMomentum() const
426  {
427  return TVector3(
428  m_energy * sin(m_theta) * cos(m_phi),
429  m_energy * sin(m_theta) * sin(m_phi),
430  m_energy * cos(m_theta)
431  );
432  }
433 
435  TMatrixDSym getCovarianceMatrix3x3() const
436  {
437  TMatrixDSym covmatecl(3);
438  covmatecl(0, 0) = m_Error[0];
439  covmatecl(1, 0) = m_Error[1];
440  covmatecl(1, 1) = m_Error[2];
441  covmatecl(2, 0) = m_Error[3];
442  covmatecl(2, 1) = m_Error[4];
443  covmatecl(2, 2) = m_Error[5];
444 
445  //make symmetric
446  for (int i = 0; i < 3; i++)
447  for (int j = 0; j < i ; j++)
448  covmatecl(j, i) = covmatecl(i, j);
449  return covmatecl;
450  }
451 
453  int getDetectorRegion() const
454  {
455  const double theta = getTheta();
456 
457  if (theta < 0.2164208) return 0; // < 12.4deg
458  if (theta < 0.5480334) return 1; // < 31.4deg
459  if (theta < 0.561996) return 11; // < 32.2deg
460  if (theta < 2.2462387) return 2; // < 128.7deg
461  if (theta < 2.2811453) return 13; // < 130.7deg
462  if (theta < 2.7070057) return 3; // < 155.1deg
463  else return 0;
464  }
465 
471  bool hasStatus(unsigned short int bitmask) const { return (m_status & bitmask) == bitmask; }
472 
477  void addStatus(unsigned short int bitmask) { m_status |= bitmask; }
478 
481  bool hasHotCrystal() const;
482 
485  bool hasDeadCrystal() const;
486 
489  bool hasProblematicCrystal() const;
490 
493  bool hasPulseShapeDiscrimination() const;
494 
496  int getUniqueId() const
497  {
498  return 100000 * m_connectedRegionId + 1000 * m_hypothesisId + m_showerId;
499  }
500 
501 
502  private:
503  bool m_isTrk;
505  int m_status;
506  int m_showerId;
508  int m_hypothesisId;
509  int m_centralCellId;
511  Double32_t m_energy;
512  Double32_t m_energyRaw;
513  Double32_t m_theta;
514  Double32_t m_phi;
515  Double32_t m_r;
516  Double32_t m_Error[6];
517  Double32_t m_time;
518  Double32_t m_deltaTime99;
520  Double32_t m_lateralEnergy;
521  Double32_t m_minTrkDistance;
522  Double32_t m_trkDepth;
523  Double32_t m_showerDepth;
524  Double32_t m_numberOfCrystals;
525  Double32_t m_absZernike40;
526  Double32_t m_absZernike51;
527  Double32_t m_zernikeMVA;
528  Double32_t m_secondMoment;
529  Double32_t m_E1oE9;
530  Double32_t m_E9oE21;
531  Double32_t
533  Double32_t
535  Double32_t
539  std::vector<unsigned int> m_listOfCrystalsForEnergy;
541  // 2: added uniqueID and highestE (TF)
542  // 3: added LAT and distance to closest track and trk match flag (GDN)
543  // 4: added time resolution (TF)
544  // 5: clean up, float to Double32_t, and new variables (TF)
545  // 6: changed names of Zernike moment variables/getters/setters to indicate that they are the absolute values of the moments (TF and AH)
546  // 7: added centralCellId (TF)
547  // 8: added zernikeMVA, removed absZernike20, 42, 53 (AH)
548  // 9: renamed variables according to the new mdst scheme (TF)
549  // 10: added getUniqueId()
550  // 11: added m_ShowerHadronIntensity and m_NumberOfHadronDigits variables (SL)
551  // 12: added m_PulseShapeDiscriminationMVA. Noted m_ShowerHadronIntensity will be removed in release-04 (SL)
552  // 13: made enums strongly typed
553  // 14: added m_numberOfCrystalsForEnergy of crystals for energy determination
554  // 15: added m_listOfCrystalsForEnergy, m_nominalNumberOfCrystalsForEnergy
555  ClassDef(ECLShower, 15);
557  };
558 
559  inline bool ECLShower::hasHotCrystal() const
560  {
561  return hasStatus(c_hasHotCrystal);
562  }
563 
564  inline bool ECLShower::hasDeadCrystal() const
565  {
566  return hasStatus(c_hasDeadCrystal);
567  }
568 
569  inline bool ECLShower::hasProblematicCrystal() const
570  {
572  }
573 
574  inline bool ECLShower::hasPulseShapeDiscrimination() const
575  {
577  }
578 
580 } // end namespace Belle2
581 
582 #endif
Belle2::ECLShower::setTheta
void setTheta(double Theta)
Set Theta (rad)
Definition: ECLShower.h:150
Belle2::ECLShower::m_hypothesisId
int m_hypothesisId
Hypothesis ID (TF)
Definition: ECLShower.h:519
Belle2::ECLShower::getEnergyHighestCrystal
double getEnergyHighestCrystal() const
Get Highest Energy in Shower.
Definition: ECLShower.h:346
Belle2::ECLShower::getHypothesisId
int getHypothesisId() const
Get Hypothesis Id.
Definition: ECLShower.h:276
Belle2::ECLShower::getLateralEnergy
double getLateralEnergy() const
Get Lateral Energy in Shower.
Definition: ECLShower.h:351
Belle2::ECLShower::setPulseShapeDiscriminationMVA
void setPulseShapeDiscriminationMVA(double mvaVal)
Set shower hadron intensity.
Definition: ECLShower.h:234
Belle2::ECLShower::m_isTrk
bool m_isTrk
Match with track (GDN)
Definition: ECLShower.h:514
Belle2::ECLShower::setShowerId
void setShowerId(int ShowerId)
Set Shower ID.
Definition: ECLShower.h:126
Belle2::ECLShower::m_showerId
int m_showerId
Shower ID.
Definition: ECLShower.h:517
Belle2::ECLShower::getCovarianceMatrixAsArray
void getCovarianceMatrixAsArray(double covArray[6]) const
Get Error Array for Energy->[0], Phi->[2], Theta->[5].
Definition: ECLShower.h:311
Belle2::ECLShower::getShowerId
int getShowerId() const
Get Shower Id.
Definition: ECLShower.h:266
Belle2::ECLShower::c_hasDeadCrystal
@ c_hasDeadCrystal
bit 0: Dead crystal within nominal shower neighbour region.
Definition: ECLShower.h:64
Belle2::ECLShower::getUniqueId
int getUniqueId() const
Return unique identifier.
Definition: ECLShower.h:507
Belle2::ECLShower::getNumberOfCrystalsForEnergy
double getNumberOfCrystalsForEnergy() const
Get number of crystals used for energy calculation.
Definition: ECLShower.h:421
Belle2::ECLShower::m_centralCellId
int m_centralCellId
Central cell ID (TF)
Definition: ECLShower.h:520
Belle2::ECLShower::setStatus
void setStatus(int Status)
Set Status.
Definition: ECLShower.h:122
Belle2::ECLShower::hasHotCrystal
bool hasHotCrystal() const
Check if shower contains a hot crystal.
Definition: ECLShower.h:570
Belle2::ECLShower::setCovarianceMatrix
void setCovarianceMatrix(double covArray[6])
Set symmetric Error Array(3x3) for [0]->Error on Energy [2]->Error on Phi [5]->Error on Theta.
Definition: ECLShower.h:165
Belle2::ECLShower::setDeltaTime99
void setDeltaTime99(double TimeReso)
Set Time Resolution.
Definition: ECLShower.h:178
Belle2::ECLShower::getSecondMoment
double getSecondMoment() const
Get second moment.
Definition: ECLShower.h:391
Belle2::ECLShower::m_energy
Double32_t m_energy
Energy (GeV)
Definition: ECLShower.h:522
Belle2::ECLShower::getUncertaintyPhi
double getUncertaintyPhi() const
Get Error of phi.
Definition: ECLShower.h:331
Belle2::ECLShower::getIsTrack
bool getIsTrack() const
Get if matched with a Track.
Definition: ECLShower.h:256
Belle2::ECLShower::m_absZernike40
Double32_t m_absZernike40
Shower shape variable, absolute value of Zernike Moment 40 (TF)
Definition: ECLShower.h:536
Belle2::ECLShower::setIsTrack
void setIsTrack(bool val)
Set Match with Track.
Definition: ECLShower.h:118
Belle2::ECLShower::getTrkDepth
double getTrkDepth() const
path on track extrapolation to POCA to average cluster direction
Definition: ECLShower.h:361
Belle2::ECLShower::c_mergedPi0
@ c_mergedPi0
CR is reconstructed as merged pi0 (N3)
Definition: ECLShower.h:58
Belle2::ECLShower::getTheta
double getTheta() const
Get Theta.
Definition: ECLShower.h:296
Belle2::ECLShower::getE9oE21
double getE9oE21() const
Get energy ratio E9oE21.
Definition: ECLShower.h:401
Belle2::ECLShower::m_connectedRegionId
int m_connectedRegionId
Connected Region ID (TF)
Definition: ECLShower.h:518
Belle2::ECLShower::m_nominalNumberOfCrystalsForEnergy
Double32_t m_nominalNumberOfCrystalsForEnergy
number of crystals used for energy calculation (TF)
Definition: ECLShower.h:549
Belle2::ECLShower::setNominalNumberOfCrystalsForEnergy
void setNominalNumberOfCrystalsForEnergy(double nominalNumberOfCrystalsForEnergy)
Set nominal number of crystals used for energy calculation.
Definition: ECLShower.h:246
Belle2::ECLShower::m_listOfCrystalsForEnergy
std::vector< unsigned int > m_listOfCrystalsForEnergy
list of cell ids used for energy calculation (TF)
Definition: ECLShower.h:550
Belle2::ECLShower::m_absZernike51
Double32_t m_absZernike51
Shower shape variable, absolute value of Zernike Moment 51 (TF)
Definition: ECLShower.h:537
Belle2::ECLShower::getCovarianceMatrix3x3
TMatrixDSym getCovarianceMatrix3x3() const
Return TMatrixDsym 3x3 covariance matrix for E, Phi and Theta.
Definition: ECLShower.h:446
Belle2::ECLShower::getNumberOfHadronDigits
double getNumberOfHadronDigits() const
Get number of hadron digits.
Definition: ECLShower.h:416
Belle2::ECLShower::c_electronNPhotons
@ c_electronNPhotons
CR is split into an electron and n photons (T3)
Definition: ECLShower.h:52
Belle2::ECLShower::getStatus
int getStatus() const
Get Status.
Definition: ECLShower.h:261
Belle2::ECLShower::setR
void setR(double R)
Set R.
Definition: ECLShower.h:158
Belle2::ECLShower::m_E1oE9
Double32_t m_E1oE9
Shower shape variable, E1oE9 (TF)
Definition: ECLShower.h:540
Belle2::ECLShower::c_hasHotCrystal
@ c_hasHotCrystal
bit 1: Hot crystal within nominal shower neighbour region.
Definition: ECLShower.h:67
Belle2::ECLShower::setLateralEnergy
void setLateralEnergy(double lateralEnergy)
Set Lateral Energy.
Definition: ECLShower.h:186
Belle2::ECLShower::m_numberOfCrystalsForEnergy
Double32_t m_numberOfCrystalsForEnergy
number of crystals used for energy calculation (TF)
Definition: ECLShower.h:548
Belle2::ECLShower::getNumberOfCrystals
double getNumberOfCrystals() const
Get NofCrystals.
Definition: ECLShower.h:371
Belle2::ECLShower::getDetectorRegion
int getDetectorRegion() const
Return detector region: 0: below acceptance, 1: FWD, 2: BRL, 3: BWD, 11: FWDGAP, 13: BWDGAP.
Definition: ECLShower.h:464
Belle2::ECLShower::setAbsZernike40
void setAbsZernike40(double absZernike40)
Set absolute value of Zernike moment 40.
Definition: ECLShower.h:206
Belle2::ECLShower::getListOfCrystalsForEnergy
std::vector< unsigned int > & getListOfCrystalsForEnergy()
Get list of cellids used for energy calculation.
Definition: ECLShower.h:431
Belle2::ECLShower::c_hasProblematicCrystal
@ c_hasProblematicCrystal
combined flag to test whether the shower is 'problematic'
Definition: ECLShower.h:70
Belle2::ECLShower::m_minTrkDistance
Double32_t m_minTrkDistance
Distance between shower and closest track (GDN)
Definition: ECLShower.h:532
Belle2::ECLShower::m_phi
Double32_t m_phi
Phi (rad)
Definition: ECLShower.h:525
Belle2::ECLShower::setConnectedRegionId
void setConnectedRegionId(int connectedRegionId)
Set Connected region ID.
Definition: ECLShower.h:130
Belle2::ECLShower::getMomentum
TVector3 getMomentum() const
The method to get return TVector3 Momentum.
Definition: ECLShower.h:436
Belle2::ECLShower::setEnergy
void setEnergy(double Energy)
Set Energy.
Definition: ECLShower.h:142
Belle2::ECLShower::getPulseShapeDiscriminationMVA
double getPulseShapeDiscriminationMVA() const
Get shower hadron intensity.
Definition: ECLShower.h:411
Belle2::ECLShower::getCentralCellId
int getCentralCellId() const
Get central cell Id.
Definition: ECLShower.h:281
Belle2::ECLShower::m_lateralEnergy
Double32_t m_lateralEnergy
Lateral Energy in Shower (GDN)
Definition: ECLShower.h:531
Belle2::ECLShower::getShowerDepth
double getShowerDepth() const
path on track extrapolation to POCA to average cluster direction
Definition: ECLShower.h:366
Belle2::ECLShower::c_neutralHadron
@ c_neutralHadron
CR is reconstructed as a neutral hadron (N2)
Definition: ECLShower.h:56
Belle2::ECLShower::setNumberOfCrystalsForEnergy
void setNumberOfCrystalsForEnergy(double numberOfCrystalsForEnergy)
Set number of crystals used for energy calculation.
Definition: ECLShower.h:242
Belle2::ECLShower::c_hasPulseShapeDiscrimination
@ c_hasPulseShapeDiscrimination
bit 2: Shower has pulse shape discrimination variables.
Definition: ECLShower.h:73
Belle2::ECLShower::c_muonNPhotons
@ c_muonNPhotons
CR is split into a muon and n photons (T1)
Definition: ECLShower.h:48
Belle2::ECLShower::hasProblematicCrystal
bool hasProblematicCrystal() const
Check if shower contains a problematic crystal.
Definition: ECLShower.h:580
Belle2::ECLShower::getZernikeMVA
double getZernikeMVA() const
Get Zernike MVA.
Definition: ECLShower.h:386
Belle2::ECLShower::m_theta
Double32_t m_theta
Theta (rad)
Definition: ECLShower.h:524
Belle2::ECLShower::m_zernikeMVA
Double32_t m_zernikeMVA
Shower shape variable, zernike MVA output.
Definition: ECLShower.h:538
Belle2::ECLShower::hasStatus
bool hasStatus(unsigned short int bitmask) const
Return if specific status bit is set.
Definition: ECLShower.h:482
Belle2::ECLShower::Hypothesis
Hypothesis
The hypothesis ID for ECLShowers.
Definition: ECLShower.h:46
Belle2::ECLShower::getPhi
double getPhi() const
Get Phi.
Definition: ECLShower.h:301
Belle2::ECLShower::m_ShowerHadronIntensity
Double32_t m_ShowerHadronIntensity
Shower Hadron Component Intensity (pulse shape discrimination variable).
Definition: ECLShower.h:543
Belle2::ECLShower::setEnergyRaw
void setEnergyRaw(double EnergySum)
Set Raw Energy Sum.
Definition: ECLShower.h:146
Belle2::ECLShower::setE9oE21
void setE9oE21(double E9oE21)
Set energy ration E9 over E21.
Definition: ECLShower.h:226
Belle2::ECLShower::setShowerDepth
void setShowerDepth(double showerDepth)
Set path on the average cluster direction.
Definition: ECLShower.h:198
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::ECLShower::setMinTrkDistance
void setMinTrkDistance(double dist)
Set Distance to closest track.
Definition: ECLShower.h:190
Belle2::ECLShower::getEnergy
double getEnergy() const
Get Energy.
Definition: ECLShower.h:286
Belle2::ECLShower::getEnergyRaw
double getEnergyRaw() const
Get Energy Sum.
Definition: ECLShower.h:291
Belle2::ECLShower::m_Error
Double32_t m_Error[6]
Error of Energy, Theta and Phi.
Definition: ECLShower.h:527
Belle2::ECLShower::setZernikeMVA
void setZernikeMVA(double zernikeMVA)
SetZernike MVA value.
Definition: ECLShower.h:214
Belle2::ECLShower::setSecondMoment
void setSecondMoment(double secondMoment)
Set second moment.
Definition: ECLShower.h:218
Belle2::ECLShower::setListOfCrystalsForEnergy
void setListOfCrystalsForEnergy(const std::vector< unsigned int > &listofcrystals)
Set list of cell ids used for energy calculation.
Definition: ECLShower.h:250
Belle2::ECLShower::m_secondMoment
Double32_t m_secondMoment
Shower shape variable, second moment (for merged pi0) (TF)
Definition: ECLShower.h:539
Belle2::ECLShower::setNumberOfCrystals
void setNumberOfCrystals(double nofCrystals)
Set sum of weights of crystals.
Definition: ECLShower.h:202
Belle2::ECLShower::m_E9oE21
Double32_t m_E9oE21
Shower shape variable, E9oE25.
Definition: ECLShower.h:541
Belle2::ECLShower::getUncertaintyEnergy
double getUncertaintyEnergy() const
Get Error of Energy.
Definition: ECLShower.h:321
Belle2::ECLShower::getDeltaTime99
double getDeltaTime99() const
Get Time Resolution.
Definition: ECLShower.h:341
Belle2::ECLShower::m_time
Double32_t m_time
Time.
Definition: ECLShower.h:528
Belle2::ECLShower::setTime
void setTime(double Time)
Set Time.
Definition: ECLShower.h:174
Belle2::ECLShower::getAbsZernike51
double getAbsZernike51() const
Get absolute value of Zernike moment 51.
Definition: ECLShower.h:381
Belle2::ECLShower::setE1oE9
void setE1oE9(double E1oE9)
Set energy ration E1 over E9.
Definition: ECLShower.h:222
Belle2::ECLShower::m_showerDepth
Double32_t m_showerDepth
Same as above, but on the cluster average direction (GDN)
Definition: ECLShower.h:534
Belle2::ECLShower::setEnergyHighestCrystal
void setEnergyHighestCrystal(double HighestEnergy)
Set Highest Energy.
Definition: ECLShower.h:182
Belle2::ECLShower::m_energyRaw
Double32_t m_energyRaw
Raw Energy Sum(GeV)
Definition: ECLShower.h:523
Belle2::ECLShower::c_nPhotons
@ c_nPhotons
CR is split into n photons (N1)
Definition: ECLShower.h:54
Belle2::ECLShower::getAbsZernike40
double getAbsZernike40() const
Get absolute value of Zernike moment 40.
Definition: ECLShower.h:376
Belle2::ECLShower::getE1oE9
double getE1oE9() const
Get energy ratio E1oE9.
Definition: ECLShower.h:396
Belle2::ECLShower::getUncertaintyTheta
double getUncertaintyTheta() const
Get Error of theta.
Definition: ECLShower.h:326
Belle2::ECLShower::ECLShower
ECLShower()
Default constructor for ROOT.
Definition: ECLShower.h:78
Belle2::ECLShower::getTime
double getTime() const
Get Time.
Definition: ECLShower.h:336
Belle2::ECLShower::m_NumberOfHadronDigits
Double32_t m_NumberOfHadronDigits
Number of hadron digits in shower (pulse shape discrimination variable).
Definition: ECLShower.h:547
Belle2::ECLShower::setPhi
void setPhi(double Phi)
Set Phi (rad)
Definition: ECLShower.h:154
Belle2::ECLShower::m_PulseShapeDiscriminationMVA
Double32_t m_PulseShapeDiscriminationMVA
MVA classifier that uses pulse shape discrimination to identify electromagnetic vs hadronic showers.
Definition: ECLShower.h:545
Belle2::RelationsObject
RelationsInterface< TObject > RelationsObject
Provides interface for getting/adding relations to objects in StoreArrays.
Definition: RelationsObject.h:443
Belle2::ECLShower::setNumberOfHadronDigits
void setNumberOfHadronDigits(double NumberOfHadronDigits)
Set numver of hadron digits.
Definition: ECLShower.h:238
Belle2::ECLShower::setHypothesisId
void setHypothesisId(int hypothesisId)
Set Hypothesis identifier.
Definition: ECLShower.h:134
Belle2::ECLShower::m_r
Double32_t m_r
R (cm)
Definition: ECLShower.h:526
Belle2::ECLShower::addStatus
void addStatus(unsigned short int bitmask)
Add bitmask to current status.
Definition: ECLShower.h:488
Belle2::ECLShower::hasDeadCrystal
bool hasDeadCrystal() const
Check if shower contains a dead crystal.
Definition: ECLShower.h:575
Belle2::ECLShower::setAbsZernike51
void setAbsZernike51(double absZernike51)
Set absolute value of Zernike moment 51.
Definition: ECLShower.h:210
Belle2::ECLShower::setShowerHadronIntensity
void setShowerHadronIntensity(double hadronIntensity)
Set shower hadron intensity.
Definition: ECLShower.h:230
Belle2::ECLShower::m_trkDepth
Double32_t m_trkDepth
Path on track ext.
Definition: ECLShower.h:533
Belle2::ECLShower::getShowerHadronIntensity
double getShowerHadronIntensity() const
Get shower hadron intensity.
Definition: ECLShower.h:406
Belle2::ECLShower::setTrkDepth
void setTrkDepth(double trkDepth)
Set path on track extrapolation line to POCA to average cluster direction.
Definition: ECLShower.h:194
Belle2::ECLShower::StatusBit
StatusBit
The status information for the ECLShowers.
Definition: ECLShower.h:62
Belle2::ECLShower::getNominalNumberOfCrystalsForEnergy
double getNominalNumberOfCrystalsForEnergy() const
Get nominal number of crystals used for energy calculation.
Definition: ECLShower.h:426
Belle2::ECLShower::getR
double getR() const
Get R.
Definition: ECLShower.h:306
Belle2::ECLShower::hasPulseShapeDiscrimination
bool hasPulseShapeDiscrimination() const
Check if shower contains pulse shape discrimination information.
Definition: ECLShower.h:585
Belle2::ECLShower::setCentralCellId
void setCentralCellId(int centralCellId)
Set central cell id.
Definition: ECLShower.h:138
Belle2::ECLShower::m_energyHighestCrystal
Double32_t m_energyHighestCrystal
Highest Energy in Shower (GeV) (TF)
Definition: ECLShower.h:530
Belle2::ECLShower::c_chargedHadron
@ c_chargedHadron
CR is reconstructed as a charged hadron (T2)
Definition: ECLShower.h:50
Belle2::ECLShower::getConnectedRegionId
int getConnectedRegionId() const
Get Connected region Id.
Definition: ECLShower.h:271
Belle2::ECLShower::getMinTrkDistance
double getMinTrkDistance() const
Get distance to closest Track.
Definition: ECLShower.h:356
Belle2::ECLShower::m_numberOfCrystals
Double32_t m_numberOfCrystals
Sum of weights of crystals (~number of crystals) (TF)
Definition: ECLShower.h:535
Belle2::ECLShower::m_deltaTime99
Double32_t m_deltaTime99
Time that contains 99% of signal crystals.
Definition: ECLShower.h:529
Belle2::ECLShower
Class to store ECL Showers.
Definition: ECLShower.h:42
Belle2::ECLShower::m_status
int m_status
Status.
Definition: ECLShower.h:516
Belle2::ECLShower::ClassDef
ClassDef(ECLShower, 15)
ClassDef.