ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/VHbbAnalysis/VHbbDataFormats/interface/JECFWLite.h
(Generate patch)

Comparing UserCode/VHbbAnalysis/VHbbDataFormats/interface/JECFWLite.h (file contents):
Revision 1.1 by arizzi, Wed Jun 6 12:32:50 2012 UTC vs.
Revision 1.3 by arizzi, Wed Feb 6 13:49:51 2013 UTC

# Line 12 | Line 12 | class JECFWLite
12   {
13   public:
14  
15 <   JECFWLite(std::string base)
15 >   JECFWLite(std::string base,std::string jettype="AK5PFchs")
16     {
17 <        std::string prefix = base + "/Summer12V3MC";
18 <        parMC.push_back( JetCorrectorParameters((prefix+"_L1FastJet_AK5PFchs.txt").c_str()));
19 <        parMC.push_back( JetCorrectorParameters((prefix+"_L2Relative_AK5PFchs.txt").c_str()));
20 <        parMC.push_back( JetCorrectorParameters((prefix+"_L3Absolute_AK5PFchs.txt").c_str()));
17 >        //std::string prefix = base + "/Summer12V3MC";
18 >        std::string prefix = base + "/START53_V15MC";
19 >        parMC.push_back( JetCorrectorParameters((prefix+"_L1FastJet_"+jettype+".txt").c_str()));
20 >        parMC.push_back( JetCorrectorParameters((prefix+"_L2Relative_"+jettype+".txt").c_str()));
21 >        parMC.push_back( JetCorrectorParameters((prefix+"_L3Absolute_"+jettype+".txt").c_str()));
22          jetCorrectorMC= new FactorizedJetCorrector(parMC);
23  
24   /*        prefix = base + "/ReferenceMC";
25 <        parMCRef.push_back( JetCorrectorParameters((prefix+"_L1FastJet_AK5PF.txt").c_str()));
26 <        parMCRef.push_back( JetCorrectorParameters((prefix+"_L2Relative_AK5PF.txt").c_str()));
27 <        parMCRef.push_back( JetCorrectorParameters((prefix+"_L3Absolute_AK5PF.txt").c_str()));
28 <        jetCorrectorMCRef= new FactorizedJetCorrector(parMCRef);
25 >        parMCRefW.push_back( JetCorrectorParameters((prefix+"_L1FastJet_AK5PF.txt").c_str()));
26 >        parMCRefW.push_back( JetCorrectorParameters((prefix+"_L2Relative_AK5PF.txt").c_str()));
27 >        parMCRefW.push_back( JetCorrectorParameters((prefix+"_L3Absolute_AK5PF.txt").c_str()));
28 >        jetCorrectorMCRefWrong= new FactorizedJetCorrector(parMCRefW);
29   */
30  
31 +
32          prefix = base + "/ReferenceMC";
33 <        parMCRef.push_back( JetCorrectorParameters((prefix+"_L1FastJet_AK5PFchs.txt").c_str()));
34 <        parMCRef.push_back( JetCorrectorParameters((prefix+"_L2Relative_AK5PFchs.txt").c_str()));
35 <        parMCRef.push_back( JetCorrectorParameters((prefix+"_L3Absolute_AK5PFchs.txt").c_str()));
33 >        parMCRef.push_back( JetCorrectorParameters((prefix+"_L1FastJet_"+jettype+".txt").c_str()));
34 >        parMCRef.push_back( JetCorrectorParameters((prefix+"_L2Relative_"+jettype+".txt").c_str()));
35 >        parMCRef.push_back( JetCorrectorParameters((prefix+"_L3Absolute_"+jettype+".txt").c_str()));
36          jetCorrectorMCRef= new FactorizedJetCorrector(parMCRef);
37  
38  
39 <        prefix = base + "/Summer12V3DATA";
40 <        parData.push_back( JetCorrectorParameters((prefix+"_L1FastJet_AK5PFchs.txt").c_str()));
41 <        parData.push_back( JetCorrectorParameters((prefix+"_L2Relative_AK5PFchs.txt").c_str()));
42 <        parData.push_back( JetCorrectorParameters((prefix+"_L3Absolute_AK5PFchs.txt").c_str()));
43 <        parData.push_back( JetCorrectorParameters((prefix+"_L2L3Residual_AK5PFchs.txt").c_str()));
39 >        prefix = base + "/GR_P_V42_AN3DATA";
40 >        parData.push_back( JetCorrectorParameters((prefix+"_L1FastJet_"+jettype+".txt").c_str()));
41 >        parData.push_back( JetCorrectorParameters((prefix+"_L2Relative_"+jettype+".txt").c_str()));
42 >        parData.push_back( JetCorrectorParameters((prefix+"_L3Absolute_"+jettype+".txt").c_str()));
43 >        parData.push_back( JetCorrectorParameters((prefix+"_L2L3Residual_"+jettype+".txt").c_str()));
44          jetCorrectorData= new FactorizedJetCorrector(parData);
45  
46          prefix = base + "/Reference";
47 <        parDataRef.push_back( JetCorrectorParameters((prefix+"_L1FastJet_AK5PFchs.txt").c_str()));
48 <        parDataRef.push_back( JetCorrectorParameters((prefix+"_L2Relative_AK5PFchs.txt").c_str()));
49 <        parDataRef.push_back( JetCorrectorParameters((prefix+"_L3Absolute_AK5PFchs.txt").c_str()));
50 <        parDataRef.push_back( JetCorrectorParameters((prefix+"_L2L3Residual_AK5PFchs.txt").c_str()));
47 >        parDataRef.push_back( JetCorrectorParameters((prefix+"_L1FastJet_"+jettype+".txt").c_str()));
48 >        parDataRef.push_back( JetCorrectorParameters((prefix+"_L2Relative_"+jettype+".txt").c_str()));
49 >        parDataRef.push_back( JetCorrectorParameters((prefix+"_L3Absolute_"+jettype+".txt").c_str()));
50 >        parDataRef.push_back( JetCorrectorParameters((prefix+"_L2L3Residual_"+jettype+".txt").c_str()));
51          jetCorrectorDataRef= new FactorizedJetCorrector(parDataRef);
52  
53          
54     }
55  
56 <   VHbbEvent::SimpleJet correct(const VHbbEvent::SimpleJet &j, float rho, bool isMC, bool checkRef = false)
56 >   VHbbEvent::SimpleJet correctRight(const VHbbEvent::SimpleJet &j, float rho, bool isMC, bool checkRef = false)
57     {
58       VHbbEvent::SimpleJet c=j;
59       FactorizedJetCorrector * corr=0;
# Line 62 | Line 64 | public:
64       corr->setJetEta(j.p4.Eta());
65       corr->setJetPt(j.ptRaw);
66       corr->setJetA(j.jetArea);
67 <     corr->setRho(rho);
68 <     c.p4 = j.ptRaw*corr->getCorrection();
67 >     corr->setRho(rho);
68 >     float scale=corr->getCorrection()*j.ptRaw/j.p4.Pt();
69 >     c.p4= scale * j.p4 ;
70 >        return c;
71 >
72 >  }
73 >
74 >   VHbbEvent::SimpleJet correct(const VHbbEvent::SimpleJet &j, float rho, bool isMC, bool checkRef = false)
75 >   {
76 >     VHbbEvent::SimpleJet c=j;
77 >     FactorizedJetCorrector * corr=0;
78 >     if(checkRef && isMC) corr=jetCorrectorMCRef;
79 >     if(!checkRef && isMC) corr=jetCorrectorMC;
80 >     if(checkRef && !isMC) corr=jetCorrectorDataRef;
81 >     if(!checkRef && !isMC) corr=jetCorrectorData;
82       corr->setJetEta(j.p4.Eta());
83       corr->setJetPt(j.ptRaw);
84       corr->setJetA(j.jetArea);
85 <     corr->setRho(rho);
86 <
85 >     corr->setRho(rho);
86 >     float scale=corr->getCorrection()*j.ptRaw/j.p4.Pt();
87 >     c.p4= scale * j.p4 ;
88       if(checkRef)
89         {
90            if(fabs(c.p4.Pt()-j.p4.Pt()) > 0.01 * (c.p4.Pt()+j.p4.Pt())  )
91             {
92 <                std::cout << "ERROR CORRECTIONS ARE NOT CLOSING: " << c.p4.Pt() << " vs " <<  j.p4.Pt() << " raw "  << j.ptRaw << " new corr " << corr->getCorrection() << " old " <<  j.p4.Pt()/j.ptRaw <<  std::endl;
92 >             corr->setJetEta(j.p4.Eta());
93 >             corr->setJetPt(j.ptRaw);
94 >             corr->setJetA(j.jetArea);
95 >             corr->setRho(rho);
96 >             std::cout << "ERROR CORRECTIONS ARE NOT CLOSING: " << c.p4.Pt() << " vs " <<  j.p4.Pt() << " raw "  << j.ptRaw << " new corr " << corr->getCorrection() << " old " <<  j.p4.Pt()/j.ptRaw <<  std::endl;
97             }
98  
99 <       }
99 >       }
100 > //else {std::cout << "Check ok: " <<  c.p4.Pt() << " vs " <<  j.p4.Pt() << " raw "  << j.ptRaw << " new corr " << corr->getCorrection() << " old " <<  j.p4.Pt()/j.ptRaw << std::endl;}
101       return c;
102     }  
103  
104     std::vector<JetCorrectorParameters> parMC;
105     std::vector<JetCorrectorParameters> parMCRef;
106 +   std::vector<JetCorrectorParameters> parMCRefW;
107     std::vector<JetCorrectorParameters> parData;
108     std::vector<JetCorrectorParameters> parDataRef;
109     FactorizedJetCorrector * jetCorrectorMC;
110 +   FactorizedJetCorrector * jetCorrectorMCRefWrong;
111     FactorizedJetCorrector * jetCorrectorMCRef;
112     FactorizedJetCorrector * jetCorrectorData;
113     FactorizedJetCorrector * jetCorrectorDataRef;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines