ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/macros/examples/runPhysicsExample.C
Revision: 1.4
Committed: Thu May 20 08:58:06 2010 UTC (14 years, 11 months ago) by ceballos
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_014e, Mit_014d, Mit_014c, Mit_014b, Mit_014a, Mit_014, Mit_014pre3
Changes since 1.3: +74 -56 lines
Log Message:
update in the module to make it more realistic

File Contents

# User Rev Content
1 bendavid 1.1 //root -l -q -b $CMSSW_BASE/src/MitHiggs/macros/runMacros/runHwwExampleAnalysis.C+\(\"0000\",\"noskim\",\"s8-h190ww2l-gf-mc3\",\"mit/filler/011\",\"/home/mitprod/catalog\",\"HwwExampleAnalysis\",1000,1\)
2    
3 ceballos 1.4 // $Id: runPhysicsExample.C,v 1.3 2010/05/10 16:17:02 bendavid Exp $
4 bendavid 1.1
5     #if !defined(__CINT__) || defined(__MAKECINT__)
6     #include <TROOT.h>
7     #include <exception>
8     #include "MitAna/DataUtil/interface/Debug.h"
9     #include "MitAna/Catalog/interface/Catalog.h"
10     #include "MitAna/TreeMod/interface/Analysis.h"
11     #include "MitAna/TreeMod/interface/HLTMod.h"
12     #include "MitAna/PhysicsMod/interface/PublisherMod.h"
13 bendavid 1.3 #include "MitAna/PhysicsMod/interface/RunLumiSelectionMod.h"
14 bendavid 1.1 #include "MitPhysics/Init/interface/ModNames.h"
15     #include "MitPhysics/Mods/interface/GeneratorMod.h"
16     #include "MitPhysics/Mods/interface/PDFProducerMod.h"
17     #include "MitPhysics/Mods/interface/HKFactorProducer.h"
18     #include "MitPhysics/Mods/interface/JetCorrectionMod.h"
19     #include "MitPhysics/Mods/interface/CaloMetCorrectionMod.h"
20     #include "MitPhysics/Mods/interface/MuonIDMod.h"
21     #include "MitPhysics/Mods/interface/ElectronIDMod.h"
22     #include "MitPhysics/Mods/interface/PhotonIDMod.h"
23     #include "MitPhysics/Mods/interface/TauIDMod.h"
24     #include "MitPhysics/Mods/interface/JetIDMod.h"
25     #include "MitPhysics/Mods/interface/ElectronCleaningMod.h"
26     #include "MitPhysics/Mods/interface/PhotonCleaningMod.h"
27     #include "MitPhysics/Mods/interface/TauCleaningMod.h"
28     #include "MitPhysics/Mods/interface/JetCleaningMod.h"
29     #include "MitPhysics/Mods/interface/MergeLeptonsMod.h"
30     #include "MitAna/DataTree/interface/JetCol.h"
31     #include "MitAna/DataTree/interface/CaloJetCol.h"
32     #include "MitAna/DataTree/interface/MetCol.h"
33     #include "MitAna/DataTree/interface/CaloMetCol.h"
34     #include "MitAna/PhysicsMod/interface/FullExampleMod.h"
35     #endif
36    
37     //--------------------------------------------------------------------------------------------------
38 ceballos 1.4 void runPhysicsExample(const char *catalogDir = "/home/mitprod/catalog",
39     const char *book = "cern/filler/013",
40     const char *dataset = "p10-ggwwll-v26",
41     const char *fileset = "0000",
42     const char *skim = "noskim",
43     const char *outputName = "histo",
44     int sampleID = -1,
45     int nEvents = 1000)
46 bendavid 1.1 {
47     //------------------------------------------------------------------------------------------------
48     // some global setups
49     //------------------------------------------------------------------------------------------------
50     using namespace mithep;
51     gDebugMask = Debug::kAnalysis;
52     gDebugLevel = 1;
53    
54     //------------------------------------------------------------------------------------------------
55     // set up information
56     //------------------------------------------------------------------------------------------------
57 ceballos 1.4 Bool_t useHLTE29 = kFALSE;
58     Bool_t applyISRFilter = kFALSE;
59     Bool_t applyMllGenCut = kFALSE;
60     Bool_t isData = kFALSE;
61 bendavid 1.1
62 bendavid 1.3 // RunLumiSelectionMod *runLumiSelectionMod = new RunLumiSelectionMod;
63     // runLumiSelectionMod->SetAcceptMC(kTRUE);
64     // runLumiSelectionMod->AddJSONFile("Cert_132440-133511_StreamExpress_Commissioning10-Express_DQM_JSON.txt");
65    
66 ceballos 1.4 if(sampleID > 1000) isData = kTRUE;
67    
68 bendavid 1.1 //------------------------------------------------------------------------------------------------
69     // generator information
70     //------------------------------------------------------------------------------------------------
71     GeneratorMod *generatorMod = new GeneratorMod;
72 ceballos 1.4 generatorMod->SetPrintDebug(kFALSE);
73     generatorMod->SetPtLeptonMin(0.0);
74     generatorMod->SetEtaLeptonMax(2.7);
75     generatorMod->SetPtPhotonMin(15.0);
76     generatorMod->SetEtaPhotonMax(2.7);
77     generatorMod->SetPtRadPhotonMin(10.0);
78     generatorMod->SetEtaRadPhotonMax(2.7);
79     generatorMod->SetIsData(isData);
80     generatorMod->SetFillHist(!isData);
81     if(applyMllGenCut == kTRUE){
82     generatorMod->SetPdgIdCut(23);
83     generatorMod->SetMassMaxCut(50.);
84     }
85     generatorMod->SetApplyISRFilter(applyISRFilter);
86 bendavid 1.1
87     //------------------------------------------------------------------------------------------------
88     // HLT information
89     //------------------------------------------------------------------------------------------------
90     HLTMod *hltmod = new HLTMod;
91     if(useHLTE29 == false) {
92     hltmod->AddTrigger("HLT_Ele10_SW_L1R");
93     hltmod->AddTrigger("HLT_Ele15_SW_LooseTrackIso_L1R");
94     hltmod->AddTrigger("HLT_Ele15_SW_EleId_L1R");
95     hltmod->AddTrigger("HLT_Ele15_LW_L1R");
96     hltmod->AddTrigger("HLT_Ele15_SC10_LW_L1R");
97     hltmod->AddTrigger("HLT_Ele20_SW_L1R");
98     hltmod->AddTrigger("HLT_IsoMu9");
99 ceballos 1.4 hltmod->AddTrigger("HLT_Mu9");
100     hltmod->AddTrigger("HLT_Ele10_LW_EleId_L1R");
101     hltmod->AddTrigger("HLT_Ele15_SW_EleId_L1R");
102 bendavid 1.1 } else {
103 ceballos 1.4 hltmod->AddTrigger("HLT_Mu9");
104 bendavid 1.1 hltmod->AddTrigger("HLT_Ele10_LW_EleId_L1R");
105 ceballos 1.4 hltmod->AddTrigger("HLT_Ele15_SW_EleId_L1R");
106 bendavid 1.1 hltmod->SetBitsName("HLTBits_E29");
107     }
108     hltmod->SetTrigObjsName("myhltobjs");
109    
110     //------------------------------------------------------------------------------------------------
111     // publisher Mod
112     //------------------------------------------------------------------------------------------------
113     PublisherMod<CaloJet,Jet> *pubJet = new PublisherMod<CaloJet,Jet>("JetPub");
114     pubJet->SetInputName("AKt5Jets");
115     pubJet->SetOutputName("PubAKt5Jets");
116    
117     PublisherMod<Met,Met> *pubMet = new PublisherMod<Met,Met>("MetPub");
118     pubMet->SetInputName("TCMet");
119     pubMet->SetOutputName("PubTCMet");
120    
121 ceballos 1.4 PublisherMod<CaloMet> *pubCaloMet = new PublisherMod<CaloMet>;
122     pubCaloMet->SetName("CaloMetPub");
123     pubCaloMet->SetInputName("CorMuonMet");
124     pubCaloMet->SetOutputName("pubCaloMet");
125    
126 bendavid 1.1 //------------------------------------------------------------------------------------------------
127 ceballos 1.4 // Apply Jet Corrections
128 bendavid 1.1 //------------------------------------------------------------------------------------------------
129 bendavid 1.3 JetCorrectionMod *jetCorr = new JetCorrectionMod;
130     jetCorr->AddCorrectionFromRelease("CondFormats/JetMETObjects/data/Summer09_7TeV_ReReco332_L2Relative_AK5Calo.txt");
131     jetCorr->AddCorrectionFromRelease("CondFormats/JetMETObjects/data/Summer09_7TeV_ReReco332_L3Absolute_AK5Calo.txt");
132 bendavid 1.1 jetCorr->SetInputName(pubJet->GetOutputName());
133 ceballos 1.4 jetCorr->SetCorrectedName("CorrectedJets");
134 bendavid 1.1
135 ceballos 1.4 //------------------------------------------------------------------------------------------------
136     // Apply Met Corrections
137     //------------------------------------------------------------------------------------------------
138     CaloMetCorrectionMod *metCaloCorr = new CaloMetCorrectionMod;
139     metCaloCorr->SetInputName(pubCaloMet->GetOutputName());
140     metCaloCorr->SetCorrectedJetsName(jetCorr->GetOutputName());
141     metCaloCorr->SetOutputName("pubCaloCorrectedMet");
142 bendavid 1.1
143     //------------------------------------------------------------------------------------------------
144     // object id and cleaning sequence
145     //------------------------------------------------------------------------------------------------
146 ceballos 1.4 MuonIDMod *muonID = new MuonIDMod;
147     ElectronIDMod *electronID = new ElectronIDMod;
148     PhotonIDMod *photonID = new PhotonIDMod;
149     TauIDMod *tauID = new TauIDMod;
150     JetIDMod *jetID = new JetIDMod;
151     jetID->SetInputName(jetCorr->GetOutputName());
152     jetID->SetPtCut(20.0);
153 bendavid 1.1 jetID->SetEtaMaxCut(5.0);
154 ceballos 1.4 jetID->SetJetEEMFractionMinCut(0.01);
155     jetID->SetOutputName("GoodJets");
156    
157 bendavid 1.1 ElectronCleaningMod *electronCleaning = new ElectronCleaningMod;
158     PhotonCleaningMod *photonCleaning = new PhotonCleaningMod;
159     TauCleaningMod *tauCleaning = new TauCleaningMod;
160     JetCleaningMod *jetCleaning = new JetCleaningMod;
161 ceballos 1.4 jetCleaning->SetGoodJetsName("GoodJets");
162     jetCleaning->SetCleanJetsName("CleanJets");
163 bendavid 1.1
164     //------------------------------------------------------------------------------------------------
165     // merge modules
166     //------------------------------------------------------------------------------------------------
167     MergeLeptonsMod *mergeLeptonsMod = new MergeLeptonsMod;
168     mergeLeptonsMod->SetMuonsName(muonID->GetOutputName());
169     mergeLeptonsMod->SetElectronsName(electronCleaning->GetOutputName());
170    
171     //------------------------------------------------------------------------------------------------
172     // analyses modules
173     //------------------------------------------------------------------------------------------------
174     FullExampleMod *analysisMod = new FullExampleMod;
175     analysisMod->SetMuonName(muonID->GetOutputName());
176     analysisMod->SetMuonsFromBranch(kFALSE);
177     analysisMod->SetElectronName(electronID->GetOutputName());
178     analysisMod->SetElectronsFromBranch(kFALSE);
179    
180     //------------------------------------------------------------------------------------------------
181     // making analysis chain
182     //------------------------------------------------------------------------------------------------
183 ceballos 1.4 generatorMod->Add(hltmod);
184     hltmod->Add(muonID);
185 bendavid 1.1 muonID->Add(electronID);
186     electronID->Add(photonID);
187     photonID->Add(tauID);
188     tauID->Add(pubJet);
189 bendavid 1.3 pubJet->Add(pubMet);
190 ceballos 1.4 pubMet->Add(pubCaloMet);
191     pubCaloMet->Add(jetCorr);
192     jetCorr->Add(metCaloCorr);
193     metCaloCorr->Add(jetID);
194 bendavid 1.1 jetID->Add(electronCleaning);
195     electronCleaning->Add(photonCleaning);
196     photonCleaning->Add(tauCleaning);
197     tauCleaning->Add(jetCleaning);
198     jetCleaning->Add(mergeLeptonsMod);
199     mergeLeptonsMod->Add(analysisMod);
200    
201     //------------------------------------------------------------------------------------------------
202     // setup analysis
203     //------------------------------------------------------------------------------------------------
204     Analysis *ana = new Analysis;
205 ceballos 1.4 ana->SetUseHLT(kTRUE);
206     ana->SetKeepHierarchy(kFALSE);
207 bendavid 1.1 if (nEvents >= 0)
208     ana->SetProcessNEvents(nEvents);
209     ana->SetSuperModule(generatorMod);
210 ceballos 1.4 ana->SetPrintScale(100);
211     if(useHLTE29 == true){
212     ana->SetHLTTreeName("HLT_E29");
213     ana->SetHLTObjsName("HLTObjects_E29");
214     }
215 bendavid 1.1
216     //------------------------------------------------------------------------------------------------
217     // organize input
218     //------------------------------------------------------------------------------------------------
219     printf("\nRely on Catalog: %s\n",catalogDir);
220     printf(" -> Book: %s Dataset: %s Skim: %s Fileset: %s <-\n\n",book,dataset,skim,fileset);
221     Catalog *c = new Catalog(catalogDir);
222     TString skimdataset = TString(dataset)+TString("/") +TString(skim);
223     Dataset *d = NULL;
224     if (TString(skim).CompareTo("noskim") == 0)
225     d = c->FindDataset(book,dataset,fileset);
226     else
227     d = c->FindDataset(book,skimdataset.Data(),fileset);
228 bendavid 1.2 ana->AddDataset(d);
229 bendavid 1.3 //ana->AddFile("root://castorcms//castor/cern.ch/user/p/paus/filler/011/s09-ttbar-7-mc3/*.root");
230     //ana->AddFile("/build/bendavid/XX-MITDATASET-XX_000-valskim-Run132605.root");
231 bendavid 1.1
232     //------------------------------------------------------------------------------------------------
233     // organize output
234     //------------------------------------------------------------------------------------------------
235     TString rootFile = TString(outputName);
236     rootFile += TString("_") + TString(dataset) + TString("_") + TString(skim);
237     if (TString(fileset) != TString(""))
238     rootFile += TString("_") + TString(fileset);
239     rootFile += TString(".root");
240     printf("\nRoot output: %s\n\n",rootFile.Data());
241     ana->SetOutputName(rootFile.Data());
242    
243 ceballos 1.4 ana->SetCacheSize(64*1024*1024);
244 bendavid 1.1 //------------------------------------------------------------------------------------------------
245     // run the analysis after successful initialisation
246     //------------------------------------------------------------------------------------------------
247     ana->Run(!gROOT->IsBatch());
248    
249     return;
250     }