Belle II Software  release-08-01-10
ECLCluster.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 
9 #pragma once
10 
11 #include <framework/datastore/RelationsObject.h>
12 
13 #include <Math/Vector3D.h>
14 #include <TMatrixDSym.h>
15 
16 #include <cmath>
17 
18 namespace Belle2 {
27  class ECLCluster : public RelationsObject {
28  public:
29 
31  enum class EHypothesisBit : short unsigned int {
33  c_none = 1 << 0,
35  c_muonNPhotons = 1 << 1,
37  c_chargedHadron = 1 << 2,
39  c_electronNPhotons = 1 << 3,
41  c_nPhotons = 1 << 4,
43  c_neutralHadron = 1 << 5,
45  c_mergedPi0 = 1 << 6
46  };
47 
49  enum class EStatusBit : short unsigned int {
51  c_TriggerCluster = 1 << 0,
53  c_TriggerClusterMatching = 1 << 1,
57  c_fitTimeFailed = 1 << 3,
59  c_timeResolutionFailed = 1 << 4,
60 
61  };
62 
68  m_isTrack(false),
69  m_status(0),
70  m_hypotheses(static_cast<unsigned short>(EHypothesisBit::c_nPhotons)), // set to c_nPhotons for b2bii
71  m_maxECellId(0),
73  m_clusterId(0),
74  m_sqrtcovmat_00(0.),
75  m_covmat_10(0.),
76  m_sqrtcovmat_11(0.),
77  m_covmat_20(0.),
78  m_covmat_21(0.),
79  m_sqrtcovmat_22(0.),
80  m_deltaL(0.),
81  m_minTrkDistance(0.),
82  m_minTrkDistanceID(65535),
83  m_absZernike40(0.),
84  m_absZernike51(0.),
85  m_zernikeMVA(0.),
86  m_E1oE9(0.),
87  m_E9oE21(0.),
88  m_secondMoment(0.),
89  m_LAT(0.),
91  m_time(0.),
92  m_deltaTime99(0.),
93  m_theta(0.),
94  m_phi(0.),
95  m_r(0.),
96  m_logEnergy(-5.),
97  m_logEnergyRaw(-5.),
102 
104  void setIsTrack(bool istrack) { m_isTrack = istrack; }
105 
107  void setStatus(EStatusBit status) { m_status = static_cast<short unsigned>(status); }
108 
113  void addStatus(EStatusBit bitmask) { m_status |= static_cast<short unsigned>(bitmask); }
114 
120  void removeStatus(EStatusBit bitmask) { m_status &= (~static_cast<short unsigned>(bitmask)); }
121 
123  void setHypothesis(EHypothesisBit hypothesis) { m_hypotheses = static_cast<short unsigned>(hypothesis); }
124 
129  void addHypothesis(EHypothesisBit bitmask) { m_hypotheses |= static_cast<short unsigned>(bitmask); }
130 
136  void removeHypothesis(EHypothesisBit bitmask) { m_hypotheses &= (~static_cast<short unsigned>(bitmask)); }
137 
139  void setMaxECellId(unsigned short cellid) {m_maxECellId = cellid;}
140 
142  void setConnectedRegionId(int crid) { m_connectedRegionId = crid; }
143 
145  void setClusterId(int clusterid) { m_clusterId = clusterid; }
146 
152  void setCovarianceMatrix(double covArray[6])
153  {
154  m_sqrtcovmat_00 = sqrt(fabs(covArray[0])); // energy
155  m_covmat_10 = covArray[1];
156  m_sqrtcovmat_11 = sqrt(fabs(covArray[2])); // phi
157  m_covmat_20 = covArray[3];
158  m_covmat_21 = covArray[4];
159  m_sqrtcovmat_22 = sqrt(fabs(covArray[5])); // theta
160  }
161 
163  void setUncertaintyEnergy(double energyunc) { m_sqrtcovmat_00 = fabs(energyunc); }
164 
166  void setUncertaintyTheta(double thetaunc) { m_sqrtcovmat_22 = fabs(thetaunc); }
167 
169  void setUncertaintyPhi(double phiunc) { m_sqrtcovmat_11 = fabs(phiunc); }
170 
172  void setdeltaL(double deltaL) { m_deltaL = deltaL; }
173 
175  void setMinTrkDistance(double distance) { m_minTrkDistance = distance; }
176 
178  void setMinTrkDistanceID(unsigned short distanceID) { m_minTrkDistanceID = distanceID; }
179 
181  void setAbsZernike40(double zernike40) { m_absZernike40 = zernike40; }
182 
184  void setAbsZernike51(double zernike51) { m_absZernike51 = zernike51; }
185 
187  void setZernikeMVA(double zernikemva) { m_zernikeMVA = zernikemva; }
188 
190  void setE1oE9(double E1oE9) { m_E1oE9 = E1oE9; }
191 
193  void setE9oE21(double E9oE21) { m_E9oE21 = E9oE21; }
194 
196  void setPulseShapeDiscriminationMVA(double PulseShapeDiscriminationMVA) { m_PulseShapeDiscriminationMVA = PulseShapeDiscriminationMVA; }
197 
199  void setNumberOfHadronDigits(double NumberOfHadronDigits) { m_NumberOfHadronDigits = NumberOfHadronDigits; }
200 
202  void setSecondMoment(double secondmoment) { m_secondMoment = secondmoment; }
203 
205  void setLAT(double LAT) { m_LAT = LAT; }
206 
208  void setNumberOfCrystals(double noc) { m_numberOfCrystals = noc; }
209 
211  void setTime(double time) { m_time = time; }
212 
214  void setDeltaTime99(double dtime99) { m_deltaTime99 = dtime99; }
215 
217  void setTheta(double theta) { m_theta = theta; }
218 
220  void setPhi(double phi) { m_phi = phi; }
221 
223  void setR(double r) { m_r = r; }
224 
226  void setEnergy(double energy) { m_logEnergy = log(energy); }
227 
229  void setEnergyRaw(double energyraw) { m_logEnergyRaw = log(energyraw); }
230 
232  void setEnergyHighestCrystal(double energyhighestcrystal) { m_logEnergyHighestCrystal = log(energyhighestcrystal); }
233 
235  bool isTrack() const { return m_isTrack; }
236 
238  bool isNeutral() const { return !m_isTrack; }
239 
241  unsigned short getStatus() const {return m_status;}
242 
244  unsigned short getHypotheses() const {return m_hypotheses;}
245 
247  unsigned short getMaxECellId() const {return m_maxECellId;}
248 
251 
253  int getClusterId() const {return m_clusterId;}
254 
256  double getMinTrkDistance() const { return m_minTrkDistance; }
257 
259  double getMinTrkDistanceID() const { return m_minTrkDistanceID; }
260 
262  double getDeltaL() const { return m_deltaL; }
263 
265  double getAbsZernike40() const { return m_absZernike40; }
266 
268  double getAbsZernike51() const { return m_absZernike51; }
269 
271  double getZernikeMVA() const { return m_zernikeMVA; }
272 
274  double getE1oE9() const { return m_E1oE9; }
275 
277  double getE9oE21() const { return m_E9oE21; }
278 
281 
284 
286  double getSecondMoment() const { return m_secondMoment; }
287 
289  double getLAT() const {return m_LAT;}
290 
292  double getNumberOfCrystals() const {return m_numberOfCrystals;}
293 
295  double getTime() const {return m_time;}
296 
298  double getDeltaTime99() const {return m_deltaTime99;}
299 
301  double getPhi() const { return m_phi;}
302 
304  double getTheta() const {return m_theta;}
305 
307  double getR() const { return m_r; }
308 
310  double getEnergy(EHypothesisBit hypothesis) const;
311 
313  double getEnergyRaw() const {return exp(m_logEnergyRaw);}
314 
317 
319  double getUncertaintyEnergy() const {return (m_sqrtcovmat_00);}
320 
322  double getUncertaintyTheta() const {return (m_sqrtcovmat_22);}
323 
325  double getUncertaintyPhi() const { return (m_sqrtcovmat_11);}
326 
328  ROOT::Math::XYZVector getClusterPosition() const;
329 
331  TMatrixDSym getCovarianceMatrix3x3() const;
332 
334  int getDetectorRegion() const;
335 
341  bool hasStatus(EStatusBit bitmask) const { return (m_status & static_cast<short unsigned>(bitmask)) == static_cast<short unsigned>(bitmask); }
342 
348  bool hasHypothesis(EHypothesisBit bitmask) const { return (m_hypotheses & static_cast<short unsigned>(bitmask)) == static_cast<short unsigned>(bitmask); }
349 
352 
355 
358 
361 
364 
365 
366  private:
367 
369  bool m_isTrack;
370 
372  unsigned short m_status;
373 
375  unsigned short m_hypotheses;
376 
378  unsigned short m_maxECellId;
379 
382 
385 
386  //Covariance matrix:
387  // E phi theta
388  // E 00 01 02
389  // phi 10 11 12
390  // theta 20 21 22
392  Double32_t m_sqrtcovmat_00; //[0.0, 0.3, 10]
393 
395  Double32_t m_covmat_10; //[0.0, 10., 12]
396 
398  Double32_t m_sqrtcovmat_11; //[0.0, 0.05, 8]
399 
401  Double32_t m_covmat_20; //[0.0, 10., 12]
402 
404  Double32_t m_covmat_21; //[0.0, 10., 12]
405 
407  Double32_t m_sqrtcovmat_22; //[0.0, 0.050, 8]
408 
410  Double32_t m_deltaL; //[-250, 250., 10]
411 
413  Double32_t m_minTrkDistance; //[0.0, 250., 10]
414 
416  unsigned short m_minTrkDistanceID;
417 
419  Double32_t m_absZernike40; //[0.0, 1.7, 10]
420 
422  Double32_t m_absZernike51; //[0.0, 1.2, 10]
423 
425  Double32_t m_zernikeMVA; //[0.0, 1., 10]
426 
428  Double32_t m_E1oE9; //[0.0, 1., 10]
429 
431  Double32_t m_E9oE21; //[0.0, 1., 10]
432 
434  Double32_t m_secondMoment; //[0.0, 40.0, 10]
435 
437  Double32_t m_LAT; //[0.0, 1., 10]
438 
440  Double32_t m_numberOfCrystals; //[0.0, 200.0, 10]
441 
443  Double32_t m_time; //[-1000.0, 1000.0, 12]
444 
446  Double32_t m_deltaTime99; //[0.0, 1000.0, 12]
447 
449  Double32_t m_theta; //[0.0, pi, 16]
450 
452  Double32_t m_phi; //[-pi, pi, 16]
453 
455  Double32_t m_r; //[75.0, 300.0, 16]
456 
458  Double32_t m_logEnergy; //[-5, 3., 18]
459 
461  Double32_t m_logEnergyRaw; //[-5, 3., 18]
462 
464  Double32_t m_logEnergyHighestCrystal; //[-5, 3., 18]
465 
467  Double32_t m_PulseShapeDiscriminationMVA; //[0.0, 1.0, 18]
468 
470  Double32_t m_ClusterHadronIntensity; //[-0.1, 0.8, 18]
471 
473  Double32_t m_NumberOfHadronDigits; //[0, 255, 18]
474 
477  // 15: Added m_minTrkDistanceID
478  // 14: Added m_maxECellId
479  // 13: Added m_hypotheses
480  // 12: Added m_PulseShapeDiscriminationMVA. Indicated that m_ClusterHadronIntensity will be removed in release-04.
481  // 11: Added m_ClusterHadronIntensity an m_NumberOfHadronDigits variables
482  // 10: Added status enum, added status setter
483  // 9: Removed all momentum, 4x4, and 7x7 covariance matrix getters.
484  // 8: Added clusterId, getUniqueId
485  // 7: Changed range of SecondMoment from 0..100 to 0..40
486  // 6: Changed stored variances to sqrt(covmat_ii).
487  // 5: New HypothesisId default, removed relative covariance entries, renamed some setters/getters, adjusted covariance variable ranges.
488  // 4: Complete revision and new variables. Introduction of Double32_t. Some new setters and getters.
489 
490  };
491 
493 }// end namespace Belle2
ECL cluster data.
Definition: ECLCluster.h:27
Double32_t m_absZernike40
Zernike 40.
Definition: ECLCluster.h:419
void setE9oE21(double E9oE21)
Set E9/E21 energy ratio.
Definition: ECLCluster.h:193
void addHypothesis(EHypothesisBit bitmask)
Add bitmask to current hypothesis.
Definition: ECLCluster.h:129
Double32_t m_ClusterHadronIntensity
Cluster Hadron Component Intensity (pulse shape discrimination variable).
Definition: ECLCluster.h:470
unsigned short getMaxECellId() const
Return cellID of maximum energy crystal.
Definition: ECLCluster.h:247
unsigned short m_status
Cluster status.
Definition: ECLCluster.h:372
Double32_t m_r
Radius [cm].
Definition: ECLCluster.h:455
bool isTrack() const
Return true if the cluster matches with track.
Definition: ECLCluster.h:235
bool hasHypothesis(EHypothesisBit bitmask) const
Return if specific hypothesis bit is set.
Definition: ECLCluster.h:348
Double32_t m_absZernike51
Zernike 51.
Definition: ECLCluster.h:422
void setTheta(double theta)
Set Theta of Shower (radian).
Definition: ECLCluster.h:217
Double32_t m_zernikeMVA
Zernike MVA.
Definition: ECLCluster.h:425
void setConnectedRegionId(int crid)
Set connected region id.
Definition: ECLCluster.h:142
Double32_t m_sqrtcovmat_22
Covariance matrix 22, sigma_theta, between 0 and 50 mrad.
Definition: ECLCluster.h:407
double getMinTrkDistanceID() const
Get array index of the nearest track.
Definition: ECLCluster.h:259
EStatusBit
The status information for the ECLCluster.
Definition: ECLCluster.h:49
@ c_TriggerCluster
bit 0: ECLCluster is matched to a ECL trigger cluster
@ c_PulseShapeDiscrimination
bit 2: ECLCluster has pulse shape discrimination variables.
@ c_TriggerClusterMatching
bit 1: ECLCluster to ECLTRGCluster matcher was run
@ c_timeResolutionFailed
bit 4: ECLCluster has time resolution calculation that failed.
@ c_fitTimeFailed
bit 3: ECLCluster has fit time that failed.
void setPhi(double phi)
Set Phi of Shower (radian).
Definition: ECLCluster.h:220
void setUncertaintyEnergy(double energyunc)
Set energy uncertainty.
Definition: ECLCluster.h:163
double getPulseShapeDiscriminationMVA() const
Return MVA classifier that uses pulse shape discrimination to identify electromagnetic vs hadronic sh...
Definition: ECLCluster.h:280
TMatrixDSym getCovarianceMatrix3x3() const
Return TMatrixDsym 3x3 covariance matrix for E, Phi and Theta.
Definition: ECLCluster.cc:52
double getPhi() const
Return Corrected Phi of Shower (radian).
Definition: ECLCluster.h:301
Double32_t m_numberOfCrystals
Number of Crystals in a shower (sum of weights).
Definition: ECLCluster.h:440
void setMaxECellId(unsigned short cellid)
Set cellID of maximum energy crystal.
Definition: ECLCluster.h:139
void setdeltaL(double deltaL)
Set deltaL for shower shape.
Definition: ECLCluster.h:172
Double32_t m_time
Time.
Definition: ECLCluster.h:443
Double32_t m_sqrtcovmat_11
Covariance matrix 11, sigma_phi, between 0 and 50 mrad.
Definition: ECLCluster.h:398
void setMinTrkDistanceID(unsigned short distanceID)
Set array index of the nearest track.
Definition: ECLCluster.h:178
bool hasFailedTimeResolution() const
Check if ECLCluster has a time resolution calculation that failed.
Definition: ECLCluster.h:363
void setEnergyHighestCrystal(double energyhighestcrystal)
Set energy of highest energetic crystal (GeV).
Definition: ECLCluster.h:232
void setEnergyRaw(double energyraw)
Set Uncorrect Energy deposited (GeV).
Definition: ECLCluster.h:229
double getE1oE9() const
Return E1/E9 (shower shape variable).
Definition: ECLCluster.h:274
bool isTriggerCluster() const
Check if ECLCluster is matched to an ECLTRGCluster.
Definition: ECLCluster.h:351
void setTime(double time)
Set time information.
Definition: ECLCluster.h:211
void setSecondMoment(double secondmoment)
Set SecondMoment.
Definition: ECLCluster.h:202
Double32_t m_E1oE9
E1oE9.
Definition: ECLCluster.h:428
double getDeltaL() const
Return deltaL.
Definition: ECLCluster.h:262
void setCovarianceMatrix(double covArray[6])
Set covariance matrix (3x3), i.e.
Definition: ECLCluster.h:152
void setAbsZernike51(double zernike51)
Set Zernike 51.
Definition: ECLCluster.h:184
Double32_t m_theta
Theta [rad].
Definition: ECLCluster.h:449
int getConnectedRegionId() const
Return connected region id.
Definition: ECLCluster.h:250
void setMinTrkDistance(double distance)
Set distance between cluster COG and track extrapolation to ECL.
Definition: ECLCluster.h:175
double getR() const
Return R.
Definition: ECLCluster.h:307
double getEnergyRaw() const
Return Uncorrected Energy deposited (GeV)
Definition: ECLCluster.h:313
Double32_t m_sqrtcovmat_00
Covariance entry 00 sigma_E (1% to 25% between 10 MeV and 8 GeV)
Definition: ECLCluster.h:392
bool hasPulseShapeDiscrimination() const
Check if ECLCluster has any ECLDigits with waveforms that also passed two component fit chi2 threshol...
Definition: ECLCluster.h:357
ECLCluster()
default constructor : all values are set to 0, IDs set to -1, flags to false
Definition: ECLCluster.h:67
double getUncertaintyTheta() const
Return Uncertainty on Theta of Shower.
Definition: ECLCluster.h:322
double getLAT() const
Return LAT (shower shape variable).
Definition: ECLCluster.h:289
Double32_t m_covmat_20
Covariance matrix 20, not used yet.
Definition: ECLCluster.h:401
void setZernikeMVA(double zernikemva)
Set Zernike 20.
Definition: ECLCluster.h:187
int m_connectedRegionId
Connected Region of this cluster.
Definition: ECLCluster.h:381
void addStatus(EStatusBit bitmask)
Add bitmask to current status.
Definition: ECLCluster.h:113
Double32_t m_deltaL
Delta L as defined in arXiv:0711.1593.
Definition: ECLCluster.h:410
Double32_t m_covmat_10
Covariance matrix 10, not used yet.
Definition: ECLCluster.h:395
Double32_t m_logEnergyHighestCrystal
Log.
Definition: ECLCluster.h:464
bool hasStatus(EStatusBit bitmask) const
Return if specific status bit is set.
Definition: ECLCluster.h:341
double getE9oE21() const
Return E9/E21 (shower shape variable).
Definition: ECLCluster.h:277
void setDeltaTime99(double dtime99)
Set 99% time containment range.
Definition: ECLCluster.h:214
Double32_t m_PulseShapeDiscriminationMVA
MVA classifier that uses pulse shape discrimination to identify electromagnetic vs hadronic showers.
Definition: ECLCluster.h:467
void setClusterId(int clusterid)
Set cluster id.
Definition: ECLCluster.h:145
unsigned short m_minTrkDistanceID
Array index of the nearest track.
Definition: ECLCluster.h:416
void setStatus(EStatusBit status)
Set status.
Definition: ECLCluster.h:107
int getDetectorRegion() const
Return detector region: 0: below acceptance, 1: FWD, 2: BRL, 3: BWD, 11: FWDGAP, 13: BWDGAP.
Definition: ECLCluster.cc:70
unsigned short getStatus() const
Return status.
Definition: ECLCluster.h:241
void removeStatus(EStatusBit bitmask)
Remove bitmask from current status.
Definition: ECLCluster.h:120
Double32_t m_minTrkDistance
Distance between cluster center and track extrapolation to ECL.
Definition: ECLCluster.h:413
Double32_t m_deltaTime99
Delta Time 99.
Definition: ECLCluster.h:446
Double32_t m_logEnergy
< Log.
Definition: ECLCluster.h:458
Double32_t m_secondMoment
Second Moment.
Definition: ECLCluster.h:434
Double32_t m_E9oE21
E9oE21.
Definition: ECLCluster.h:431
void setLAT(double LAT)
Set Lateral distribution parameter.
Definition: ECLCluster.h:205
Double32_t m_NumberOfHadronDigits
Number of hadron digits in cluster (pulse shape discrimination variable).
Definition: ECLCluster.h:473
Double32_t m_covmat_21
Covariance matrix 21, not used yet.
Definition: ECLCluster.h:404
double getEnergy(EHypothesisBit hypothesis) const
Return Energy (GeV).
Definition: ECLCluster.cc:23
void setHypothesis(EHypothesisBit hypothesis)
Set hypotheses.
Definition: ECLCluster.h:123
double getUncertaintyEnergy() const
Return Uncertainty on Energy of Shower.
Definition: ECLCluster.h:319
void setPulseShapeDiscriminationMVA(double PulseShapeDiscriminationMVA)
set Pulse Shape Discrimination MVA
Definition: ECLCluster.h:196
void setNumberOfCrystals(double noc)
Set number of crystals (sum of weights).
Definition: ECLCluster.h:208
void setEnergy(double energy)
Set Corrected Energy (GeV).
Definition: ECLCluster.h:226
void setAbsZernike40(double zernike40)
Set Zernike 40.
Definition: ECLCluster.h:181
double getNumberOfHadronDigits() const
Return number of hadron digits in cluster.
Definition: ECLCluster.h:283
double getMinTrkDistance() const
Get distance between cluster COG and track extrapolation to ECL.
Definition: ECLCluster.h:256
bool hasTriggerClusterMatching() const
Check if ECLTRGCluster to ECLCluster matcher has run.
Definition: ECLCluster.h:354
double getNumberOfCrystals() const
Return number of a crystals in a shower (sum of weights).
Definition: ECLCluster.h:292
double getEnergyHighestCrystal() const
Return energy of highest energetic crystal in cluster (GeV)
Definition: ECLCluster.h:316
double getZernikeMVA() const
Return MVA based hadron/photon value based on Zernike moments (shower shape variable).
Definition: ECLCluster.h:271
ROOT::Math::XYZVector getClusterPosition() const
Return ROOT::Math::XYZVector on cluster position (x,y,z)
Definition: ECLCluster.cc:44
int m_clusterId
Cluster id.
Definition: ECLCluster.h:384
void setUncertaintyTheta(double thetaunc)
Set theta uncertainty.
Definition: ECLCluster.h:166
double getUncertaintyPhi() const
Return Uncertainty on Phi of Shower.
Definition: ECLCluster.h:325
double getAbsZernike40() const
Return Zernike moment 40 (shower shape variable).
Definition: ECLCluster.h:265
unsigned short getHypotheses() const
Return hypothesis (expert only, this returns a bti pattern).
Definition: ECLCluster.h:244
void removeHypothesis(EHypothesisBit bitmask)
Remove bitmask from current hypothesis.
Definition: ECLCluster.h:136
Double32_t m_logEnergyRaw
Log.
Definition: ECLCluster.h:461
bool isNeutral() const
Return true if cluster has no match with track.
Definition: ECLCluster.h:238
Double32_t m_phi
Phi [rad].
Definition: ECLCluster.h:452
void setUncertaintyPhi(double phiunc)
Set phi uncertainty.
Definition: ECLCluster.h:169
void setE1oE9(double E1oE9)
Set E1/E9 energy ratio.
Definition: ECLCluster.h:190
unsigned short m_maxECellId
CellID of maximum energy crystal.
Definition: ECLCluster.h:378
void setNumberOfHadronDigits(double NumberOfHadronDigits)
set Number of hadron digits in cluster .
Definition: ECLCluster.h:199
unsigned short m_hypotheses
Hypothesis.
Definition: ECLCluster.h:375
int getClusterId() const
Return cluster id.
Definition: ECLCluster.h:253
double getSecondMoment() const
Return second moment (shower shape variable).
Definition: ECLCluster.h:286
ClassDef(ECLCluster, 15)
Class definition.
bool hasFailedFitTime() const
Check if ECLCluster has a fit time that failed.
Definition: ECLCluster.h:360
double getTheta() const
Return Corrected Theta of Shower (radian).
Definition: ECLCluster.h:304
double getDeltaTime99() const
Return cluster delta time 99.
Definition: ECLCluster.h:298
bool m_isTrack
Is related to track (true) or not (false).
Definition: ECLCluster.h:369
void setIsTrack(bool istrack)
Set m_isTrack true if the cluster matches with a track.
Definition: ECLCluster.h:104
Double32_t m_LAT
LAT.
Definition: ECLCluster.h:437
double getTime() const
Return cluster time.
Definition: ECLCluster.h:295
EHypothesisBit
The hypothesis bits for this ECLCluster (Connected region (CR) is split using this hypothesis.
Definition: ECLCluster.h:31
@ c_electronNPhotons
CR is split into an electron and n photons (T3)
@ c_muonNPhotons
CR is split into a muon and n photons (T1)
@ c_mergedPi0
CR is reconstructed as merged pi0 (N3)
@ c_chargedHadron
CR is reconstructed as a charged hadron (T2)
@ c_nPhotons
CR is split into n photons (N1)
@ c_neutralHadron
CR is reconstructed as a neutral hadron (N2)
@ c_none
None as initializer.
void setR(double r)
Set R (in cm).
Definition: ECLCluster.h:223
double getAbsZernike51() const
Return Zernike moment 51 (shower shape variable).
Definition: ECLCluster.h:268
Defines interface for accessing relations of objects in StoreArray.
double sqrt(double a)
sqrt for double
Definition: beamHelpers.h:28
Abstract base class for different kinds of events.