Belle II Software  release-05-02-19
ECLCluster.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2016 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  * *
9  * This software is provided "as is" without any warranty. *
10  **************************************************************************/
11 
12 #pragma once
13 
14 #include <framework/datastore/RelationsObject.h>
15 
16 #include <TVector3.h>
17 #include <TMatrixDSym.h>
18 
19 #include <cmath>
20 
21 namespace Belle2 {
30  class ECLCluster : public RelationsObject {
31  public:
32 
34  enum class EHypothesisBit : short unsigned int {
36  c_none = 1 << 0,
38  c_muonNPhotons = 1 << 1,
40  c_chargedHadron = 1 << 2,
42  c_electronNPhotons = 1 << 3,
44  c_nPhotons = 1 << 4,
46  c_neutralHadron = 1 << 5,
48  c_mergedPi0 = 1 << 6
49  };
50 
52  enum class EStatusBit : short unsigned int {
54  c_TriggerCluster = 1 << 0,
56  c_TriggerClusterMatching = 1 << 1,
60  c_fitTimeFailed = 1 << 3,
62  c_timeResolutionFailed = 1 << 4,
63 
64  };
65 
70  ECLCluster() :
71  m_isTrack(false),
72  m_status(0),
73  m_hypotheses(static_cast<unsigned short>(EHypothesisBit::c_nPhotons)), // set to c_nPhotons for b2bii
74  m_maxECellId(0),
76  m_clusterId(0),
77  m_sqrtcovmat_00(0.),
78  m_covmat_10(0.),
80  m_covmat_20(0.),
81  m_covmat_21(0.),
82  m_sqrtcovmat_22(0.),
83  m_deltaL(0.),
84  m_minTrkDistance(0.),
85  m_absZernike40(0.),
86  m_absZernike51(0.),
87  m_zernikeMVA(0.),
88  m_E1oE9(0.),
89  m_E9oE21(0.),
90  m_secondMoment(0.),
91  m_LAT(0.),
93  m_time(0.),
94  m_deltaTime99(0.),
95  m_theta(0.),
96  m_phi(0.),
97  m_r(0.),
98  m_logEnergy(-5.),
99  m_logEnergyRaw(-5.),
104 
106  void setIsTrack(bool istrack) { m_isTrack = istrack; }
107 
109  void setStatus(EStatusBit status) { m_status = static_cast<short unsigned>(status); }
110 
115  void addStatus(EStatusBit bitmask) { m_status |= static_cast<short unsigned>(bitmask); }
116 
122  void removeStatus(EStatusBit bitmask) { m_status &= (~static_cast<short unsigned>(bitmask)); }
123 
125  void setHypothesis(EHypothesisBit hypothesis) { m_hypotheses = static_cast<short unsigned>(hypothesis); }
126 
131  void addHypothesis(EHypothesisBit bitmask) { m_hypotheses |= static_cast<short unsigned>(bitmask); }
132 
138  void removeHypothesis(EHypothesisBit bitmask) { m_hypotheses &= (~static_cast<short unsigned>(bitmask)); }
139 
141  void setMaxECellId(unsigned short cellid) {m_maxECellId = cellid;}
142 
144  void setConnectedRegionId(int crid) { m_connectedRegionId = crid; }
145 
147  void setClusterId(int clusterid) { m_clusterId = clusterid; }
148 
154  void setCovarianceMatrix(double covArray[6])
155  {
156  m_sqrtcovmat_00 = sqrt(fabs(covArray[0])); // energy
157  m_covmat_10 = covArray[1];
158  m_sqrtcovmat_11 = sqrt(fabs(covArray[2])); // phi
159  m_covmat_20 = covArray[3];
160  m_covmat_21 = covArray[4];
161  m_sqrtcovmat_22 = sqrt(fabs(covArray[5])); // theta
162  }
163 
165  void setUncertaintyEnergy(double energyunc) { m_sqrtcovmat_00 = fabs(energyunc); }
166 
168  void setUncertaintyTheta(double thetaunc) { m_sqrtcovmat_22 = fabs(thetaunc); }
169 
171  void setUncertaintyPhi(double phiunc) { m_sqrtcovmat_11 = fabs(phiunc); }
172 
174  void setdeltaL(double deltaL) { m_deltaL = deltaL; }
175 
177  void setMinTrkDistance(double distance) { m_minTrkDistance = distance; }
178 
180  void setAbsZernike40(double zernike40) { m_absZernike40 = zernike40; }
181 
183  void setAbsZernike51(double zernike51) { m_absZernike51 = zernike51; }
184 
186  void setZernikeMVA(double zernikemva) { m_zernikeMVA = zernikemva; }
187 
189  void setE1oE9(double E1oE9) { m_E1oE9 = E1oE9; }
190 
192  void setE9oE21(double E9oE21) { m_E9oE21 = E9oE21; }
193 
195  [[deprecated("will be removed in release-04.")]]
196  void setClusterHadronIntensity(double ClusterHadronIntensity) { m_ClusterHadronIntensity = ClusterHadronIntensity; }
197 
199  void setPulseShapeDiscriminationMVA(double PulseShapeDiscriminationMVA) { m_PulseShapeDiscriminationMVA = PulseShapeDiscriminationMVA; }
200 
202  void setNumberOfHadronDigits(double NumberOfHadronDigits) { m_NumberOfHadronDigits = NumberOfHadronDigits; }
203 
205  void setSecondMoment(double secondmoment) { m_secondMoment = secondmoment; }
206 
208  void setLAT(double LAT) { m_LAT = LAT; }
209 
211  void setNumberOfCrystals(double noc) { m_numberOfCrystals = noc; }
212 
214  void setTime(double time) { m_time = time; }
215 
217  void setDeltaTime99(double dtime99) { m_deltaTime99 = dtime99; }
218 
220  void setTheta(double theta) { m_theta = theta; }
221 
223  void setPhi(double phi) { m_phi = phi; }
224 
226  void setR(double r) { m_r = r; }
227 
229  void setEnergy(double energy) { m_logEnergy = log(energy); }
230 
232  void setEnergyRaw(double energyraw) { m_logEnergyRaw = log(energyraw); }
233 
235  void setEnergyHighestCrystal(double energyhighestcrystal) { m_logEnergyHighestCrystal = log(energyhighestcrystal); }
236 
238  bool isTrack() const { return m_isTrack; }
239 
241  bool isNeutral() const { return !m_isTrack; }
242 
244  unsigned short getStatus() const {return m_status;}
245 
247  unsigned short getHypotheses() const {return m_hypotheses;}
248 
250  unsigned short getMaxECellId() const {return m_maxECellId;}
251 
254 
256  [[deprecated("Please use hasHypothesis().")]]
257  int getHypothesisId() const
258  {
261  else return 0;
262  }
263 
265  int getClusterId() const {return m_clusterId;}
266 
268  double getMinTrkDistance() const { return m_minTrkDistance; }
269 
271  double getDeltaL() const { return m_deltaL; }
272 
274  double getAbsZernike40() const { return m_absZernike40; }
275 
277  double getAbsZernike51() const { return m_absZernike51; }
278 
280  double getZernikeMVA() const { return m_zernikeMVA; }
281 
283  double getE1oE9() const { return m_E1oE9; }
284 
286  double getE9oE21() const { return m_E9oE21; }
287 
289  [[deprecated("will be removed in release-04.")]]
290  double getClusterHadronIntensity() const { return m_ClusterHadronIntensity; }
291 
294 
296  double getNumberOfHadronDigits() const { return m_NumberOfHadronDigits; }
297 
299  double getSecondMoment() const { return m_secondMoment; }
300 
302  double getLAT() const {return m_LAT;}
303 
305  double getNumberOfCrystals() const {return m_numberOfCrystals;}
306 
308  double getTime() const {return m_time;}
309 
311  double getDeltaTime99() const {return m_deltaTime99;}
312 
314  double getPhi() const { return m_phi;}
315 
317  double getTheta() const {return m_theta;}
318 
320  double getR() const { return m_r; }
321 
323  double getEnergy(const EHypothesisBit& hypothesis) const;
324 
326  double getEnergyRaw() const {return exp(m_logEnergyRaw);}
327 
330 
332  double getUncertaintyEnergy() const {return (m_sqrtcovmat_00);}
333 
335  double getUncertaintyTheta() const {return (m_sqrtcovmat_22);}
336 
338  double getUncertaintyPhi() const { return (m_sqrtcovmat_11);}
339 
341  TVector3 getClusterPosition() const;
342 
344  TMatrixDSym getCovarianceMatrix3x3() const;
345 
347  int getDetectorRegion() const;
348 
350  [[deprecated("will be removed in release-04.")]]
351  int getUniqueId() const;
352 
358  bool hasStatus(EStatusBit bitmask) const { return (m_status & static_cast<short unsigned>(bitmask)) == static_cast<short unsigned>(bitmask); }
359 
365  bool hasHypothesis(EHypothesisBit bitmask) const { return (m_hypotheses & static_cast<short unsigned>(bitmask)) == static_cast<short unsigned>(bitmask); }
366 
369 
372 
375 
378 
381 
382 
383  private:
384 
386  bool m_isTrack;
387 
389  unsigned short m_status;
390 
392  unsigned short m_hypotheses;
393 
395  unsigned short m_maxECellId;
396 
399 
402 
403  //Covariance matrix:
404  // E phi theta
405  // E 00 01 02
406  // phi 10 11 12
407  // theta 20 21 22
409  Double32_t m_sqrtcovmat_00; //[0.0, 0.3, 10]
410 
412  Double32_t m_covmat_10; //[0.0, 10., 12]
413 
415  Double32_t m_sqrtcovmat_11; //[0.0, 0.05, 8]
416 
418  Double32_t m_covmat_20; //[0.0, 10., 12]
419 
421  Double32_t m_covmat_21; //[0.0, 10., 12]
422 
424  Double32_t m_sqrtcovmat_22; //[0.0, 0.050, 8]
425 
427  Double32_t m_deltaL; //[-250, 250., 10]
428 
430  Double32_t m_minTrkDistance; //[0.0, 250., 10]
431 
433  Double32_t m_absZernike40; //[0.0, 1.7, 10]
434 
436  Double32_t m_absZernike51; //[0.0, 1.2, 10]
437 
439  Double32_t m_zernikeMVA; //[0.0, 1., 10]
440 
442  Double32_t m_E1oE9; //[0.0, 1., 10]
443 
445  Double32_t m_E9oE21; //[0.0, 1., 10]
446 
448  Double32_t m_secondMoment; //[0.0, 40.0, 10]
449 
451  Double32_t m_LAT; //[0.0, 1., 10]
452 
454  Double32_t m_numberOfCrystals; //[0.0, 200.0, 10]
455 
457  Double32_t m_time; //[-1000.0, 1000.0, 12]
458 
460  Double32_t m_deltaTime99; //[0.0, 1000.0, 12]
461 
463  Double32_t m_theta; //[0.0, pi, 16]
464 
466  Double32_t m_phi; //[-pi, pi, 16]
467 
469  Double32_t m_r; //[75.0, 300.0, 16]
470 
472  Double32_t m_logEnergy; //[-5, 3., 18]
473 
475  Double32_t m_logEnergyRaw; //[-5, 3., 18]
476 
478  Double32_t m_logEnergyHighestCrystal; //[-5, 3., 18]
479 
481  Double32_t m_PulseShapeDiscriminationMVA; //[0.0, 1.0, 18]
482 
484  Double32_t m_ClusterHadronIntensity; //[-0.1, 0.8, 18]
485 
487  Double32_t m_NumberOfHadronDigits; //[0, 255, 18]
488 
491  // 14: Added m_maxECellId
492  // 13: Added m_hypotheses
493  // 12: Added m_PulseShapeDiscriminationMVA. Indicated that m_ClusterHadronIntensity will be removed in release-04.
494  // 11: Added m_ClusterHadronIntensity an m_NumberOfHadronDigits variables
495  // 10: Added status enum, added status setter
496  // 9: Removed all momentum, 4x4, and 7x7 covariance matrix getters.
497  // 8: Added clusterId, getUniqueId
498  // 7: Changed range of SecondMoment from 0..100 to 0..40
499  // 6: Changed stored variances to sqrt(covmat_ii).
500  // 5: New HypothesisId default, removed relative covariance entries, renamed some setters/getters, adjusted covariance variable ranges.
501  // 4: Complete revision and new variables. Introduction of Double32_t. Some new setters and getters.
502 
503  };
504 
506 }// end namespace Belle2
Belle2::ECLCluster::getNumberOfHadronDigits
double getNumberOfHadronDigits() const
Return number of hadron digits in cluster.
Definition: ECLCluster.h:305
Belle2::ECLCluster::m_r
Double32_t m_r
Radius [cm].
Definition: ECLCluster.h:478
Belle2::ECLCluster::getClusterPosition
TVector3 getClusterPosition() const
Return TVector3 on cluster position (x,y,z)
Definition: ECLCluster.cc:42
Belle2::ECLCluster::setE1oE9
void setE1oE9(double E1oE9)
Set E1/E9 energy ratio.
Definition: ECLCluster.h:198
Belle2::ECLCluster::setTime
void setTime(double time)
Set time information.
Definition: ECLCluster.h:223
Belle2::ECLCluster::hasTriggerClusterMatching
bool hasTriggerClusterMatching() const
Check if ECLTRGCluster to ECLCluster matcher has run.
Definition: ECLCluster.h:380
Belle2::ECLCluster::setUncertaintyEnergy
void setUncertaintyEnergy(double energyunc)
Set energy uncertainty.
Definition: ECLCluster.h:174
Belle2::ECLCluster::setIsTrack
void setIsTrack(bool istrack)
Set m_isTrack true if the cluster matches with a track.
Definition: ECLCluster.h:115
Belle2::ECLCluster::EHypothesisBit::c_none
@ c_none
None as initializer.
Belle2::ECLCluster::EStatusBit::c_PulseShapeDiscrimination
@ c_PulseShapeDiscrimination
bit 2: ECLCluster has pulse shape discrimination variables.
Belle2::ECLCluster::EStatusBit::c_TriggerCluster
@ c_TriggerCluster
bit 0: ECLCluster is matched to a ECL trigger cluster
Belle2::ECLCluster::ECLCluster
ECLCluster()
default constructor : all values are set to 0, IDs set to -1, flags to false
Definition: ECLCluster.h:79
Belle2::ECLCluster::getE9oE21
double getE9oE21() const
Return E9/E21 (shower shape variable).
Definition: ECLCluster.h:295
Belle2::ECLCluster::setUncertaintyTheta
void setUncertaintyTheta(double thetaunc)
Set theta uncertainty.
Definition: ECLCluster.h:177
Belle2::ECLCluster::EStatusBit::c_fitTimeFailed
@ c_fitTimeFailed
bit 3: ECLCluster has fit time that failed.
Belle2::ECLCluster::ClassDef
ClassDef(ECLCluster, 14)
Class definition.
Belle2::ECLCluster::getPulseShapeDiscriminationMVA
double getPulseShapeDiscriminationMVA() const
Return MVA classifier that uses pulse shape discrimination to identify electromagnetic vs hadronic sh...
Definition: ECLCluster.h:302
Belle2::ECLCluster::m_numberOfCrystals
Double32_t m_numberOfCrystals
Number of Crystals in a shower (sum of weights).
Definition: ECLCluster.h:463
Belle2::ECLCluster::m_deltaTime99
Double32_t m_deltaTime99
Delta Time 99.
Definition: ECLCluster.h:469
Belle2::ECLCluster::EHypothesisBit::c_mergedPi0
@ c_mergedPi0
CR is reconstructed as merged pi0 (N3)
Belle2::ECLCluster::getDeltaTime99
double getDeltaTime99() const
Return cluster delta time 99.
Definition: ECLCluster.h:320
Belle2::ECLCluster::hasFailedTimeResolution
bool hasFailedTimeResolution() const
Check if ECLCluster has a time resolution calculation that failed.
Definition: ECLCluster.h:389
Belle2::ECLCluster
ECL cluster data.
Definition: ECLCluster.h:39
Belle2::ECLCluster::EStatusBit::c_timeResolutionFailed
@ c_timeResolutionFailed
bit 4: ECLCluster has time resolution calculation that failed.
Belle2::ECLCluster::setClusterHadronIntensity
void setClusterHadronIntensity(double ClusterHadronIntensity)
set Cluster Hadron Component Intensity.
Definition: ECLCluster.h:205
Belle2::ECLCluster::setMaxECellId
void setMaxECellId(unsigned short cellid)
Set cellID of maximum energy crystal.
Definition: ECLCluster.h:150
Belle2::ECLCluster::EHypothesisBit
EHypothesisBit
The hypothesis bits for this ECLCluster (Connected region (CR) is split using this hypothesis.
Definition: ECLCluster.h:43
Belle2::ECLCluster::setNumberOfCrystals
void setNumberOfCrystals(double noc)
Set number of crystals (sum of weights).
Definition: ECLCluster.h:220
Belle2::ECLCluster::m_deltaL
Double32_t m_deltaL
Delta L as defined in arXiv:0711.1593.
Definition: ECLCluster.h:436
Belle2::ECLCluster::EStatusBit::c_TriggerClusterMatching
@ c_TriggerClusterMatching
bit 1: ECLCluster to ECLTRGCluster matcher was run
Belle2::ECLCluster::getUncertaintyTheta
double getUncertaintyTheta() const
Return Uncertainty on Theta of Shower.
Definition: ECLCluster.h:344
Belle2::ECLCluster::getTheta
double getTheta() const
Return Corrected Theta of Shower (radian).
Definition: ECLCluster.h:326
Belle2::ECLCluster::getPhi
double getPhi() const
Return Corrected Phi of Shower (radian).
Definition: ECLCluster.h:323
Belle2::ECLCluster::EHypothesisBit::c_nPhotons
@ c_nPhotons
CR is split into n photons (N1)
Belle2::ECLCluster::setHypothesis
void setHypothesis(EHypothesisBit hypothesis)
Set hypotheses.
Definition: ECLCluster.h:134
Belle2::ECLCluster::getHypothesisId
int getHypothesisId() const
Return hypothesis id.
Definition: ECLCluster.h:266
Belle2::ECLCluster::getR
double getR() const
Return R.
Definition: ECLCluster.h:329
Belle2::ECLCluster::getLAT
double getLAT() const
Return LAT (shower shape variable).
Definition: ECLCluster.h:311
Belle2::ECLCluster::getUniqueId
int getUniqueId() const
Return (pseudo) unique Id based on CRId, ShowerId and HypothesisID.
Definition: ECLCluster.cc:81
Belle2::ECLCluster::setEnergy
void setEnergy(double energy)
Set Corrected Energy (GeV).
Definition: ECLCluster.h:238
Belle2::ECLCluster::setUncertaintyPhi
void setUncertaintyPhi(double phiunc)
Set phi uncertainty.
Definition: ECLCluster.h:180
Belle2::ECLCluster::m_ClusterHadronIntensity
Double32_t m_ClusterHadronIntensity
Cluster Hadron Component Intensity (pulse shape discrimination variable).
Definition: ECLCluster.h:493
Belle2::ECLCluster::hasHypothesis
bool hasHypothesis(EHypothesisBit bitmask) const
Return if specific hypothesis bit is set.
Definition: ECLCluster.h:374
Belle2::ECLCluster::setAbsZernike51
void setAbsZernike51(double zernike51)
Set Zernike 51.
Definition: ECLCluster.h:192
Belle2::ECLCluster::m_status
unsigned short m_status
Cluster status.
Definition: ECLCluster.h:398
Belle2::ECLCluster::getSecondMoment
double getSecondMoment() const
Return second moment (shower shape variable).
Definition: ECLCluster.h:308
Belle2::ECLCluster::m_time
Double32_t m_time
Time.
Definition: ECLCluster.h:466
Belle2::ECLCluster::getStatus
unsigned short getStatus() const
Return status.
Definition: ECLCluster.h:253
Belle2::ECLCluster::getNumberOfCrystals
double getNumberOfCrystals() const
Return number of a crystals in a shower (sum of weights).
Definition: ECLCluster.h:314
Belle2::ECLCluster::getZernikeMVA
double getZernikeMVA() const
Return MVA based hadron/photon value based on Zernike moments (shower shape variable).
Definition: ECLCluster.h:289
Belle2::ECLCluster::m_hypotheses
unsigned short m_hypotheses
Hypothesis.
Definition: ECLCluster.h:401
Belle2::ECLCluster::setSecondMoment
void setSecondMoment(double secondmoment)
Set SecondMoment.
Definition: ECLCluster.h:214
Belle2::ECLCluster::m_E1oE9
Double32_t m_E1oE9
E1oE9.
Definition: ECLCluster.h:451
Belle2::ECLCluster::m_zernikeMVA
Double32_t m_zernikeMVA
Zernike MVA.
Definition: ECLCluster.h:448
Belle2::ECLCluster::setConnectedRegionId
void setConnectedRegionId(int crid)
Set connected region id.
Definition: ECLCluster.h:153
Belle2::ECLCluster::EHypothesisBit::c_muonNPhotons
@ c_muonNPhotons
CR is split into a muon and n photons (T1)
Belle2::ECLCluster::m_LAT
Double32_t m_LAT
LAT.
Definition: ECLCluster.h:460
Belle2::ECLCluster::m_secondMoment
Double32_t m_secondMoment
Second Moment.
Definition: ECLCluster.h:457
Belle2::ECLCluster::m_phi
Double32_t m_phi
Phi [rad].
Definition: ECLCluster.h:475
Belle2::ECLCluster::getEnergy
double getEnergy(const EHypothesisBit &hypothesis) const
Return Energy (GeV).
Definition: ECLCluster.cc:21
Belle2::ECLCluster::removeHypothesis
void removeHypothesis(EHypothesisBit bitmask)
Remove bitmask from current hypothesis.
Definition: ECLCluster.h:147
Belle2::ECLCluster::getEnergyRaw
double getEnergyRaw() const
Return Uncorrected Energy deposited (GeV)
Definition: ECLCluster.h:335
Belle2::ECLCluster::isTrack
bool isTrack() const
Return true if the cluster matches with track.
Definition: ECLCluster.h:247
Belle2::ECLCluster::getHypotheses
unsigned short getHypotheses() const
Return hypothesis (expert only, this returns a bti pattern).
Definition: ECLCluster.h:256
Belle2::ECLCluster::setMinTrkDistance
void setMinTrkDistance(double distance)
Set distance between cluster COG and track extrapolation to ECL.
Definition: ECLCluster.h:186
Belle2::ECLCluster::EHypothesisBit::c_electronNPhotons
@ c_electronNPhotons
CR is split into an electron and n photons (T3)
Belle2::ECLCluster::setZernikeMVA
void setZernikeMVA(double zernikemva)
Set Zernike 20.
Definition: ECLCluster.h:195
Belle2::ECLCluster::setNumberOfHadronDigits
void setNumberOfHadronDigits(double NumberOfHadronDigits)
set Number of hadron digits in cluster .
Definition: ECLCluster.h:211
Belle2::ECLCluster::getUncertaintyPhi
double getUncertaintyPhi() const
Return Uncertainty on Phi of Shower.
Definition: ECLCluster.h:347
Belle2::ECLCluster::setPhi
void setPhi(double phi)
Set Phi of Shower (radian).
Definition: ECLCluster.h:232
Belle2::ECLCluster::setLAT
void setLAT(double LAT)
Set Lateral distribution parameter.
Definition: ECLCluster.h:217
Belle2::ECLCluster::m_absZernike40
Double32_t m_absZernike40
Zernike 40.
Definition: ECLCluster.h:442
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::ECLCluster::getEnergyHighestCrystal
double getEnergyHighestCrystal() const
Return energy of highest energetic crystal in cluster (GeV)
Definition: ECLCluster.h:338
Belle2::ECLCluster::m_isTrack
bool m_isTrack
Is related to track (true) or not (false).
Definition: ECLCluster.h:395
Belle2::ECLCluster::setdeltaL
void setdeltaL(double deltaL)
Set deltaL for shower shape.
Definition: ECLCluster.h:183
Belle2::ECLCluster::getTime
double getTime() const
Return cluster time.
Definition: ECLCluster.h:317
Belle2::ECLCluster::hasPulseShapeDiscrimination
bool hasPulseShapeDiscrimination() const
Check if ECLCluster has any ECLDigits with waveforms that also passed two component fit chi2 threshol...
Definition: ECLCluster.h:383
Belle2::ECLCluster::addHypothesis
void addHypothesis(EHypothesisBit bitmask)
Add bitmask to current hypothesis.
Definition: ECLCluster.h:140
Belle2::ECLCluster::setEnergyRaw
void setEnergyRaw(double energyraw)
Set Uncorrect Energy deposited (GeV).
Definition: ECLCluster.h:241
Belle2::ECLCluster::getDeltaL
double getDeltaL() const
Return deltaL.
Definition: ECLCluster.h:280
Belle2::ECLCluster::setStatus
void setStatus(EStatusBit status)
Set status.
Definition: ECLCluster.h:118
Belle2::ECLCluster::removeStatus
void removeStatus(EStatusBit bitmask)
Remove bitmask from current status.
Definition: ECLCluster.h:131
Belle2::ECLCluster::m_sqrtcovmat_22
Double32_t m_sqrtcovmat_22
Covariance matrix 22, sigma_theta, between 0 and 50 mrad.
Definition: ECLCluster.h:433
Belle2::ECLCluster::setClusterId
void setClusterId(int clusterid)
Set cluster id.
Definition: ECLCluster.h:156
Belle2::ECLCluster::setDeltaTime99
void setDeltaTime99(double dtime99)
Set 99% time containment range.
Definition: ECLCluster.h:226
Belle2::ECLCluster::m_PulseShapeDiscriminationMVA
Double32_t m_PulseShapeDiscriminationMVA
MVA classifier that uses pulse shape discrimination to identify electromagnetic vs hadronic showers.
Definition: ECLCluster.h:490
Belle2::ECLCluster::EHypothesisBit::c_neutralHadron
@ c_neutralHadron
CR is reconstructed as a neutral hadron (N2)
Belle2::ECLCluster::getAbsZernike40
double getAbsZernike40() const
Return Zernike moment 40 (shower shape variable).
Definition: ECLCluster.h:283
Belle2::ECLCluster::getAbsZernike51
double getAbsZernike51() const
Return Zernike moment 51 (shower shape variable).
Definition: ECLCluster.h:286
Belle2::ECLCluster::setR
void setR(double r)
Set R (in cm).
Definition: ECLCluster.h:235
Belle2::ECLCluster::getMaxECellId
unsigned short getMaxECellId() const
Return cellID of maximum energy crystal.
Definition: ECLCluster.h:259
Belle2::ECLCluster::setPulseShapeDiscriminationMVA
void setPulseShapeDiscriminationMVA(double PulseShapeDiscriminationMVA)
set Pulse Shape Discrimination MVA
Definition: ECLCluster.h:208
Belle2::ECLCluster::hasStatus
bool hasStatus(EStatusBit bitmask) const
Return if specific status bit is set.
Definition: ECLCluster.h:367
Belle2::ECLCluster::setE9oE21
void setE9oE21(double E9oE21)
Set E9/E21 energy ratio.
Definition: ECLCluster.h:201
Belle2::ECLCluster::EHypothesisBit::c_chargedHadron
@ c_chargedHadron
CR is reconstructed as a charged hadron (T2)
Belle2::ECLCluster::isTriggerCluster
bool isTriggerCluster() const
Check if ECLCluster is matched to an ECLTRGCluster.
Definition: ECLCluster.h:377
Belle2::ECLCluster::addStatus
void addStatus(EStatusBit bitmask)
Add bitmask to current status.
Definition: ECLCluster.h:124
Belle2::ECLCluster::m_sqrtcovmat_00
Double32_t m_sqrtcovmat_00
Covariance entry 00 sigma_E (1% to 25% between 10 MeV and 8 GeV)
Definition: ECLCluster.h:418
Belle2::ECLCluster::getE1oE9
double getE1oE9() const
Return E1/E9 (shower shape variable).
Definition: ECLCluster.h:292
Belle2::ECLCluster::m_clusterId
int m_clusterId
Cluster id.
Definition: ECLCluster.h:410
Belle2::ECLCluster::getClusterHadronIntensity
double getClusterHadronIntensity() const
Return Cluster hadron intensity.
Definition: ECLCluster.h:299
Belle2::RelationsObject
RelationsInterface< TObject > RelationsObject
Provides interface for getting/adding relations to objects in StoreArrays.
Definition: RelationsObject.h:443
Belle2::ECLCluster::m_covmat_21
Double32_t m_covmat_21
Covariance matrix 21, not used yet.
Definition: ECLCluster.h:430
Belle2::ECLCluster::setEnergyHighestCrystal
void setEnergyHighestCrystal(double energyhighestcrystal)
Set energy of highest energetic crystal (GeV).
Definition: ECLCluster.h:244
Belle2::ECLCluster::setAbsZernike40
void setAbsZernike40(double zernike40)
Set Zernike 40.
Definition: ECLCluster.h:189
Belle2::ECLCluster::m_logEnergy
Double32_t m_logEnergy
< Log.
Definition: ECLCluster.h:481
Belle2::ECLCluster::EStatusBit
EStatusBit
The status information for the ECLCluster.
Definition: ECLCluster.h:61
Belle2::ECLCluster::getUncertaintyEnergy
double getUncertaintyEnergy() const
Return Uncertainty on Energy of Shower.
Definition: ECLCluster.h:341
Belle2::ECLCluster::m_covmat_20
Double32_t m_covmat_20
Covariance matrix 20, not used yet.
Definition: ECLCluster.h:427
Belle2::ECLCluster::m_absZernike51
Double32_t m_absZernike51
Zernike 51.
Definition: ECLCluster.h:445
Belle2::ECLCluster::getCovarianceMatrix3x3
TMatrixDSym getCovarianceMatrix3x3() const
Return TMatrixDsym 3x3 covariance matrix for E, Phi and Theta.
Definition: ECLCluster.cc:50
Belle2::ECLCluster::m_NumberOfHadronDigits
Double32_t m_NumberOfHadronDigits
Number of hadron digits in cluster (pulse shape discrimination variable).
Definition: ECLCluster.h:496
Belle2::ECLCluster::isNeutral
bool isNeutral() const
Return true if cluster has no match with track.
Definition: ECLCluster.h:250
Belle2::ECLCluster::m_connectedRegionId
int m_connectedRegionId
Connected Region of this cluster.
Definition: ECLCluster.h:407
Belle2::ECLCluster::m_maxECellId
unsigned short m_maxECellId
CellID of maximum energy crystal.
Definition: ECLCluster.h:404
Belle2::ECLCluster::m_E9oE21
Double32_t m_E9oE21
E9oE21.
Definition: ECLCluster.h:454
Belle2::ECLCluster::getDetectorRegion
int getDetectorRegion() const
Return detector region: 0: below acceptance, 1: FWD, 2: BRL, 3: BWD, 11: FWDGAP, 13: BWDGAP.
Definition: ECLCluster.cc:68
Belle2::ECLCluster::m_covmat_10
Double32_t m_covmat_10
Covariance matrix 10, not used yet.
Definition: ECLCluster.h:421
Belle2::ECLCluster::m_theta
Double32_t m_theta
Theta [rad].
Definition: ECLCluster.h:472
Belle2::ECLCluster::getConnectedRegionId
int getConnectedRegionId() const
Return connected region id.
Definition: ECLCluster.h:262
Belle2::ECLCluster::m_sqrtcovmat_11
Double32_t m_sqrtcovmat_11
Covariance matrix 11, sigma_phi, between 0 and 50 mrad.
Definition: ECLCluster.h:424
Belle2::ECLCluster::m_logEnergyHighestCrystal
Double32_t m_logEnergyHighestCrystal
Log.
Definition: ECLCluster.h:487
Belle2::ECLCluster::getClusterId
int getClusterId() const
Return cluster id.
Definition: ECLCluster.h:274
Belle2::ECLCluster::m_logEnergyRaw
Double32_t m_logEnergyRaw
Log.
Definition: ECLCluster.h:484
Belle2::ECLCluster::setCovarianceMatrix
void setCovarianceMatrix(double covArray[6])
Set covariance matrix (3x3), i.e.
Definition: ECLCluster.h:163
Belle2::ECLCluster::setTheta
void setTheta(double theta)
Set Theta of Shower (radian).
Definition: ECLCluster.h:229
Belle2::ECLCluster::hasFailedFitTime
bool hasFailedFitTime() const
Check if ECLCluster has a fit time that failed.
Definition: ECLCluster.h:386
Belle2::ECLCluster::getMinTrkDistance
double getMinTrkDistance() const
Get distance between cluster COG and track extrapolation to ECL.
Definition: ECLCluster.h:277
Belle2::ECLCluster::m_minTrkDistance
Double32_t m_minTrkDistance
Distance between cluster center and track extrapolation to ECL.
Definition: ECLCluster.h:439