ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/VHbb/interface/ntupleReader.hpp
Revision: 1.1
Committed: Fri Apr 27 14:24:40 2012 UTC (13 years ago) by bortigno
Branch: MAIN
Log Message:
Pier code

File Contents

# Content
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 #include "ntupleLoader.h"
9
10 class ntupleReader : public ntupleLoader {
11 public :
12
13 ntupleReader(const char * infile) : ntupleLoader ( infile );
14 virtual ~ntupleReader();
15 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