1 |
#include <TROOT.h>
|
2 |
#include <TCanvas.h>
|
3 |
#include <TGraph.h>
|
4 |
#include <TGraphErrors.h>
|
5 |
#include <TLegend.h>
|
6 |
#include <iostream>
|
7 |
#include "../interface/CutsAndHistos.h"
|
8 |
#include "../plugins/Histos.h"
|
9 |
#include "../plugins/Cuts/Cuts.hpp"
|
10 |
#include "TF1.h"
|
11 |
#include "TH1.h"
|
12 |
#include "../interface/samples.hpp"
|
13 |
#include "../interface/ntupleReader.hpp"
|
14 |
#include "../test/SideBandAnalysis-Pt50To100/sampleSideBand.h"
|
15 |
#include "Riostream.h"
|
16 |
#include "TMatrixD.h"
|
17 |
#include "TVectorD.h"
|
18 |
#include "TDecompChol.h"
|
19 |
#include "TDecompSVD.h"
|
20 |
#include "../plugins/setTDRStyle.C"
|
21 |
#include "../interface/controlRegions.h"
|
22 |
|
23 |
#define ZeeL 4683.5
|
24 |
#define fA 0.46502
|
25 |
#define fB 0.53498
|
26 |
|
27 |
int main(int argc, char **argv)
|
28 |
{
|
29 |
|
30 |
typedef std::vector<Sample> sampleCollection;
|
31 |
setTDRStyle();
|
32 |
bool verbose_ = true;
|
33 |
TCanvas * c1 = new TCanvas("c1","c1", 600,600);
|
34 |
TH1D * h = new TH1D("h","h",30,0,300);
|
35 |
CutSample *PreSelZee = new PreSelectionZee;
|
36 |
PCutSet signalRegionCutFlow;
|
37 |
|
38 |
signalRegionCutFlow.add( new EmptyCut );
|
39 |
signalRegionCutFlow.add( new VMassCutMin(75.) );
|
40 |
signalRegionCutFlow.add( new VMassCutMax(105.) );
|
41 |
signalRegionCutFlow.add( new JetPtCut(20.) );
|
42 |
signalRegionCutFlow.add( new VPtCut(100.) );
|
43 |
signalRegionCutFlow.add( new JetBtagCut(0.244, 0.244) );
|
44 |
signalRegionCutFlow.add( new HMassCut(80.) );
|
45 |
signalRegionCutFlow.add( new HMassCutMax(120.) );
|
46 |
|
47 |
sampleCollection samples = trees();
|
48 |
std::vector< controlRegion > cutFlowCR;
|
49 |
|
50 |
for(int i=0; i<signalRegionCutFlow.size(); ++i){
|
51 |
cutFlowCR.push_back( controlRegion(ZeeL,fA,fB) );
|
52 |
cutFlowCR.at(i).init();
|
53 |
}
|
54 |
|
55 |
for(size_t iS = 0; iS < samples.size(); ++iS ){
|
56 |
|
57 |
samples.at(iS).dump(1);
|
58 |
|
59 |
TFile* f = samples.at(iS).file();
|
60 |
if(f==0){
|
61 |
std::cerr << "File not found " << std::endl;
|
62 |
std::cerr << "Please check the path of this file " << samples.at(iS).filename << std::endl;
|
63 |
return -1;
|
64 |
}
|
65 |
|
66 |
ntupleReader event(samples.at(iS).filename.c_str());
|
67 |
bool trigger = true;
|
68 |
Long64_t entries = event.fChain->GetEntriesFast();
|
69 |
//Loop on all events of this file
|
70 |
for (unsigned int iEvent = 0; iEvent < entries; ++iEvent){
|
71 |
event.GetEntry(iEvent);
|
72 |
|
73 |
//to speed up the loop
|
74 |
if( event.Vtype != 1 )
|
75 |
continue;
|
76 |
|
77 |
//cut flow loop
|
78 |
for(int i=0; i<signalRegionCutFlow.size(); ++i){
|
79 |
cutFlowCR.at(i).fill( samples.at(iS), *PreSelZee, signalRegionCutFlow , i+1 , event );
|
80 |
}
|
81 |
|
82 |
}
|
83 |
|
84 |
}
|
85 |
|
86 |
for(int i=0; i<signalRegionCutFlow.size(); ++i){
|
87 |
std::string cutFlowName = "";
|
88 |
cutFlowName += signalRegionCutFlow.getCut(i)->name() + " " ;
|
89 |
std::cout << " --- Cut Flow " << cutFlowName << " --- " << std::endl;
|
90 |
std::cout << "DYL = " << cutFlowCR.at(i).cDYL() << " +- " << cutFlowCR.at(i).eDYL() << std::endl;
|
91 |
std::cout << "DYB = " << cutFlowCR.at(i).cDYB() << " +- " << cutFlowCR.at(i).eDYB() << std::endl;
|
92 |
std::cout << "TTbar = " << cutFlowCR.at(i).cTTbar() << " +- " << cutFlowCR.at(i).eTTbar() << std::endl;
|
93 |
std::cout << "VV = " << cutFlowCR.at(i).cVV() << " +- " << cutFlowCR.at(i).eVV() << std::endl;
|
94 |
std::cout << "ST = " << cutFlowCR.at(i).cST() << " +- " << cutFlowCR.at(i).eST() << std::endl;
|
95 |
std::cout << "WJETS = " << cutFlowCR.at(i).cWJETS() << " +- " << cutFlowCR.at(i).eWJETS() << std::endl;
|
96 |
std::cout << "Others = " << cutFlowCR.at(i).cOthers() << " +- " << cutFlowCR.at(i).eOthers() << std::endl;
|
97 |
std::cout << "Signal = " << cutFlowCR.at(i).cSignal() << " +- " << cutFlowCR.at(i).eSignal() << std::endl;
|
98 |
std::cout << "Total = " << cutFlowCR.at(i).cTotal() << " +- " << cutFlowCR.at(i).eTotal() << std::endl;
|
99 |
std::cout << "Data = " << cutFlowCR.at(i).cData() << " +- " << cutFlowCR.at(i).eData() << std::endl;
|
100 |
|
101 |
}
|
102 |
|
103 |
|
104 |
return 0;
|
105 |
}
|