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

Comparing UserCode/MitHzz4l/NonMCBackground/src/applyEMU.cc (file contents):
Revision 1.4 by dkralph, Thu Jun 21 21:26:33 2012 UTC vs.
Revision 1.9 by dkralph, Tue Oct 23 11:24:34 2012 UTC

# Line 33 | Line 33 | using namespace std;
33   #include "Electron.h"
34   #include "Muon.h"
35   #include "Vertex.h"
36 + #include "PFJet.h"
37   #include "PFCandidate.h"
38   #include "PFCandidateCol.h"
39   #include "PileupInfoCol.h"
# Line 91 | Line 92 | map<unsigned,float>       evtrhoMap;
92   vector<string> cutstrs;
93   bool passes_HLT_MC;
94   vector<bool>   PFnoPUflag;;
95 + vector<int> muTrigObjs,eleTrigObjs,muTriggers,eleTriggers;
96 + std::bitset<TRIGGER_BIG_NUMBER> triggerBits;
97  
98   //
99   // prototypes
# Line 106 | Line 109 | int main(int argc, char** argv)
109  
110    string cmsswpath(CMSSW_BASE);
111    cmsswpath.append("/src");
109  std::bitset<1024> triggerBits;
112    map<string,unsigned> entrymap; // number of unskimmed entries in each file
113  
114    //
# Line 190 | Line 192 | int main(int argc, char** argv)
192    if(ctrl.mc) {
193      nt.makeWeightBranch(weights);
194      if(ctrl.fillGen ) nt.makeGenInfoBranch(geninfo);
195 <    initEfficiencyWeights();
195 >    // initEfficiencyWeights();
196 >    cout << "\n\nWARNING: not initializing eff weights\n\n" << endl;
197      initPUWeights();
198  
199      // Higgs only, pt reweighting
# Line 214 | Line 217 | int main(int argc, char** argv)
217    initElectronIsoMVA();
218    initTrigger();
219  
220 +  muTriggers.push_back(kHLT_IsoMu24_eta2p1);    muTrigObjs.push_back(kHLT_IsoMu24_eta2p1_MuObj);
221 +  eleTriggers.push_back(kHLT_Ele27_WP80);       eleTrigObjs.push_back(kHLT_Ele27_WP80_EleObj);
222 +
223    // hack
224    initEvtRhoMap(evtrhoMap);
225  
# Line 223 | Line 229 | int main(int argc, char** argv)
229    //--------------------------------------------------------------------------------------------------------------
230    string currentFile("");
231  
232 +  UInt_t fNMaxTriggers = TRIGGER_BIG_NUMBER;
233    mithep::EventHeader *info    = new mithep::EventHeader();
234    mithep::Array<mithep::PFMet>                *metArr        = new mithep::Array<mithep::PFMet>();
235    mithep::Array<mithep::Electron>             *electronArr   = new mithep::Array<mithep::Electron>();
236    mithep::Array<mithep::Muon>                 *muonArr       = new mithep::Array<mithep::Muon>();
237    mithep::Array<mithep::Vertex>               *vtxArr        = new mithep::Array<mithep::Vertex>();
238    mithep::Array<mithep::PFCandidate>          *pfArr         = new mithep::Array<mithep::PFCandidate>();
239 +  mithep::Array<mithep::PFJet>                *jetArr        = new mithep::Array<mithep::PFJet>();
240    mithep::Array<mithep::PileupInfo>           *puArr         = new mithep::Array<mithep::PileupInfo>();
241    mithep::Array<mithep::PileupEnergyDensity>  *puDArr        = new mithep::Array<mithep::PileupEnergyDensity>();
242    mithep::Array<mithep::Track>                *trkArr        = new mithep::Array<mithep::Track>();
# Line 237 | Line 245 | int main(int argc, char** argv)
245    mithep::TriggerMask                         *trigMask      = new mithep::TriggerMask();
246    mithep::TriggerTable                        *hltTable      = new mithep::TriggerTable();
247    vector<string>                              *hltTableStrings  = new vector<string>();
248 +  vector<string>                              *hltLabelStrings  = new vector<string>();
249 +  mithep::Array<mithep::TriggerObject>        *hltObjArr     = new mithep::Array<mithep::TriggerObject>();
250 +  mithep::Array<mithep::TriggerObjectRel>     *hltRelsArr    = new mithep::Array<mithep::TriggerObjectRel>();
251 +  std::vector<std::string>                    *hltTab        = new vector<string>();
252 +  std::vector<std::string>                    *hltLab        = new vector<string>();
253 +  mithep::TriggerObjectsTable                 *fTrigObjs     = new TriggerObjectsTable(hltTable,fNMaxTriggers);
254 +  mithep::Array<mithep::DecayParticle>        *fConversions  = new mithep::Array<mithep::DecayParticle>();
255  
241  TString fElectronName(Names::gkElectronBrn);
242  TString fMuonName(Names::gkMuonBrn);
243  TString fInfoName(Names::gkEvtHeaderBrn);
244  TString fPFMetName("PFMet");
245  TString fPrimVtxName(Names::gkPVBrn);
246  TString fPFCandidateName(Names::gkPFCandidatesBrn);
247  TString fPileupInfoName(Names::gkPileupInfoBrn);
248  TString fPileupEnergyDensityName(Names::gkPileupEnergyDensityBrn);
249  TString fTrackName(Names::gkTrackBrn);
250  TString fMCParticleName(Names::gkMCPartBrn);
251  TString fMCEvtInfoName(Names::gkMCEvtInfoBrn);
252  TString fTriggerMaskName(Names::gkHltBitBrn);
256    TString fTriggerTableName(Names::gkHltTableBrn);
257 <  
258 <  chain->SetBranchAddress(fInfoName,        &info);
259 <  chain->SetBranchAddress(fPFMetName,       &metArr);
260 <  chain->SetBranchAddress(fElectronName,    &electronArr);
261 <  chain->SetBranchAddress(fMuonName,        &muonArr);
262 <  chain->SetBranchAddress(fPrimVtxName,     &vtxArr);
263 <  chain->SetBranchAddress(fPFCandidateName, &pfArr);
257 >  chain->SetBranchAddress(Names::gkEvtHeaderBrn,                &info);
258 >  chain->SetBranchAddress("PFMet",                              &metArr);
259 >  chain->SetBranchAddress(Names::gkElectronBrn,                 &electronArr);
260 >  chain->SetBranchAddress(Names::gkMuonBrn,                     &muonArr);
261 >  chain->SetBranchAddress(Names::gkPVBrn,                       &vtxArr);
262 >  chain->SetBranchAddress(Names::gkPFCandidatesBrn,             &pfArr);
263 >  chain->SetBranchAddress(Names::gkPFJetBrn,                    &jetArr);
264    if( ctrl.mc ) {
265 <    chain->SetBranchAddress(fPileupInfoName,  &puArr);
266 <    chain->SetBranchAddress(fMCParticleName,  &mcArr);
267 <    chain->SetBranchAddress(fMCEvtInfoName,  &mcEvtInfo);
265 >    chain->SetBranchAddress(Names::gkPileupInfoBrn,             &puArr);
266 >    chain->SetBranchAddress(Names::gkMCPartBrn,                 &mcArr);
267 >    chain->SetBranchAddress(Names::gkMCEvtInfoBrn,              &mcEvtInfo);
268    }
269 <  chain->SetBranchAddress(fPileupEnergyDensityName, &puDArr);
270 <  chain->SetBranchAddress(fTrackName, &trkArr);
271 <  chain->SetBranchAddress(fTriggerMaskName, &trigMask);
272 <  cout << "hlttable: " << fTriggerTableName << endl;
273 <  hltchain->SetBranchAddress(fTriggerTableName, &hltTableStrings);
269 >  chain->SetBranchAddress(Names::gkPileupEnergyDensityBrn,      &puDArr);
270 >  chain->SetBranchAddress(Names::gkTrackBrn,                    &trkArr);
271 >  chain->SetBranchAddress(Names::gkHltBitBrn,                   &trigMask);
272 >  chain->SetBranchAddress(Names::gkHltObjBrn,                   &hltObjArr);
273 >  chain->SetBranchAddress("HLTObjectsRelation",                 &hltRelsArr);
274 >  chain->SetBranchAddress(Names::gkMvfConversionBrn,            &fConversions);
275 >  hltchain->SetBranchAddress(fTriggerTableName,                 &hltTableStrings);
276 >  hltchain->SetBranchAddress(Names::gkHltLabelBrn,              &hltLabelStrings);
277  
278    mithep::Vertex              vtx;          // best primary vertex in the event
279  
# Line 291 | Line 297 | int main(int argc, char** argv)
297      string fname = string(chain->GetFile()->GetEndpointUrl()->GetFile());
298      setEra( fname, ctrl );
299  
294
300      // pfNoPU
301      PFnoPUflag.clear();
302      int pfnopu_size = makePFnoPUArray( pfArr, PFnoPUflag, vtxArr );
# Line 306 | Line 311 | int main(int argc, char** argv)
311        fillTriggerNames(hltTable, hltTableStrings );
312      }
313      fillTriggerBits( hltTable, trigMask, triggerBits );
314 +    setHLTObjectRelations( hltObjArr, hltRelsArr, hltTableStrings, hltLabelStrings, fTrigObjs );
315  
316      //
317      // data/MC
# Line 326 | Line 332 | int main(int argc, char** argv)
332      // lepton/kinematic selection ...
333      failingLeptons.clear();
334      passingLeptons.clear();
335 <    EventData ret4l =
335 >    EventData ret4l;
336          
337 <      apply_HZZ4L_EMU_selection(ctrl, info,
338 <                                vtxArr,
339 <                                pfArr,
340 <                                puDArr,
341 <                                electronArr,
342 <                                &electronReferencePreSelection,
343 <                                &electronReferenceIDMVASelectionV1,
344 <                                &electronReferenceIsoSelection,
345 <                                muonArr,
346 <                                &muonReferencePreSelection,
347 <                                &muonIDPFSelection,
348 <                                &muonReferenceIsoSelection);
349 <      
337 >      ret4l = apply_HZZ4L_EMU_selection(ctrl, info,
338 >                                        hltTable,
339 >                                        hltObjArr,
340 >                                        fTrigObjs,
341 >                                        vtxArr,
342 >                                        pfArr,
343 >                                        puDArr,
344 >                                        fConversions,
345 >                                        electronArr,
346 >                                        &electronReferencePreSelection,
347 >                                        &electronReferenceIDMVASelectionV1,
348 >                                        &electronReferenceIsoSelection,
349 >                                        muonArr,
350 >                                        &muonReferencePreSelection,
351 >                                        &muonIDPFSelection,
352 >                                        &muonReferenceIsoSelection);
353        
354      if( ret4l.status.pass() ) {
355 <        
355 >      fillKinematics(ret4l,kinematics);
356        TLorentzVector pfmet; pfmet.SetPxPyPzE(metArr->At(0)->Mex(),metArr->At(0)->Mey(),0,0);
357 <      fillEventInfo( info, pfmet, evtinfo, ctrl.mc ? getNPU(puArr) : 0);
357 >      fillEventInfo( info, pfmet, evtinfo, ctrl.mc ? getNPU(puArr) : 0, vtxArr->GetEntries());
358        foTree.Fill();
350        
351      if( ctrl.mc)
352        setEffiencyWeights(ctrl.era, ret4l, weights);
353        
359        nt.Fill();
360      }
361 <      
361 >    
362    }
363    foTree.getFile()->cd();
364    foTree.getTree()->Write();

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines