Belle II Software development
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
18namespace 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,
57 c_fitTimeFailed = 1 << 3,
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),
75 m_covmat_10(0.),
77 m_covmat_20(0.),
78 m_covmat_21(0.),
80 m_deltaL(0.),
82 m_minTrkDistanceID(65535),
85 m_zernikeMVA(0.),
86 m_E1oE9(0.),
87 m_E9oE21(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
257
259 double getMinTrkDistance() const { return m_minTrkDistance; }
260
262 double getMinTrkDistanceID() const { return m_minTrkDistanceID; }
263
265 double getDeltaL() const { return m_deltaL; }
266
268 double getAbsZernike40() const { return m_absZernike40; }
269
271 double getAbsZernike51() const { return m_absZernike51; }
272
274 double getZernikeMVA() const { return m_zernikeMVA; }
275
277 double getE1oE9() const { return m_E1oE9; }
278
280 double getE9oE21() const { return m_E9oE21; }
281
284
287
289 double getSecondMoment() const { return m_secondMoment; }
290
292 double getLAT() const {return m_LAT;}
293
296
298 double getTime() const {return m_time;}
299
301 double getDeltaTime99() const {return m_deltaTime99;}
302
304 double getPhi() const { return m_phi;}
305
307 double getTheta() const {return m_theta;}
308
310 double getR() const { return m_r; }
311
313 double getEnergy(EHypothesisBit hypothesis) const;
314
316 double getEnergyRaw() const {return exp(m_logEnergyRaw);}
317
320
322 double getUncertaintyEnergy() const {return (m_sqrtcovmat_00);}
323
325 double getUncertaintyTheta() const {return (m_sqrtcovmat_22);}
326
328 double getUncertaintyPhi() const { return (m_sqrtcovmat_11);}
329
331 ROOT::Math::XYZVector getClusterPosition() const;
332
334 TMatrixDSym getCovarianceMatrix3x3() const;
335
337 int getDetectorRegion() const;
338
344 bool hasStatus(EStatusBit bitmask) const { return (m_status & static_cast<short unsigned>(bitmask)) == static_cast<short unsigned>(bitmask); }
345
351 bool hasHypothesis(EHypothesisBit bitmask) const { return (m_hypotheses & static_cast<short unsigned>(bitmask)) == static_cast<short unsigned>(bitmask); }
352
355
358
361
364
367
368
369 private:
370
373
375 unsigned short m_status;
376
378 unsigned short m_hypotheses;
379
381 unsigned short m_maxECellId;
382
385
388
389 //Covariance matrix:
390 // E phi theta
391 // E 00 01 02
392 // phi 10 11 12
393 // theta 20 21 22
395 Double32_t m_sqrtcovmat_00; //[0.0, 0.3, 10]
396
398 Double32_t m_covmat_10; //[0.0, 10., 12]
399
401 Double32_t m_sqrtcovmat_11; //[0.0, 0.05, 8]
402
404 Double32_t m_covmat_20; //[0.0, 10., 12]
405
407 Double32_t m_covmat_21; //[0.0, 10., 12]
408
410 Double32_t m_sqrtcovmat_22; //[0.0, 0.050, 8]
411
413 Double32_t m_deltaL; //[-250, 250., 10]
414
416 Double32_t m_minTrkDistance; //[0.0, 250., 10]
417
419 unsigned short m_minTrkDistanceID;
420
422 Double32_t m_absZernike40; //[0.0, 1.7, 10]
423
425 Double32_t m_absZernike51; //[0.0, 1.2, 10]
426
428 Double32_t m_zernikeMVA; //[0.0, 1., 10]
429
431 Double32_t m_E1oE9; //[0.0, 1., 10]
432
434 Double32_t m_E9oE21; //[0.0, 1., 10]
435
437 Double32_t m_secondMoment; //[0.0, 40.0, 10]
438
440 Double32_t m_LAT; //[0.0, 1., 10]
441
443 Double32_t m_numberOfCrystals; //[0.0, 200.0, 10]
444
446 Double32_t m_time; //[-1000.0, 1000.0, 12]
447
449 Double32_t m_deltaTime99; //[0.0, 1000.0, 12]
450
452 Double32_t m_theta; //[0.0, pi, 16]
453
455 Double32_t m_phi; //[-pi, pi, 16]
456
458 Double32_t m_r; //[75.0, 300.0, 16]
459
461 Double32_t m_logEnergy; //[-5, 3., 18]
462
464 Double32_t m_logEnergyRaw; //[-5, 3., 18]
465
467 Double32_t m_logEnergyHighestCrystal; //[-5, 3., 18]
468
470 Double32_t m_PulseShapeDiscriminationMVA; //[0.0, 1.0, 18]
471
473 Double32_t m_ClusterHadronIntensity; //[-0.1, 0.8, 18]
474
476 Double32_t m_NumberOfHadronDigits; //[0, 255, 18]
477
480 // 15: Added m_minTrkDistanceID
481 // 14: Added m_maxECellId
482 // 13: Added m_hypotheses
483 // 12: Added m_PulseShapeDiscriminationMVA. Indicated that m_ClusterHadronIntensity will be removed in release-04.
484 // 11: Added m_ClusterHadronIntensity an m_NumberOfHadronDigits variables
485 // 10: Added status enum, added status setter
486 // 9: Removed all momentum, 4x4, and 7x7 covariance matrix getters.
487 // 8: Added clusterId, getUniqueId
488 // 7: Changed range of SecondMoment from 0..100 to 0..40
489 // 6: Changed stored variances to sqrt(covmat_ii).
490 // 5: New HypothesisId default, removed relative covariance entries, renamed some setters/getters, adjusted covariance variable ranges.
491 // 4: Complete revision and new variables. Introduction of Double32_t. Some new setters and getters.
492
493 };
494
496}// end namespace Belle2
ECL cluster data.
Definition: ECLCluster.h:27
Double32_t m_absZernike40
Zernike 40.
Definition: ECLCluster.h:422
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:473
unsigned short getMaxECellId() const
Return cellID of maximum energy crystal.
Definition: ECLCluster.h:247
unsigned short m_status
Cluster status.
Definition: ECLCluster.h:375
Double32_t m_r
Radius [cm].
Definition: ECLCluster.h:458
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:351
Double32_t m_absZernike51
Zernike 51.
Definition: ECLCluster.h:425
void setTheta(double theta)
Set Theta of Shower (radian).
Definition: ECLCluster.h:217
Double32_t m_zernikeMVA
Zernike MVA.
Definition: ECLCluster.h:428
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:410
double getMinTrkDistanceID() const
Get array index of the nearest track.
Definition: ECLCluster.h:262
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:283
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:304
Double32_t m_numberOfCrystals
Number of Crystals in a shower (sum of weights).
Definition: ECLCluster.h:443
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:446
Double32_t m_sqrtcovmat_11
Covariance matrix 11, sigma_phi, between 0 and 50 mrad.
Definition: ECLCluster.h:401
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:366
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:277
bool isTriggerCluster() const
Check if ECLCluster is matched to an ECLTRGCluster.
Definition: ECLCluster.h:354
void setTime(double time)
Set time information.
Definition: ECLCluster.h:211
int getUniqueClusterId() const
Return unique cluster id = 1000 * regionId + clusterId.
Definition: ECLCluster.h:256
void setSecondMoment(double secondmoment)
Set SecondMoment.
Definition: ECLCluster.h:202
Double32_t m_E1oE9
E1oE9.
Definition: ECLCluster.h:431
double getDeltaL() const
Return deltaL.
Definition: ECLCluster.h:265
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:452
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:310
double getEnergyRaw() const
Return Uncorrected Energy deposited (GeV)
Definition: ECLCluster.h:316
Double32_t m_sqrtcovmat_00
Covariance entry 00 sigma_E (1% to 25% between 10 MeV and 8 GeV)
Definition: ECLCluster.h:395
bool hasPulseShapeDiscrimination() const
Check if ECLCluster has any ECLDigits with waveforms that also passed two component fit chi2 threshol...
Definition: ECLCluster.h:360
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:325
double getLAT() const
Return LAT (shower shape variable).
Definition: ECLCluster.h:292
Double32_t m_covmat_20
Covariance matrix 20, not used yet.
Definition: ECLCluster.h:404
void setZernikeMVA(double zernikemva)
Set Zernike 20.
Definition: ECLCluster.h:187
int m_connectedRegionId
Connected Region of this cluster.
Definition: ECLCluster.h:384
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:413
Double32_t m_covmat_10
Covariance matrix 10, not used yet.
Definition: ECLCluster.h:398
Double32_t m_logEnergyHighestCrystal
Log.
Definition: ECLCluster.h:467
bool hasStatus(EStatusBit bitmask) const
Return if specific status bit is set.
Definition: ECLCluster.h:344
double getE9oE21() const
Return E9/E21 (shower shape variable).
Definition: ECLCluster.h:280
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:470
void setClusterId(int clusterid)
Set cluster id.
Definition: ECLCluster.h:145
unsigned short m_minTrkDistanceID
Array index of the nearest track.
Definition: ECLCluster.h:419
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:416
Double32_t m_deltaTime99
Delta Time 99.
Definition: ECLCluster.h:449
Double32_t m_logEnergy
< Log.
Definition: ECLCluster.h:461
Double32_t m_secondMoment
Second Moment.
Definition: ECLCluster.h:437
Double32_t m_E9oE21
E9oE21.
Definition: ECLCluster.h:434
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:476
Double32_t m_covmat_21
Covariance matrix 21, not used yet.
Definition: ECLCluster.h:407
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:322
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:286
double getMinTrkDistance() const
Get distance between cluster COG and track extrapolation to ECL.
Definition: ECLCluster.h:259
bool hasTriggerClusterMatching() const
Check if ECLTRGCluster to ECLCluster matcher has run.
Definition: ECLCluster.h:357
double getNumberOfCrystals() const
Return number of a crystals in a shower (sum of weights).
Definition: ECLCluster.h:295
double getEnergyHighestCrystal() const
Return energy of highest energetic crystal in cluster (GeV)
Definition: ECLCluster.h:319
double getZernikeMVA() const
Return MVA based hadron/photon value based on Zernike moments (shower shape variable).
Definition: ECLCluster.h:274
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:387
void setUncertaintyTheta(double thetaunc)
Set theta uncertainty.
Definition: ECLCluster.h:166
double getUncertaintyPhi() const
Return Uncertainty on Phi of Shower.
Definition: ECLCluster.h:328
double getAbsZernike40() const
Return Zernike moment 40 (shower shape variable).
Definition: ECLCluster.h:268
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:464
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:455
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:381
void setNumberOfHadronDigits(double NumberOfHadronDigits)
set Number of hadron digits in cluster .
Definition: ECLCluster.h:199
unsigned short m_hypotheses
Hypothesis.
Definition: ECLCluster.h:378
int getClusterId() const
Return cluster id.
Definition: ECLCluster.h:253
double getSecondMoment() const
Return second moment (shower shape variable).
Definition: ECLCluster.h:289
ClassDef(ECLCluster, 15)
Class definition.
bool hasFailedFitTime() const
Check if ECLCluster has a fit time that failed.
Definition: ECLCluster.h:363
double getTheta() const
Return Corrected Theta of Shower (radian).
Definition: ECLCluster.h:307
double getDeltaTime99() const
Return cluster delta time 99.
Definition: ECLCluster.h:301
bool m_isTrack
Is related to track (true) or not (false).
Definition: ECLCluster.h:372
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:440
double getTime() const
Return cluster time.
Definition: ECLCluster.h:298
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:271
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.