ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/HbbAnalysis/plugins/HbbTreeMaker.cc
(Generate patch)

Comparing UserCode/HbbAnalysis/plugins/HbbTreeMaker.cc (file contents):
Revision 1.15 by amagnan, Sat May 15 09:21:20 2010 UTC vs.
Revision 1.16 by amagnan, Wed May 19 17:24:44 2010 UTC

# Line 57 | Line 57 | HbbTreeMaker::HbbTreeMaker(const edm::Pa
57    vertexSrc_(pset.getParameter<edm::InputTag>("Vertex")),
58    triggerSrc_(pset.getParameter<edm::InputTag>("Trigger")),
59    hltPaths_(pset.getParameter<std::vector<std::string> >("HLTPaths")),
60 +  l1CenJetSrc_(pset.getParameter<edm::InputTag>("L1CenJet")),
61 +  l1TauJetSrc_(pset.getParameter<edm::InputTag>("L1TauJet")),
62 +  l1FwdJetSrc_(pset.getParameter<edm::InputTag>("L1FwdJet")),
63 +  hltSummarySrc_(pset.getParameter<edm::InputTag>("HLTSummary")),
64    event_(0),
65 <  tree_(0)
65 >  tree_(0),
66 >  hltTags_(pset.getParameter<std::vector<edm::InputTag> >("HLTTags"))
67    //processVec_(pset.getParameter<std::vector<std::string> >("ProcessVec"))
68   {//constructor
69  
# Line 86 | Line 91 | void HbbTreeMaker::beginJob(){//beginJob
91    lDir = lFileService->mkdir("JetFlavours");
92    jetFlav_.Initialise(lDir, debug_, flavour_);
93  
94 +
95   }//beginJob
96  
97   void HbbTreeMaker::endJob(){//endJob
# Line 307 | Line 313 | void HbbTreeMaker::analyze(const edm::Ev
313      HbbTrigger(lTrigCol,lNames,event_->triggers());
314    }
315  
316 +  //L1 jet objects
317 +
318 +  edm::Handle<l1extra::L1JetParticleCollection> lCenJet;
319 +  edm::Handle<l1extra::L1JetParticleCollection> lFwdJet;
320 +  edm::Handle<l1extra::L1JetParticleCollection> lTauJet;
321 +  try {
322 +    aEvt.getByLabel(l1CenJetSrc_,lCenJet);
323 +    aEvt.getByLabel(l1TauJetSrc_,lTauJet);
324 +    aEvt.getByLabel(l1FwdJetSrc_,lFwdJet);
325 +  } catch(cms::Exception& e)  {
326 +    std::cout << "AMM: L1 Collections " << l1CenJetSrc_  << ", " << l1TauJetSrc_ << ", " << l1FwdJetSrc_ << " not available! Exception : " << e.what() << ". " << std::endl;
327 +  }
328 +  if (lCenJet.isValid()) {
329 +    HbbL1Objects(lCenJet,event_->l1Jets(),1);
330 +  }
331 +  if (lTauJet.isValid()) {
332 +    HbbL1Objects(lTauJet,event_->l1Jets(),2);
333 +  }
334 +  if (lFwdJet.isValid()) {
335 +    HbbL1Objects(lFwdJet,event_->l1Jets(),3);
336 +  }
337 +
338 +
339 +  edm::Handle<trigger::TriggerEvent> lHltSummary;
340 +  try {
341 +    aEvt.getByLabel(hltSummarySrc_,lHltSummary);
342 +  } catch(cms::Exception& e)  {
343 +    std::cout << "AMM: collection " << hltSummarySrc_  << " not available! Exception : " << e.what() << ". " << std::endl;
344 +  }
345 +  if (lHltSummary.isValid()) {
346 +    HbbHLTObjects(lHltSummary,event_->hltJets());
347 +  }
348 +
349 +
350 +
351    //event_->order();
352    tree_->Fill();
353    firstEvent = false;
# Line 1323 | Line 1364 | void HbbTreeMaker::HbbVertices(const edm
1364  
1365   }
1366  
1367 + void HbbTreeMaker::HbbL1Objects(const edm::Handle<l1extra::L1JetParticleCollection> & aCol,
1368 +                                std::vector<HbbAnalysis::L1Object> & aVec,
1369 +                                const unsigned int aType)
1370 + {
1371 +
1372 +  for (l1extra::L1JetParticleCollection::const_iterator iter = aCol->begin();
1373 +         iter != aCol->end();
1374 +         iter++)
1375 +    {
1376 +        
1377 +      HbbAnalysis::L1Vars lVars;
1378 +      lVars.pT = (*iter).pt();
1379 +      lVars.ET = (*iter).et();
1380 +      lVars.eta = (*iter).eta();
1381 +      lVars.phi = (*iter).phi();
1382 +      lVars.bx = (*iter).bx();
1383 +      lVars.type = aType;
1384 +
1385 +      HbbAnalysis::L1Object lObj(lVars);
1386 +      aVec.push_back(lObj);
1387 +        
1388 +    }
1389 +
1390 + }
1391 + void HbbTreeMaker::HbbHLTObjects(const edm::Handle<trigger::TriggerEvent> & aCol,
1392 +                                 std::vector<HbbAnalysis::HLTObject> & aVec)
1393 + {
1394 +
1395 +  const trigger::TriggerObjectCollection & toc(aCol->getObjects());
1396 +
1397 +  //cout
1398 +  //for (unsigned i=0; i<aCol->sizeFilters(); i++){
1399 +  //const edm::InputTag & lTag = aCol->filterTag(i);
1400 +  //std::cout << "ele " << i << ": " << lTag << std::endl;
1401 +  //}
1402 +
1403 +  for (unsigned i(0); i<hltTags_.size(); i++){
1404 +
1405 +    const int index = aCol->filterIndex(hltTags_[i]);
1406 +
1407 +    const trigger::Keys & k = aCol->filterKeys(index);
1408 +        
1409 +    for (trigger::Keys::const_iterator ki = k.begin(); ki !=k.end(); ++ki ) {
1410 +      HbbAnalysis::HLTVars lVars;
1411 +      lVars.pT = toc[*ki].pt();
1412 +      lVars.eta = toc[*ki].eta();
1413 +      lVars.phi = toc[*ki].phi();
1414 +      lVars.id = toc[*ki].id();
1415 +      lVars.mass = toc[*ki].mass();
1416 +      HbbAnalysis::HLTObject lObj(lVars);
1417 +      aVec.push_back(lObj);          
1418 +    }
1419 +  }
1420 +
1421 + }
1422 +
1423 +
1424   #include "FWCore/Framework/interface/MakerMacros.h"
1425   DEFINE_FWK_MODULE(HbbTreeMaker);
1426  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines