Fork me on GitHub

source: git/classes/DelphesClasses.cc@ d2f86fe

ImprovedOutputFile Timing dual_readout llp
Last change on this file since d2f86fe was 43c646a, checked in by pavel <pavel@…>, 10 years ago

reorder variables in Candidate

  • Property mode set to 100644
File size: 6.9 KB
RevLine 
[d7d2da3]1
2/**
3 *
4 * Definition of classes to be stored in the root tree.
5 * Function CompareXYZ sorts objects by the variable XYZ that MUST be
6 * present in the data members of the root tree class of the branch.
7 *
8 * $Date: 2008-06-04 13:57:24 $
9 * $Revision: 1.1 $
10 *
11 *
12 * \author P. Demin - UCL, Louvain-la-Neuve
13 *
14 */
15
16#include "classes/DelphesClasses.h"
17
18#include "classes/DelphesFactory.h"
19#include "classes/SortableObject.h"
20
21CompBase *GenParticle::fgCompare = 0;
22CompBase *Photon::fgCompare = CompPT<Photon>::Instance();
23CompBase *Electron::fgCompare = CompPT<Electron>::Instance();
24CompBase *Muon::fgCompare = CompPT<Muon>::Instance();
25CompBase *Jet::fgCompare = CompPT<Jet>::Instance();
26CompBase *Track::fgCompare = CompPT<Track>::Instance();
27CompBase *Tower::fgCompare = CompE<Tower>::Instance();
[8f7db23]28CompBase *HectorHit::fgCompare = CompE<HectorHit>::Instance();
[d7d2da3]29CompBase *Candidate::fgCompare = CompMomentumPt<Candidate>::Instance();
30
31//------------------------------------------------------------------------------
32
33TLorentzVector GenParticle::P4()
34{
35 TLorentzVector vec;
36 vec.SetPxPyPzE(Px, Py, Pz, E);
37 return vec;
38}
39
40//------------------------------------------------------------------------------
41
[4ad7b96]42TLorentzVector MissingET::P4()
43{
44 TLorentzVector vec;
45 vec.SetPtEtaPhiM(MET, Eta, Phi, 0.0);
46 return vec;
47}
48
49//------------------------------------------------------------------------------
50
[d7d2da3]51TLorentzVector Photon::P4()
52{
53 TLorentzVector vec;
54 vec.SetPtEtaPhiM(PT, Eta, Phi, 0.0);
55 return vec;
56}
57
58//------------------------------------------------------------------------------
59
60TLorentzVector Electron::P4()
61{
62 TLorentzVector vec;
63 vec.SetPtEtaPhiM(PT, Eta, Phi, 0.0);
64 return vec;
65}
66
67//------------------------------------------------------------------------------
68
69TLorentzVector Muon::P4()
70{
71 TLorentzVector vec;
72 vec.SetPtEtaPhiM(PT, Eta, Phi, 0.0);
73 return vec;
74}
75
76//------------------------------------------------------------------------------
77
78TLorentzVector Jet::P4()
79{
80 TLorentzVector vec;
81 vec.SetPtEtaPhiM(PT, Eta, Phi, Mass);
82 return vec;
83}
84
85//------------------------------------------------------------------------------
86
87TLorentzVector Track::P4()
88{
89 TLorentzVector vec;
90 vec.SetPtEtaPhiM(PT, Eta, Phi, 0.0);
91 return vec;
92}
93
94//------------------------------------------------------------------------------
95
96TLorentzVector Tower::P4()
97{
98 TLorentzVector vec;
99 vec.SetPtEtaPhiM(ET, Eta, Phi, 0.0);
100 return vec;
101}
102
103//------------------------------------------------------------------------------
104
105Candidate::Candidate() :
106 PID(0), Status(0), M1(-1), M2(-1), D1(-1), D2(-1),
107 Charge(0), Mass(0.0),
108 IsPU(0), IsConstituent(0),
109 BTag(0), TauTag(0), Eem(0.0), Ehad(0.0),
110 DeltaEta(0.0), DeltaPhi(0.0),
111 Momentum(0.0, 0.0, 0.0, 0.0),
112 Position(0.0, 0.0, 0.0, 0.0),
113 Area(0.0, 0.0, 0.0, 0.0),
[43c646a]114 Dxy(0), SDxy(0), Xd(0), Yd(0), Zd(0),
[24d005f]115 NCharged(0),
116 NNeutrals(0),
117 Beta(0),
118 BetaStar(0),
119 MeanSqDeltaR(0),
[da00c35]120 PTD(0),
121 fFactory(0),
122 fArray(0)
[d7d2da3]123{
124 Edges[0] = 0.0;
125 Edges[1] = 0.0;
126 Edges[2] = 0.0;
127 Edges[3] = 0.0;
[24d005f]128 FracPt[0] = 0.0;
129 FracPt[1] = 0.0;
130 FracPt[2] = 0.0;
131 FracPt[3] = 0.0;
132 FracPt[4] = 0.0;
[63178fb]133 Tau[0] = 0.0;
134 Tau[1] = 0.0;
135 Tau[2] = 0.0;
136 Tau[3] = 0.0;
137 Tau[4] = 0.0;
[d7d2da3]138}
139
140//------------------------------------------------------------------------------
141
142void Candidate::AddCandidate(Candidate *object)
143{
144 if(!fArray) fArray = fFactory->NewArray();
145 fArray->Add(object);
146}
147
148//------------------------------------------------------------------------------
149
150TObjArray *Candidate::GetCandidates()
151{
152 if(!fArray) fArray = fFactory->NewArray();
153 return fArray;
154}
155
156//------------------------------------------------------------------------------
157
158Bool_t Candidate::Overlaps(const Candidate *object) const
159{
160 const Candidate *candidate;
161
162 if(object->GetUniqueID() == GetUniqueID()) return kTRUE;
163
164 if(fArray)
165 {
166 TIter it(fArray);
167 while((candidate = static_cast<Candidate *>(it.Next())))
168 {
169 if(candidate->Overlaps(object)) return kTRUE;
170 }
171 }
172
173 if(object->fArray)
174 {
175 TIter it(object->fArray);
176 while((candidate = static_cast<Candidate *>(it.Next())))
177 {
178 if(candidate->Overlaps(this)) return kTRUE;
179 }
180 }
181
182 return kFALSE;
183}
184
185
186//------------------------------------------------------------------------------
187
188TObject *Candidate::Clone(const char *newname) const
189{
190 Candidate *object = fFactory->NewCandidate();
191 Copy(*object);
192 return object;
193}
194
195//------------------------------------------------------------------------------
196
197void Candidate::Copy(TObject &obj) const
198{
199 Candidate &object = static_cast<Candidate &>(obj);
200 Candidate *candidate;
201
202 object.PID = PID;
203 object.Status = Status;
204 object.M1 = M1;
205 object.M2 = M2;
206 object.D1 = D1;
207 object.D2 = D2;
208 object.Charge = Charge;
209 object.Mass = Mass;
210 object.IsPU = IsPU;
211 object.IsConstituent = IsConstituent;
212 object.BTag = BTag;
213 object.TauTag = TauTag;
214 object.Eem = Eem;
215 object.Ehad = Ehad;
216 object.Edges[0] = Edges[0];
217 object.Edges[1] = Edges[1];
218 object.Edges[2] = Edges[2];
219 object.Edges[3] = Edges[3];
220 object.DeltaEta = DeltaEta;
221 object.DeltaPhi = DeltaPhi;
222 object.Momentum = Momentum;
223 object.Position = Position;
[43c646a]224 object.Area = Area;
[a0431dc]225 object.Dxy = Dxy;
226 object.SDxy = SDxy;
227 object.Xd = Xd;
228 object.Yd = Yd;
229 object.Zd = Zd;
[d7d2da3]230
[24d005f]231 object.NCharged = NCharged;
232 object.NNeutrals = NNeutrals;
233 object.Beta = Beta;
234 object.BetaStar = BetaStar;
235 object.MeanSqDeltaR = MeanSqDeltaR;
236 object.PTD = PTD;
237 object.FracPt[0] = FracPt[0];
238 object.FracPt[1] = FracPt[1];
239 object.FracPt[2] = FracPt[2];
240 object.FracPt[3] = FracPt[3];
241 object.FracPt[4] = FracPt[4];
[63178fb]242 object.Tau[0] = Tau[0];
243 object.Tau[1] = Tau[1];
244 object.Tau[2] = Tau[2];
245 object.Tau[3] = Tau[3];
246 object.Tau[4] = Tau[4];
[e4c3fef]247
[d7d2da3]248 object.fFactory = fFactory;
249 object.fArray = 0;
250
251 if(fArray && fArray->GetEntriesFast() > 0)
252 {
253 TIter itArray(fArray);
254 TObjArray *array = object.GetCandidates();
255 while((candidate = static_cast<Candidate *>(itArray.Next())))
256 {
257 array->Add(candidate);
258 }
259 }
260}
261
262//------------------------------------------------------------------------------
263
264void Candidate::Clear(Option_t* option)
265{
266 SetUniqueID(0);
267 ResetBit(kIsReferenced);
268 PID = 0;
269 Status = 0;
270 M1 = -1; M2 = -1; D1 = -1; D2 = -1;
271 Charge = 0;
272 Mass = 0.0;
273 IsPU = 0;
274 IsConstituent = 0;
275 BTag = 0;
276 TauTag = 0;
277 Eem = 0.0;
278 Ehad = 0.0;
279 Edges[0] = 0.0;
280 Edges[1] = 0.0;
281 Edges[2] = 0.0;
282 Edges[3] = 0.0;
283 DeltaEta = 0.0;
284 DeltaPhi = 0.0;
285 Momentum.SetXYZT(0.0, 0.0, 0.0, 0.0);
286 Position.SetXYZT(0.0, 0.0, 0.0, 0.0);
287 Area.SetXYZT(0.0, 0.0, 0.0, 0.0);
[a0431dc]288 Dxy = 0.0;
289 SDxy = 0.0;
290 Xd = 0.0;
291 Yd = 0.0;
292 Zd = 0.0;
[24d005f]293 NCharged = 0;
294 NNeutrals = 0;
295 Beta = 0.0;
296 BetaStar = 0.0;
297 MeanSqDeltaR = 0.0;
298 PTD = 0.0;
299 FracPt[0] = 0.0;
300 FracPt[1] = 0.0;
301 FracPt[2] = 0.0;
302 FracPt[3] = 0.0;
303 FracPt[4] = 0.0;
[63178fb]304 Tau[0] = 0.0;
305 Tau[1] = 0.0;
306 Tau[2] = 0.0;
307 Tau[3] = 0.0;
308 Tau[4] = 0.0;
[e4c3fef]309
[d7d2da3]310 fArray = 0;
311}
Note: See TracBrowser for help on using the repository browser.