ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitHzz4l/Selection/src/Selection.cc
(Generate patch)

Comparing UserCode/MitHzz4l/Selection/src/Selection.cc (file contents):
Revision 1.13 by khahn, Sun Oct 30 15:12:30 2011 UTC vs.
Revision 1.16 by khahn, Mon Nov 7 05:28:06 2011 UTC

# Line 10 | Line 10
10   #include "EfficiencyWeightsInterface.h"
11  
12   RunLumiRangeMap rlrm;
13 + TH1D * hpu;
14 +
15  
16   // #include "TH2D.h"
17   // extern TH2D * h_mu_eff_idiso_2011a;
# Line 34 | Line 36 | void initRunLumiRangeMap() {
36    rlrm.AddJSONFile(std::string("./data/Cert_160404-178078_7TeV_PromptReco_Collisions11_JSON.txt"));
37    rlrm.AddJSONFile(std::string("./data/Cert_160404-163869_7TeV_May10ReReco_Collisions11_JSON_v3.txt"));  
38    rlrm.AddJSONFile(std::string("./data/Cert_170249-172619_7TeV_ReReco5Aug_Collisions11_JSON.txt"));  
39 +  TFile * puf = new TFile("data/PileupReweighting.Summer11DYmm_To_Run2011A.root");
40 +  hpu = (TH1D*)(puf->Get("puWeights"));
41   };
42  
43   void initRunLumiRangeMap(RunLumiRangeMap &rlrm) {
# Line 117 | Line 121 | unsigned fails_HZZ4L_selection(ControlFl
121           << endl;
122    }
123  
124 +  unsigned npu; double npuw;
125    if( !ctrl.mc ) {
126      // not accounting for overlap atm
127      RunLumiRangeMap::RunLumiPairType rl(info->runNum, info->lumiSec);      
# Line 125 | Line 130 | unsigned fails_HZZ4L_selection(ControlFl
130        evtfail |= (1<<EVTFAIL_JSON);
131        return evtfail;
132      }
133 +  } else {
134 +    npu = info->nPU;
135 +    npuw = hpu->GetBinContent(hpu->FindBin(npu));
136    }
137    
138    
# Line 167 | Line 175 | unsigned fails_HZZ4L_selection(ControlFl
175      const mithep::TMuon *mu = (mithep::TMuon*)((*muonArr)[i]);      
176      unsigned muonfail;
177      if( ctrl.muSele == "ksWW" )
178 <      muonfail = passMuonSelection(mu);
178 >      muonfail = passKSMuonSelection(mu);
179      else
180        muonfail = passMuonSelectionZZ(mu);
181      if( ctrl.debug ) {
# Line 178 | Line 186 | unsigned fails_HZZ4L_selection(ControlFl
186      }
187      if ( !muonfail ) {
188        SimpleLepton tmplep;
189 <      tmplep.vec.SetPtEtaPhiM(mu->pt,
189 >
190 >      float pt = mu->pt;
191 >      if( ctrl.do_escale_up   ) pt*=(1.01);
192 >      if( ctrl.do_escale_down ) pt*=(0.99);
193 >
194 >      tmplep.vec.SetPtEtaPhiM(pt,
195                                mu->eta,
196                                mu->phi,
197                                105.658369e-3);
198 +
199        tmplep.type    = 13;
200        tmplep.index   = i;
201        tmplep.charge  = mu->q;
# Line 275 | Line 289 | unsigned fails_HZZ4L_selection(ControlFl
289      }
290      if ( !FAIL && !isMuonOverlap ) {
291        SimpleLepton tmplep;
292 <      tmplep.vec.SetPtEtaPhiM( ele->pt,
292 >
293 >      float pt = ele->pt;
294 >      if( ctrl.do_escale_up   ) pt*=(1.02);
295 >      if( ctrl.do_escale_down ) pt*=(0.98);
296 >
297 >      tmplep.vec.SetPtEtaPhiM( pt,
298                                 ele->eta,
299                                 ele->phi,
300                                 0.51099892e-3 );
# Line 578 | Line 597 | unsigned fails_HZZ4L_selection(ControlFl
597  
598              if( abs(lepvec[i].type) == 13 ) {
599  
600 +              /*
601                float reliso = lepvec[i].isoPF03/lepvec[i].vec.Pt();
602                if( lepvec[i].isEB && lepvec[i].vec.Pt() > 20 && reliso > PFISO_MU_LOOSE_EB_HIGHPT ) {  //0.13
603                  failiso = true;
# Line 595 | Line 615 | unsigned fails_HZZ4L_selection(ControlFl
615                  failiso = true;
616                  break;
617                }
618 +              */
619              }
620            }  
621          } else if ( ctrl.isoScheme == "pairwise" ) {
# Line 745 | Line 766 | unsigned fails_HZZ4L_selection(ControlFl
766  
767            vector< pair <double,double> > wlegs; // pair here is eff & err
768            vector< pair <float,float> > mvec;  // pair here is eta & pt
769 <          vector< pair <float,float> > evec;  // pair here is eta & pt
769 >          // now deal with medium vs loose
770 >          //      vector< pair <float,float> > evec;  // pair here is eta & pt
771 >          vector< pair< bool, pair <float,float> > > evec;  // pair here is eta & pt
772  
773            for( int k=0; k<lepvec.size(); k++ ) {
774              if( !(lepvec[k].is4l) ) continue;
# Line 754 | Line 777 | unsigned fails_HZZ4L_selection(ControlFl
777                wlegs.push_back( muonPerLegOfflineEfficiencyWeight( fabs(lepvec[k].vec.Eta()),
778                                                                    lepvec[k].vec.Pt() ) );
779              } else {
780 <              evec.push_back( std::pair<float,float> (fabs(lepvec[k].vec.Eta()), lepvec[k].vec.Pt()) );
780 >
781 >              // now deal with medium vs loose
782 >              //              evec.push_back( std::pair<float,float> (fabs(lepvec[k].vec.Eta()), lepvec[k].vec.Pt()) );
783 >
784 >              std::pair<float,float> tmppair(fabs(lepvec[k].vec.Eta()), lepvec[k].vec.Pt());
785 >              evec.push_back( std::pair<bool, std::pair<float,float> > (lepvec[k].isTight, tmppair) );
786 >
787                wlegs.push_back( elePerLegOfflineEfficiencyWeight(  fabs(lepvec[k].vec.Eta()),
788                                                                   lepvec[k].vec.Pt() ) );
760                      //              wlegs.push_back( pair<double,double> (1.,0.) );
789              }
790            }
791  
# Line 768 | Line 796 | unsigned fails_HZZ4L_selection(ControlFl
796            pair<double,double> onpair  = getOnlineEfficiencyWeight( mvec, evec );
797            w_online    = onpair.first;
798            werr_online = onpair.second;
799 +
800          } // if mc
801  
802  
# Line 818 | Line 847 | unsigned fails_HZZ4L_selection(ControlFl
847              passtuple->SetBranchAddress("werroff", &werr_offline );
848              passtuple->SetBranchAddress("won", &w_online );
849              passtuple->SetBranchAddress("werron", &werr_online );
850 +            passtuple->SetBranchAddress("npu", &npu );
851 +            passtuple->SetBranchAddress("npuw", &npuw );
852 +            passtuple->SetBranchAddress("gchannel",  &gchannel);
853            }
854            if( ctrl.btag ) {
855            passtuple->SetBranchAddress("l3tche",    &l3tche);
# Line 830 | Line 862 | unsigned fails_HZZ4L_selection(ControlFl
862            passtuple->SetBranchAddress("l4csvMva",  &l4csvMva);
863            }
864  
833          if( ctrl.mc )           passtuple->SetBranchAddress("gchannel",  &gchannel);
865            passtuple->Fill( );
835
866          }
867  
868          if( ctrl.debug ) cout  << "run: " << info->runNum  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines