ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/VHbb/interface/ntupleReader.hpp
(Generate patch)

Comparing UserCode/VHbb/interface/ntupleReader.hpp (file contents):
Revision 1.3 by bortigno, Tue May 8 08:13:10 2012 UTC vs.
Revision 1.4 by bortigno, Fri May 11 09:46:18 2012 UTC

# Line 12 | Line 12 | 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 resolution(double eta); //smearing for the jet energy resolution
25 <   virtual TLorentzVector hJet_jer( int idx, double sign );
26 <   virtual TLorentzVector H_jer( double sing );
27 <   virtual double hJet_PT( int idx, int sign ); //higgs jet energy correction
28 <   virtual double aJet_PT( int idx, int sign ); //addtional jet energy correction
29 <   virtual TLorentzVector Higgs( int sign ); //higgs candidate jet energy correction
30 <   virtual double hJet_CSV( int idx, int sign ); //higgs jet energy correction
31 <   virtual double hJet_pt_jec( int idx, double sign ); //higgs jet energy correction
32 <   virtual double aJet_pt_jec( int idx, double sign ); //addtional jet energy correction
33 <   virtual TLorentzVector H_jec( double sign ); //higgs candidate jet energy correction
34 <   virtual double hJet_csv_cUP( int idx );
35 <   virtual double hJet_csv_cDOWN( int idx );
36 <   virtual double hJet_csv_cFUP( int idx );
37 <   virtual double hJet_csv_cFDOWN( int idx );
38 <   virtual double hJet_pt_jecUP( int idx );
39 <   virtual double hJet_pt_jecDOWN( int idx );
40 <   virtual double aJet_pt_jecUP( int idx );
41 <   virtual double aJet_pt_jecDOWN( int idx );
42 <   virtual TLorentzVector H_jecUP();
43 <   virtual TLorentzVector H_jecDOWN();
44 <
15 >  virtual int GetSign(int v);
16 >  virtual std::vector<TLorentzVector> SimBs();
17 >  virtual std::vector<TLorentzVector> SVs();
18 >  virtual double typeIcorrMET( double sign );
19 >  virtual int CountJets();
20 >  virtual int CountAddJets();
21 >  virtual int CountAddForwardJets();
22 >  virtual int CountAddJets_jec( double sign );
23 >  virtual int CountAddLeptons();
24 >  virtual bool TriggerBit();
25 >  virtual TLorentzVector VectorBoson(); //vector boson TLorentz vector
26 >  virtual double resolution(double eta); //smearing for the jet energy resolution
27 >  virtual TLorentzVector hJet_jer( int idx, double sign );
28 >  virtual TLorentzVector H_jer( double sing );
29 >  virtual double hJet_PT( int idx, int sign ); //higgs jet energy correction
30 >  virtual double aJet_PT( int idx, int sign ); //addtional jet energy correction
31 >  virtual double hJet_E( int idx, int sign ); //higgs jet energy correction
32 >  virtual double aJet_E( int idx, int sign ); //addtional jet energy correction
33 >  virtual TLorentzVector Higgs( int sign ); //higgs candidate jet energy correction
34 >  virtual double hJet_CSV( int idx, int sign ); //higgs jet energy correction
35 >  virtual double hJet_pt_jec( int idx, double sign ); //higgs jet energy correction
36 >  virtual double aJet_pt_jec( int idx, double sign ); //addtional jet energy correction
37 >  virtual TLorentzVector H_jec( double sign ); //higgs candidate jet energy correction
38 >  virtual double hJet_csv_cUP( int idx );
39 >  virtual double hJet_csv_cDOWN( int idx );
40 >  virtual double hJet_csv_cFUP( int idx );
41 >  virtual double hJet_csv_cFDOWN( int idx );
42 >  virtual double hJet_pt_jecUP( int idx );
43 >  virtual double hJet_pt_jecDOWN( int idx );
44 >  virtual double aJet_pt_jecUP( int idx );
45 >  virtual double aJet_pt_jecDOWN( int idx );
46 >  virtual TLorentzVector H_jecUP();
47 >  virtual TLorentzVector H_jecDOWN();
48 >  
49   };
50  
51 + int ntupleReader::GetSign(int v){
52 +  return v > 0 ? 1 : (v < 0 ? -1 : 0);
53 + }
54  
55   std::vector<TLorentzVector> ntupleReader::SimBs(){
56    TLorentzVector simB;
# Line 65 | Line 72 | std::vector<TLorentzVector> ntupleReader
72    return iSVs;
73   }
74  
75 + double ntupleReader::typeIcorrMET( double sign = 0 ){
76 +  double met_et;
77 +  TLorentzVector sumPt;
78 +  TLorentzVector sumPtRaw;
79 +  TLorentzVector rawMet, jet, rawJet;
80 +  for(int i=0; i<nhJets; ++i){
81 +    jet.SetPtEtaPhiE( hJet_PT(i, sign) , hJet_eta[i], hJet_phi[i], hJet_E(i, sign));
82 +    rawJet.SetPtEtaPhiE( hJet_ptRaw[i] , hJet_eta[i], hJet_phi[i], (hJet_ptRaw[i]/hJet_PT(i,sign)) * hJet_E(i,sign));
83 +    sumPt += jet;
84 +    sumPtRaw += rawJet;
85 +  }
86 +  rawMet.SetPtEtaPhiE(MET_et, 0., MET_phi, MET_et);
87 +  met_et = (rawMet - (sumPt - sumPtRaw)).Pt();
88 +  return met_et;
89 + }
90   TLorentzVector ntupleReader::VectorBoson(){
91    TLorentzVector l1, l2;
92    l1.SetPtEtaPhiM(vLepton_pt[0],vLepton_eta[0],vLepton_phi[0],vLepton_mass[0] );
# Line 79 | Line 101 | double ntupleReader::resolution(double e
101    double eta_tracker = 1.1;
102    if(abs(eta) < eta_tracker) return inner; else return outer;
103   }
104 +
105   TLorentzVector ntupleReader::hJet_jer( int idx, double sign ){
106    TLorentzVector tmp;
107    double hJet_pt_jer = hJet_pt[idx] + sign * resolution(hJet_eta[idx])*TMath::Abs(hJet_pt[idx]-hJet_genPt[idx]);
# Line 95 | Line 118 | TLorentzVector ntupleReader::H_jer( doub
118    return h;
119   }
120  
121 < double ntupleReader::hJet_PT( int idx, int sign ){ return  hJet_pt[idx]*(1 + (sign)*hJet_JECUnc[idx]); }
121 > double ntupleReader::hJet_PT( int idx, int sign ){
122 >  if( TMath::Abs(sign) < 2 )
123 >    return  hJet_pt[idx]*(1 + (sign)*hJet_JECUnc[idx]);
124 >  else // +- 2 are for jet energy corrections
125 >    return (hJet_jer( idx, sign - GetSign(sign)*1 )).Pt() ;
126 > }
127   double ntupleReader::aJet_PT( int idx, int sign ){ return  aJet_pt[idx]*(1 + (sign)*aJet_JECUnc[idx]); }
128 + double ntupleReader::hJet_E( int idx, int sign ){  return  hJet_e[idx] * hJet_pt[idx]/hJet_PT(idx, sign); }
129 + double ntupleReader::aJet_E( int idx, int sign ){ return aJet_e[idx] * aJet_pt[idx]/aJet_PT(idx, sign); }
130   TLorentzVector ntupleReader::Higgs( int sign ){
131    TLorentzVector j1,j2,H;
132 <  j1.SetPtEtaPhiE( hJet_pt_jec(0,sign), hJet_eta[0], hJet_phi[0], hJet_e[0] );
133 <  j2.SetPtEtaPhiE( hJet_pt_jec(1,sign), hJet_eta[1], hJet_phi[1], hJet_e[1] );
134 <  return  H=j1+j2;
132 >  if( TMath::Abs(sign) < 2 ){
133 >    j1.SetPtEtaPhiE( hJet_pt_jec(0,sign), hJet_eta[0], hJet_phi[0], hJet_e[0] );
134 >    j2.SetPtEtaPhiE( hJet_pt_jec(1,sign), hJet_eta[1], hJet_phi[1], hJet_e[1] );
135 >    return  H=j1+j2;
136 >  }
137 >  else // +- are for jet energy corrections
138 >    return H_jer( sign - GetSign(sign)*1 );
139   }
140   double ntupleReader::hJet_CSV( int idx, int sign ){
141    if(sign == 1) return (hJet_csvUp[idx]);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines