Fork me on GitHub

source: git/classes/DelphesClasses.cc@ 10c0ebe

Last change on this file since 10c0ebe was 61dccd3, checked in by michele <michele.selvaggi@…>, 3 years ago

added charged deposit to calo, fix time calc in DR, add path length to tower

  • Property mode set to 100644
File size: 14.8 KB
RevLine 
[b443089]1/*
2 * Delphes: a framework for fast simulation of a generic collider experiment
3 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium
[1fa50c2]4 *
[b443089]5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
[1fa50c2]9 *
[b443089]10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
[1fa50c2]14 *
[b443089]15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18
[d7d2da3]19/**
20 *
21 * Definition of classes to be stored in the root tree.
22 * Function CompareXYZ sorts objects by the variable XYZ that MUST be
23 * present in the data members of the root tree class of the branch.
24 *
25 * \author P. Demin - UCL, Louvain-la-Neuve
26 *
27 */
28
29#include "classes/DelphesClasses.h"
30#include "classes/DelphesFactory.h"
31#include "classes/SortableObject.h"
32
33CompBase *GenParticle::fgCompare = 0;
34CompBase *Photon::fgCompare = CompPT<Photon>::Instance();
35CompBase *Electron::fgCompare = CompPT<Electron>::Instance();
36CompBase *Muon::fgCompare = CompPT<Muon>::Instance();
37CompBase *Jet::fgCompare = CompPT<Jet>::Instance();
38CompBase *Track::fgCompare = CompPT<Track>::Instance();
39CompBase *Tower::fgCompare = CompE<Tower>::Instance();
[4d7014e]40CompBase *ParticleFlowCandidate::fgCompare = CompE<ParticleFlowCandidate>::Instance();
[8f7db23]41CompBase *HectorHit::fgCompare = CompE<HectorHit>::Instance();
[3c46e17]42CompBase *Vertex::fgCompare = CompSumPT2<Vertex>::Instance();
[d7d2da3]43CompBase *Candidate::fgCompare = CompMomentumPt<Candidate>::Instance();
44
45//------------------------------------------------------------------------------
46
[2b3ef28]47TLorentzVector GenParticle::P4() const
[d7d2da3]48{
49 TLorentzVector vec;
50 vec.SetPxPyPzE(Px, Py, Pz, E);
51 return vec;
52}
53
54//------------------------------------------------------------------------------
55
[2b3ef28]56TLorentzVector MissingET::P4() const
[4ad7b96]57{
58 TLorentzVector vec;
59 vec.SetPtEtaPhiM(MET, Eta, Phi, 0.0);
60 return vec;
61}
62
63//------------------------------------------------------------------------------
64
[2b3ef28]65TLorentzVector Photon::P4() const
[d7d2da3]66{
67 TLorentzVector vec;
68 vec.SetPtEtaPhiM(PT, Eta, Phi, 0.0);
69 return vec;
70}
71
72//------------------------------------------------------------------------------
73
[2b3ef28]74TLorentzVector Electron::P4() const
[d7d2da3]75{
76 TLorentzVector vec;
77 vec.SetPtEtaPhiM(PT, Eta, Phi, 0.0);
78 return vec;
79}
80
81//------------------------------------------------------------------------------
82
[2b3ef28]83TLorentzVector Muon::P4() const
[d7d2da3]84{
85 TLorentzVector vec;
86 vec.SetPtEtaPhiM(PT, Eta, Phi, 0.0);
87 return vec;
88}
89
90//------------------------------------------------------------------------------
91
[2b3ef28]92TLorentzVector Jet::P4() const
[d7d2da3]93{
94 TLorentzVector vec;
95 vec.SetPtEtaPhiM(PT, Eta, Phi, Mass);
96 return vec;
97}
98
99//------------------------------------------------------------------------------
100
[2b3ef28]101TLorentzVector Track::P4() const
[d7d2da3]102{
103 TLorentzVector vec;
[9cc5aeb]104 vec.SetPtEtaPhiM(PT, Eta, Phi, Mass);
[d7d2da3]105 return vec;
106}
107
[2671df6]108//------------------------------------------------------------------------------
109
110TMatrixDSym Track::CovarianceMatrix() const
111{
112 TMatrixDSym Cv;
113 Cv.ResizeTo(5, 5);
[363e269]114
[2671df6]115 // convert diagonal term to original units
[363e269]116 Cv(0, 0)=TMath::Power(ErrorD0, 2.);
[2671df6]117 Cv(1, 1)=TMath::Power(ErrorPhi, 2.);
[363e269]118 Cv(2, 2)=TMath::Power(ErrorC, 2.);
119 Cv(3, 3)=TMath::Power(ErrorDZ, 2.);
[2671df6]120 Cv(4, 4)=TMath::Power(ErrorCtgTheta, 2.);
121
122 // off diagonal terms
123 Cv(0, 1)=ErrorD0Phi;
124 Cv(0, 2)=ErrorD0C;
125 Cv(0, 3)=ErrorD0DZ;
126 Cv(0, 4)=ErrorD0CtgTheta;
127 Cv(1, 2)=ErrorPhiC;
128 Cv(1, 3)=ErrorPhiDZ;
129 Cv(1, 4)=ErrorPhiCtgTheta;
130 Cv(2, 3)=ErrorCDZ;
131 Cv(2, 4)=ErrorCCtgTheta;
132 Cv(3, 4)=ErrorDZCtgTheta;
133
134 Cv(1, 0)=Cv(0, 1);
135 Cv(2, 0)=Cv(0, 2);
136 Cv(3, 0)=Cv(0, 3);
137 Cv(4, 0)=Cv(0, 4);
138 Cv(2, 1)=Cv(1, 2);
139 Cv(3, 1)=Cv(1, 3);
140 Cv(4, 1)=Cv(1, 4);
141 Cv(3, 2)=Cv(2, 3);
142 Cv(4, 2)=Cv(2, 4);
143 Cv(4, 3)=Cv(3, 4);
144
145 return Cv;
146}
147
148
[d7d2da3]149//------------------------------------------------------------------------------
150
[2b3ef28]151TLorentzVector Tower::P4() const
[d7d2da3]152{
153 TLorentzVector vec;
154 vec.SetPtEtaPhiM(ET, Eta, Phi, 0.0);
155 return vec;
156}
157
158//------------------------------------------------------------------------------
159
[4d7014e]160TLorentzVector ParticleFlowCandidate::P4() const
161{
162 TLorentzVector vec;
[9cc5aeb]163 vec.SetPtEtaPhiM(PT, Eta, Phi, Mass);
[4d7014e]164 return vec;
165}
166
167//------------------------------------------------------------------------------
168
[2671df6]169TMatrixDSym ParticleFlowCandidate::CovarianceMatrix() const
170{
171 TMatrixDSym Cv;
172 Cv.ResizeTo(5, 5);
[363e269]173
[2671df6]174 // convert diagonal term to original units
[363e269]175 Cv(0, 0)=TMath::Power(ErrorD0, 2.);
[2671df6]176 Cv(1, 1)=TMath::Power(ErrorPhi, 2.);
[363e269]177 Cv(2, 2)=TMath::Power(ErrorC, 2.);
178 Cv(3, 3)=TMath::Power(ErrorDZ, 2.);
[2671df6]179 Cv(4, 4)=TMath::Power(ErrorCtgTheta, 2.);
180
181 // off diagonal terms
182 Cv(0, 1)=ErrorD0Phi;
183 Cv(0, 2)=ErrorD0C;
184 Cv(0, 3)=ErrorD0DZ;
185 Cv(0, 4)=ErrorD0CtgTheta;
186 Cv(1, 2)=ErrorPhiC;
187 Cv(1, 3)=ErrorPhiDZ;
188 Cv(1, 4)=ErrorPhiCtgTheta;
189 Cv(2, 3)=ErrorCDZ;
190 Cv(2, 4)=ErrorCCtgTheta;
191 Cv(3, 4)=ErrorDZCtgTheta;
192
193 Cv(1, 0)=Cv(0, 1);
194 Cv(2, 0)=Cv(0, 2);
195 Cv(3, 0)=Cv(0, 3);
196 Cv(4, 0)=Cv(0, 4);
197 Cv(2, 1)=Cv(1, 2);
198 Cv(3, 1)=Cv(1, 3);
199 Cv(4, 1)=Cv(1, 4);
200 Cv(3, 2)=Cv(2, 3);
201 Cv(4, 2)=Cv(2, 4);
202 Cv(4, 3)=Cv(3, 4);
203
204 return Cv;
205}
206
207//------------------------------------------------------------------------------
208
[d7d2da3]209Candidate::Candidate() :
210 PID(0), Status(0), M1(-1), M2(-1), D1(-1), D2(-1),
211 Charge(0), Mass(0.0),
[5d2481f]212 IsPU(0), IsRecoPU(0), IsConstituent(0), IsFromConversion(0),
[fe0273c]213 Flavor(0), FlavorAlgo(0), FlavorPhys(0),
214 BTag(0), BTagAlgo(0), BTagPhys(0),
[61dccd3]215 TauTag(0), TauWeight(0.0), Eem(0.0), Ehad(0.0), Etrk(0.0),
[d7d2da3]216 DeltaEta(0.0), DeltaPhi(0.0),
217 Momentum(0.0, 0.0, 0.0, 0.0),
218 Position(0.0, 0.0, 0.0, 0.0),
[2118a6a]219 InitialPosition(0.0, 0.0, 0.0, 0.0),
[1a4956e]220 PositionError(0.0, 0.0, 0.0, 0.0),
[d7d2da3]221 Area(0.0, 0.0, 0.0, 0.0),
[3051ea17]222 TrackCovariance(5),
[80306e6]223 L(0),
[341014c]224 D0(0), ErrorD0(0),
225 DZ(0), ErrorDZ(0),
226 P(0), ErrorP(0),
[3051ea17]227 C(0), ErrorC(0),
[341014c]228 PT(0), ErrorPT(0),
229 CtgTheta(0), ErrorCtgTheta(0),
230 Phi(0), ErrorPhi(0),
231 Xd(0), Yd(0), Zd(0),
[a95da74]232 Nclusters(0.0),
[781af69]233 dNdx(0.0),
[a98c7ef]234 TrackResolution(0),
[24d005f]235 NCharged(0),
236 NNeutrals(0),
[c614dd7]237 NeutralEnergyFraction(0), // charged energy fraction
[363e269]238 ChargedEnergyFraction(0), // neutral energy fraction
[24d005f]239 Beta(0),
240 BetaStar(0),
241 MeanSqDeltaR(0),
[da00c35]242 PTD(0),
[839deb7]243 NTimeHits(-1),
[b62c2da]244 IsolationVar(-999),
245 IsolationVarRhoCorr(-999),
246 SumPtCharged(-999),
247 SumPtNeutral(-999),
248 SumPtChargedPU(-999),
249 SumPt(-999),
[1a4956e]250 ClusterIndex(-1), ClusterNDF(0), ClusterSigma(0), SumPT2(0), BTVSumPT2(0), GenDeltaZ(0), GenSumPT2(0),
[839deb7]251 NSubJetsTrimmed(0),
252 NSubJetsPruned(0),
253 NSubJetsSoftDropped(0),
[e9c0d73]254 ExclYmerge23(0),
255 ExclYmerge34(0),
256 ExclYmerge45(0),
257 ExclYmerge56(0),
[7e83689]258 ParticleDensity(0),
[da00c35]259 fFactory(0),
260 fArray(0)
[d7d2da3]261{
[8d200a6]262 int i;
[d7d2da3]263 Edges[0] = 0.0;
264 Edges[1] = 0.0;
265 Edges[2] = 0.0;
266 Edges[3] = 0.0;
[24d005f]267 FracPt[0] = 0.0;
268 FracPt[1] = 0.0;
269 FracPt[2] = 0.0;
270 FracPt[3] = 0.0;
271 FracPt[4] = 0.0;
[63178fb]272 Tau[0] = 0.0;
273 Tau[1] = 0.0;
274 Tau[2] = 0.0;
275 Tau[3] = 0.0;
276 Tau[4] = 0.0;
[ba75867]277
278 SoftDroppedJet.SetXYZT(0.0, 0.0, 0.0, 0.0);
279 SoftDroppedSubJet1.SetXYZT(0.0, 0.0, 0.0, 0.0);
280 SoftDroppedSubJet2.SetXYZT(0.0, 0.0, 0.0, 0.0);
281
[8d200a6]282 for(i = 0; i < 5; ++i)
283 {
284 TrimmedP4[i].SetXYZT(0.0, 0.0, 0.0, 0.0);
285 PrunedP4[i].SetXYZT(0.0, 0.0, 0.0, 0.0);
286 SoftDroppedP4[i].SetXYZT(0.0, 0.0, 0.0, 0.0);
287 }
[d7d2da3]288}
289
290//------------------------------------------------------------------------------
291
292void Candidate::AddCandidate(Candidate *object)
293{
294 if(!fArray) fArray = fFactory->NewArray();
295 fArray->Add(object);
296}
297
298//------------------------------------------------------------------------------
299
300TObjArray *Candidate::GetCandidates()
301{
302 if(!fArray) fArray = fFactory->NewArray();
303 return fArray;
304}
305
306//------------------------------------------------------------------------------
307
308Bool_t Candidate::Overlaps(const Candidate *object) const
309{
310 const Candidate *candidate;
311
312 if(object->GetUniqueID() == GetUniqueID()) return kTRUE;
313
314 if(fArray)
315 {
316 TIter it(fArray);
317 while((candidate = static_cast<Candidate *>(it.Next())))
318 {
319 if(candidate->Overlaps(object)) return kTRUE;
320 }
321 }
322
323 if(object->fArray)
324 {
325 TIter it(object->fArray);
326 while((candidate = static_cast<Candidate *>(it.Next())))
327 {
328 if(candidate->Overlaps(this)) return kTRUE;
329 }
330 }
331
332 return kFALSE;
333}
334
335//------------------------------------------------------------------------------
336
337TObject *Candidate::Clone(const char *newname) const
338{
339 Candidate *object = fFactory->NewCandidate();
340 Copy(*object);
341 return object;
342}
343
344//------------------------------------------------------------------------------
345
346void Candidate::Copy(TObject &obj) const
347{
348 Candidate &object = static_cast<Candidate &>(obj);
349 Candidate *candidate;
350
351 object.PID = PID;
352 object.Status = Status;
353 object.M1 = M1;
354 object.M2 = M2;
355 object.D1 = D1;
356 object.D2 = D2;
357 object.Charge = Charge;
358 object.Mass = Mass;
359 object.IsPU = IsPU;
[84733ae]360 object.IsRecoPU = IsRecoPU;
[d7d2da3]361 object.IsConstituent = IsConstituent;
[5d2481f]362 object.IsFromConversion = IsFromConversion;
[2118a6a]363 object.ClusterIndex = ClusterIndex;
364 object.ClusterNDF = ClusterNDF;
365 object.ClusterSigma = ClusterSigma;
366 object.SumPT2 = SumPT2;
367 object.BTVSumPT2 = BTVSumPT2;
368 object.GenDeltaZ = GenDeltaZ;
369 object.GenSumPT2 = GenSumPT2;
[fe0273c]370 object.Flavor = Flavor;
371 object.FlavorAlgo = FlavorAlgo;
372 object.FlavorPhys = FlavorPhys;
[d7d2da3]373 object.BTag = BTag;
[edf10ba]374 object.BTagAlgo = BTagAlgo;
[fe0273c]375 object.BTagPhys = BTagPhys;
[d7d2da3]376 object.TauTag = TauTag;
[7429c6a]377 object.TauWeight = TauWeight;
[d7d2da3]378 object.Eem = Eem;
379 object.Ehad = Ehad;
[61dccd3]380 object.Etrk = Etrk;
[d7d2da3]381 object.Edges[0] = Edges[0];
382 object.Edges[1] = Edges[1];
383 object.Edges[2] = Edges[2];
384 object.Edges[3] = Edges[3];
385 object.DeltaEta = DeltaEta;
386 object.DeltaPhi = DeltaPhi;
387 object.Momentum = Momentum;
388 object.Position = Position;
[2118a6a]389 object.InitialPosition = InitialPosition;
390 object.PositionError = PositionError;
[43c646a]391 object.Area = Area;
[80306e6]392 object.L = L;
[28c722a]393 object.ErrorT = ErrorT;
[80306e6]394 object.D0 = D0;
395 object.ErrorD0 = ErrorD0;
396 object.DZ = DZ;
397 object.ErrorDZ = ErrorDZ;
398 object.P = P;
399 object.ErrorP = ErrorP;
[3051ea17]400 object.C = C;
401 object.ErrorC = ErrorC;
[80306e6]402 object.PT = PT;
403 object.ErrorPT = ErrorPT;
[341014c]404 object.CtgTheta = CtgTheta;
[80306e6]405 object.ErrorCtgTheta = ErrorCtgTheta;
406 object.Phi = Phi;
[341014c]407 object.ErrorPhi = ErrorPhi;
[a0431dc]408 object.Xd = Xd;
409 object.Yd = Yd;
410 object.Zd = Zd;
[a95da74]411 object.Nclusters = Nclusters;
[781af69]412 object.dNdx = dNdx;
[a98c7ef]413 object.TrackResolution = TrackResolution;
[24d005f]414 object.NCharged = NCharged;
415 object.NNeutrals = NNeutrals;
[c614dd7]416 object.NeutralEnergyFraction = NeutralEnergyFraction;
417 object.ChargedEnergyFraction = ChargedEnergyFraction;
[24d005f]418 object.Beta = Beta;
419 object.BetaStar = BetaStar;
420 object.MeanSqDeltaR = MeanSqDeltaR;
421 object.PTD = PTD;
[839deb7]422 object.NTimeHits = NTimeHits;
[b62c2da]423 object.IsolationVar = IsolationVar;
424 object.IsolationVarRhoCorr = IsolationVarRhoCorr;
425 object.SumPtCharged = SumPtCharged;
426 object.SumPtNeutral = SumPtNeutral;
427 object.SumPtChargedPU = SumPtChargedPU;
428 object.SumPt = SumPt;
[ab3bdd9]429 object.ClusterIndex = ClusterIndex;
430 object.ClusterNDF = ClusterNDF;
[341014c]431 object.ClusterSigma = ClusterSigma;
[ab3bdd9]432 object.SumPT2 = SumPT2;
[341014c]433
[24d005f]434 object.FracPt[0] = FracPt[0];
435 object.FracPt[1] = FracPt[1];
436 object.FracPt[2] = FracPt[2];
437 object.FracPt[3] = FracPt[3];
438 object.FracPt[4] = FracPt[4];
[63178fb]439 object.Tau[0] = Tau[0];
440 object.Tau[1] = Tau[1];
441 object.Tau[2] = Tau[2];
442 object.Tau[3] = Tau[3];
443 object.Tau[4] = Tau[4];
[839deb7]444
[de6d698]445 object.TrimmedP4[0] = TrimmedP4[0];
446 object.TrimmedP4[1] = TrimmedP4[1];
447 object.TrimmedP4[2] = TrimmedP4[2];
448 object.TrimmedP4[3] = TrimmedP4[3];
449 object.TrimmedP4[4] = TrimmedP4[4];
450 object.PrunedP4[0] = PrunedP4[0];
451 object.PrunedP4[1] = PrunedP4[1];
452 object.PrunedP4[2] = PrunedP4[2];
453 object.PrunedP4[3] = PrunedP4[3];
454 object.PrunedP4[4] = PrunedP4[4];
455 object.SoftDroppedP4[0] = SoftDroppedP4[0];
456 object.SoftDroppedP4[1] = SoftDroppedP4[1];
457 object.SoftDroppedP4[2] = SoftDroppedP4[2];
458 object.SoftDroppedP4[3] = SoftDroppedP4[3];
459 object.SoftDroppedP4[4] = SoftDroppedP4[4];
460
[edf10ba]461 object.NSubJetsTrimmed = NSubJetsTrimmed;
462 object.NSubJetsPruned = NSubJetsPruned;
[de6d698]463 object.NSubJetsSoftDropped = NSubJetsSoftDropped;
[e4c3fef]464
[341014c]465 object.SoftDroppedJet = SoftDroppedJet;
[ba75867]466 object.SoftDroppedSubJet1 = SoftDroppedSubJet1;
467 object.SoftDroppedSubJet2 = SoftDroppedSubJet2;
[3051ea17]468 object.TrackCovariance = TrackCovariance;
[d7d2da3]469 object.fFactory = fFactory;
470 object.fArray = 0;
471
[839deb7]472 // copy cluster timing info
473 copy(ECalEnergyTimePairs.begin(), ECalEnergyTimePairs.end(), back_inserter(object.ECalEnergyTimePairs));
[3db5282]474
[d7d2da3]475 if(fArray && fArray->GetEntriesFast() > 0)
476 {
477 TIter itArray(fArray);
478 TObjArray *array = object.GetCandidates();
479 while((candidate = static_cast<Candidate *>(itArray.Next())))
480 {
481 array->Add(candidate);
482 }
483 }
484}
485
486//------------------------------------------------------------------------------
487
[341014c]488void Candidate::Clear(Option_t *option)
[d7d2da3]489{
[8d200a6]490 int i;
[d7d2da3]491 SetUniqueID(0);
492 ResetBit(kIsReferenced);
493 PID = 0;
494 Status = 0;
[341014c]495 M1 = -1;
496 M2 = -1;
497 D1 = -1;
498 D2 = -1;
[d7d2da3]499 Charge = 0;
500 Mass = 0.0;
501 IsPU = 0;
[d759c46]502 IsRecoPU = 0;
[d7d2da3]503 IsConstituent = 0;
[5d2481f]504 IsFromConversion = 0;
[fe0273c]505 Flavor = 0;
506 FlavorAlgo = 0;
507 FlavorPhys = 0;
[d7d2da3]508 BTag = 0;
[edf10ba]509 BTagAlgo = 0;
[fe0273c]510 BTagPhys = 0;
[d7d2da3]511 TauTag = 0;
[7429c6a]512 TauWeight = 0.0;
[d7d2da3]513 Eem = 0.0;
514 Ehad = 0.0;
[61dccd3]515 Etrk = 0.0;
[d7d2da3]516 Edges[0] = 0.0;
517 Edges[1] = 0.0;
518 Edges[2] = 0.0;
519 Edges[3] = 0.0;
520 DeltaEta = 0.0;
521 DeltaPhi = 0.0;
522 Momentum.SetXYZT(0.0, 0.0, 0.0, 0.0);
523 Position.SetXYZT(0.0, 0.0, 0.0, 0.0);
[80306e6]524 InitialPosition.SetXYZT(0.0, 0.0, 0.0, 0.0);
[d7d2da3]525 Area.SetXYZT(0.0, 0.0, 0.0, 0.0);
[3051ea17]526 TrackCovariance.Zero();
[80306e6]527 L = 0.0;
[28c722a]528 ErrorT = 0.0;
[341014c]529 D0 = 0.0;
[80306e6]530 ErrorD0 = 0.0;
531 DZ = 0.0;
532 ErrorDZ = 0.0;
[341014c]533 P = 0.0;
534 ErrorP = 0.0;
[3051ea17]535 C = 0.0;
536 ErrorC = 0.0;
[80306e6]537 PT = 0.0;
538 ErrorPT = 0.0;
539 CtgTheta = 0.0;
540 ErrorCtgTheta = 0.0;
541 Phi = 0.0;
542 ErrorPhi = 0.0;
[a0431dc]543 Xd = 0.0;
544 Yd = 0.0;
545 Zd = 0.0;
[a95da74]546 Nclusters = 0.0;
[781af69]547 dNdx = 0.0;
[a98c7ef]548 TrackResolution = 0.0;
[24d005f]549 NCharged = 0;
550 NNeutrals = 0;
551 Beta = 0.0;
552 BetaStar = 0.0;
553 MeanSqDeltaR = 0.0;
554 PTD = 0.0;
[839deb7]555
556 NTimeHits = 0;
557 ECalEnergyTimePairs.clear();
558
[b62c2da]559 IsolationVar = -999;
560 IsolationVarRhoCorr = -999;
561 SumPtCharged = -999;
562 SumPtNeutral = -999;
563 SumPtChargedPU = -999;
564 SumPt = -999;
[839deb7]565
[ab3bdd9]566 ClusterIndex = -1;
567 ClusterNDF = -99;
[341014c]568 ClusterSigma = 0.0;
[ab3bdd9]569 SumPT2 = 0.0;
570 BTVSumPT2 = 0.0;
571 GenDeltaZ = 0.0;
[341014c]572 GenSumPT2 = 0.0;
573
[24d005f]574 FracPt[0] = 0.0;
575 FracPt[1] = 0.0;
576 FracPt[2] = 0.0;
577 FracPt[3] = 0.0;
578 FracPt[4] = 0.0;
[63178fb]579 Tau[0] = 0.0;
580 Tau[1] = 0.0;
581 Tau[2] = 0.0;
582 Tau[3] = 0.0;
583 Tau[4] = 0.0;
[839deb7]584
[ba75867]585 SoftDroppedJet.SetXYZT(0.0, 0.0, 0.0, 0.0);
586 SoftDroppedSubJet1.SetXYZT(0.0, 0.0, 0.0, 0.0);
587 SoftDroppedSubJet2.SetXYZT(0.0, 0.0, 0.0, 0.0);
588
[8d200a6]589 for(i = 0; i < 5; ++i)
590 {
591 TrimmedP4[i].SetXYZT(0.0, 0.0, 0.0, 0.0);
[839deb7]592 PrunedP4[i].SetXYZT(0.0, 0.0, 0.0, 0.0);
[8d200a6]593 SoftDroppedP4[i].SetXYZT(0.0, 0.0, 0.0, 0.0);
594 }
595
[edf10ba]596 NSubJetsTrimmed = 0;
597 NSubJetsPruned = 0;
[de6d698]598 NSubJetsSoftDropped = 0;
[839deb7]599
[d7d2da3]600 fArray = 0;
601}
Note: See TracBrowser for help on using the repository browser.