LDMX Software
EcalVetoResult.cxx
1
3
5
6namespace ldmx {
8
10
12 passesVeto_ = false;
13
14 nReadoutHits_ = 0;
15 summedDet_ = 0;
16 summedTightIso_ = 0;
17 maxCellDep_ = 0;
18 showerRMS_ = 0;
19 xStd_ = 0;
20 yStd_ = 0;
21 avgLayerHit_ = 0;
22 stdLayerHit_ = 0;
23 deepestLayerHit_ = 0;
24 ecalBackEnergy_ = 0;
25 // MIP tracking
29 nNearPhHits_ = 0;
31 epAng_ = 0;
33 epSep_ = 0;
34 epDot_ = 0;
36
37 electronContainmentEnergy_.clear();
38 photonContainmentEnergy_.clear();
39 outsideContainmentEnergy_.clear();
40 outsideContainmentNHits_.clear();
41 outsideContainmentXStd_.clear();
42 outsideContainmentYStd_.clear();
43
44 energySeg_.clear();
45 xMeanSeg_.clear();
46 yMeanSeg_.clear();
47 xStdSeg_.clear();
48 yStdSeg_.clear();
49 layerMeanSeg_.clear();
50 layerStdSeg_.clear();
51
52 eContEnergy_.clear();
53 eContXMean_.clear();
54 eContYMean_.clear();
55 gContEnergy_.clear();
56 gContNHits_.clear();
57 gContXMean_.clear();
58 gContYMean_.clear();
59 oContEnergy_.clear();
60 oContNHits_.clear();
61 oContXMean_.clear();
62 oContYMean_.clear();
63 oContXStd_.clear();
64 oContYStd_.clear();
65 oContLayerMean_.clear();
66 oContLayerStd_.clear();
67
68 discValue_ = 0;
69
70 recoilPx_ = -9999;
71 recoilPy_ = -9999;
72 recoilPz_ = -9999;
73 recoilX_ = -9999;
74 recoilY_ = -9999;
75
76 ecalLayerEdepReadout_.clear();
77}
78
80 int nReadoutHits, int deepestLayerHit, float summedDet,
81 float summedTightIso, float maxCellDep, float showerRMS, float xStd,
82 float yStd, float avgLayerHit, float stdLayerHit, float ecalBackEnergy,
83 int nStraightTracks, int nLinregTracks, int firstNearPhLayer,
84 int nNearPhHits, int photonTerritoryHits, float epAng, float epAngAtTarget,
85 float epSep, float epDot, float epDotAtTarget,
86
87 std::vector<float> electronContainmentEnergy,
88 std::vector<float> photonContainmentEnergy,
89 std::vector<float> outsideContainmentEnergy,
90 std::vector<int> outsideContainmentNHits,
91 std::vector<float> outsideContainmentXStd,
92 std::vector<float> outsideContainmentYStd,
93
94 std::vector<float> energySeg, std::vector<float> xMeanSeg,
95 std::vector<float> yMeanSeg, std::vector<float> xStdSeg,
96 std::vector<float> yStdSeg, std::vector<float> layerMeanSeg,
97 std::vector<float> layerStdSeg,
98
99 std::vector<std::vector<float>> eContEnergy,
100 std::vector<std::vector<float>> eContXMean,
101 std::vector<std::vector<float>> eContYMean,
102 std::vector<std::vector<float>> gContEnergy,
103 std::vector<std::vector<int>> gContNHits,
104 std::vector<std::vector<float>> gContXMean,
105 std::vector<std::vector<float>> gContYMean,
106 std::vector<std::vector<float>> oContEnergy,
107 std::vector<std::vector<int>> oContNHits,
108 std::vector<std::vector<float>> oContXMean,
109 std::vector<std::vector<float>> oContYMean,
110 std::vector<std::vector<float>> oContXStd,
111 std::vector<std::vector<float>> oContYStd,
112 std::vector<std::vector<float>> oContLayerMean,
113 std::vector<std::vector<float>> oContLayerStd,
114
115 std::vector<float> EcalLayerEdepReadout, std::array<float, 3> recoilP,
116 std::array<float, 3> recoilPos) {
117 nReadoutHits_ = nReadoutHits;
118 summedDet_ = summedDet;
119 summedTightIso_ = summedTightIso;
120 maxCellDep_ = maxCellDep;
121 showerRMS_ = showerRMS;
122 xStd_ = xStd;
123 yStd_ = yStd;
124 avgLayerHit_ = avgLayerHit;
125 stdLayerHit_ = stdLayerHit;
126 deepestLayerHit_ = deepestLayerHit;
127 ecalBackEnergy_ = ecalBackEnergy;
128 // MIP tracking
129 nStraightTracks_ = nStraightTracks;
130 nLinregTracks_ = nLinregTracks;
131 firstNearPhLayer_ = firstNearPhLayer;
132 nNearPhHits_ = nNearPhHits;
133 photonTerritoryHits_ = photonTerritoryHits;
134 epAng_ = epAng;
135 epAngAtTarget_ = epAngAtTarget;
136 epSep_ = epSep;
137 epDot_ = epDot;
138 epDotAtTarget_ = epDotAtTarget;
139
140 electronContainmentEnergy_ = electronContainmentEnergy;
141 photonContainmentEnergy_ = photonContainmentEnergy;
142 outsideContainmentEnergy_ = outsideContainmentEnergy;
143 outsideContainmentNHits_ = outsideContainmentNHits;
144 outsideContainmentXStd_ = outsideContainmentXStd;
145 outsideContainmentYStd_ = outsideContainmentYStd;
146
147 energySeg_ = energySeg;
148 xMeanSeg_ = xMeanSeg;
149 yMeanSeg_ = yMeanSeg;
150 xStdSeg_ = xStdSeg;
151 yStdSeg_ = yStdSeg;
152 layerMeanSeg_ = layerMeanSeg;
153 layerStdSeg_ = layerStdSeg;
154
155 eContEnergy_ = eContEnergy;
156 eContXMean_ = eContXMean;
157 eContYMean_ = eContYMean;
158 gContEnergy_ = gContEnergy;
159 gContNHits_ = gContNHits;
160 gContXMean_ = gContXMean;
161 gContYMean_ = gContYMean;
162 oContEnergy_ = oContEnergy;
163 oContNHits_ = oContNHits;
164 oContXMean_ = oContXMean;
165 oContYMean_ = oContYMean;
166 oContXStd_ = oContXStd;
167 oContYStd_ = oContYStd;
168 oContLayerMean_ = oContLayerMean;
169 oContLayerStd_ = oContLayerStd;
170
171 // discvalue not set here
172
173 if (!recoilP.empty()) {
174 recoilPx_ = recoilP[0];
175 recoilPy_ = recoilP[1];
176 recoilPz_ = recoilP[2];
177 }
178 if (!recoilPos.empty()) {
179 recoilX_ = recoilPos[0];
180 recoilY_ = recoilPos[1];
181 }
182
183 ecalLayerEdepReadout_ = EcalLayerEdepReadout;
184}
185
187 std::cout << "[ EcalVetoResult ]:\n"
188 << "\t Passes veto : " << passesVeto_ << "\n"
189 << std::endl;
190}
191} // namespace ldmx
Class used to encapsulate the results obtained from EcalVetoProcessor.
int firstNearPhLayer_
Earliest ECal layer in which a hit is found near the projected photon trajectory.
EcalVetoResult()
Constructor.
float recoilPy_
py of recoil electron at the Ecal face.
float recoilY_
y position of recoil electron at the Ecal face.
float discValue_
discriminator value from the BDT
void Clear()
Reset the object.
float epDotAtTarget_
Dot product of the photon and electron momenta unit vectors as at Target.
float epSep_
Distance between the projected photon and electron trajectories at the ECal face.
float epDot_
Dot product of the photon and electron momenta unit vectors as at ECAL.
int nNearPhHits_
Number of hits near the photon trajectory.
bool passesVeto_
Flag indicating whether the event is vetoed by the Ecal.
float recoilPx_
px of recoil electron at the Ecal face.
void setVariables(int nReadoutHits, int deepestLayerHit, float summedDet, float summedTightIso, float maxCellDep, float showerRMS, float xStd, float yStd, float avgLayerHit, float stdLayerHit, float ecalBackEnergy, int nStraightTracks, int nLinregTracks, int firstNearPhLayer, int nNearPhHits, int photonTerritoryHits, float epAng, float epAngAtTarget, float epSep, float epDot, float epDotAtTarget, std::vector< float > electronContainmentEnergy, std::vector< float > photonContainmentEnergy, std::vector< float > outsideContainmentEnergy, std::vector< int > outsideContainmentNHits, std::vector< float > outsideContainmentXStd, std::vector< float > outsideContainmentYStd, std::vector< float > energySeg, std::vector< float > xMeanSeg, std::vector< float > yMeanSeg, std::vector< float > xStdSeg, std::vector< float > yStdSeg, std::vector< float > layerMeanSeg, std::vector< float > layerStdSeg, std::vector< std::vector< float > > eContEnergy, std::vector< std::vector< float > > eContXMean, std::vector< std::vector< float > > eContYMean, std::vector< std::vector< float > > gContEnergy, std::vector< std::vector< int > > gContNHits, std::vector< std::vector< float > > gContXMean, std::vector< std::vector< float > > gContYMean, std::vector< std::vector< float > > oContEnergy, std::vector< std::vector< int > > oContNHits, std::vector< std::vector< float > > oContXMean, std::vector< std::vector< float > > oContYMean, std::vector< std::vector< float > > oContXStd, std::vector< std::vector< float > > oContYStd, std::vector< std::vector< float > > oContLayerMean, std::vector< std::vector< float > > oContLayerStd, std::vector< float > EcalLayerEdepReadout, std::array< float, 3 > recoilP, std::array< float, 3 > recoilPos)
Set the sim particle and 'is findable' flag.
int nLinregTracks_
Number of "linreg" tracks found in the event.
void Print() const
Print the object.
float epAngAtTarget_
Angular separation between the projected photon and electron trajectories as projected at the target.
float epAng_
Angular separation between the projected photon and electron trajectories as projected at the ECAL.
float recoilPz_
py of recoil electron at the Ecal face.
float recoilX_
x position of recoil electron at the Ecal face.
virtual ~EcalVetoResult()
Destructor.
int photonTerritoryHits_
Number of hits in the photon territory.
int nStraightTracks_
Number of "straight" tracks found in the event.