ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/src/MetTools.cc
(Generate patch)

Comparing UserCode/MitPhysics/Utils/src/MetTools.cc (file contents):
Revision 1.10 by sixie, Thu Jul 7 20:22:19 2011 UTC vs.
Revision 1.13 by ceballos, Sat Jul 7 11:33:59 2012 UTC

# Line 13 | Line 13 | MetTools::MetTools(const MuonCol *fMuons
13  
14    float trackNumeratorX  =0, trackNumeratorY  =0;
15    float neutralNumeratorX=0, neutralNumeratorY=0;
16 +  float CHSNumeratorX  =0, CHSNumeratorY  =0, NHSNumeratorX  =0, NHSNumeratorY  =0;
17  
18    // muons Pt
19    for (UInt_t m = 0; m < fMuons->GetEntries(); ++m) {
# Line 23 | Line 24 | MetTools::MetTools(const MuonCol *fMuons
24    // PF candidates pT
25    for (UInt_t i=0; i<fPFCandidates->GetEntries(); ++i) {
26  
27 +    // CHS computation
28 +    if (fPFCandidates->At(i)->HasTrk()){
29 +        CHSNumeratorX -= fPFCandidates->At(i)->Px();
30 +        CHSNumeratorY -= fPFCandidates->At(i)->Py();
31 +    }
32 +    // NHS computation
33 +    if (fPFCandidates->At(i)->HasTrk() ||
34 +       (fPFCandidates->At(i)->AbsEta() < 3.0 && fPFCandidates->At(i)->Pt() > 4.0)){
35 +        NHSNumeratorX -= fPFCandidates->At(i)->Px();
36 +        NHSNumeratorY -= fPFCandidates->At(i)->Py();
37 +    }
38 +
39      // charged
40      if (fPFCandidates->At(i)->HasTrackerTrk()){
41  
# Line 55 | Line 68 | MetTools::MetTools(const MuonCol *fMuons
68  
69    fCorrectedMet = mithep::Met(trackNumeratorX+neutralNumeratorX, trackNumeratorY+neutralNumeratorY);
70    fCorrectedTrackMet = mithep::Met(trackNumeratorX, trackNumeratorY);
71 +  fCHSMet = mithep::Met(CHSNumeratorX, CHSNumeratorY);
72 +  fNHSMet = mithep::Met(NHSNumeratorX, NHSNumeratorY);
73   }
74  
75   MetTools::MetTools(const ElectronCol *fElectrons, const PFCandidateCol *fPFCandidates, const Vertex *fVertex,
# Line 62 | Line 77 | MetTools::MetTools(const ElectronCol *fE
77  
78    float trackNumeratorX  =0, trackNumeratorY  =0;
79    float neutralNumeratorX=0, neutralNumeratorY=0;
80 +  float CHSNumeratorX  =0, CHSNumeratorY  =0, NHSNumeratorX  =0, NHSNumeratorY  =0;
81  
82    // electrons Pt
83    for (UInt_t m = 0; m < fElectrons->GetEntries(); ++m) {
# Line 72 | Line 88 | MetTools::MetTools(const ElectronCol *fE
88    // PF candidates pT
89    for (UInt_t i=0; i<fPFCandidates->GetEntries(); ++i) {
90  
91 +    // CHS computation
92 +    if (fPFCandidates->At(i)->HasTrk()){
93 +        CHSNumeratorX -= fPFCandidates->At(i)->Px();
94 +        CHSNumeratorY -= fPFCandidates->At(i)->Py();
95 +    }
96 +    // NHS computation
97 +    if (fPFCandidates->At(i)->HasTrk() ||
98 +       (fPFCandidates->At(i)->AbsEta() < 3.0 && fPFCandidates->At(i)->Pt() > 4.0)){
99 +        NHSNumeratorX -= fPFCandidates->At(i)->Px();
100 +        NHSNumeratorY -= fPFCandidates->At(i)->Py();
101 +    }
102 +
103      // charged
104      if (fPFCandidates->At(i)->HasTrackerTrk() || fPFCandidates->At(i)->HasGsfTrk()){
105        bool isElectronTrack = false;
# Line 105 | Line 133 | MetTools::MetTools(const ElectronCol *fE
133  
134    fCorrectedMet = mithep::Met(trackNumeratorX+neutralNumeratorX, trackNumeratorY+neutralNumeratorY);
135    fCorrectedTrackMet = mithep::Met(trackNumeratorX, trackNumeratorY);
136 +  fCHSMet = mithep::Met(CHSNumeratorX, CHSNumeratorY);
137 +  fNHSMet = mithep::Met(NHSNumeratorX, NHSNumeratorY);
138   }
139  
140  
# Line 114 | Line 144 | MetTools::MetTools(const MuonCol *fMuons
144  
145    float trackNumeratorX  =0, trackNumeratorY  =0;
146    float neutralNumeratorX=0, neutralNumeratorY=0;
147 +  float CHSNumeratorX  =0, CHSNumeratorY  =0, NHSNumeratorX  =0, NHSNumeratorY  =0;
148  
149    // muons Pt
150    for (UInt_t m = 0; m < fMuons->GetEntries(); ++m) {
# Line 130 | Line 161 | MetTools::MetTools(const MuonCol *fMuons
161    // PF candidates pT
162    for (UInt_t i=0; i<fPFCandidates->GetEntries(); ++i) {
163      
164 +    // CHS computation
165 +    if (fPFCandidates->At(i)->HasTrk()){
166 +        CHSNumeratorX -= fPFCandidates->At(i)->Px();
167 +        CHSNumeratorY -= fPFCandidates->At(i)->Py();
168 +    }
169 +    // NHS computation
170 +    if (fPFCandidates->At(i)->HasTrk() ||
171 +       (fPFCandidates->At(i)->AbsEta() < 3.0 && fPFCandidates->At(i)->Pt() > 4.0)){
172 +        NHSNumeratorX -= fPFCandidates->At(i)->Px();
173 +        NHSNumeratorY -= fPFCandidates->At(i)->Py();
174 +    }
175 +
176      // jets
177      bool inTheJet = false;
178      for (UInt_t j = 0; j < pfJets->GetEntries(); ++j) {
# Line 175 | Line 218 | MetTools::MetTools(const MuonCol *fMuons
218  
219    fCorrectedMet = mithep::Met(trackNumeratorX+neutralNumeratorX, trackNumeratorY+neutralNumeratorY);
220    fCorrectedTrackMet = mithep::Met(trackNumeratorX, trackNumeratorY);
221 +  fCHSMet = mithep::Met(CHSNumeratorX, CHSNumeratorY);
222 +  fNHSMet = mithep::Met(NHSNumeratorX, NHSNumeratorY);
223   }
224  
225  
# Line 183 | Line 228 | MetTools::MetTools(const ElectronCol *fE
228  
229    float trackNumeratorX  =0, trackNumeratorY  =0;
230    float neutralNumeratorX=0, neutralNumeratorY=0;
231 +  float CHSNumeratorX  =0, CHSNumeratorY  =0, NHSNumeratorX  =0, NHSNumeratorY  =0;
232  
233    // electrons Pt
234    for (UInt_t m = 0; m < fElectrons->GetEntries(); ++m) {
# Line 199 | Line 245 | MetTools::MetTools(const ElectronCol *fE
245    // PF candidates pT
246    for (UInt_t i=0; i<fPFCandidates->GetEntries(); ++i) {
247  
248 +    // CHS computation
249 +    if (fPFCandidates->At(i)->HasTrk()){
250 +        CHSNumeratorX -= fPFCandidates->At(i)->Px();
251 +        CHSNumeratorY -= fPFCandidates->At(i)->Py();
252 +    }
253 +    // NHS computation
254 +    if (fPFCandidates->At(i)->HasTrk() ||
255 +       (fPFCandidates->At(i)->AbsEta() < 3.0 && fPFCandidates->At(i)->Pt() > 4.0)){
256 +        NHSNumeratorX -= fPFCandidates->At(i)->Px();
257 +        NHSNumeratorY -= fPFCandidates->At(i)->Py();
258 +    }
259 +
260      // jets
261      bool inTheJet = false;
262      for (UInt_t j = 0; j < pfJets->GetEntries(); ++j) {
# Line 245 | Line 303 | MetTools::MetTools(const ElectronCol *fE
303  
304    fCorrectedMet = mithep::Met(trackNumeratorX+neutralNumeratorX, trackNumeratorY+neutralNumeratorY);
305    fCorrectedTrackMet = mithep::Met(trackNumeratorX, trackNumeratorY);
306 +  fCHSMet = mithep::Met(CHSNumeratorX, CHSNumeratorY);
307 +  fNHSMet = mithep::Met(NHSNumeratorX, NHSNumeratorY);
308   }
309  
310  
# Line 392 | Line 452 | void MetTools::RemoveParticleInIsoConeFr
452  
453  
454   MetTools::MetTools(const MuonCol *fMuons, const ElectronCol *fElectrons, const PFCandidateCol *fPFCandidates,
455 <                   const Vertex *fVertex, float deltaZCut, float ptCut, float etaCut) {
455 >                   const Vertex *fVertex, float deltaZCut, float ptCut, float etaCut, float intRadius,
456 >                   const GenericParticle *genP) {
457  
458    float trackNumeratorX  =0, trackNumeratorY  =0;
459    float neutralNumeratorX=0, neutralNumeratorY=0;
460 +  float CHSNumeratorX  =0, CHSNumeratorY  =0, NHSNumeratorX  =0, NHSNumeratorY  =0;
461 +
462 +  float trackNumeratorGenPX  =0, trackNumeratorGenPY  =0;
463 +  // added to the track quantities
464 +  if (genP) {
465 +    trackNumeratorGenPX -= genP->Px();
466 +    trackNumeratorGenPY -= genP->Py();
467 +  }
468  
469    // muons Pt
470    for (UInt_t m = 0; m < fMuons->GetEntries(); ++m) {
# Line 412 | Line 481 | MetTools::MetTools(const MuonCol *fMuons
481    // PF candidates pT
482    for (UInt_t i=0; i<fPFCandidates->GetEntries(); ++i) {
483  
484 +    // CHS computation
485 +    if (fPFCandidates->At(i)->HasTrk()){
486 +        CHSNumeratorX -= fPFCandidates->At(i)->Px();
487 +        CHSNumeratorY -= fPFCandidates->At(i)->Py();
488 +    }
489 +    // NHS computation
490 +    if (fPFCandidates->At(i)->HasTrk() ||
491 +       (fPFCandidates->At(i)->AbsEta() < 3.0 && fPFCandidates->At(i)->Pt() > 4.0)){
492 +        NHSNumeratorX -= fPFCandidates->At(i)->Px();
493 +        NHSNumeratorY -= fPFCandidates->At(i)->Py();
494 +    }
495 +
496      // charged
497      if (fPFCandidates->At(i)->HasTrackerTrk() || fPFCandidates->At(i)->HasGsfTrk()){
498        bool isMuonTrack = false;
# Line 420 | Line 501 | MetTools::MetTools(const MuonCol *fMuons
501            isMuonTrack = true;
502            break;
503          }
504 <      }      
504 >        if (intRadius > 0.0 && MathUtils::DeltaR(fPFCandidates->At(i)->Mom(), fMuons->At(m)->Mom()) < intRadius) {
505 >          isMuonTrack = true;
506 >          break;
507 >        }
508 >      }    
509        if (isMuonTrack) continue;
510        
511        bool isElectronTrack = false;
# Line 430 | Line 515 | MetTools::MetTools(const MuonCol *fMuons
515            isElectronTrack = true;
516            break;
517          }
518 <      }      
518 >        if (intRadius > 0.0 && MathUtils::DeltaR(fPFCandidates->At(i)->Mom(), fElectrons->At(m)->Mom()) < intRadius) {
519 >          isElectronTrack = true;
520 >          break;
521 >        }
522 >      }
523        if (isElectronTrack) continue;
524  
525        if ((fPFCandidates->At(i)->HasTrackerTrk() && fabs(fPFCandidates->At(i)->TrackerTrk()->DzCorrected(*fVertex)) < deltaZCut) ||
# Line 452 | Line 541 | MetTools::MetTools(const MuonCol *fMuons
541      }
542    }
543    fCorrectedMet = mithep::Met(trackNumeratorX+neutralNumeratorX, trackNumeratorY+neutralNumeratorY);
544 <  fCorrectedTrackMet = mithep::Met(trackNumeratorX, trackNumeratorY);
544 >  fCorrectedTrackMet = mithep::Met(trackNumeratorX+trackNumeratorGenPX, trackNumeratorY+trackNumeratorGenPY);
545 >  fCHSMet = mithep::Met(CHSNumeratorX+trackNumeratorGenPX, CHSNumeratorY+trackNumeratorGenPY);
546 >  fNHSMet = mithep::Met(NHSNumeratorX, NHSNumeratorY);
547   }
548  
549  
550   MetTools::MetTools(const MuonCol *fMuons, const ElectronCol *fElectrons, const PFCandidateCol *fPFCandidates,
551                     const PFJetCol *pfJets,
552 <                   const Vertex *fVertex, float deltaZCut, float ptCut, float etaCut) {
552 >                   const Vertex *fVertex, float deltaZCut, float ptCut, float etaCut, float intRadius,
553 >                   const GenericParticle *genP) {
554  
555    float trackNumeratorX  =0, trackNumeratorY  =0;
556    float neutralNumeratorX=0, neutralNumeratorY=0;
557 +  float CHSNumeratorX  =0, CHSNumeratorY  =0, NHSNumeratorX  =0, NHSNumeratorY  =0;
558 +
559 +  float trackNumeratorGenPX  =0, trackNumeratorGenPY  =0;
560 +  // added to the track quantities
561 +  if (genP) {
562 +    trackNumeratorGenPX -= genP->Px();
563 +    trackNumeratorGenPY -= genP->Py();
564 +  }
565  
566    // muons Pt
567    for (UInt_t m = 0; m < fMuons->GetEntries(); ++m) {
# Line 484 | Line 584 | MetTools::MetTools(const MuonCol *fMuons
584    // PF candidates pT
585    for (UInt_t i=0; i<fPFCandidates->GetEntries(); ++i) {
586  
587 +    // CHS computation
588 +    if (fPFCandidates->At(i)->HasTrk()){
589 +        CHSNumeratorX -= fPFCandidates->At(i)->Px();
590 +        CHSNumeratorY -= fPFCandidates->At(i)->Py();
591 +    }
592 +    // NHS computation
593 +    if (fPFCandidates->At(i)->HasTrk() ||
594 +       (fPFCandidates->At(i)->AbsEta() < 3.0 && fPFCandidates->At(i)->Pt() > 4.0)){
595 +        NHSNumeratorX -= fPFCandidates->At(i)->Px();
596 +        NHSNumeratorY -= fPFCandidates->At(i)->Py();
597 +    }
598 +
599      // jets
600      bool inTheJet = false;
601      for (UInt_t j = 0; j < pfJets->GetEntries(); ++j) {
# Line 497 | Line 609 | MetTools::MetTools(const MuonCol *fMuons
609      }
610      if (inTheJet) continue;
611  
500
612      // charged
613      if (fPFCandidates->At(i)->HasTrackerTrk() || fPFCandidates->At(i)->HasGsfTrk()){
614        bool isMuonTrack = false;
# Line 506 | Line 617 | MetTools::MetTools(const MuonCol *fMuons
617            isMuonTrack = true;
618            break;
619          }
620 +        if (intRadius > 0.0 && MathUtils::DeltaR(fPFCandidates->At(i)->Mom(), fMuons->At(m)->Mom()) < intRadius) {
621 +          isMuonTrack = true;
622 +          break;
623 +        }
624        }      
625        if (isMuonTrack) continue;
626        
# Line 516 | Line 631 | MetTools::MetTools(const MuonCol *fMuons
631            isElectronTrack = true;
632            break;
633          }
634 +        if (intRadius > 0.0 && MathUtils::DeltaR(fPFCandidates->At(i)->Mom(), fElectrons->At(m)->Mom()) < intRadius) {
635 +          isElectronTrack = true;
636 +          break;
637 +        }
638        }      
639        if (isElectronTrack) continue;
640  
# Line 538 | Line 657 | MetTools::MetTools(const MuonCol *fMuons
657      }
658    }
659    fCorrectedMet = mithep::Met(trackNumeratorX+neutralNumeratorX, trackNumeratorY+neutralNumeratorY);
660 <  fCorrectedTrackMet = mithep::Met(trackNumeratorX, trackNumeratorY);
660 >  fCorrectedTrackMet = mithep::Met(trackNumeratorX+trackNumeratorGenPX, trackNumeratorY+trackNumeratorGenPY);
661 >  fCHSMet = mithep::Met(CHSNumeratorX+trackNumeratorGenPX, CHSNumeratorY+trackNumeratorGenPY);
662 >  fNHSMet = mithep::Met(NHSNumeratorX, NHSNumeratorY);
663   }
664  
665  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines