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 |
|
|
91 |
|
lDir = lFileService->mkdir("JetFlavours"); |
92 |
|
jetFlav_.Initialise(lDir, debug_, flavour_); |
93 |
|
|
94 |
+ |
|
95 |
|
}//beginJob |
96 |
|
|
97 |
|
void HbbTreeMaker::endJob(){//endJob |
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; |
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 |
|
|