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.4 by pharris, Sat Apr 7 09:36:33 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 94 | Line 95 | void JetIDMVA::Initialize( JetIDMVA::Cut
95    for(int i0 = 0; i0 < 4; i0++) fMVACut[1][i0] = lPt1020[i0];
96    for(int i0 = 0; i0 < 4; i0++) fMVACut[2][i0] = lPt2030[i0];
97    for(int i0 = 0; i0 < 4; i0++) fMVACut[3][i0] = lPt3050[i0];
98 +  //std::cout << " Working Points : << " << std::endl;
99 +  //for(int i0 = 0; i0 < 4; i0++) for(int i1 = 0; i1 < 4; i1++)
100 +  //  std::cout << " ==> " << i0 << " -- " << i1 << " -- " << fMVACut[i0][i1] << std::endl;
101   }
102  
103   //--------------------------------------------------------------------------------------------------
# Line 147 | 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;
159 <  if(iJet->Pt() > 50)                                return true; //==> we can raise this
155 <  if(fabs(iJet->Eta()) > 4.99)                       return false;//Castor
156 <
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 170 | Line 174 | Bool_t JetIDMVA::pass(const PFJet *iJet,
174    double lMVACut = fMVACut[lPtId][lEtaId];
175    if(lMVA < lMVACut) return false;
176    return true;
173   //if( fabs(JetTools::impactParameter(iJet,iVertex,true)) < 0.2) return true;
174  //if(correctedPt(iJet,iJetCorrector,iPileupEnergyDensity) < fJetPtMin && iJet->TrackCountingHighEffBJetTagsDisc() == -100) return false;
175  //This line is a bug in the Met training
176  //if(lMVA < -0.8)                            return false;
177  //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
184 <  if(fabs(iJet->Eta()) > 4.99)                       return false;//Castor
185 <
181 >  if(iJet->Pt()        < fJetPtMin) return false;
182 >  if(fabs(iJet->Eta()) > 4.99)      return false;
183    double lMVA = MVAValue(iJet,iVertex,iVertices);
184    
185    int lPtId = 0;
# Line 237 | Line 234 | Double_t JetIDMVA::MVAValue(const PFJet
234    double lMVA = 0;
235    if(fJPt1 < 10) lMVA = fReader->EvaluateMVA( fLowPtMethodName  );
236    if(fJPt1 > 10) lMVA = fReader->EvaluateMVA( fHighPtMethodName );
240  
237    if (printDebug == kTRUE) {
238      std::cout << "Debug Jet MVA: "
239                << fNVtx      << " "
# Line 294 | Line 290 | Double_t JetIDMVA::MVAValue(const PFJet
290    double lMVA = 0;
291    if(fJPt1 < 10) lMVA = fReader->EvaluateMVA( fLowPtMethodName  );
292    if(fJPt1 > 10) lMVA = fReader->EvaluateMVA( fHighPtMethodName );
293 <
293 >  
294    if (printDebug == kTRUE) {
295      std::cout << "Debug Jet MVA: "
296                << fNVtx      << " "
# Line 320 | 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