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

Comparing UserCode/MitPhysics/Utils/src/RecoilTools.cc (file contents):
Revision 1.3 by pharris, Sat Apr 7 09:36:33 2012 UTC vs.
Revision 1.7 by pharris, Mon Apr 23 17:40:23 2012 UTC

# Line 8 | Line 8 | using namespace mithep;
8  
9   RecoilTools::RecoilTools(TString iJetLowPtMVAFile,TString iJetHighPtMVAFile,TString iCutFile) {
10    fJetIDMVA = new JetIDMVA();
11 <  fJetIDMVA->Initialize( JetIDMVA::kLoose,iJetLowPtMVAFile,iJetHighPtMVAFile,JetIDMVA::kBaseline,iCutFile);
11 >  fJetIDMVA->Initialize( JetIDMVA::kMET,iJetLowPtMVAFile,iJetHighPtMVAFile,JetIDMVA::kBaseline,iCutFile);
12   }
13   //--------------------------------------------------------------------------------------------------
14   RecoilTools::~RecoilTools() {
# Line 44 | Line 44 | Met RecoilTools::trackMet(const PFCandid
44    double trkSumEt = 0;
45    for(UInt_t i=0; i<iCands->GetEntries(); ++i) {
46      const PFCandidate *pfcand = iCands->At(i);
47 <    if( (pfcand->HasTrackerTrk() && (fabs(pfcand->TrackerTrk()->DzCorrected(*iVertex))< iDZCut)) ||
48 <        (pfcand->HasGsfTrk()     && (fabs(pfcand->GsfTrk()->DzCorrected(*iVertex))    < iDZCut)) ) {
47 >    if( (pfcand->HasTrackerTrk() && (fabs(pfcand->TrackerTrk()->DzCorrected(*iVertex))< iDZCut)) ) {
48 >      //(pfcand->HasGsfTrk()     && (fabs(pfcand->GsfTrk()->DzCorrected(*iVertex))    < iDZCut)) ) {
49        trkMetx  -= pfcand->Px();
50        trkMety  -= pfcand->Py();
51        trkSumEt += pfcand->Pt();
# Line 75 | Line 75 | void RecoilTools::addNeut(const PFJet *i
75                            int iSign) {
76    FourVectorM lVec(0,0,0,0);
77    double lPt = fJetIDMVA->correctedPt(iJet,iJetCorrector,iPUEnergyDensity);
78 +  if(iJet->RawMom().Pt() < 10) lPt = TMath::Max(iJet->RawMom().Pt()-iJet->JetArea()*iPUEnergyDensity->At(0)->Rho(),0.);
79    lPt *= (iJet->NeutralEmEnergy()/iJet->E() + iJet->NeutralHadronEnergy()/iJet->E());
80    lVec.SetPt(lPt); lVec.SetEta(iJet->Eta()); lVec.SetPhi(iJet->Phi()); lVec.SetM(iJet->Mass());
81    if(iSign > 0) iVec -= lVec;
82    if(iSign < 0) iVec += lVec;
83    iSumEt += lPt;
84 +  //=== Above was a bug in the training
85 +  //if(iSign > 0) iSumEt += lPt;
86 +  //if(iSign < 0) iSumEt -= lPt;
87   }
88  
89   //--------------------------------------------------------------------------------------------------
# Line 87 | Line 91 | void RecoilTools::addNeut(const PFJet *i
91   void RecoilTools::addNeut(const PFJet *iJet,FourVectorM &iVec,Double_t &iSumEt,int iSign) {
92    FourVectorM lVec(0,0,0,0);
93    double lPt = iJet->Pt();
94 <  lPt *= (iJet->NeutralEmEnergy()/iJet->E() + iJet->NeutralHadronEnergy()/iJet->E());
94 >  if(iJet->RawMom().Pt() < 10) lPt = iJet->RawMom().Pt()*iJet->L1OffsetCorrectionScale();
95 >  lPt *= (iJet->NeutralEmEnergy()/iJet->RawMom().E() + iJet->NeutralHadronEnergy()/iJet->RawMom().E());
96    lVec.SetPt(lPt); lVec.SetEta(iJet->Eta()); lVec.SetPhi(iJet->Phi()); lVec.SetM(iJet->Mass());
97 <  if(iSign > 0) iVec -= lVec;
98 <  if(iSign < 0) iVec += lVec;
97 >  if(iSign > 0) iVec   -= lVec;
98 >  if(iSign < 0) iVec   += lVec;
99    iSumEt += lPt;
100 +  //=== Above was a bug in the training
101 +  //if(iSign > 0) iSumEt += lPt;
102 +  //if(iSign < 0) iSumEt -= lPt;
103   }
104  
105   //--------------------------------------------------------------------------------------------------
# Line 111 | Line 119 | Met RecoilTools::NoPUMet( const PFJetCol
119      lVec     -= pPF->Mom();
120      lSumEt   += pPF->Pt();
121    }
122 +  int lNPass = 0;
123    for(UInt_t i0 = 0; i0 < iJets->GetEntries(); i0++) {
124      const PFJet *pJet = iJets->At(i0);
116    if(!fJetIDMVA->pass(pJet,iVertex,iVertices,iJetCorrector,iPileupEnergyDensity)) continue;
125      if(!filter(pJet,iPhi1,iEta1,iPhi2,iEta2))                                       continue; //Quick cleaning==> if not done already
126 +    if(!fJetIDMVA->pass(pJet,iVertex,iVertices,iJetCorrector,iPileupEnergyDensity)) continue;
127      addNeut(pJet,lVec,lSumEt,iJetCorrector,iPileupEnergyDensity);
128 +    lNPass++;
129    }
130    Met lMet(lVec.Px(),lVec.Py());
131 <  lMet.SetSumEt(lSumEt);
131 >  lMet.SetSumEt( lSumEt);
132    return lMet;
133   }
134   //--------------------------------------------------------------------------------------------------

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines