ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/macros/examples/runHgg2013Final_8TeV_test.C
Revision: 1.1
Committed: Fri Nov 22 14:28:24 2013 UTC (11 years, 5 months ago) by veverka
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Log Message:
Enable smearing of the energy error without smearing the energy

File Contents

# User Rev Content
1 veverka 1.1 // $Id: runHgg2012HCP.C,v 1.2 2012/10/24 14:47:27 mingyang Exp $
2     #if !defined(__CINT__) || defined(__MAKECINT__)
3     #include <TSystem.h>
4     #include <TProfile.h>
5     #include "MitAna/DataUtil/interface/Debug.h"
6     #include "MitAna/Catalog/interface/Catalog.h"
7     #include "MitAna/TreeMod/interface/Analysis.h"
8     #include "MitAna/TreeMod/interface/HLTMod.h"
9     #include "MitAna/PhysicsMod/interface/RunLumiSelectionMod.h"
10     #include "MitAna/PhysicsMod/interface/MCProcessSelectionMod.h"
11     #include "MitAna/PhysicsMod/interface/PublisherMod.h"
12     #include "MitAna/DataTree/interface/JetCol.h"
13     #include "MitAna/DataTree/interface/PFJetCol.h"
14     #include "MitPhysics/Init/interface/ModNames.h"
15     #include "MitAna/DataTree/interface/Names.h"
16     #include "MitPhysics/Mods/interface/GoodPVFilterMod.h"
17     #include "MitPhysics/Mods/interface/MuonIDMod.h"
18     #include "MitPhysics/Mods/interface/ElectronIDMod.h"
19     #include "MitPhysics/Mods/interface/ElectronCleaningMod.h"
20     #include "MitPhysics/Mods/interface/PhotonIDMod.h"
21     #include "MitPhysics/Mods/interface/PhotonPairSelector.h"
22     #include "MitPhysics/Mods/interface/PhotonTreeWriter.h"
23     #include "MitPhysics/Mods/interface/PhotonCleaningMod.h"
24     #include "MitPhysics/Mods/interface/MergeLeptonsMod.h"
25     #include "MitPhysics/Mods/interface/JetCorrectionMod.h"
26     #include "MitPhysics/Mods/interface/PhotonMvaMod.h"
27     #include "MitPhysics/Mods/interface/MVASystematicsMod.h"
28     #include "MitPhysics/Mods/interface/SeparatePileUpMod.h"
29    
30     #endif
31    
32     //--------------------------------------------------------------------------------------------------
33     void runHgg2013Final_8TeV_test(const char *fileset = "0000",
34     const char *skim = "noskim",
35     //const char *dataset = "f11--h120gg-gf-v14b-pu",
36     //const char *dataset = "r11a-pho-j16-v1",
37     //const char *dataset = "meridiani2012-diphoj-v9",
38     //const char *dataset = "s12-h125gg-gf-v9",
39     //const char *dataset = "s12-pj40-2em-v9",
40     //const char *dataset = "s12-diphoj-3-v9",
41     //const char *dataset = "s12-zllm50-v9",
42     //const char *dataset = "f11--h121gg-gf-v14b-pu",
43     //const char *dataset = "r12a-pho-pr-v1",
44     //const char *dataset = "s12-pj40-2em-v9",
45     //const char *dataset = "s12-h125gg-vbf-v7a",
46     //const char *dataset = "s12-h125gg-vh-v7a",
47     //const char *dataset = "s12-h125gg-gf-v7a",
48     //const char *dataset = "r12a-pho-j13-v1",
49     //const char *dataset = "r12b-dph-j13-v1",
50     //const char *dataset = "s12-zllm50-v7a",
51     //const char *dataset = "r12a-pho-j22-v1",
52     //const char *dataset = "r12b-dph-j22-v1",
53     //const char *dataset = "r12c-dph-j22-v1",
54     //const char *dataset = "r12d-dph-j22-v1",
55     //const char *dataset = "s12-h124gg-gf-v7n",
56     const char *dataset = "s12-diphoj-m60-v7n",
57     const char *book = "t2mit/filefi/030",
58     //const char *book = "local/filefi/029",
59     const char *catalogDir = "/home/cmsprod/catalog",
60     const char *outputName = "hgg",
61     int nEvents = 1000)
62     {
63     //------------------------------------------------------------------------------------------------
64     // some parameters get passed through the environment
65     //------------------------------------------------------------------------------------------------
66     char json[1024], overlap[1024];
67     float overlapCut = -1;
68    
69     if (gSystem->Getenv("MIT_PROD_JSON"))
70     sprintf(json, "%s",gSystem->Getenv("MIT_PROD_JSON"));
71     else {
72     sprintf(json, "%s", "~");
73     //printf(" JSON file was not properly defined. EXIT!\n");
74     //return;
75     }
76    
77     TString jsonFile = TString("/home/mingyang/cms/json/") + TString(json);
78     //TString jsonFile = TString("/home/mingyang/cms/json/") + TString("Cert_136033-149442_7TeV_Dec22ReReco_Collisions10_JSON_v4.txt");
79     Bool_t isData = ( (jsonFile.CompareTo("/home/mingyang/cms/json/~") != 0) );
80    
81     if (gSystem->Getenv("MIT_PROD_OVERLAP")) {
82     sprintf(overlap,"%s",gSystem->Getenv("MIT_PROD_OVERLAP"));
83     if (EOF == sscanf(overlap,"%f",&overlapCut)) {
84     printf(" Overlap was not properly defined. EXIT!\n");
85     return;
86     }
87     }
88     else {
89     sprintf(overlap,"%s", "-1.0");
90     //printf(" OVERLAP file was not properly defined. EXIT!\n");
91     //return;
92     }
93    
94     printf("\n Initialization worked. \n\n");
95    
96     //------------------------------------------------------------------------------------------------
97     // some global setups
98     //------------------------------------------------------------------------------------------------
99     using namespace mithep;
100     gDebugMask = Debug::kGeneral;
101     gDebugLevel = 3;
102    
103     //------------------------------------------------------------------------------------------------
104     // set up information
105     //------------------------------------------------------------------------------------------------
106     RunLumiSelectionMod *runLumiSel = new RunLumiSelectionMod;
107     runLumiSel->SetAcceptMC(kTRUE); // Monte Carlo events are always accepted
108    
109     MCProcessSelectionMod *mcselmod = new MCProcessSelectionMod;
110    
111     MVASystematicsMod *sysMod = new MVASystematicsMod;
112     sysMod->SetMCR9Scale(1.0035, 1.0035);
113     sysMod->SetIsData(isData);
114    
115     // only select on run- and lumisection numbers when valid json file present
116     if ((jsonFile.CompareTo("/home/mingyang/cms/json/~") != 0) &&
117     (jsonFile.CompareTo("/home/mingyang/cms/json/-") != 0) ) {
118     runLumiSel->AddJSONFile(jsonFile.Data());
119     }
120     if ((jsonFile.CompareTo("/home/mingyang/cms/json/-") == 0) ) {
121     printf("\n WARNING -- Looking at data without JSON file: always accept.\n\n");
122     runLumiSel->SetAbortIfNotAccepted(kFALSE); // accept all events if there is no valid JSON file
123     }
124    
125     printf("\n Run lumi worked. \n\n");
126    
127     //------------------------------------------------------------------------------------------------
128     // HLT information
129     //------------------------------------------------------------------------------------------------
130     HLTMod *hltModM = new HLTMod("HLTModM");
131     hltModM->AddTrigger("HLT_Mu9");
132     hltModM->AddTrigger("HLT_Mu11");
133     hltModM->AddTrigger("HLT_Mu15_v1");
134     hltModM->SetTrigObjsName("MyHltMuonObjs");
135     hltModM->SetAbortIfNotAccepted(kFALSE);
136    
137     HLTMod *hltModE = new HLTMod("HLTModE");
138     hltModE->AddTrigger("HLT_Ele17_CaloIdL_CaloIsoVL_Ele8_CaloIdL_CaloIsoVL_v1",150000,161176);
139     hltModE->AddTrigger("HLT_Ele17_CaloIdL_CaloIsoVL_Ele8_CaloIdL_CaloIsoVL_v2",161179,163261);
140     hltModE->AddTrigger("HLT_Ele17_CaloIdL_CaloIsoVL_Ele8_CaloIdL_CaloIsoVL_v3",163262,164237);
141     hltModE->AddTrigger("HLT_Ele17_CaloIdL_CaloIsoVL_Ele8_CaloIdL_CaloIsoVL_v4",165085,165888);
142     hltModE->AddTrigger("HLT_Ele17_CaloIdL_CaloIsoVL_Ele8_CaloIdL_CaloIsoVL_v5",165900,166967);
143     hltModE->AddTrigger("HLT_Ele17_CaloIdL_CaloIsoVL_Ele8_CaloIdL_CaloIsoVL_v6",166968,170053);
144     hltModE->AddTrigger("HLT_Ele17_CaloIdT_CaloIsoVL_TrkIdVL_TrkIsoVL_Ele8_CaloIdT_CaloIsoVL_TrkIdVL_TrkIsoVL_v6",170054,170759);
145     hltModE->AddTrigger("HLT_Ele17_CaloIdT_CaloIsoVL_TrkIdVL_TrkIsoVL_Ele8_CaloIdT_CaloIsoVL_TrkIdVL_TrkIsoVL_v7",170760,173198);
146     hltModE->AddTrigger("HLT_Ele17_CaloIdT_CaloIsoVL_TrkIdVL_TrkIsoVL_Ele8_CaloIdT_CaloIsoVL_TrkIdVL_TrkIsoVL_v8",173199,178380);
147     hltModE->AddTrigger("HLT_Ele17_CaloIdT_CaloIsoVL_TrkIdVL_TrkIsoVL_Ele8_CaloIdT_CaloIsoVL_TrkIdVL_TrkIsoVL_v9",178381,179889);
148     hltModE->AddTrigger("HLT_Ele17_CaloIdT_CaloIsoVL_TrkIdVL_TrkIsoVL_Ele8_CaloIdT_CaloIsoVL_TrkIdVL_TrkIsoVL_v10",179890,189999);
149     hltModE->AddTrigger("HLT_Ele17_CaloIdT_CaloIsoVL_TrkIdVL_TrkIsoVL_Ele8_CaloIdT_CaloIsoVL_TrkIdVL_TrkIsoVL_v*",190000,999999);
150     hltModE->SetTrigObjsName("MyHltElecObjs");
151     hltModE->SetAbortIfNotAccepted(isData);
152    
153     HLTMod *hltModES = new HLTMod("HLTModES");
154     hltModES->AddTrigger("HLT_Ele27_CaloIdVT_CaloIsoT_TrkIdT_TrkIsoT_v*",160000,189999);
155     hltModES->AddTrigger("HLT_Ele27_CaloIdVT_CaloIsoT_TrkIdT_TrkIsoT_v2",160000,189999);
156     hltModES->AddTrigger("HLT_Ele27_CaloIdVT_CaloIsoT_TrkIdT_TrkIsoT_v3",160000,189999);
157     hltModES->AddTrigger("HLT_Ele25_WP80_PFMT40_v*",160000,189999);
158     hltModES->AddTrigger("HLT_Ele27_WP80_PFMT50_v*",160000,189999);
159     hltModES->AddTrigger("HLT_Ele27_WP80_v*",190000,999999);
160     hltModES->SetTrigObjsName("MyHltElecSObjs");
161     hltModES->SetAbortIfNotAccepted(isData);
162    
163     HLTMod *hltModP = new HLTMod("HLTModP");
164    
165     hltModP->AddTrigger("HLT_Photon26_CaloIdL_IsoVL_Photon18_CaloIdL_IsoVL_v*",160000,161176);
166    
167     hltModP->AddTrigger("HLT_Photon26_CaloIdL_IsoVL_Photon18_CaloIdL_IsoVL_v*",161216,165633);
168     hltModP->AddTrigger("HLT_Photon26_CaloIdL_IsoVL_Photon18_R9Id_v*",161216,165633);
169     hltModP->AddTrigger("HLT_Photon26_R9Id_Photon18_CaloIdL_IsoVL_v*",161216,165633);
170     hltModP->AddTrigger("HLT_Photon20_R9Id_Photon18_R9Id_v*",161216,165633);
171    
172     hltModP->AddTrigger("HLT_Photon26_CaloIdL_IsoVL_Photon18_CaloIdL_IsoVL_v*",165970,173198);
173     hltModP->AddTrigger("HLT_Photon26_CaloIdL_IsoVL_Photon18_R9Id_v*",165970,173198);
174     hltModP->AddTrigger("HLT_Photon26_R9Id_Photon18_CaloIdL_IsoVL_v*",165970,173198);
175     hltModP->AddTrigger("HLT_Photon26_R9Id_Photon18_R9Id_v*",165970,173198);
176     hltModP->AddTrigger("HLT_Photon36_CaloIdL_IsoVL_Photon22_CaloIdL_IsoVL_v*",165970,173198);
177     hltModP->AddTrigger("HLT_Photon36_R9Id_Photon22_CaloIdL_IsoVL_v*",165970,173198);
178     hltModP->AddTrigger("HLT_Photon36_R9Id_Photon22_R9Id_v*",165970,173198);
179    
180     hltModP->AddTrigger("HLT_Photon36_CaloId_IsoVL_Photon22_R9Id_v*",165970,166967);
181     hltModP->AddTrigger("HLT_Photon36_CaloIdL_IsoVL_Photon22_R9Id_v*",167039,173198);
182    
183     hltModP->AddTrigger("HLT_Photon26_CaloIdXL_IsoXL_Photon18_CaloIdXL_IsoXL_v*",173236,178380);
184     hltModP->AddTrigger("HLT_Photon26_CaloIdXL_IsoXL_Photon18_R9Id_v*",173236,178380);
185     hltModP->AddTrigger("HLT_Photon26_R9Id_Photon18_CaloIdXL_IsoXL_v*",173236,178380);
186     hltModP->AddTrigger("HLT_Photon26_R9Id_Photon18_R9Id_v*",173236,178380);
187     hltModP->AddTrigger("HLT_Photon36_CaloIdL_IsoVL_Photon22_CaloIdL_IsoVL_v*",173236,178380);
188     hltModP->AddTrigger("HLT_Photon36_CaloIdL_IsoVL_Photon22_R9Id_v*",173236,178380);
189     hltModP->AddTrigger("HLT_Photon36_R9Id_Photon22_CaloIdL_IsoVL_v*",173236,178380);
190     hltModP->AddTrigger("HLT_Photon36_R9Id_Photon22_R9Id_v*",173236,178380);
191    
192     hltModP->AddTrigger("HLT_Photon26_CaloIdXL_IsoXL_Photon18_CaloIdXL_IsoXL_Mass60_v*",178420,189999);
193     hltModP->AddTrigger("HLT_Photon26_CaloIdXL_IsoXL_Photon18_R9IdT_Mass60_v*",178420,189999);
194     hltModP->AddTrigger("HLT_Photon26_R9IdT_Photon18_CaloIdXL_IsoXL_Mass60_v*",178420,189999);
195     hltModP->AddTrigger("HLT_Photon26_R9IdT_Photon18_R9IdT_Mass60_v*",178420,189999);
196     hltModP->AddTrigger("HLT_Photon36_CaloIdL_IsoVL_Photon22_CaloIdL_IsoVL_v*",178420,189999);
197     hltModP->AddTrigger("HLT_Photon36_CaloIdL_IsoVL_Photon22_R9Id_v*",178420,189999);
198     hltModP->AddTrigger("HLT_Photon36_R9Id_Photon22_CaloIdL_IsoVL_v*",178420,189999);
199     hltModP->AddTrigger("HLT_Photon36_R9Id_Photon22_R9Id_v*",178420,189999);
200    
201     //hltModP->AddTrigger("HLT_Photon26_CaloId10_Iso50_Photon18_CaloId10_Iso50_Mass60_v*",190000,999999);
202     //hltModP->AddTrigger("HLT_Photon26_CaloId10_Iso50_Photon18_R9Id85_Mass60_v*",190000,999999);
203     //hltModP->AddTrigger("HLT_Photon26_R9Id85_OR_CaloId10_Iso50_Photon18_R9Id85_OR_CaloId10_Iso50_Mass60_v*",190000,999999);
204     //hltModP->AddTrigger("HLT_Photon26_R9Id85_OR_CaloId10_Iso50_Photon18_R9Id85_OR_CaloId10_Iso50_Mass70_v*",190000,999999);
205     //hltModP->AddTrigger("HLT_Photon26_R9Id85_Photon18_CaloId10_Iso50_Mass60_v*",190000,999999);
206     //hltModP->AddTrigger("HLT_Photon26_R9Id85_Photon18_R9Id85_Mass60_v*",190000,999999);
207     //hltModP->AddTrigger("HLT_Photon36_CaloId10_Iso50_Photon22_CaloId10_Iso50_v*",190000,999999);
208     //hltModP->AddTrigger("HLT_Photon36_CaloId10_Iso50_Photon22_R9Id85_v*",190000,999999);
209     //hltModP->AddTrigger("HLT_Photon36_R9Id85_OR_CaloId10_Iso50_Photon22_R9Id85_OR_CaloId10_Iso50_v*",190000,999999);
210     //hltModP->AddTrigger("HLT_Photon36_R9Id85_Photon22_CaloId10_Iso50_v*",190000,999999);
211     //hltModP->AddTrigger("HLT_Photon36_R9Id85_Photon22_R9Id85_v*",190000,999999);
212    
213     hltModP->AddTrigger("HLT_Photon26_R9Id85_OR_CaloId10_Iso50_Photon18_R9Id85_OR_CaloId10_Iso50_Mass*",190000,999999);
214     hltModP->AddTrigger("HLT_Photon36_R9Id85_OR_CaloId10_Iso50_Photon22_R9Id85_OR_CaloId10_Iso50_v*",190000,999999);
215    
216     hltModP->SetTrigObjsName("MyHltPhotObjs");
217     hltModP->SetAbortIfNotAccepted(isData);
218     //------------------------------------------------------------------------------------------------
219     // split pfcandidates to PFPU and PFnoPU
220     //------------------------------------------------------------------------------------------------
221     SeparatePileUpMod* SepPUMod = new SeparatePileUpMod;
222     // SepPUMod->SetUseAllVerteces(kFALSE);
223     // SepPUMod->SetVertexName("OutVtxCiC");
224     SepPUMod->SetPFNoPileUpName("pfnopileupcands");
225     SepPUMod->SetPFPileUpName("pfpileupcands");
226     SepPUMod->SetCheckClosestZVertex(kTRUE);
227    
228     //------------------------------------------------------------------------------------------------
229     // select events with a good primary vertex
230     //------------------------------------------------------------------------------------------------
231     GoodPVFilterMod *goodPVFilterMod = new GoodPVFilterMod;
232     goodPVFilterMod->SetMinVertexNTracks(0);
233     goodPVFilterMod->SetMinNDof (4.0);
234     goodPVFilterMod->SetMaxAbsZ (24.0);
235     goodPVFilterMod->SetMaxRho (2.0);
236     goodPVFilterMod->SetAbortIfNotAccepted(kFALSE);
237     goodPVFilterMod->SetIsMC(!isData);
238    
239     GoodPVFilterMod *goodPVFilterModE = new GoodPVFilterMod("GoodPVFilterModE");
240     goodPVFilterModE->SetOutputName("GoodVertexesE");
241     goodPVFilterModE->SetMinVertexNTracks(0);
242     goodPVFilterModE->SetMinNDof (4.0);
243     goodPVFilterModE->SetMaxAbsZ (24.0);
244     goodPVFilterModE->SetMaxRho (2.0);
245     goodPVFilterModE->SetIsMC(!isData);
246    
247     GoodPVFilterMod *goodPVFilterModES = new GoodPVFilterMod("GoodPVFilterModES");
248     goodPVFilterModES->SetOutputName("GoodVertexesES");
249     goodPVFilterModES->SetMinVertexNTracks(0);
250     goodPVFilterModES->SetMinNDof (4.0);
251     goodPVFilterModES->SetMaxAbsZ (24.0);
252     goodPVFilterModES->SetMaxRho (2.0);
253    
254    
255     //------------------------------------------------------------------------------------------------
256     // object id and cleaning sequence
257     //------------------------------------------------------------------------------------------------
258     //-----------------------------------
259     // Lepton Selection
260     //-----------------------------------
261     ElectronIDMod* eleIdMod = new ElectronIDMod;
262     eleIdMod -> SetPtMin(20);
263     eleIdMod -> SetEtaMax(2.5);
264     eleIdMod -> SetApplyEcalFiducial(true);
265     eleIdMod -> SetIDType("Hgg_LeptonTag_2012IdHCP");
266     eleIdMod -> SetElectronMVAWeightsSubdet0Pt10To20(TString((getenv("CMSSW_BASE")+string("/src/MitPhysics/data/ElectronMVAWeights/ElectronID_BDTG_EGamma2012NonTrigV0_Cat1.weights.xml"))));
267     eleIdMod -> SetElectronMVAWeightsSubdet1Pt10To20(TString((getenv("CMSSW_BASE")+string("/src/MitPhysics/data/ElectronMVAWeights/ElectronID_BDTG_EGamma2012NonTrigV0_Cat2.weights.xml"))));
268     eleIdMod -> SetElectronMVAWeightsSubdet2Pt10To20(TString((getenv("CMSSW_BASE")+string("/src/MitPhysics/data/ElectronMVAWeights/ElectronID_BDTG_EGamma2012NonTrigV0_Cat3.weights.xml"))));
269     eleIdMod -> SetElectronMVAWeightsSubdet0Pt20ToInf(TString((getenv("CMSSW_BASE")+string("/src/MitPhysics/data/ElectronMVAWeights/ElectronID_BDTG_EGamma2012NonTrigV0_Cat4.weights.xml"))));
270     eleIdMod -> SetElectronMVAWeightsSubdet1Pt20ToInf(TString((getenv("CMSSW_BASE")+string("/src/MitPhysics/data/ElectronMVAWeights/ElectronID_BDTG_EGamma2012NonTrigV0_Cat5.weights.xml"))));
271     eleIdMod -> SetElectronMVAWeightsSubdet2Pt20ToInf(TString((getenv("CMSSW_BASE")+string("/src/MitPhysics/data/ElectronMVAWeights/ElectronID_BDTG_EGamma2012NonTrigV0_Cat6.weights.xml"))));
272     eleIdMod -> SetWhichVertex(-1);
273     eleIdMod -> SetD0Cut(0.02);
274     eleIdMod -> SetDZCut(0.2); //h
275     eleIdMod -> SetIsoType("PFIso_HggLeptonTag2012HCP"); //h
276     eleIdMod -> SetOutputName("HggLeptonTagElectrons");
277     eleIdMod -> SetRhoType(RhoUtilities::CMS_RHO_RHOKT6PFJETS);
278     eleIdMod -> SetPFNoPileUpName("pfnopileupcands");
279     eleIdMod -> SetInvertNExpectedHitsInnerCut(kFALSE);
280     eleIdMod -> SetNExpectedHitsInnerCut(1);
281     eleIdMod -> SetApplyConversionFilterType1(kTRUE);
282     eleIdMod -> SetPVName(Names::gkPVBeamSpotBrn);
283    
284     MuonIDMod* muonIdMod = new MuonIDMod;
285     // base kinematics
286     muonIdMod -> SetPtMin(20.);
287     muonIdMod -> SetEtaCut(2.4);
288     // base ID
289     //muonIdMod -> SetIDType("Tight");
290     muonIdMod -> SetIDType("muonPOG2012CutBasedIDTight");
291     muonIdMod -> SetWhichVertex(-1); // this is a 'hack'.. but hopefully good enough...
292     muonIdMod -> SetD0Cut(0.2);
293     muonIdMod -> SetDZCut(0.5);
294     muonIdMod -> SetIsoType("PFIsoBetaPUCorrected"); //h
295     muonIdMod -> SetPFIsoCut(0.2); //h
296     muonIdMod -> SetOutputName("HggLeptonTagMuons");
297     muonIdMod -> SetPFNoPileUpName("pfnopileupcands");
298     muonIdMod -> SetPFPileUpName("pfpileupcands");
299     muonIdMod -> SetPVName(Names::gkPVBeamSpotBrn);
300    
301     PublisherMod<PFJet,Jet> *pubJet = new PublisherMod<PFJet,Jet>("JetPub");
302     pubJet->SetInputName("AKt5PFJets");
303     pubJet->SetOutputName("PubAKt5PFJets");
304    
305     PublisherMod<PFJet,Jet> *pubJetOpen = new PublisherMod<PFJet,Jet>("JetPubOpen");
306     pubJetOpen->SetInputName("AKt5PFJets");
307     pubJetOpen->SetOutputName("PubAKt5PFJetsOpen");
308    
309     JetCorrectionMod *jetCorr = new JetCorrectionMod;
310     /*if(isData){
311     jetCorr->AddCorrectionFromFile(std::string((gSystem->Getenv("CMSSW_BASE") + TString("/src/MitPhysics/data/GR_P_V42_AN3_L1FastJet_AK5PF.txt")).Data()));
312     jetCorr->AddCorrectionFromFile(std::string((gSystem->Getenv("CMSSW_BASE") + TString("/src/MitPhysics/data/GR_P_V42_AN3_L2Relative_AK5PF.txt")).Data()));
313     jetCorr->AddCorrectionFromFile(std::string((gSystem->Getenv("CMSSW_BASE") + TString("/src/MitPhysics/data/GR_P_V42_AN3_L3Absolute_AK5PF.txt")).Data()));
314     jetCorr->AddCorrectionFromFile(std::string((gSystem->Getenv("CMSSW_BASE") + TString("/src/MitPhysics/data/GR_P_V42_AN3_L2L3Residual_AK5PF.txt")).Data()));
315     }
316     else {
317     jetCorr->AddCorrectionFromFile(std::string((gSystem->Getenv("CMSSW_BASE") + TString("/src/MitPhysics/data/START53_V15_L1FastJet_AK5PF.txt")).Data()));
318     jetCorr->AddCorrectionFromFile(std::string((gSystem->Getenv("CMSSW_BASE") + TString("/src/MitPhysics/data/START53_V15_L2Relative_AK5PF.txt")).Data()));
319     jetCorr->AddCorrectionFromFile(std::string((gSystem->Getenv("CMSSW_BASE") + TString("/src/MitPhysics/data/START53_V15_L3Absolute_AK5PF.txt")).Data()));
320     }*/
321     if(isData){
322     jetCorr->AddCorrectionFromFile(std::string((gSystem->Getenv("CMSSW_BASE") + TString("/src/MitPhysics/data/Summer12_V7_DATA_L1FastJet_AK5PF.txt")).Data()));
323     jetCorr->AddCorrectionFromFile(std::string((gSystem->Getenv("CMSSW_BASE") + TString("/src/MitPhysics/data/Summer12_V7_DATA_L2Relative_AK5PF.txt")).Data()));
324     jetCorr->AddCorrectionFromFile(std::string((gSystem->Getenv("CMSSW_BASE") + TString("/src/MitPhysics/data/Summer12_V7_DATA_L3Absolute_AK5PF.txt")).Data()));
325     jetCorr->AddCorrectionFromFile(std::string((gSystem->Getenv("CMSSW_BASE") + TString("/src/MitPhysics/data/Summer12_V7_DATA_L2L3Residual_AK5PF.txt")).Data()));
326     }
327     else {
328     jetCorr->AddCorrectionFromFile(std::string((gSystem->Getenv("CMSSW_BASE") + TString("/src/MitPhysics/data/Summer12_V7_MC_L1FastJet_AK5PF.txt")).Data()));
329     jetCorr->AddCorrectionFromFile(std::string((gSystem->Getenv("CMSSW_BASE") + TString("/src/MitPhysics/data/Summer12_V7_MC_L2Relative_AK5PF.txt")).Data()));
330     jetCorr->AddCorrectionFromFile(std::string((gSystem->Getenv("CMSSW_BASE") + TString("/src/MitPhysics/data/Summer12_V7_MC_L3Absolute_AK5PF.txt")).Data()));
331     }
332     jetCorr->SetInputName(pubJet->GetOutputName());
333     jetCorr->SetCorrectedName("CorrectedJets");
334    
335    
336     Bool_t excludedoubleprompt = kFALSE;
337     if (TString(dataset).Contains("-pj")) {
338     mcselmod->ExcludeProcess(18);
339     mcselmod->ExcludeProcess(114);
340     excludedoubleprompt = kTRUE;
341     }
342    
343     if (TString(dataset).Contains("-qcd")) {
344     excludedoubleprompt = kTRUE;
345     }
346    
347     Bool_t is25 = kFALSE;
348     if (TString(book).Contains("025")) is25 = kTRUE;
349    
350     PhotonMvaMod *photreg = new PhotonMvaMod;
351     //photreg->SetRegressionVersion(3);
352     //photreg->SetRegressionWeights(std::string((gSystem->Getenv("CMSSW_BASE") + TString("/src/MitPhysics/data/gbrv3ph_52x.root")).Data()));
353     //photreg->SetOutputName("GoodPhotonsRegr");
354     //photreg->SetApplyShowerRescaling(kTRUE);
355     //photreg->SetIsData(isData);
356     photreg->SetRegressionVersion(5);
357     photreg->SetRegressionWeights(std::string((gSystem->Getenv("CMSSW_BASE") + TString("/src/MitPhysics/data/regweights_v5_forest_ph.root")).Data()));
358     photreg->SetOutputName("GoodPhotonsRegr");
359     photreg->SetApplyShowerRescaling(kTRUE);
360     photreg->SetIsData(isData);
361    
362    
363     PhotonPairSelector *photcic = new PhotonPairSelector("PhotonPairSelectorCiC");
364     photcic->SetOutputName("GoodPhotonsCIC");
365     photcic->SetOutputVtxName("OutVtxCiC");
366     photcic->SetPhotonSelType("CiCPFSelection");
367     photcic->SetVertexSelType("CiCMVA2012Selection");
368     photcic->SetUseSingleLegConversions(kFALSE);
369     photcic->DoMCSmear(kTRUE);
370     photcic->DoDataEneCorr(kFALSE);
371     photcic->SetPhotonsFromBranch(kFALSE);
372     photcic->SetInputPhotonsName(photreg->GetOutputName());
373    
374     //------------------------------------------2012 HCP--------------------------------------------------------------
375     photcic->SetMCSmearFactors2012HCP(0.0072,0.0072,0.0083,0.0083,0.0107,0.0187,0.0156,0.0198,0.0187,0.0194);
376     photcic->SetMCSmearFactors2012HCPMVA(0.0072,0.0072,0.0083,0.0083,0.0107,0.0187,0.0156,0.0198,0.0187,0.0194);
377     photcic->UseSpecialSmearForDPMVA(true);
378     photcic->AddEnCorrPerRun2012HCP(190645,190781,0.9964,0.9964,1.0020,1.0020,0.9893,1.0028,0.9871,0.9937,0.9839,0.9958);
379     photcic->AddEnCorrPerRun2012HCP(190782,191042,1.0024,1.0024,1.0079,1.0079,0.9923,1.0058,0.9911,0.9977,0.9886,1.0005);
380     photcic->AddEnCorrPerRun2012HCP(191043,193555,0.9935,0.9935,0.9991,0.9991,0.9861,0.9997,0.9894,0.9960,0.9864,0.9982);
381     photcic->AddEnCorrPerRun2012HCP(193556,194150,0.9920,0.9920,0.9976,0.9976,0.9814,0.9951,0.9896,0.9962,0.9872,0.9990);
382     photcic->AddEnCorrPerRun2012HCP(194151,194532,0.9925,0.9925,0.9981,0.9981,0.9826,0.9963,0.9914,0.9980,0.9874,0.9993);
383     photcic->AddEnCorrPerRun2012HCP(194533,195113,0.9927,0.9927,0.9983,0.9983,0.9844,0.9981,0.9934,0.9999,0.9878,0.9996);
384     photcic->AddEnCorrPerRun2012HCP(195114,195915,0.9929,0.9929,0.9984,0.9984,0.9838,0.9974,0.9942,1.0007,0.9878,0.9997);
385     photcic->AddEnCorrPerRun2012HCP(195916,198115,0.9919,0.9919,0.9975,0.9975,0.9827,0.9964,0.9952,1.0017,0.9869,0.9987);
386     photcic->AddEnCorrPerRun2012HCP(198116,199803,0.9955,0.9955,1.0011,1.0011,0.9859,0.9995,0.9893,0.9959,0.9923,1.0041);
387     photcic->AddEnCorrPerRun2012HCP(199804,200048,0.9967,0.9967,1.0023,1.0023,0.9870,1.0006,0.9893,0.9959,0.9937,1.0055);
388     photcic->AddEnCorrPerRun2012HCP(200049,200151,0.9980,0.9980,1.0036,1.0036,0.9877,1.0012,0.9910,0.9976,0.9980,1.0097);
389     photcic->AddEnCorrPerRun2012HCP(200152,200490,0.9958,0.9958,1.0013,1.0013,0.9868,1.0004,0.9922,0.9988,0.9948,1.0065);
390     photcic->AddEnCorrPerRun2012HCP(200491,200531,0.9979,0.9979,1.0035,1.0035,0.9876,1.0012,0.9915,0.9981,0.9979,1.0096);
391     photcic->AddEnCorrPerRun2012HCP(200532,201656,0.9961,0.9961,1.0017,1.0017,0.9860,0.9996,0.9904,0.9970,0.9945,1.0063);
392     photcic->AddEnCorrPerRun2012HCP(201657,202305,0.9969,0.9969,1.0025,1.0025,0.9866,1.0002,0.9914,0.9980,0.9999,1.0116);
393     photcic->AddEnCorrPerRun2012HCP(202305,203002,0.9982,0.9982,1.0038,1.0038,0.9872,1.0008,0.9934,1.0000,1.0018,1.0135);
394     photcic->AddEnCorrPerRun2012HCP(203003,203984,1.0006,1.0006,1.0061,1.0061,0.9880,1.0017,0.9919,0.9988,0.9992,1.0104);
395     photcic->AddEnCorrPerRun2012HCP(203985,205085,0.9993,0.9993,1.0048,1.0048,0.9903,1.0040,0.9928,0.9997,0.9987,1.0099);
396     photcic->AddEnCorrPerRun2012HCP(205086,205310,1.0004,1.0004,1.0059,1.0059,0.9901,1.0037,0.9987,1.0055,1.0091,1.0202);
397     photcic->AddEnCorrPerRun2012HCP(205311,206207,1.0000,1.0000,1.0055,1.0055,0.9891,1.0028,0.9948,1.0017,1.0032,1.0144);
398     photcic->AddEnCorrPerRun2012HCP(206208,206483,1.0003,1.0003,1.0058,1.0058,0.9895,1.0032,0.9921,0.9989,1.0056,1.0167);
399     photcic->AddEnCorrPerRun2012HCP(206484,206597,1.0005,1.0005,1.0060,1.0060,0.9895,1.0032,0.9968,1.0036,1.0046,1.0158);
400     photcic->AddEnCorrPerRun2012HCP(206598,206896,1.0006,1.0006,1.0061,1.0061,0.9881,1.0017,0.9913,0.9982,1.0050,1.0162);
401     photcic->AddEnCorrPerRun2012HCP(206897,207220,1.0006,1.0006,1.0061,1.0061,0.9884,1.0021,0.9909,0.9978,1.0053,1.0165);
402     photcic->AddEnCorrPerRun2012HCP(207221,208686,1.0006,1.0006,1.0061,1.0061,0.9894,1.0030,0.9951,1.0020,1.0060,1.0172);
403    
404     //-----------------------------------------------------------------------------------------------------------------
405    
406     // photcic->SetDoMCR9Scaling(kTRUE);
407     // photcic->SetMCR9Scale(1.0035, 1.0035);
408     photcic->SetDoShowerShapeScaling(kFALSE);
409     photcic->SetShowerShapeType("2012ShowerShape");
410     //photcic->SetDoMCErrScaling(kTRUE);
411     //photcic->SetMCErrScale(1.07, 1.045);
412     //photcic->SetMCErrScale(1, 1); //ming:scale(sigE/E)
413     photcic->SetJetsName(jetCorr->GetOutputName());
414     //photcic->SetRescaledBeamspotWidth(5.0);
415     photcic->SetIsData(isData);
416     photcic->SetApplyLeptonTag(kTRUE);
417     photcic->SetLeptonTagElectronsName("HggLeptonTagElectrons");
418     photcic->SetLeptonTagMuonsName("HggLeptonTagMuons");
419     photcic->Set2012HCP(kTRUE);
420     photcic->SetIdMVAType("2013FinalIdMVA");
421    
422     PhotonPairSelector *photcicnoeleveto = new PhotonPairSelector("PhotonPairSelectorCiCInvertEleVeto");
423     photcicnoeleveto->SetOutputName("GoodPhotonsCICNoEleVeto");
424     photcicnoeleveto->SetOutputVtxName("OutVtxCiCInvertEleVeto");
425     photcicnoeleveto->SetPhotonSelType("CiCPFSelection");
426     photcicnoeleveto->SetVertexSelType("CiCMVA2012Selection");
427     photcicnoeleveto->SetUseSingleLegConversions(kFALSE);
428     photcicnoeleveto->DoMCSmear(kTRUE);
429     photcicnoeleveto->DoDataEneCorr(kFALSE);
430     photcicnoeleveto->SetPhotonsFromBranch(kFALSE);
431     photcicnoeleveto->SetInputPhotonsName(photreg->GetOutputName());
432    
433     //------------------------------------------2012 HCP--------------------------------------------------------------
434     photcicnoeleveto->SetMCSmearFactors2012HCP(0.0072,0.0072,0.0083,0.0083,0.0107,0.0187,0.0156,0.0198,0.0187,0.0194);
435     photcicnoeleveto->SetMCSmearFactors2012HCPMVA(0.0072,0.0072,0.0083,0.0083,0.0107,0.0187,0.0156,0.0198,0.0187,0.0194);
436     photcicnoeleveto->UseSpecialSmearForDPMVA(true);
437     photcicnoeleveto->AddEnCorrPerRun2012HCP(190645,190781,0.9964,0.9964,1.0020,1.0020,0.9893,1.0028,0.9871,0.9937,0.9839,0.9958);
438     photcicnoeleveto->AddEnCorrPerRun2012HCP(190782,191042,1.0024,1.0024,1.0079,1.0079,0.9923,1.0058,0.9911,0.9977,0.9886,1.0005);
439     photcicnoeleveto->AddEnCorrPerRun2012HCP(191043,193555,0.9935,0.9935,0.9991,0.9991,0.9861,0.9997,0.9894,0.9960,0.9864,0.9982);
440     photcicnoeleveto->AddEnCorrPerRun2012HCP(193556,194150,0.9920,0.9920,0.9976,0.9976,0.9814,0.9951,0.9896,0.9962,0.9872,0.9990);
441     photcicnoeleveto->AddEnCorrPerRun2012HCP(194151,194532,0.9925,0.9925,0.9981,0.9981,0.9826,0.9963,0.9914,0.9980,0.9874,0.9993);
442     photcicnoeleveto->AddEnCorrPerRun2012HCP(194533,195113,0.9927,0.9927,0.9983,0.9983,0.9844,0.9981,0.9934,0.9999,0.9878,0.9996);
443     photcicnoeleveto->AddEnCorrPerRun2012HCP(195114,195915,0.9929,0.9929,0.9984,0.9984,0.9838,0.9974,0.9942,1.0007,0.9878,0.9997);
444     photcicnoeleveto->AddEnCorrPerRun2012HCP(195916,198115,0.9919,0.9919,0.9975,0.9975,0.9827,0.9964,0.9952,1.0017,0.9869,0.9987);
445     photcicnoeleveto->AddEnCorrPerRun2012HCP(198116,199803,0.9955,0.9955,1.0011,1.0011,0.9859,0.9995,0.9893,0.9959,0.9923,1.0041);
446     photcicnoeleveto->AddEnCorrPerRun2012HCP(199804,200048,0.9967,0.9967,1.0023,1.0023,0.9870,1.0006,0.9893,0.9959,0.9937,1.0055);
447     photcicnoeleveto->AddEnCorrPerRun2012HCP(200049,200151,0.9980,0.9980,1.0036,1.0036,0.9877,1.0012,0.9910,0.9976,0.9980,1.0097);
448     photcicnoeleveto->AddEnCorrPerRun2012HCP(200152,200490,0.9958,0.9958,1.0013,1.0013,0.9868,1.0004,0.9922,0.9988,0.9948,1.0065);
449     photcicnoeleveto->AddEnCorrPerRun2012HCP(200491,200531,0.9979,0.9979,1.0035,1.0035,0.9876,1.0012,0.9915,0.9981,0.9979,1.0096);
450     photcicnoeleveto->AddEnCorrPerRun2012HCP(200532,201656,0.9961,0.9961,1.0017,1.0017,0.9860,0.9996,0.9904,0.9970,0.9945,1.0063);
451     photcicnoeleveto->AddEnCorrPerRun2012HCP(201657,202305,0.9969,0.9969,1.0025,1.0025,0.9866,1.0002,0.9914,0.9980,0.9999,1.0116);
452     photcicnoeleveto->AddEnCorrPerRun2012HCP(202305,203002,0.9982,0.9982,1.0038,1.0038,0.9872,1.0008,0.9934,1.0000,1.0018,1.0135);
453     photcicnoeleveto->AddEnCorrPerRun2012HCP(203003,203984,1.0006,1.0006,1.0061,1.0061,0.9880,1.0017,0.9919,0.9988,0.9992,1.0104);
454     photcicnoeleveto->AddEnCorrPerRun2012HCP(203985,205085,0.9993,0.9993,1.0048,1.0048,0.9903,1.0040,0.9928,0.9997,0.9987,1.0099);
455     photcicnoeleveto->AddEnCorrPerRun2012HCP(205086,205310,1.0004,1.0004,1.0059,1.0059,0.9901,1.0037,0.9987,1.0055,1.0091,1.0202);
456     photcicnoeleveto->AddEnCorrPerRun2012HCP(205311,206207,1.0000,1.0000,1.0055,1.0055,0.9891,1.0028,0.9948,1.0017,1.0032,1.0144);
457     photcicnoeleveto->AddEnCorrPerRun2012HCP(206208,206483,1.0003,1.0003,1.0058,1.0058,0.9895,1.0032,0.9921,0.9989,1.0056,1.0167);
458     photcicnoeleveto->AddEnCorrPerRun2012HCP(206484,206597,1.0005,1.0005,1.0060,1.0060,0.9895,1.0032,0.9968,1.0036,1.0046,1.0158);
459     photcicnoeleveto->AddEnCorrPerRun2012HCP(206598,206896,1.0006,1.0006,1.0061,1.0061,0.9881,1.0017,0.9913,0.9982,1.0050,1.0162);
460     photcicnoeleveto->AddEnCorrPerRun2012HCP(206897,207220,1.0006,1.0006,1.0061,1.0061,0.9884,1.0021,0.9909,0.9978,1.0053,1.0165);
461     photcicnoeleveto->AddEnCorrPerRun2012HCP(207221,208686,1.0006,1.0006,1.0061,1.0061,0.9894,1.0030,0.9951,1.0020,1.0060,1.0172);
462    
463     //-----------------------------------------------------------------------------------------------------------------
464    
465     //photcicnoeleveto->SetDoMCR9Scaling(kTRUE);
466     //photcicnoeleveto->SetMCR9Scale(1.0035, 1.0035);
467     photcicnoeleveto->SetDoShowerShapeScaling(kFALSE);
468     photcicnoeleveto->SetShowerShapeType("2012ShowerShape");
469     //photcicnoeleveto->SetDoMCErrScaling(kTRUE);
470     //photcicnoeleveto->SetMCErrScale(1.07, 1.045);
471     //photcicnoeleveto->SetMCErrScale(1, 1);
472     photcicnoeleveto->SetApplyEleVeto(kFALSE);
473     photcicnoeleveto->SetInvertElectronVeto(kTRUE);
474     photcicnoeleveto->SetJetsName(jetCorr->GetOutputName());
475     //photcicnoeleveto->SetRescaledBeamspotWidth(5.0);
476     photcicnoeleveto->SetIsData(isData);
477     photcicnoeleveto->SetApplyLeptonTag(kTRUE);
478     photcicnoeleveto->SetLeptonTagElectronsName("HggLeptonTagElectrons");
479     photcicnoeleveto->SetLeptonTagMuonsName("HggLeptonTagMuons");
480     photcicnoeleveto->Set2012HCP(kTRUE);
481     photcicnoeleveto->SetIdMVAType("2013FinalIdMVA");
482    
483     PhotonPairSelector *photpresel = new PhotonPairSelector("PhotonPairSelectorPresel");
484     photpresel->SetOutputName("GoodPhotonsPresel");
485     photpresel->SetPhotonSelType("MITPFSelectionNoEcal");
486     photpresel->SetVertexSelType("CiCMVA2012Selection");
487     photpresel->SetUseSingleLegConversions(kFALSE);
488     photpresel->SetIdMVAType("2013FinalIdMVA");
489     photpresel->DoMCSmear(kTRUE);
490     photpresel->DoDataEneCorr(kFALSE);
491     photpresel->SetPhotonsFromBranch(kFALSE);
492     photpresel->SetInputPhotonsName(photreg->GetOutputName());
493     //------------------------------------------2012 HCP--------------------------------------------------------------
494     photpresel->SetMCSmearFactors2012HCP(0.0072,0.0072,0.0083,0.0083,0.0107,0.0187,0.0156,0.0198,0.0187,0.0194);
495     photpresel->SetMCSmearFactors2012HCPMVA(0.0072,0.0072,0.0083,0.0083,0.0107,0.0187,0.0156,0.0198,0.0187,0.0194);
496     photpresel->UseSpecialSmearForDPMVA(true);
497     photpresel->AddEnCorrPerRun2012HCP(190645,190781,0.9964,0.9964,1.0020,1.0020,0.9893,1.0028,0.9871,0.9937,0.9839,0.9958);
498     photpresel->AddEnCorrPerRun2012HCP(190782,191042,1.0024,1.0024,1.0079,1.0079,0.9923,1.0058,0.9911,0.9977,0.9886,1.0005);
499     photpresel->AddEnCorrPerRun2012HCP(191043,193555,0.9935,0.9935,0.9991,0.9991,0.9861,0.9997,0.9894,0.9960,0.9864,0.9982);
500     photpresel->AddEnCorrPerRun2012HCP(193556,194150,0.9920,0.9920,0.9976,0.9976,0.9814,0.9951,0.9896,0.9962,0.9872,0.9990);
501     photpresel->AddEnCorrPerRun2012HCP(194151,194532,0.9925,0.9925,0.9981,0.9981,0.9826,0.9963,0.9914,0.9980,0.9874,0.9993);
502     photpresel->AddEnCorrPerRun2012HCP(194533,195113,0.9927,0.9927,0.9983,0.9983,0.9844,0.9981,0.9934,0.9999,0.9878,0.9996);
503     photpresel->AddEnCorrPerRun2012HCP(195114,195915,0.9929,0.9929,0.9984,0.9984,0.9838,0.9974,0.9942,1.0007,0.9878,0.9997);
504     photpresel->AddEnCorrPerRun2012HCP(195916,198115,0.9919,0.9919,0.9975,0.9975,0.9827,0.9964,0.9952,1.0017,0.9869,0.9987);
505     photpresel->AddEnCorrPerRun2012HCP(198116,199803,0.9955,0.9955,1.0011,1.0011,0.9859,0.9995,0.9893,0.9959,0.9923,1.0041);
506     photpresel->AddEnCorrPerRun2012HCP(199804,200048,0.9967,0.9967,1.0023,1.0023,0.9870,1.0006,0.9893,0.9959,0.9937,1.0055);
507     photpresel->AddEnCorrPerRun2012HCP(200049,200151,0.9980,0.9980,1.0036,1.0036,0.9877,1.0012,0.9910,0.9976,0.9980,1.0097);
508     photpresel->AddEnCorrPerRun2012HCP(200152,200490,0.9958,0.9958,1.0013,1.0013,0.9868,1.0004,0.9922,0.9988,0.9948,1.0065);
509     photpresel->AddEnCorrPerRun2012HCP(200491,200531,0.9979,0.9979,1.0035,1.0035,0.9876,1.0012,0.9915,0.9981,0.9979,1.0096);
510     photpresel->AddEnCorrPerRun2012HCP(200532,201656,0.9961,0.9961,1.0017,1.0017,0.9860,0.9996,0.9904,0.9970,0.9945,1.0063);
511     photpresel->AddEnCorrPerRun2012HCP(201657,202305,0.9969,0.9969,1.0025,1.0025,0.9866,1.0002,0.9914,0.9980,0.9999,1.0116);
512     photpresel->AddEnCorrPerRun2012HCP(202305,203002,0.9982,0.9982,1.0038,1.0038,0.9872,1.0008,0.9934,1.0000,1.0018,1.0135);
513     photpresel->AddEnCorrPerRun2012HCP(203003,203984,1.0006,1.0006,1.0061,1.0061,0.9880,1.0017,0.9919,0.9988,0.9992,1.0104);
514     photpresel->AddEnCorrPerRun2012HCP(203985,205085,0.9993,0.9993,1.0048,1.0048,0.9903,1.0040,0.9928,0.9997,0.9987,1.0099);
515     photpresel->AddEnCorrPerRun2012HCP(205086,205310,1.0004,1.0004,1.0059,1.0059,0.9901,1.0037,0.9987,1.0055,1.0091,1.0202);
516     photpresel->AddEnCorrPerRun2012HCP(205311,206207,1.0000,1.0000,1.0055,1.0055,0.9891,1.0028,0.9948,1.0017,1.0032,1.0144);
517     photpresel->AddEnCorrPerRun2012HCP(206208,206483,1.0003,1.0003,1.0058,1.0058,0.9895,1.0032,0.9921,0.9989,1.0056,1.0167);
518     photpresel->AddEnCorrPerRun2012HCP(206484,206597,1.0005,1.0005,1.0060,1.0060,0.9895,1.0032,0.9968,1.0036,1.0046,1.0158);
519     photpresel->AddEnCorrPerRun2012HCP(206598,206896,1.0006,1.0006,1.0061,1.0061,0.9881,1.0017,0.9913,0.9982,1.0050,1.0162);
520     photpresel->AddEnCorrPerRun2012HCP(206897,207220,1.0006,1.0006,1.0061,1.0061,0.9884,1.0021,0.9909,0.9978,1.0053,1.0165);
521     photpresel->AddEnCorrPerRun2012HCP(207221,208686,1.0006,1.0006,1.0061,1.0061,0.9894,1.0030,0.9951,1.0020,1.0060,1.0172);
522    
523     //-----------------------------------------------------------------------------------------------------------------
524     //photpresel->SetDoMCR9Scaling(kTRUE);
525     photpresel->SetDoShowerShapeScaling(kFALSE);
526     photpresel->SetShowerShapeType("2012ShowerShape");
527     //photpresel->SetDoMCErrScaling(kTRUE);
528     //photpresel->SetMCErrScale(1.07, 1.045);
529     //photpresel->SetMCErrScale(1, 1);
530     photpresel->SetJetsName(jetCorr->GetOutputName());
531     //photpresel->SetRescaledBeamspotWidth(5.0);
532     photpresel->SetIsData(isData);
533     photpresel->SetApplyLeptonTag(kTRUE);
534     photpresel->SetLeptonTagElectronsName("HggLeptonTagElectrons");
535     photpresel->SetLeptonTagMuonsName("HggLeptonTagMuons");
536     photpresel->Set2012HCP(kTRUE);
537    
538     PhotonPairSelector *photpreselinverteleveto = new PhotonPairSelector("PhotonPairSelectorPreselInvertEleVeto");
539     photpreselinverteleveto->SetOutputName("GoodPhotonsPreselInvertEleVeto");
540     photpreselinverteleveto->SetOutputVtxName("OutVtxPreselInvertEleVeto");
541     photpreselinverteleveto->SetPhotonSelType("MITPFSelectionNoEcal");
542     photpreselinverteleveto->SetIdMVAType("2013FinalIdMVA");
543     //photpreselinverteleveto->SetVertexSelType("CiCMVA2012Selection");//ming change
544     photpreselinverteleveto->SetUseSingleLegConversions(kFALSE);
545     photpreselinverteleveto->DoMCSmear(kTRUE);
546     photpreselinverteleveto->DoDataEneCorr(kFALSE);
547     photpreselinverteleveto->SetPhotonsFromBranch(kFALSE);
548     photpreselinverteleveto->SetInputPhotonsName(photreg->GetOutputName());
549     //------------------------------------------2012 HCP--------------------------------------------------------------
550     photpreselinverteleveto->SetMCSmearFactors2012HCP(0.0072,0.0072,0.0083,0.0083,0.0107,0.0187,0.0156,0.0198,0.0187,0.0194);
551     photpreselinverteleveto->SetMCSmearFactors2012HCPMVA(0.0072,0.0072,0.0083,0.0083,0.0107,0.0187,0.0156,0.0198,0.0187,0.0194);
552     photpreselinverteleveto->UseSpecialSmearForDPMVA(true);
553     photpreselinverteleveto->AddEnCorrPerRun2012HCP(190645,190781,0.9964,0.9964,1.0020,1.0020,0.9893,1.0028,0.9871,0.9937,0.9839,0.9958);
554     photpreselinverteleveto->AddEnCorrPerRun2012HCP(190782,191042,1.0024,1.0024,1.0079,1.0079,0.9923,1.0058,0.9911,0.9977,0.9886,1.0005);
555     photpreselinverteleveto->AddEnCorrPerRun2012HCP(191043,193555,0.9935,0.9935,0.9991,0.9991,0.9861,0.9997,0.9894,0.9960,0.9864,0.9982);
556     photpreselinverteleveto->AddEnCorrPerRun2012HCP(193556,194150,0.9920,0.9920,0.9976,0.9976,0.9814,0.9951,0.9896,0.9962,0.9872,0.9990);
557     photpreselinverteleveto->AddEnCorrPerRun2012HCP(194151,194532,0.9925,0.9925,0.9981,0.9981,0.9826,0.9963,0.9914,0.9980,0.9874,0.9993);
558     photpreselinverteleveto->AddEnCorrPerRun2012HCP(194533,195113,0.9927,0.9927,0.9983,0.9983,0.9844,0.9981,0.9934,0.9999,0.9878,0.9996);
559     photpreselinverteleveto->AddEnCorrPerRun2012HCP(195114,195915,0.9929,0.9929,0.9984,0.9984,0.9838,0.9974,0.9942,1.0007,0.9878,0.9997);
560     photpreselinverteleveto->AddEnCorrPerRun2012HCP(195916,198115,0.9919,0.9919,0.9975,0.9975,0.9827,0.9964,0.9952,1.0017,0.9869,0.9987);
561     photpreselinverteleveto->AddEnCorrPerRun2012HCP(198116,199803,0.9955,0.9955,1.0011,1.0011,0.9859,0.9995,0.9893,0.9959,0.9923,1.0041);
562     photpreselinverteleveto->AddEnCorrPerRun2012HCP(199804,200048,0.9967,0.9967,1.0023,1.0023,0.9870,1.0006,0.9893,0.9959,0.9937,1.0055);
563     photpreselinverteleveto->AddEnCorrPerRun2012HCP(200049,200151,0.9980,0.9980,1.0036,1.0036,0.9877,1.0012,0.9910,0.9976,0.9980,1.0097);
564     photpreselinverteleveto->AddEnCorrPerRun2012HCP(200152,200490,0.9958,0.9958,1.0013,1.0013,0.9868,1.0004,0.9922,0.9988,0.9948,1.0065);
565     photpreselinverteleveto->AddEnCorrPerRun2012HCP(200491,200531,0.9979,0.9979,1.0035,1.0035,0.9876,1.0012,0.9915,0.9981,0.9979,1.0096);
566     photpreselinverteleveto->AddEnCorrPerRun2012HCP(200532,201656,0.9961,0.9961,1.0017,1.0017,0.9860,0.9996,0.9904,0.9970,0.9945,1.0063);
567     photpreselinverteleveto->AddEnCorrPerRun2012HCP(201657,202305,0.9969,0.9969,1.0025,1.0025,0.9866,1.0002,0.9914,0.9980,0.9999,1.0116);
568     photpreselinverteleveto->AddEnCorrPerRun2012HCP(202305,203002,0.9982,0.9982,1.0038,1.0038,0.9872,1.0008,0.9934,1.0000,1.0018,1.0135);
569     photpreselinverteleveto->AddEnCorrPerRun2012HCP(203003,203984,1.0006,1.0006,1.0061,1.0061,0.9880,1.0017,0.9919,0.9988,0.9992,1.0104);
570     photpreselinverteleveto->AddEnCorrPerRun2012HCP(203985,205085,0.9993,0.9993,1.0048,1.0048,0.9903,1.0040,0.9928,0.9997,0.9987,1.0099);
571     photpreselinverteleveto->AddEnCorrPerRun2012HCP(205086,205310,1.0004,1.0004,1.0059,1.0059,0.9901,1.0037,0.9987,1.0055,1.0091,1.0202);
572     photpreselinverteleveto->AddEnCorrPerRun2012HCP(205311,206207,1.0000,1.0000,1.0055,1.0055,0.9891,1.0028,0.9948,1.0017,1.0032,1.0144);
573     photpreselinverteleveto->AddEnCorrPerRun2012HCP(206208,206483,1.0003,1.0003,1.0058,1.0058,0.9895,1.0032,0.9921,0.9989,1.0056,1.0167);
574     photpreselinverteleveto->AddEnCorrPerRun2012HCP(206484,206597,1.0005,1.0005,1.0060,1.0060,0.9895,1.0032,0.9968,1.0036,1.0046,1.0158);
575     photpreselinverteleveto->AddEnCorrPerRun2012HCP(206598,206896,1.0006,1.0006,1.0061,1.0061,0.9881,1.0017,0.9913,0.9982,1.0050,1.0162);
576     photpreselinverteleveto->AddEnCorrPerRun2012HCP(206897,207220,1.0006,1.0006,1.0061,1.0061,0.9884,1.0021,0.9909,0.9978,1.0053,1.0165);
577     photpreselinverteleveto->AddEnCorrPerRun2012HCP(207221,208686,1.0006,1.0006,1.0061,1.0061,0.9894,1.0030,0.9951,1.0020,1.0060,1.0172);
578    
579     //-----------------------------------------------------------------------------------------------------------------
580     photpreselinverteleveto->SetShowerShapeType("2012ShowerShape");
581     photpreselinverteleveto->SetDoShowerShapeScaling(kFALSE);
582     //photpreselinverteleveto->SetDoMCErrScaling(kTRUE);
583     //photpreselinverteleveto->SetMCErrScale(1.07, 1.045);
584     //photpreselinverteleveto->SetMCErrScale(1, 1);
585     photpreselinverteleveto->SetApplyEleVeto(kFALSE);
586     photpreselinverteleveto->SetInvertElectronVeto(kTRUE);
587     photpreselinverteleveto->SetJetsName(jetCorr->GetOutputName());
588     //photpreselinverteleveto->SetRescaledBeamspotWidth(5.0);
589     photpreselinverteleveto->SetIsData(isData);
590     photpreselinverteleveto->SetApplyLeptonTag(kTRUE);
591     photpreselinverteleveto->SetLeptonTagElectronsName("HggLeptonTagElectrons");
592     photpreselinverteleveto->SetLeptonTagMuonsName("HggLeptonTagMuons");
593     photpreselinverteleveto->Set2012HCP(kTRUE);
594     photpreselinverteleveto->SetLeadingPtMin(20.);
595     photpreselinverteleveto->SetTrailingPtMin(20.);
596    
597     PhotonPairSelector *photpreselnosmear = new PhotonPairSelector("PhotonPairSelectorPreselNoSmear");
598     photpreselnosmear->SetOutputName("GoodPhotonsPreselNoSmear");
599     photpreselnosmear->SetPhotonSelType("MITPFSelectionNoEcal");
600     photpreselnosmear->SetVertexSelType("CiCMVA2012Selection");
601     photpreselnosmear->SetUseSingleLegConversions(kFALSE);
602     photpreselnosmear->SetIdMVAType("2013FinalIdMVA");
603     photpreselnosmear->SetShowerShapeType("2012ShowerShape");
604     photpreselnosmear->SetDoShowerShapeScaling(kFALSE);
605     photpreselnosmear->SetPhotonsFromBranch(kFALSE);
606     photpreselnosmear->SetInputPhotonsName(photreg->GetOutputName());
607     photpreselnosmear->SetJetsName(jetCorr->GetOutputName());
608     photpreselnosmear->SetOutputVtxName("OutVtxNoSmear");
609     photpreselnosmear->SetLeadingPtMin(30.);
610     photpreselnosmear->SetTrailingPtMin(22.);
611     //photpreselnosmear->SetRescaledBeamspotWidth(5.0);
612     photpreselnosmear->SetIsData(isData);
613     photpreselnosmear->SetApplyLeptonTag(kTRUE);
614     photpreselnosmear->SetLeptonTagElectronsName("HggLeptonTagElectrons");
615     photpreselnosmear->SetLeptonTagMuonsName("HggLeptonTagMuons");
616     photpreselnosmear->Set2012HCP(kTRUE);
617     photpreselnosmear->DoMCSmear(kFALSE);
618     photpreselnosmear->DoDataEneCorr(kFALSE);
619    
620     PhotonPairSelector *photcicnosmear = new PhotonPairSelector("PhotonPairSelectorCiCNoSmear");
621     photcicnosmear->SetOutputName("GoodPhotonsCICNoSmear");
622     photcicnosmear->SetOutputVtxName("OutVtxCiCNoSmear");
623     photcicnosmear->SetPhotonSelType("CiCPFSelection");
624     photcicnosmear->SetVertexSelType("CiCMVA2012Selection");
625     photcicnosmear->SetUseSingleLegConversions(kFALSE);
626     photcicnosmear->DoMCSmear(kFALSE);
627     photcicnosmear->DoDataEneCorr(kFALSE);
628     photcicnosmear->SetPhotonsFromBranch(kFALSE);
629     photcicnosmear->SetInputPhotonsName(photreg->GetOutputName());
630     // photcicnosmear->SetDoMCR9Scaling(kTRUE);
631     // photcicnosmear->SetMCR9Scale(1.0035, 1.0035);
632     photcicnosmear->SetDoShowerShapeScaling(kFALSE);
633     photcicnosmear->SetShowerShapeType("2012ShowerShape");
634     //photcicnosmear->SetDoMCErrScaling(kTRUE);
635     //photcicnosmear->SetMCErrScale(1.07, 1.045);
636     //photcicnosmear->SetMCErrScale(1, 1); //ming:scale(sigE/E)
637     photcicnosmear->SetJetsName(jetCorr->GetOutputName());
638     //photcicnosmear->SetRescaledBeamspotWidth(5.0);
639     photcicnosmear->SetIsData(isData);
640     photcicnosmear->SetApplyLeptonTag(kTRUE);
641     photcicnosmear->SetLeptonTagElectronsName("HggLeptonTagElectrons");
642     photcicnosmear->SetLeptonTagMuonsName("HggLeptonTagMuons");
643     photcicnosmear->Set2012HCP(kTRUE);
644    
645     PhotonPairSelector *photpreselinvertelevetonosmear = new PhotonPairSelector("PhotonPairSelectorPreselInvertEleVetoNoSmear");
646     photpreselinvertelevetonosmear->SetOutputName("GoodPhotonsPreselInvertEleVetoNoSmear");
647     photpreselinvertelevetonosmear->SetPhotonSelType("MITPFSelectionNoEcal");
648     //photpreselinvertelevetonosmear->SetVertexSelType("CiCMVA2012Selection");//ming change
649     photpreselinvertelevetonosmear->SetUseSingleLegConversions(kFALSE);
650     photpreselinvertelevetonosmear->SetIdMVAType("2013FinalIdMVA");
651     photpreselinvertelevetonosmear->SetShowerShapeType("2012ShowerShape");
652     photpreselinvertelevetonosmear->SetDoShowerShapeScaling(kFALSE);
653     photpreselinvertelevetonosmear->SetPhotonsFromBranch(kFALSE);
654     photpreselinvertelevetonosmear->SetInputPhotonsName(photreg->GetOutputName());
655     photpreselinvertelevetonosmear->SetJetsName(jetCorr->GetOutputName());
656     photpreselinvertelevetonosmear->SetOutputVtxName("OutVtxPreselInvertEleVetoNoSmear");
657     //photpreselinvertelevetonosmear->SetLeadingPtMin(30.);
658     photpreselinvertelevetonosmear->SetLeadingPtMin(20.);//ming
659     //photpreselinvertelevetonosmear->SetTrailingPtMin(22.);
660     photpreselinvertelevetonosmear->SetTrailingPtMin(20.);//ming
661     //photpreselinvertelevetonosmear->SetRescaledBeamspotWidth(5.0);
662     photpreselinvertelevetonosmear->SetIsData(isData);
663     photpreselinvertelevetonosmear->SetApplyLeptonTag(kTRUE);
664     photpreselinvertelevetonosmear->SetLeptonTagElectronsName("HggLeptonTagElectrons");
665     photpreselinvertelevetonosmear->SetLeptonTagMuonsName("HggLeptonTagMuons");
666     photpreselinvertelevetonosmear->Set2012HCP(kTRUE);
667     photpreselinvertelevetonosmear->DoMCSmear(kFALSE);
668     photpreselinvertelevetonosmear->DoDataEneCorr(kFALSE);
669     photpreselinvertelevetonosmear->SetApplyEleVeto(kFALSE);
670     photpreselinvertelevetonosmear->SetInvertElectronVeto(kTRUE);
671    
672     PhotonTreeWriter *phottreecic = new PhotonTreeWriter("PhotonTreeWriterCiC");
673     phottreecic->SetPhotonsFromBranch(kFALSE);
674     phottreecic->SetInputPhotonsName(photcic->GetOutputName());
675     phottreecic->SetEnableJets(kTRUE);
676     phottreecic->SetApplyJetId(kTRUE);
677     phottreecic->SetPFJetsFromBranch(kFALSE);
678     phottreecic->SetPFJetName(jetCorr->GetOutputName());
679     phottreecic->SetExcludeDoublePrompt(excludedoubleprompt);
680     phottreecic->SetIsData(isData);
681     if (is25) phottreecic->SetEnablePFPhotons(kFALSE);
682     phottreecic->SetApplyLeptonTag(kTRUE);
683     phottreecic->SetLeptonTagElectronsName("HggLeptonTagElectrons");
684     phottreecic->SetLeptonTagMuonsName("HggLeptonTagMuons");
685     phottreecic->SetApplyVBFTag(kTRUE);
686     phottreecic->SetApplyPFMetCorr(kTRUE);
687     phottreecic->SetBeamspotWidth(5.0);
688    
689     PhotonTreeWriter *phottreecicnoeleveto = new PhotonTreeWriter("PhotonTreeWriterCiCInvertEleVeto");
690     phottreecicnoeleveto->SetPhotonsFromBranch(kFALSE);
691     phottreecicnoeleveto->SetInputPhotonsName(photcicnoeleveto->GetOutputName());
692     phottreecicnoeleveto->SetEnableJets(kTRUE);
693     phottreecicnoeleveto->SetApplyJetId(kTRUE);
694     phottreecicnoeleveto->SetPFJetsFromBranch(kFALSE);
695     phottreecicnoeleveto->SetPFJetName(jetCorr->GetOutputName());
696     phottreecicnoeleveto->SetApplyElectronVeto(kFALSE);
697     phottreecicnoeleveto->SetExcludeDoublePrompt(excludedoubleprompt);
698     phottreecicnoeleveto->SetIsData(isData);
699     if (is25) phottreecicnoeleveto->SetEnablePFPhotons(kFALSE);
700     phottreecicnoeleveto->SetApplyLeptonTag(kTRUE);
701     phottreecicnoeleveto->SetLeptonTagElectronsName("HggLeptonTagElectrons");
702     phottreecicnoeleveto->SetLeptonTagMuonsName("HggLeptonTagMuons");
703     phottreecicnoeleveto->SetApplyVBFTag(kTRUE);
704     phottreecicnoeleveto->SetApplyPFMetCorr(kTRUE);
705     phottreecicnoeleveto->SetBeamspotWidth(5.0);
706    
707     PhotonTreeWriter *phottreepresel = new PhotonTreeWriter("PhotonTreeWriterPresel");
708     phottreepresel->SetPhotonsFromBranch(kFALSE);
709     phottreepresel->SetInputPhotonsName(photpresel->GetOutputName());
710     phottreepresel->SetEnableJets(kTRUE);
711     phottreepresel->SetApplyJetId(kTRUE);
712     phottreepresel->SetPFJetsFromBranch(kFALSE);
713     phottreepresel->SetPFJetName(jetCorr->GetOutputName());
714     phottreepresel->SetExcludeDoublePrompt(excludedoubleprompt);
715     phottreepresel->SetIsData(isData);
716     if (is25) phottreepresel->SetEnablePFPhotons(kFALSE);
717     phottreepresel->SetApplyLeptonTag(kTRUE);
718     phottreepresel->SetLeptonTagElectronsName("HggLeptonTagElectrons");
719     phottreepresel->SetLeptonTagMuonsName("HggLeptonTagMuons");
720     phottreepresel->SetApplyVBFTag(kTRUE);
721     phottreepresel->SetApplyPFMetCorr(kTRUE);
722     phottreepresel->SetBeamspotWidth(5.0);
723     phottreepresel->SetElectronMVAWeightsSubdet0Pt10To20(TString((getenv("CMSSW_BASE")+string("/src/MitPhysics/data/ElectronMVAWeights/ElectronID_BDTG_EGamma2012NonTrigV0_Cat1.weights.xml"))));
724     phottreepresel->SetElectronMVAWeightsSubdet1Pt10To20(TString((getenv("CMSSW_BASE")+string("/src/MitPhysics/data/ElectronMVAWeights/ElectronID_BDTG_EGamma2012NonTrigV0_Cat2.weights.xml"))));
725     phottreepresel->SetElectronMVAWeightsSubdet2Pt10To20(TString((getenv("CMSSW_BASE")+string("/src/MitPhysics/data/ElectronMVAWeights/ElectronID_BDTG_EGamma2012NonTrigV0_Cat3.weights.xml"))));
726     phottreepresel->SetElectronMVAWeightsSubdet0Pt20ToInf(TString((getenv("CMSSW_BASE")+string("/src/MitPhysics/data/ElectronMVAWeights/ElectronID_BDTG_EGamma2012NonTrigV0_Cat4.weights.xml"))));
727     phottreepresel->SetElectronMVAWeightsSubdet1Pt20ToInf(TString((getenv("CMSSW_BASE")+string("/src/MitPhysics/data/ElectronMVAWeights/ElectronID_BDTG_EGamma2012NonTrigV0_Cat5.weights.xml"))));
728     phottreepresel->SetElectronMVAWeightsSubdet2Pt20ToInf(TString((getenv("CMSSW_BASE")+string("/src/MitPhysics/data/ElectronMVAWeights/ElectronID_BDTG_EGamma2012NonTrigV0_Cat6.weights.xml"))));
729     phottreepresel->SetDoSynching(kTRUE);
730    
731     PhotonTreeWriter *phottreepreselinverteleveto = new PhotonTreeWriter("PhotonTreeWriterPreselInvertEleVeto");
732     phottreepreselinverteleveto->SetPhotonsFromBranch(kFALSE);
733     phottreepreselinverteleveto->SetInputPhotonsName(photpreselinverteleveto->GetOutputName());
734     phottreepreselinverteleveto->SetEnableJets(kTRUE);
735     phottreepreselinverteleveto->SetApplyJetId(kTRUE);
736     phottreepreselinverteleveto->SetPFJetsFromBranch(kFALSE);
737     phottreepreselinverteleveto->SetPFJetName(jetCorr->GetOutputName());
738     phottreepreselinverteleveto->SetApplyElectronVeto(kFALSE);
739     phottreepreselinverteleveto->SetExcludeDoublePrompt(excludedoubleprompt);
740     phottreepreselinverteleveto->SetIsData(isData);
741     if (is25) phottreepreselinverteleveto->SetEnablePFPhotons(kFALSE);
742     phottreepreselinverteleveto->SetApplyLeptonTag(kTRUE);
743     phottreepreselinverteleveto->SetLeptonTagElectronsName("HggLeptonTagElectrons");
744     phottreepreselinverteleveto->SetLeptonTagMuonsName("HggLeptonTagMuons");
745     phottreepreselinverteleveto->SetApplyVBFTag(kTRUE);
746     phottreepreselinverteleveto->SetApplyPFMetCorr(kTRUE);
747     phottreepreselinverteleveto->SetBeamspotWidth(5.0);
748    
749     PhotonTreeWriter *phottreepreselnosmear = new PhotonTreeWriter("PhotonTreeWriterPreselNoSmear");
750     phottreepreselnosmear->SetPhotonsFromBranch(kFALSE);
751     phottreepreselnosmear->SetInputPhotonsName(photpreselnosmear->GetOutputName());
752     phottreepreselnosmear->SetEnableJets(kTRUE);
753     phottreepreselnosmear->SetApplyJetId(kTRUE);
754     phottreepreselnosmear->SetPFJetsFromBranch(kFALSE);
755     phottreepreselnosmear->SetPFJetName(jetCorr->GetOutputName());
756     phottreepreselnosmear->SetExcludeDoublePrompt(excludedoubleprompt);
757     phottreepreselnosmear->SetIsData(isData);
758     if (is25) phottreepreselnosmear->SetEnablePFPhotons(kFALSE);
759     phottreepreselnosmear->SetApplyLeptonTag(kTRUE);
760     phottreepreselnosmear->SetLeptonTagElectronsName("HggLeptonTagElectrons");
761     phottreepreselnosmear->SetLeptonTagMuonsName("HggLeptonTagMuons");
762     phottreepreselnosmear->SetApplyVBFTag(kTRUE);
763     phottreepreselnosmear->SetApplyPFMetCorr(kTRUE);
764     phottreepreselnosmear->SetBeamspotWidth(5.0);
765    
766     PhotonTreeWriter *phottreecicnosmear = new PhotonTreeWriter("PhotonTreeWriterCiCNoSmear");
767     phottreecicnosmear->SetPhotonsFromBranch(kFALSE);
768     phottreecicnosmear->SetInputPhotonsName(photcicnosmear->GetOutputName());
769     phottreecicnosmear->SetEnableJets(kTRUE);
770     phottreecicnosmear->SetApplyJetId(kTRUE);
771     phottreecicnosmear->SetPFJetsFromBranch(kFALSE);
772     phottreecicnosmear->SetPFJetName(jetCorr->GetOutputName());
773     phottreecicnosmear->SetExcludeDoublePrompt(excludedoubleprompt);
774     phottreecicnosmear->SetIsData(isData);
775     if (is25) phottreecicnosmear->SetEnablePFPhotons(kFALSE);
776     phottreecicnosmear->SetApplyLeptonTag(kTRUE);
777     phottreecicnosmear->SetLeptonTagElectronsName("HggLeptonTagElectrons");
778     phottreecicnosmear->SetLeptonTagMuonsName("HggLeptonTagMuons");
779     phottreecicnosmear->SetApplyVBFTag(kTRUE);
780     phottreecicnosmear->SetApplyPFMetCorr(kTRUE);
781     phottreecicnosmear->SetBeamspotWidth(5.0);
782    
783     PhotonTreeWriter *phottreepreselinvertelevetonosmear = new PhotonTreeWriter("PhotonTreeWriterPreselInvertEleVetoNoSmear");
784     phottreepreselinvertelevetonosmear->SetPhotonsFromBranch(kFALSE);
785     phottreepreselinvertelevetonosmear->SetInputPhotonsName(photpreselinvertelevetonosmear->GetOutputName());
786     phottreepreselinvertelevetonosmear->SetEnableJets(kTRUE);
787     phottreepreselinvertelevetonosmear->SetApplyJetId(kTRUE);
788     phottreepreselinvertelevetonosmear->SetPFJetsFromBranch(kFALSE);
789     phottreepreselinvertelevetonosmear->SetPFJetName(jetCorr->GetOutputName());
790     phottreepreselinvertelevetonosmear->SetExcludeDoublePrompt(excludedoubleprompt);
791     phottreepreselinvertelevetonosmear->SetIsData(isData);
792     if (is25) phottreepreselinvertelevetonosmear->SetEnablePFPhotons(kFALSE);
793     phottreepreselinvertelevetonosmear->SetApplyLeptonTag(kTRUE);
794     phottreepreselinvertelevetonosmear->SetLeptonTagElectronsName("HggLeptonTagElectrons");
795     phottreepreselinvertelevetonosmear->SetLeptonTagMuonsName("HggLeptonTagMuons");
796     phottreepreselinvertelevetonosmear->SetApplyVBFTag(kTRUE);
797     phottreepreselinvertelevetonosmear->SetApplyPFMetCorr(kTRUE);
798     phottreepreselinvertelevetonosmear->SetBeamspotWidth(5.0);
799     phottreepreselinvertelevetonosmear->SetApplyElectronVeto(kFALSE);
800    
801     PhotonIDMod *photidpresel = new PhotonIDMod("PhotonIDModPresel");
802     photidpresel->SetPtMin(25.0);
803     photidpresel->SetOutputName("GoodPhotonsPreselid");
804     photidpresel->SetIDType("MITPFSelection");
805     photidpresel->SetApplyElectronVeto(kTRUE);
806     photidpresel->SetIsData(isData);
807    
808     PhotonIDMod *photidpreselinvert = new PhotonIDMod("PhotonIDModPreselInvert");
809     photidpreselinvert->SetPtMin(25.0);
810     photidpreselinvert->SetOutputName("GoodPhotonsPreselidInvert");
811     photidpreselinvert->SetIDType("MITPFSelection");
812     photidpreselinvert->SetApplyElectronVeto(kFALSE);
813     photidpreselinvert->SetInvertElectronVeto(kTRUE);
814     photidpreselinvert->SetIsData(isData);
815    
816     PhotonTreeWriter *phottreesingle = new PhotonTreeWriter("PhotonTreeWriterSingle");
817     phottreesingle->SetWriteDiphotonTree(kFALSE);
818     phottreesingle->SetPhotonsFromBranch(kFALSE);
819     phottreesingle->SetInputPhotonsName(photidpresel->GetOutputName());
820     phottreesingle->SetEnableJets(kTRUE);
821     phottreesingle->SetPFJetsFromBranch(kFALSE);
822     phottreesingle->SetPFJetName(jetCorr->GetOutputName());
823     phottreesingle->SetBeamspotWidth(5.0);
824     phottreesingle->SetIsData(isData);
825     if (is25) phottreesingle->SetEnablePFPhotons(kFALSE);
826    
827     PhotonTreeWriter *phottreesingleinvert = new PhotonTreeWriter("PhotonTreeWriterSingleInvert");
828     phottreesingleinvert->SetWriteDiphotonTree(kTRUE);
829     phottreesingleinvert->SetPhotonsFromBranch(kFALSE);
830     phottreesingleinvert->SetInputPhotonsName(photidpreselinvert->GetOutputName());
831     phottreesingleinvert->SetEnableJets(kTRUE);
832     phottreesingleinvert->SetPFJetsFromBranch(kFALSE);
833     phottreesingleinvert->SetPFJetName(pubJetOpen->GetOutputName());
834     phottreesingleinvert->SetApplyElectronVeto(kFALSE);
835     phottreesingleinvert->SetBeamspotWidth(5.0);
836     phottreesingleinvert->SetIsData(isData);
837     if (is25) phottreesingleinvert->SetEnablePFPhotons(kFALSE);
838    
839    
840     //------------------------------------------------------------------------------------------------
841     // making analysis chain
842     //------------------------------------------------------------------------------------------------
843     // this is how it always starts
844     runLumiSel ->Add(mcselmod);
845    
846     if (TString(dataset).Contains("-h")) {
847     mcselmod ->Add(sysMod);
848     }
849    
850     // high level trigger is always first
851     //mcselmod ->Add(hltModES);
852     //mcselmod ->Add(hltModE);
853    
854     if (!TString(dataset).Contains("meridiani")) {
855     mcselmod ->Add(hltModP);
856     hltModP ->Add(goodPVFilterMod);
857     }
858     else {
859     mcselmod->Add(goodPVFilterMod);
860     }
861     //hltModE ->Add(goodPVFilterModE);
862     //hltModES ->Add(goodPVFilterModES);
863    
864     //goodPVFilterMod ->Add(muonId);
865     goodPVFilterMod->Add(photreg);
866     photreg->Add(pubJet);
867     pubJet->Add(jetCorr);
868    
869     // simple object id modules
870     //goodPVFilterModE -> Add(pubJetOpen);
871     //pubJetOpen -> Add(photidpreselinvert);
872     //goodPVFilterModES ->Add(elecIdS);
873     jetCorr ->Add(SepPUMod);
874     SepPUMod ->Add(eleIdMod);
875     eleIdMod ->Add(muonIdMod);
876    
877     muonIdMod ->Add(photcic);
878     muonIdMod ->Add(photcicnoeleveto);
879     muonIdMod ->Add(photpresel);
880     muonIdMod ->Add(photpreselinverteleveto);
881     muonIdMod ->Add(photpreselnosmear);
882     muonIdMod ->Add(photpreselinvertelevetonosmear);
883     muonIdMod ->Add(photcicnosmear);
884    
885     photcic ->Add(phottreecic);
886     photcicnoeleveto ->Add(phottreecicnoeleveto);
887     photpresel ->Add(phottreepresel);
888     photpreselinverteleveto ->Add(phottreepreselinverteleveto);
889     photpreselnosmear ->Add(phottreepreselnosmear);
890     photpreselinvertelevetonosmear ->Add(phottreepreselinvertelevetonosmear);
891     photcicnosmear ->Add(phottreecicnosmear);
892    
893     //jetCorr ->Add(photidpresel);
894     //photidpresel ->Add(phottreesingle);
895    
896     //photidpreselinvert ->Add(phottreesingleinvert);
897     //elecIdS->Add(phottreeES);
898    
899    
900     //TFile::SetOpenTimeout(0);
901     //TFile::SetCacheFileDir("./rootfilecache",kTRUE,kTRUE);
902     TFile::SetReadaheadSize(128*1024*1024);
903    
904     //------------------------------------------------------------------------------------------------
905     // setup analysis
906     //------------------------------------------------------------------------------------------------
907     Analysis *ana = new Analysis;
908     ana->SetUseHLT(kTRUE);
909     ana->SetKeepHierarchy(kTRUE);
910     ana->SetSuperModule(runLumiSel);
911     ana->SetPrintScale(100);
912     if (nEvents >= 0)
913     ana->SetProcessNEvents(nEvents);
914    
915     if (TString(dataset).Contains("meridiani")) {
916     ana->SetUseHLT(kFALSE);
917     }
918    
919    
920     //------------------------------------------------------------------------------------------------
921     // organize input
922     //------------------------------------------------------------------------------------------------
923     Catalog *c = new Catalog(catalogDir);
924     TString skimdataset = TString(dataset)+TString("/") +TString(skim);
925     Dataset *d = NULL;
926     TString bookstr = book;
927     Bool_t caching = kTRUE;
928     //Bool_t caching = kFALSE;
929     //if (TString(dataset).Contains("s11-h")) bookstr.ReplaceAll("local","t2mit");
930     if (TString(skim).CompareTo("noskim") == 0)
931     d = c->FindDataset(bookstr,dataset,fileset,caching);
932     else
933     d = c->FindDataset(bookstr,skimdataset.Data(),fileset,caching);
934    
935     ana->AddDataset(d);
936     //ana->AddFile("/mnt/hadoop/cmsprod/filefi/029/r12a-pho-j13-v1/385B77DE-58D0-E111-B925-001E67396928.root");//79737729
937     //ana->AddFile("/mnt/hadoop/cmsprod/filefi/029/r12b-dph-j13-v1/FE308E0A-23D2-E111-8B2D-00266CFAE7D0.root");//871378986
938     //ana->AddFile("/mnt/hadoop/cmsprod/filefi/029/r12d-dph-pr-v1/54E239DC-2725-E211-A52C-003048D373F6.root");//528937923
939     //ana->AddFile("/mnt/hadoop/cmsprod/filefi/029/r12d-dph-pr-v1/EC80B121-7E30-E211-BFFF-5404A640A63D.root");//261543921
940     //ana->AddFile("/mnt/hadoop/cmsprod/filefi/029/r12d-dph-pr-v1/66CE9443-472C-E211-B08F-001D09F2437B.root");//483561562
941     //ana->AddFile("/mnt/hadoop/cmsprod/filefi/029/r12d-dph-pr-v1/F03B81B2-0B29-E211-B28F-BCAEC518FF67.root");
942     //ana->AddFile("/mnt/hadoop/cmsprod/filefi/029/r12d-dph-pr-v1/A6EC91DD-CB39-E211-8897-BCAEC53296F8.root");
943     //ana->AddFile("/mnt/hadoop/cmsprod/filefi/029/r12c-dph-pr-v2/64F7EAB0-CBEA-E111-B8AD-003048F117B6.root");
944     //ana->AddFile("/mnt/hadoop/cmsprod/filefi/029/r12c-dph-pr-v2/0615B16F-ECDA-E111-A266-003048F117B6.root");
945     //ana->AddFile("/mnt/hadoop/cmsprod/filefi/029/r12a-pho-j13-v1/385B77DE-58D0-E111-B925-001E67396928.root");
946     //ana->AddFile("/mnt/hadoop/cmsprod/filefi/029/r12c-dph-pr-v2/068B257D-81D0-E111-A835-5404A63886B4.root");//369441614
947     //ana->AddFile("/mnt/hadoop/cmsprod/filefi/029/r12d-dph-pr-v1/5443DBCB-562C-E211-8042-00237DDBE0E2.root");//333643114
948     //ana->AddFile("/mnt/hadoop/cmsprod/filefi/029/r12d-dph-pr-v1/B2698ACF-843A-E211-8D9E-001D09F244DE.root");//89022540
949     //ana->AddFile("/mnt/hadoop/cmsprod/filefi/029/r12b-dph-j13-v1/1E050D78-6DD4-E111-81D2-00266CFAE8D0.root");//223740859
950     //ana->AddFile("/mnt/hadoop/cmsprod/filefi/029/r12b-dph-j13-v1/2CD64E47-79D3-E111-90C5-00A0D1EE8E60.root");//541603559
951     //ana->AddFile("/mnt/hadoop/cmsprod/filefi/029/r12b-dph-j13-v1/147EF338-B2D3-E111-B1A6-00266CF256CC.root");//8983064
952     //ana->AddFile("/mnt/hadoop/cmsprod/filefi/029/r12d-dph-pr-v1/8843BD9F-DC3E-E211-9E2F-003048678110.root");//876316897
953     //ana->AddFile("/mnt/hadoop/cmsprod/filefi/029/r12c-dph-pr-v2/CAA12077-F9F6-E111-8DF2-001D09F28D54.root");
954    
955     //------------------------------------------------------------------------------------------------
956     // organize output
957     //------------------------------------------------------------------------------------------------
958     TString rootFile = TString(outputName);
959     rootFile += TString("_") + TString(dataset) + TString("_") + TString(skim);
960     if (TString(fileset) != TString(""))
961     rootFile += TString("_") + TString(fileset);
962     rootFile += TString(".root");
963     ana->SetOutputName(rootFile.Data());
964     //ana->SetCacheSize(64*1024*1024);
965     ana->SetCacheSize(0);
966    
967     //------------------------------------------------------------------------------------------------
968     // Say what we are doing
969     //------------------------------------------------------------------------------------------------
970     printf("\n==== PARAMETER SUMMARY FOR THIS JOB ====\n");
971     printf("\n JSON file: %s\n and overlap cut: %f (%s)\n",jsonFile.Data(),overlapCut,overlap);
972     printf("\n Rely on Catalog: %s\n",catalogDir);
973     printf(" -> Book: %s Dataset: %s Skim: %s Fileset: %s <-\n",book,dataset,skim,fileset);
974     printf("\n Root output: %s\n\n",rootFile.Data());
975     printf("\n========================================\n");
976    
977     //------------------------------------------------------------------------------------------------
978     // run the analysis after successful initialisation
979     //------------------------------------------------------------------------------------------------
980     ana->Run(!gROOT->IsBatch());
981    
982     return;
983     }