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

Comparing UserCode/MitPhysics/Utils/src/JetIDMVA.cc (file contents):
Revision 1.5 by pharris, Fri Apr 13 14:24:00 2012 UTC vs.
Revision 1.10 by ceballos, Sat May 12 07:26:56 2012 UTC

# Line 15 | Line 15 | using namespace mithep;
15  
16   //--------------------------------------------------------------------------------------------------
17   JetIDMVA::JetIDMVA() :
18 <  fJetPtMin(0)  , //We need to lower this
18 >  fJetPtMin(0.)  , //We need to lower this
19    fDZCut   (0.2),
20    fLowPtMethodName ("JetIDMVALowPt" ),
21    fHighPtMethodName("JetIDMVAHighPt"),
# Line 86 | Line 86 | void JetIDMVA::Initialize( JetIDMVA::Cut
86    std::string lCutType = "Tight";
87    if(fCutType == kMedium) lCutType = "Medium";
88    if(fCutType == kLoose ) lCutType = "Loose";
89 +  if(fCutType == kMET   ) lCutType = "MET";
90    std::vector<double> lPt010  = lConfig.getParameter<std::vector<double> >(("Pt010_" +lCutType).c_str());
91    std::vector<double> lPt1020 = lConfig.getParameter<std::vector<double> >(("Pt1020_"+lCutType).c_str());
92    std::vector<double> lPt2030 = lConfig.getParameter<std::vector<double> >(("Pt2030_"+lCutType).c_str());
# Line 150 | Line 151 | Double_t JetIDMVA::MVAValue(
151   //--------------------------------------------------------------------------------------------------
152   Bool_t JetIDMVA::pass(const PFJet *iJet,const Vertex *iVertex,const VertexCol *iVertices,
153                        FactorizedJetCorrector *iJetCorrector,
154 <                      const PileupEnergyDensityCol *iPileupEnergyDensity) {
154 >                      const PileupEnergyDensityCol *iPileupEnergyDensity,
155 >                      RhoUtilities::RhoType type) {
156    
157    if(!JetTools::passPFLooseId(iJet))                 return false;
158 <  if(iJet->Pt() < fJetPtMin)                         return false;
157 <  if(fabs(iJet->Eta()) > 4.99)                       return true; //==> Castor
158 <  //if(iJet->Pt() > 50)                                return true; //==> we can raise this
158 >  if(fabs(iJet->Eta()) > 4.99)                       return false;
159    
160    double lMVA = MVAValue   (iJet,iVertex,iVertices,iJetCorrector,iPileupEnergyDensity);
161 <  double lPt  = correctedPt(iJet,                  iJetCorrector,iPileupEnergyDensity);
162 <
161 >  double lPt  = correctedPt(iJet,                  iJetCorrector,iPileupEnergyDensity,type);
162 >  if(lPt < fJetPtMin)                         return false;
163 >  
164    int lPtId = 0;
165 <  if(lPt > 10 && iJet->Pt() < 20) lPtId = 1;
166 <  if(lPt > 20 && iJet->Pt() < 30) lPtId = 2;
165 >  if(lPt > 10 && lPt < 20) lPtId = 1;
166 >  if(lPt > 20 && lPt < 30) lPtId = 2;
167    if(lPt > 30                   ) lPtId = 3;
168    
169    int lEtaId = 0;
# Line 173 | Line 174 | Bool_t JetIDMVA::pass(const PFJet *iJet,
174    double lMVACut = fMVACut[lPtId][lEtaId];
175    if(lMVA < lMVACut) return false;
176    return true;
176   //if( fabs(JetTools::impactParameter(iJet,iVertex,true)) < 0.2) return true;
177  //if(correctedPt(iJet,iJetCorrector,iPileupEnergyDensity) < fJetPtMin && iJet->TrackCountingHighEffBJetTagsDisc() == -100) return false;
178  //This line is a bug in the Met training
179  //if(lMVA < -0.8)                            return false;
180  //if(lMVA < -0.5 && fabs(iJet->Eta()) > 3.0) return false;
177   }
178   //--------------------------------------------------------------------------------------------------
179   Bool_t JetIDMVA::pass(const PFJet *iJet,const Vertex *iVertex,const VertexCol *iVertices) {
180    if(!JetTools::passPFLooseId(iJet))                 return false;
181    if(iJet->Pt()        < fJetPtMin) return false;
182 <  //if(iJet->Pt()        > 50)        return true; //==> we can raise this
187 <  if(fabs(iJet->Eta()) > 4.99)     return true; //==> Castor
182 >  if(fabs(iJet->Eta()) > 4.99)      return false;
183    double lMVA = MVAValue(iJet,iVertex,iVertices);
184    
185    int lPtId = 0;
# Line 321 | Line 316 | Double_t JetIDMVA::MVAValue(const PFJet
316  
317    return lMVA;
318   }
319 < Double_t JetIDMVA::correctedPt(const PFJet *iJet, FactorizedJetCorrector *iJetCorrector,const PileupEnergyDensityCol *iPUEnergyDensity) {
319 > Double_t JetIDMVA::correctedPt(const PFJet *iJet, FactorizedJetCorrector *iJetCorrector,
320 >                               const PileupEnergyDensityCol *iPUEnergyDensity,
321 >                               RhoUtilities::RhoType type) {
322 >  Double_t Rho = 0.0;
323 >  switch(type) {
324 >  case RhoUtilities::MIT_RHO_VORONOI_HIGH_ETA:
325 >    Rho = iPUEnergyDensity->At(0)->Rho();
326 >    break;
327 >  case RhoUtilities::MIT_RHO_VORONOI_LOW_ETA:
328 >    Rho = iPUEnergyDensity->At(0)->RhoLowEta();
329 >    break;
330 >  case RhoUtilities::MIT_RHO_RANDOM_HIGH_ETA:
331 >    Rho = iPUEnergyDensity->At(0)->RhoRandom();
332 >    break;
333 >  case RhoUtilities::MIT_RHO_RANDOM_LOW_ETA:
334 >    Rho = iPUEnergyDensity->At(0)->RhoRandomLowEta();
335 >    break;
336 >  case RhoUtilities::CMS_RHO_RHOKT6PFJETS:
337 >    Rho = iPUEnergyDensity->At(0)->RhoKt6PFJets();
338 >    break;
339 >  default:
340 >    // use the old default
341 >    Rho = iPUEnergyDensity->At(0)->Rho();
342 >    break;
343 >  }
344 >    
345    const FourVectorM rawMom = iJet->RawMom();
346    iJetCorrector->setJetEta(rawMom.Eta());
347    iJetCorrector->setJetPt (rawMom.Pt());
348    iJetCorrector->setJetPhi(rawMom.Phi());
349    iJetCorrector->setJetE  (rawMom.E());
350 <  iJetCorrector->setRho   (iPUEnergyDensity->At(0)->RhoHighEta());
350 >  iJetCorrector->setRho   (Rho);
351    iJetCorrector->setJetA  (iJet->JetArea());
352    iJetCorrector->setJetEMF(-99.0);    
353    Double_t correction = iJetCorrector->getCorrection();

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines