ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/VHbb/interface/ntupleReader.hpp
Revision: 1.2
Committed: Wed May 2 19:20:07 2012 UTC (13 years ago) by bortigno
Branch: MAIN
Changes since 1.1: +3 -3 lines
Log Message:
working version

File Contents

# User Rev Content
1 bortigno 1.1 #ifndef ntupleReader_h
2     #define ntupleReader_h
3    
4     #include <TROOT.h>
5     #include <TChain.h>
6     #include <TFile.h>
7     #include "TLorentzVector.h"
8 bortigno 1.2 #include "ntupleLoader.hpp"
9 bortigno 1.1
10     class ntupleReader : public ntupleLoader {
11     public :
12    
13 bortigno 1.2 ntupleReader(const char * infile) : ntupleLoader( infile ){};
14     // virtual ~ntupleReader();
15 bortigno 1.1 virtual std::vector<TLorentzVector> SimBs();
16     virtual std::vector<TLorentzVector> SVs();
17     virtual int CountJets();
18     virtual int CountAddJets();
19     virtual int CountAddForwardJets();
20     virtual int CountAddJets_jec( double sign );
21     virtual int CountAddLeptons();
22     virtual bool TriggerBit();
23     virtual TLorentzVector VectorBoson(); //vector boson TLorentz vector
24     virtual double hJet_PT( int idx, int sign ); //higgs jet energy correction
25     virtual double aJet_PT( int idx, int sign ); //addtional jet energy correction
26     virtual TLorentzVector Higgs( int sign ); //higgs candidate jet energy correction
27     virtual double hJet_CSV( int idx, int sign ); //higgs jet energy correction
28     virtual double hJet_pt_jec( int idx, double sign ); //higgs jet energy correction
29     virtual double aJet_pt_jec( int idx, double sign ); //addtional jet energy correction
30     virtual TLorentzVector H_jec( double sign ); //higgs candidate jet energy correction
31     virtual double hJet_csv_cUP( int idx );
32     virtual double hJet_csv_cDOWN( int idx );
33     virtual double hJet_csv_cFUP( int idx );
34     virtual double hJet_csv_cFDOWN( int idx );
35     virtual double hJet_pt_jecUP( int idx );
36     virtual double hJet_pt_jecDOWN( int idx );
37     virtual double aJet_pt_jecUP( int idx );
38     virtual double aJet_pt_jecDOWN( int idx );
39     virtual TLorentzVector H_jecUP();
40     virtual TLorentzVector H_jecDOWN();
41    
42     };
43    
44    
45     std::vector<TLorentzVector> ntupleReader::SimBs(){
46     TLorentzVector simB;
47     std::vector<TLorentzVector> iSimBs;
48     for(int j=0; j<nSimBs; ++j){
49     simB.SetPtEtaPhiM( SimBs_pt[j], SimBs_eta[j], SimBs_phi[j], SimBs_mass[j]);
50     iSimBs.push_back( simB );
51     }
52     return iSimBs;
53     }
54    
55     std::vector<TLorentzVector> ntupleReader::SVs(){
56     TLorentzVector sv;
57     std::vector<TLorentzVector> iSVs;
58     for(int j=0; j<nSvs; ++j){
59     sv.SetPtEtaPhiM( Sv_pt[j], Sv_eta[j], Sv_phi[j], Sv_massBCand[j]);
60     iSVs.push_back( sv );
61     }
62     return iSVs;
63     }
64    
65     TLorentzVector ntupleReader::VectorBoson(){
66     TLorentzVector l1, l2;
67     l1.SetPtEtaPhiM(vLepton_pt[0],vLepton_eta[0],vLepton_phi[0],vLepton_mass[0] );
68     l2.SetPtEtaPhiM(vLepton_pt[1],vLepton_eta[1],vLepton_phi[1],vLepton_mass[1] );
69     return (l1+l2);
70     }
71    
72     double ntupleReader::hJet_PT( int idx, int sign ){ return hJet_pt[idx]*(1 + (sign)*hJet_JECUnc[idx]); }
73     double ntupleReader::aJet_PT( int idx, int sign ){ return aJet_pt[idx]*(1 + (sign)*aJet_JECUnc[idx]); }
74     TLorentzVector ntupleReader::Higgs( int sign ){
75     TLorentzVector j1,j2,H;
76     j1.SetPtEtaPhiE( hJet_pt_jec(0,sign), hJet_eta[0], hJet_phi[0], hJet_e[0] );
77     j2.SetPtEtaPhiE( hJet_pt_jec(1,sign), hJet_eta[1], hJet_phi[1], hJet_e[1] );
78     return H=j1+j2;
79     }
80     double ntupleReader::hJet_CSV( int idx, int sign ){
81     if(sign == 1) return (hJet_csvUp[idx]);
82     else if(sign == -1) return (hJet_csvDown[idx]);
83     else if( sign == 2 ) return (hJet_csvFUp[idx]);
84     else if( sign == -2 ) return (hJet_csvFDown[idx]) ;
85     else return (hJet_csv[idx]);
86     }
87    
88    
89     //for jet energy correction variation
90     double ntupleReader::hJet_pt_jec( int idx, double sign ){ return hJet_pt[idx]*(1 + (sign)*hJet_JECUnc[idx]); }
91     double ntupleReader::aJet_pt_jec( int idx, double sign ){ return aJet_pt[idx]*(1 + (sign)*aJet_JECUnc[idx]); }
92     TLorentzVector ntupleReader::H_jec( double sign ){
93     TLorentzVector j1,j2,H;
94     j1.SetPtEtaPhiE( hJet_pt_jec(0,sign), hJet_eta[0], hJet_phi[0], hJet_e[0] );
95     j2.SetPtEtaPhiE( hJet_pt_jec(1,sign), hJet_eta[1], hJet_phi[1], hJet_e[1] );
96     return H=j1+j2;
97     }
98     double ntupleReader::hJet_csv_cUP( int idx ){ return ( hJet_csvUp[idx] ); }
99     double ntupleReader::hJet_csv_cDOWN( int idx ){ return ( hJet_csvDown[idx] ); }
100     double ntupleReader::hJet_csv_cFUP( int idx ){ return ( hJet_csvFUp[idx] ); }
101     double ntupleReader::hJet_csv_cFDOWN( int idx ){ return ( hJet_csvFDown[idx] ); }
102     double ntupleReader::hJet_pt_jecUP( int idx ){ return hJet_pt_jec(idx,+1); }
103     double ntupleReader::hJet_pt_jecDOWN( int idx ){ return hJet_pt_jec(idx,-1); }
104     double ntupleReader::aJet_pt_jecUP( int idx ){ return aJet_pt_jec(idx,+1); }
105     double ntupleReader::aJet_pt_jecDOWN( int idx ){ return aJet_pt_jec(idx,-1); }
106     TLorentzVector ntupleReader::H_jecUP(){ return H_jec(+1); }
107     TLorentzVector ntupleReader::H_jecDOWN(){ return H_jec(-1); }
108    
109    
110     int ntupleReader::CountJets(){
111     int sum=0;
112     for(int i=0; i<nhJets; ++i)
113     if( hJet_pt[i] > 20.
114     && TMath::Abs(hJet_eta[i]) < 2.4 )
115     sum++;
116     for(int i=0; i<naJets; ++i)
117     if( aJet_pt[i] > 20.
118     && TMath::Abs(aJet_eta[i]) < 2.4 )
119     sum++;
120     return sum;
121     }
122     int ntupleReader::CountAddJets(){
123     int sum=0;
124     for(int i=0; i<naJets; ++i)
125     if( aJet_pt[i] > 20.
126     && TMath::Abs(aJet_eta[i]) < 2.4 )
127     sum++;
128     return sum;
129     }
130     int ntupleReader::CountAddForwardJets(){
131     int sum=0;
132     for(int i=0; i<naJets; ++i)
133     if( aJet_pt[i] > 30.
134     && TMath::Abs(aJet_eta[i]) > 2.4
135     && TMath::Abs(aJet_eta[i]) < 4.5 )
136     sum++;
137     return sum;
138     }
139     int ntupleReader::CountAddJets_jec( double sign ){
140     int sum=0;
141     for(int i=0; i<naJets; ++i)
142     if( aJet_pt[i]*(1+(sign)*aJet_JECUnc[i]) > 20.
143     && TMath::Abs(aJet_eta[i]) < 2.4 )
144     sum++;
145     return sum;
146     }
147    
148     int ntupleReader::CountAddLeptons(){
149     int sum=0;
150     for(int i=0; i<nalep; ++i)
151     if( aLepton_pt[i] > 15.
152     && abs(aLepton_eta[i]) < 2.5
153     && aLepton_pfCombRelIso[i] < 0.15 )
154     sum++;
155     return sum;
156     }
157     bool ntupleReader::TriggerBit()
158     {
159     if( triggerFlags[5]
160     || triggerFlags[6] )
161     return false;
162     else
163     return true;
164     }
165    
166     #endif // #ifdef ntupleReader_cxx
167