Belle II Software  release-05-01-25
eclShower.cc
1 #include <ecl/dataobjects/ECLShower.h>
2 
3 #include <gtest/gtest.h>
4 
5 using namespace std;
6 
7 namespace Belle2 {
14  class ECLShowerTest : public ::testing::Test {
15  };
16 
18  TEST_F(ECLShowerTest, Constructors)
19  {
20  ECLShower myECLShower;
21  EXPECT_EQ(myECLShower.getIsTrack(), 0);
22 
23  EXPECT_EQ(myECLShower.getStatus(), 0);
24  EXPECT_EQ(myECLShower.getShowerId(), 0);
25  EXPECT_EQ(myECLShower.getConnectedRegionId(), 0);
26  EXPECT_EQ(myECLShower.getHypothesisId(), 0);
27  EXPECT_EQ(myECLShower.getEnergy(), 0);
28  EXPECT_EQ(myECLShower.getTheta(), 0);
29  EXPECT_EQ(myECLShower.getPhi(), 0);
30  EXPECT_EQ(myECLShower.getR(), 0);
31  EXPECT_EQ(myECLShower.getUncertaintyEnergy(), 0);
32  EXPECT_EQ(myECLShower.getUncertaintyTheta(), 0);
33  EXPECT_EQ(myECLShower.getUncertaintyPhi(), 0);
34  EXPECT_EQ(myECLShower.getTime(), 0);
35  EXPECT_EQ(myECLShower.getDeltaTime99(), 0);
36  EXPECT_EQ(myECLShower.getEnergyHighestCrystal(), 0);
37  EXPECT_EQ(myECLShower.getLateralEnergy(), 0);
38  EXPECT_EQ(myECLShower.getMinTrkDistance(), 0);
39  EXPECT_EQ(myECLShower.getTrkDepth(), 0);
40  EXPECT_EQ(myECLShower.getShowerDepth(), 0);
41  EXPECT_EQ(myECLShower.getNumberOfCrystals(), 0);
42  EXPECT_EQ(myECLShower.getAbsZernike40(), 0);
43  EXPECT_EQ(myECLShower.getAbsZernike51(), 0);
44  EXPECT_EQ(myECLShower.getZernikeMVA(), 0);
45  EXPECT_EQ(myECLShower.getSecondMoment(), 0);
46  EXPECT_EQ(myECLShower.getE1oE9(), 0);
47  EXPECT_EQ(myECLShower.getE9oE21(), 0);
48 
49  double errorArray[6];
50  myECLShower.getCovarianceMatrixAsArray(errorArray);
51  EXPECT_EQ(errorArray[0], 0);
52  EXPECT_EQ(errorArray[1], 0);
53  EXPECT_EQ(errorArray[2], 0);
54  EXPECT_EQ(errorArray[3], 0);
55  EXPECT_EQ(errorArray[4], 0);
56  EXPECT_EQ(errorArray[5], 0);
57 
58  TVector3 momentum(myECLShower.getMomentum());
59  EXPECT_EQ(momentum.X(), 0);
60  EXPECT_EQ(momentum.Y(), 0);
61  EXPECT_EQ(momentum.Z(), 0);
62  } // Testcases for Something
63 
65  TEST_F(ECLShowerTest, SettersAndGetters)
66  {
67  const bool isTrk = true;
68 
69  const int status = 5;
70  const int showerId = 6;
71  const int connectedRegionId = 7;
72  const int hypothesisId = 8;
73 
74  const double energy = 1.1;
75  const double theta = 1.2;
76  const double phi = 1.3;
77  const double r = 1.4;
78  double error[6] = {2.1, 2.2, 2.3, 2.4, 2.5, 2.6};
79  const double time = 1.5;
80  const double timeResolution = 1.6;
81  const double highestEnergy = 1.7;
82  const double lateralEnergy = 1.8;
83  const double minTrkDistance = 1.9;
84  const double trkDepth = 4.1;
85  const double showerDepth = 3.1;
86  const double NofCrystals = 3.2;
87  const double absZernike40 = 1.1;
88  const double absZernike51 = 0.1;
89  const double zernikeMVA = 0.5;
90  const double secondMoment = 5.1;
91  const double E1oE9 = 3.8;
92  const double E9oE21 = 3.9;
93 
94  ECLShower myECLShower;
95  myECLShower.setIsTrack(isTrk);
96  myECLShower.setStatus(status);
97  myECLShower.setShowerId(showerId);
98  myECLShower.setConnectedRegionId(connectedRegionId);
99  myECLShower.setHypothesisId(hypothesisId);
100  myECLShower.setEnergy(energy);
101  myECLShower.setTheta(theta);
102  myECLShower.setPhi(phi);
103  myECLShower.setR(r);
104  myECLShower.setCovarianceMatrix(error);
105  myECLShower.setTime(time);
106  myECLShower.setDeltaTime99(timeResolution);
107  myECLShower.setEnergyHighestCrystal(highestEnergy);
108  myECLShower.setLateralEnergy(lateralEnergy);
109  myECLShower.setMinTrkDistance(minTrkDistance);
110  myECLShower.setTrkDepth(trkDepth);
111  myECLShower.setShowerDepth(showerDepth);
112  myECLShower.setNumberOfCrystals(NofCrystals);
113  myECLShower.setAbsZernike40(absZernike40);
114  myECLShower.setAbsZernike51(absZernike51);
115  myECLShower.setZernikeMVA(zernikeMVA);
116  myECLShower.setSecondMoment(secondMoment);
117  myECLShower.setE1oE9(E1oE9);
118  myECLShower.setE9oE21(E9oE21);
119 
120  EXPECT_EQ(myECLShower.getIsTrack(), isTrk);
121  EXPECT_EQ(myECLShower.getStatus(), status);
122  EXPECT_EQ(myECLShower.getShowerId(), showerId);
123  EXPECT_EQ(myECLShower.getConnectedRegionId(), connectedRegionId);
124  EXPECT_EQ(myECLShower.getHypothesisId(), hypothesisId);
125  EXPECT_EQ(myECLShower.getEnergy(), energy);
126  EXPECT_EQ(myECLShower.getTheta(), theta);
127  EXPECT_EQ(myECLShower.getPhi(), phi);
128  EXPECT_EQ(myECLShower.getUncertaintyEnergy(), sqrt(error[0]));
129  EXPECT_EQ(myECLShower.getUncertaintyTheta(), sqrt(error[5]));
130  EXPECT_EQ(myECLShower.getUncertaintyPhi(), sqrt(error[2]));
131  EXPECT_EQ(myECLShower.getTime(), time);
132  EXPECT_EQ(myECLShower.getDeltaTime99(), timeResolution);
133  EXPECT_EQ(myECLShower.getEnergyHighestCrystal(), highestEnergy);
134  EXPECT_EQ(myECLShower.getLateralEnergy(), lateralEnergy);
135  EXPECT_EQ(myECLShower.getMinTrkDistance(), minTrkDistance);
136  EXPECT_EQ(myECLShower.getTrkDepth(), trkDepth);
137  EXPECT_EQ(myECLShower.getShowerDepth(), showerDepth);
138  EXPECT_EQ(myECLShower.getMinTrkDistance(), minTrkDistance);
139  EXPECT_EQ(myECLShower.getTrkDepth(), trkDepth);
140  EXPECT_EQ(myECLShower.getNumberOfCrystals(), NofCrystals);
141  EXPECT_EQ(myECLShower.getAbsZernike40(), absZernike40);
142  EXPECT_EQ(myECLShower.getAbsZernike51(), absZernike51);
143  EXPECT_EQ(myECLShower.getZernikeMVA(), zernikeMVA);
144  EXPECT_EQ(myECLShower.getSecondMoment(), secondMoment);
145  EXPECT_EQ(myECLShower.getE1oE9(), E1oE9);
146  EXPECT_EQ(myECLShower.getE9oE21(), E9oE21);
147 
148 
149  double errorArray[6];
150  myECLShower.getCovarianceMatrixAsArray(errorArray);
151  EXPECT_EQ(errorArray[0], error[0]);
152  EXPECT_EQ(errorArray[1], error[1]);
153  EXPECT_EQ(errorArray[2], error[2]);
154  EXPECT_EQ(errorArray[3], error[3]);
155  EXPECT_EQ(errorArray[4], error[4]);
156  EXPECT_EQ(errorArray[5], error[5]);
157 
158  TVector3 momentum(myECLShower.getMomentum());
159  EXPECT_FLOAT_EQ(momentum.X(), energy * sin(theta) * cos(phi));
160  EXPECT_FLOAT_EQ(momentum.Y(), energy * sin(theta) * sin(phi));
161  EXPECT_FLOAT_EQ(momentum.Z(), energy * cos(theta));
162  } // Testcases for Setters and Getters
163 
165 } // namespace
Belle2::ECLShower::setTheta
void setTheta(double Theta)
Set Theta (rad)
Definition: ECLShower.h:153
Belle2::ECLShower::getEnergyHighestCrystal
double getEnergyHighestCrystal() const
Get Highest Energy in Shower.
Definition: ECLShower.h:349
Belle2::ECLShower::getHypothesisId
int getHypothesisId() const
Get Hypothesis Id.
Definition: ECLShower.h:279
Belle2::ECLShower::getLateralEnergy
double getLateralEnergy() const
Get Lateral Energy in Shower.
Definition: ECLShower.h:354
Belle2::ECLShower::setShowerId
void setShowerId(int ShowerId)
Set Shower ID.
Definition: ECLShower.h:129
Belle2::ECLShower::getCovarianceMatrixAsArray
void getCovarianceMatrixAsArray(double covArray[6]) const
Get Error Array for Energy->[0], Phi->[2], Theta->[5].
Definition: ECLShower.h:314
Belle2::ECLShower::getShowerId
int getShowerId() const
Get Shower Id.
Definition: ECLShower.h:269
Belle2::ECLShower::setStatus
void setStatus(int Status)
Set Status.
Definition: ECLShower.h:125
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:168
Belle2::ECLShower::setDeltaTime99
void setDeltaTime99(double TimeReso)
Set Time Resolution.
Definition: ECLShower.h:181
Belle2::ECLShower::getSecondMoment
double getSecondMoment() const
Get second moment.
Definition: ECLShower.h:394
Belle2::ECLShower::getUncertaintyPhi
double getUncertaintyPhi() const
Get Error of phi.
Definition: ECLShower.h:334
Belle2::ECLShower::getIsTrack
bool getIsTrack() const
Get if matched with a Track.
Definition: ECLShower.h:259
Belle2::ECLShower::setIsTrack
void setIsTrack(bool val)
Set Match with Track.
Definition: ECLShower.h:121
Belle2::ECLShower::getTrkDepth
double getTrkDepth() const
path on track extrapolation to POCA to average cluster direction
Definition: ECLShower.h:364
Belle2::ECLShower::getTheta
double getTheta() const
Get Theta.
Definition: ECLShower.h:299
Belle2::ECLShower::getE9oE21
double getE9oE21() const
Get energy ratio E9oE21.
Definition: ECLShower.h:404
Belle2::ECLShower::getStatus
int getStatus() const
Get Status.
Definition: ECLShower.h:264
Belle2::ECLShower::setR
void setR(double R)
Set R.
Definition: ECLShower.h:161
Belle2::ECLShower::setLateralEnergy
void setLateralEnergy(double lateralEnergy)
Set Lateral Energy.
Definition: ECLShower.h:189
Belle2::ECLShower::getNumberOfCrystals
double getNumberOfCrystals() const
Get NofCrystals.
Definition: ECLShower.h:374
Belle2::ECLShower::setAbsZernike40
void setAbsZernike40(double absZernike40)
Set absolute value of Zernike moment 40.
Definition: ECLShower.h:209
Belle2::ECLShower::setConnectedRegionId
void setConnectedRegionId(int connectedRegionId)
Set Connected region ID.
Definition: ECLShower.h:133
Belle2::ECLShower::getMomentum
TVector3 getMomentum() const
The method to get return TVector3 Momentum.
Definition: ECLShower.h:439
Belle2::ECLShower::setEnergy
void setEnergy(double Energy)
Set Energy.
Definition: ECLShower.h:145
Belle2::ECLShower::getShowerDepth
double getShowerDepth() const
path on track extrapolation to POCA to average cluster direction
Definition: ECLShower.h:369
Belle2::ECLShower::getZernikeMVA
double getZernikeMVA() const
Get Zernike MVA.
Definition: ECLShower.h:389
Belle2::ECLShower::getPhi
double getPhi() const
Get Phi.
Definition: ECLShower.h:304
Belle2::ECLShower::setE9oE21
void setE9oE21(double E9oE21)
Set energy ration E9 over E21.
Definition: ECLShower.h:229
Belle2::ECLShower::setShowerDepth
void setShowerDepth(double showerDepth)
Set path on the average cluster direction.
Definition: ECLShower.h:201
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:193
Belle2::ECLShower::getEnergy
double getEnergy() const
Get Energy.
Definition: ECLShower.h:289
Belle2::ECLShowerTest
Set up a few arrays and objects in the datastore.
Definition: eclShower.cc:14
Belle2::ECLShower::setZernikeMVA
void setZernikeMVA(double zernikeMVA)
SetZernike MVA value.
Definition: ECLShower.h:217
Belle2::ECLShower::setSecondMoment
void setSecondMoment(double secondMoment)
Set second moment.
Definition: ECLShower.h:221
Belle2::ECLShower::setNumberOfCrystals
void setNumberOfCrystals(double nofCrystals)
Set sum of weights of crystals.
Definition: ECLShower.h:205
Belle2::ECLShower::getUncertaintyEnergy
double getUncertaintyEnergy() const
Get Error of Energy.
Definition: ECLShower.h:324
Belle2::ECLShower::getDeltaTime99
double getDeltaTime99() const
Get Time Resolution.
Definition: ECLShower.h:344
Belle2::ECLShower::setTime
void setTime(double Time)
Set Time.
Definition: ECLShower.h:177
Belle2::ECLShower::getAbsZernike51
double getAbsZernike51() const
Get absolute value of Zernike moment 51.
Definition: ECLShower.h:384
Belle2::ECLShower::setE1oE9
void setE1oE9(double E1oE9)
Set energy ration E1 over E9.
Definition: ECLShower.h:225
Belle2::ECLShower::setEnergyHighestCrystal
void setEnergyHighestCrystal(double HighestEnergy)
Set Highest Energy.
Definition: ECLShower.h:185
Belle2::ECLShower::getAbsZernike40
double getAbsZernike40() const
Get absolute value of Zernike moment 40.
Definition: ECLShower.h:379
Belle2::ECLShower::getE1oE9
double getE1oE9() const
Get energy ratio E1oE9.
Definition: ECLShower.h:399
Belle2::ECLShower::getUncertaintyTheta
double getUncertaintyTheta() const
Get Error of theta.
Definition: ECLShower.h:329
Belle2::ECLShower::getTime
double getTime() const
Get Time.
Definition: ECLShower.h:339
Belle2::ECLShower::setPhi
void setPhi(double Phi)
Set Phi (rad)
Definition: ECLShower.h:157
Belle2::ECLShower::setHypothesisId
void setHypothesisId(int hypothesisId)
Set Hypothesis identifier.
Definition: ECLShower.h:137
Belle2::ECLShower::setAbsZernike51
void setAbsZernike51(double absZernike51)
Set absolute value of Zernike moment 51.
Definition: ECLShower.h:213
Belle2::ECLShower::setTrkDepth
void setTrkDepth(double trkDepth)
Set path on track extrapolation line to POCA to average cluster direction.
Definition: ECLShower.h:197
Belle2::TEST_F
TEST_F(ECLShowerTest, SettersAndGetters)
Test Setters and Getter.
Definition: eclShower.cc:65
Belle2::ECLShower::getR
double getR() const
Get R.
Definition: ECLShower.h:309
Belle2::ECLShower::getConnectedRegionId
int getConnectedRegionId() const
Get Connected region Id.
Definition: ECLShower.h:274
Belle2::ECLShower::getMinTrkDistance
double getMinTrkDistance() const
Get distance to closest Track.
Definition: ECLShower.h:359
Belle2::ECLShower
Class to store ECL Showers.
Definition: ECLShower.h:42