ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/macros/examples/runHgg2013Moriond.C
Revision: 1.2
Committed: Sat Feb 23 14:50:08 2013 UTC (12 years, 2 months ago) by mingyang
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_029c, Mit_029b, Mit_029a, HEAD
Changes since 1.1: +26 -7 lines
Log Message:
2013Moriond

File Contents

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