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

Comparing UserCode/MitHzz4l/Selection/src/applySelection.cc (file contents):
Revision 1.2 by dkralph, Wed Sep 14 12:11:57 2011 UTC vs.
Revision 1.9 by khahn, Mon Oct 17 16:23:43 2011 UTC

# Line 37 | Line 37 | using namespace std;
37   #include "TElectron.hh"
38   #include "TMuon.hh"
39   #include "TJet.hh"
40 + #include "SiMVAElectronSelection.h"
41   #include "RunLumiRangeMap.h"
42  
43   //
# Line 46 | Line 47 | using namespace std;
47   #include "SampleWeight.h"
48   #include "Selection.h"
49   #include "HZZCiCElectronSelection.h"
50 + #include "HZZLikelihoodElectronSelection.h"
51 + #include "HZZBDTElectronSelection.h"
52   #include "SampleWeight.h"
53  
54 + //#define BDTFAIL_THEIR_EVENTS
55   //#define THEIR_EVENTS
56  
57   //=== MAIN =================================================================================================
# Line 72 | Line 76 | int main(int argc, char** argv)
76    }
77    ctrl.dump();
78  
79 +  map<string,double> entrymap; // number of unskimmed entries in each file
80 +
81    //
82    // File I/O
83    //--------------------------------------------------------------------------------------------------------------
# Line 79 | Line 85 | int main(int argc, char** argv)
85    ifstream f(ctrl.inputfile.c_str());
86    string fname;
87    while (f >> fname) {
88 <    if( !(strncmp( fname.c_str(), "#", 1 ) ) ) continue; // skip commented lines  
88 >    if( !(strncmp( fname.c_str(), "#", 1 ) ) ) continue; // skip commented lines
89      cout << "adding inputfile : " << fname.c_str() << endl;
90 +    entrymap[string(fname.c_str())] = unskimmedEntries(fname.c_str());
91      chain->AddFile(fname.c_str());
92    }
93  
# Line 91 | Line 98 | int main(int argc, char** argv)
98    // Setup
99    //--------------------------------------------------------------------------------------------------------------
100    TH1F * h_evt = new TH1F("hevt", "hevt", 2, 0, 2 );
101 <  TH1F * h_evtfail = new TH1F("hevtfail", "hevtfail", 100, 0, 100 );
102 <  TNtuple * passtuple = new TNtuple( "passtuple", "passtuple", "run:evt:lumi:channel:mZ1:mZ2:m4l:pt4l:w" );
101 >  TH1F * h_evtfail = new TH1F("hevtfail", "hevtfail", 1024, 0, 1024 );
102 >  //  TNtuple * passtuple = new TNtuple( "passtuple", "passtuple", "run:evt:lumi:channel:mZ1:mZ2:m4l:pt4l:w" );
103 >  TTree * passtuple = new TTree("passtuple", "passtuple" );
104 >  unsigned run, evt, lumi, channel;
105 >  float mZ1, mZ2, m4l, pt4l;
106 >  unsigned tZ1, tZ2;
107 >  double w;
108 >  passtuple->Branch("run", &run);
109 >  passtuple->Branch("evt", &evt);
110 >  passtuple->Branch("lumi", &lumi);
111 >  passtuple->Branch("mZ1", &mZ1);
112 >  passtuple->Branch("mZ2", &mZ2);
113 >  passtuple->Branch("tZ1", &tZ1);
114 >  passtuple->Branch("tZ2", &tZ2);
115 >  passtuple->Branch("m4l", &m4l);
116 >  passtuple->Branch("pt4l", &pt4l);
117 >  passtuple->Branch("w", &w);
118    initCiCSelection();
119 +  if(ctrl.eleSele=="lik") initLikSelection();
120 +  if(ctrl.eleSele=="bdt") initBDTSelection();
121 +  if(ctrl.eleSele=="si" ) initSiMVAElectronSelection();
122    initRunLumiRangeMap();
123  
99
124    //
125    // Loop
126    //--------------------------------------------------------------------------------------------------------------
# Line 126 | Line 150 | int main(int argc, char** argv)
150    chain->SetBranchAddress("Muon", &muonArr);
151  
152  
153 <
153 >  int count=0, pass=0;
154    cout << "nEntries: " << chain->GetEntries() << endl;
155 <  for(UInt_t ientry=0; ientry<chain->GetEntries(); ientry++) {          
156 <    
155 >  for(UInt_t ientry=0; ientry<chain->GetEntries(); ientry++) {
156 >
157      chain->GetEntry(ientry);
158 +    if(!(ientry%100000)) cout << "entry: " << ientry << endl;
159  
160      // get event weight for this file                                                    
161 <    double xs=1,eventweight=1;                                                            
162 <    if(ctrl.mc) eventweight = xstab.Get(getname(chain).c_str()) / chain->GetEntries();    
161 >    double eventweight=1;
162 >    if(ctrl.mc) eventweight = getWeight(xstab,entrymap,chain);
163  
164   #ifdef THEIR_EVENTS
165      if( !( info->evtNum == 504867308  ||
166             info->evtNum == 368148849  ||
167 <           info->evtNum == 129514273  ||
167 >           //      info->evtNum == 129514273  ||
168             info->evtNum == 286336207  ||
169             info->evtNum == 344708580  ||
170             info->evtNum == 30998576   ||
# Line 147 | Line 172 | int main(int argc, char** argv)
172             info->evtNum == 394010457  ||
173             info->evtNum == 917379387  ||
174             info->evtNum == 78213037   ||
175 <           info->evtNum == 337493970  ||
175 >           info->evtNum == 862270386  ||
176 >           info->evtNum == 337493970  ||  // not baseline anymore?
177             info->evtNum == 1491724484 ||
178             info->evtNum == 480301165  ||
179             info->evtNum == 1038911933 ||
# Line 158 | Line 184 | int main(int argc, char** argv)
184             info->evtNum == 191231387  ||
185             info->evtNum == 66033190   ||
186             info->evtNum == 10347106   ||
187 <           info->evtNum == 107360878  ) ) continue;
187 >           info->evtNum == 107360878  ||
188 >           info->evtNum == 2554393033 ||
189 >           info->evtNum == 933807102  ||
190 >           info->evtNum == 1188043146 ||
191 >           info->evtNum == 559839432  ||
192 >           info->evtNum == 16706390   ||
193 >           info->evtNum == 65557571   ||
194 >           info->evtNum == 389185367  ||
195 >           info->evtNum == 2722114329 ) ) continue;
196 > #endif
197 >
198 >
199 > #ifdef BDTFAIL_THEIR_EVENTS
200 >    if( !( info->evtNum == 78213037   ||
201 >           info->evtNum == 876658967  ) ) continue;
202 >          
203   #endif
204  
205 <    unsigned evtfail = fails_HZZ4L_selection(ctrl, info, electronArr, muonArr, eventweight, passtuple );    
205 >    unsigned evtfail = fails_HZZ4L_selection(ctrl, info, electronArr, muonArr, eventweight, passtuple);    
206      h_evtfail->Fill( evtfail, eventweight );
207 <    cout << endl << endl;  
207 >
208 >    count++;
209 >    if( !evtfail ) pass++;
210            
211    } //end loop over data    
212  
213 <
213 >  if( ctrl.mc ) {
214 >    cout << "--------------" << endl;
215 >    cout << "denom: " << count << endl;
216 >    cout << "pass: " << pass << endl;
217 >    cout << "axe: " << (float)pass/count << endl;
218 >    cout << "--------------" << endl;
219 >  }
220  
221    delete info;
222    delete electronArr;
# Line 192 | Line 241 | int main(int argc, char** argv)
241    file->Close();
242    delete file;
243  
244 +  // map<TString,TMVA::Reader*>::iterator it;
245 +  // for(it=readers.begin(); it!=readers.end(); it++) delete (*it).second;
246 +
247    cerr << "done!" << endl;
248   }
249  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines