85 #include "TDirectory.h" 95 class ParticlePtGreater{
99 return p1->momentum().perp() > p2->momentum().perp();
103 class ParticlePGreater{
107 return p1->momentum().rho() > p2->momentum().rho();
126 double deltaPhi(
double v1,
double v2);
127 double deltaR(
double eta1,
double phi1,
double eta2,
double phi2);
128 double deltaR2(
double eta1,
double phi1,
double eta2,
double phi2);
135 void clearTreeVectors();
136 int particleCode(
int);
140 static constexpr int PBins_=32, EtaBins_=60, Particles=12;
142 double genPartPBins_[NPBins_+1], genPartEtaBins_[NEtaBins_+1];
151 static const size_t nL1BitsMax_=128;
168 TH2D *h_pEta[Particles];
225 std::vector<double> *t_cHadronEne9x9, *t_cHadronEne9x9_1, *t_cHadronEne9x9_2, *
t_cHadronEne9x9_3;
232 std::vector<double> *t_cHadronEne7x7, *t_cHadronEne7x7_1, *t_cHadronEne7x7_2, *
t_cHadronEne7x7_3;
239 std::vector<double> *t_cHadronEne3x3, *t_cHadronEne3x3_1, *t_cHadronEne3x3_2, *
t_cHadronEne3x3_3;
246 std::vector<double> *t_cHadronEne1x1, *t_cHadronEne1x1_1, *t_cHadronEne1x1_2, *
t_cHadronEne1x1_3;
281 std::vector<double> *t_cHadronEneR, *t_cHadronEneR_1, *t_cHadronEneR_2, *
t_cHadronEneR_3;
288 std::vector<double> *t_cHadronEneIsoR, *t_cHadronEneIsoR_1, *t_cHadronEneIsoR_2, *
t_cHadronEneIsoR_3;
295 std::vector<double> *t_cHadronEneHCR, *t_cHadronEneHCR_1, *t_cHadronEneHCR_2, *
t_cHadronEneHCR_3;
315 std::vector<double> *
t_L1METPt, *t_L1METEta, *t_L1METPhi;
325 ptMin_(iConfig.getUntrackedParameter<double>(
"PTMin", 1.0)),
326 etaMax_(iConfig.getUntrackedParameter<double>(
"MaxChargedHadronEta", 2.5)),
327 pCutIsolate_(iConfig.getUntrackedParameter<double>(
"PMaxIsolation",20.0)),
328 a_Isolation_(iConfig.getUntrackedParameter<
bool>(
"UseConeIsolation",
false)),
329 genSrc_(iConfig.getUntrackedParameter(
"GenSrc",
std::
string(
"generatorSmeared"))),
330 useHepMC_(iConfig.getUntrackedParameter<
bool>(
"UseHepMC",
false)),
331 a_coneR_(iConfig.getUntrackedParameter<double>(
"ConeRadius",34.98)),
332 a_mipR_(iConfig.getUntrackedParameter<double>(
"ConeRadiusMIP",14.0)),
333 debugL1Info_(iConfig.getUntrackedParameter<
bool>(
"DebugL1Info",
false)),
334 verbosity_(iConfig.getUntrackedParameter<
int>(
"Verbosity", 0)) {
352 tok_L1GTrorsrc_ = consumes<L1GlobalTriggerReadoutRecord>(L1GTReadoutRcdSource_);
353 tok_L1GTobjmap_ = consumes<L1GlobalTriggerObjectMapRecord>(L1GTObjectMapRcdSource_);
354 tok_L1extMusrc_ = consumes<l1extra::L1MuonParticleCollection>(L1extraMuonSource_);
355 tok_L1Em_ = consumes<l1extra::L1EmParticleCollection>(L1extraIsoEmSource_);
356 tok_L1extNonIsoEm_= consumes<l1extra::L1EmParticleCollection>(L1extraNonIsoEmSource_);
357 tok_L1extTauJet_ = consumes<l1extra::L1JetParticleCollection>(L1extraTauJetSource_);
358 tok_L1extCenJet_ = consumes<l1extra::L1JetParticleCollection>(L1extraCenJetSource_);
359 tok_L1extFwdJet_ = consumes<l1extra::L1JetParticleCollection>(L1extraFwdJetSource_);
361 if (!strcmp(
"Dummy",
genSrc_.c_str())) {
397 descriptions.
add(
"isolatedGenParticles",desc);
443 <<
"not found\n --> returning false by " 447 edm::LogVerbatim(
"IsoTrack") <<
"\nL1GlobalTriggerObjectMapRecord with \n\n" 448 <<
"not found\n --> returning false by " 454 unsigned int numberTriggerBits= dWord.size();
460 << numberTriggerBits <<
"\n";
464 const std::vector<L1GlobalTriggerObjectMap>& objMapVec = gtOMRec->
gtObjectMap();
465 for (std::vector<L1GlobalTriggerObjectMap>::const_iterator itMap = objMapVec.begin();
466 itMap != objMapVec.end(); ++itMap) {
469 int itrig = (*itMap).algoBitNumber();
478 h_L1AlgoNames->GetXaxis()->SetBinLabel(itrig+1, algoBitToName_[itrig].c_str());
484 for (
unsigned int iBit = 0; iBit < numberTriggerBits; ++iBit) {
485 bool accept = dWord[iBit];
499 l1extra::L1JetParticleCollection::const_iterator itr;
500 for(itr = l1TauHandle->begin(); itr != l1TauHandle->end(); ++itr ) {
506 << itr->pt() <<
" eta/phi " << itr->eta()
507 <<
" " << itr->phi();
514 for( itr = l1CenJetHandle->begin(); itr != l1CenJetHandle->end(); ++itr ) {
520 <<
" " << itr->pt() <<
" eta/phi " 521 << itr->eta() <<
" " << itr->phi();
527 for( itr = l1FwdJetHandle->begin(); itr != l1FwdJetHandle->end(); ++itr ) {
533 << itr->pt() <<
" eta/phi " << itr->eta()
534 <<
" " << itr->phi();
538 l1extra::L1EmParticleCollection::const_iterator itrEm;
541 for( itrEm = l1IsoEmHandle->begin(); itrEm != l1IsoEmHandle->end(); ++itrEm ) {
547 <<
" " << itrEm->pt() <<
" eta/phi " 548 << itrEm->eta() <<
" " << itrEm->phi();
554 for( itrEm = l1NonIsoEmHandle->begin(); itrEm != l1NonIsoEmHandle->end(); ++itrEm ) {
560 <<
" " << itrEm->pt() <<
" eta/phi " 561 << itrEm->eta() <<
" " << itrEm->phi();
566 l1extra::L1MuonParticleCollection::const_iterator itrMu;
569 for( itrMu = l1MuHandle->begin(); itrMu != l1MuHandle->end(); ++itrMu ) {
575 <<
" " << itrMu->pt() <<
" eta/phi " 576 << itrMu->eta() <<
" " << itrMu->phi();
589 for (
unsigned int indx=0; indx<trackIDs.size(); ++indx) {
590 int charge = trackIDs[indx].charge;
591 HepMC::GenEvent::particle_const_iterator
p = trackIDs[indx].trkItr;
592 momVec =
math::XYZTLorentzVector((*p)->momentum().px(), (*p)->momentum().py(), (*p)->momentum().pz(), (*p)->momentum().e());
595 << trackIDs[indx].pdgId <<
" charge " 596 << charge <<
" momVec " << momVec;
599 std::abs(trackIDs[indx].pdgId)>=21)) {
602 posVec =
GlobalPoint(0.1*(*p)->production_vertex()->position().x(),
603 0.1*(*p)->production_vertex()->position().y(),
604 0.1*(*p)->production_vertex()->position().z());
605 posECAL = trackIDs[indx].pointECAL;
606 fillTrack (posVec, momVec, posECAL, trackIDs[indx].pdgId, trackIDs[indx].okECAL,
true);
609 << trackIDs[indx].okECAL <<
"okHCAL " 610 << trackIDs[indx].okHCAL;
611 if (trackIDs[indx].okECAL) {
624 if (trackIDs[indx].okHCAL) {
633 bool saveTrack =
true;
640 fillTrack (posVec, momVec, posECAL, 0,
false,
false);
646 HepMC::GenEvent::particle_const_iterator
p;
647 for (p=myGenEvent->particles_begin(),indx=0; p!=myGenEvent->particles_end();
649 int pdgId = ((*p)->pdg_id());
652 double pp = (*p)->momentum().rho();
653 double eta = (*p)->momentum().eta();
660 for (
unsigned int indx=0; indx<trackIDs.size(); ++indx) {
661 int charge = trackIDs[indx].charge;
662 reco::GenParticleCollection::const_iterator
p = trackIDs[indx].trkItr;
667 << trackIDs[indx].pdgId <<
" charge " 668 << charge <<
" momVec " << momVec;
676 posVec =
GlobalPoint(p->vertex().x(), p->vertex().y(), p->vertex().z());
677 posECAL = trackIDs[indx].pointECAL;
680 << trackIDs[indx].okECAL <<
"okHCAL " 681 << trackIDs[indx].okHCAL;
682 fillTrack (posVec, momVec, posECAL, trackIDs[indx].pdgId, trackIDs[indx].okECAL,
true);
683 if (trackIDs[indx].okECAL) {
696 if (trackIDs[indx].okHCAL) {
705 bool saveTrack =
true;
712 fillTrack (posVec, momVec, posECAL, 0,
false,
false);
718 reco::GenParticleCollection::const_iterator
p;
719 for (p=genParticles->begin(),indx=0; p!=genParticles->end(); ++
p,++indx) {
720 int pdgId = (p->pdgId());
723 double pp = (p->momentum()).
R();
724 double eta = (p->momentum()).
Eta();
743 double tempgen_TH[
NPBins_+1] = { 0.0, 5.0, 12.0, 300.0};
746 double tempgen_Eta[
NEtaBins_+1] = {0.0, 0.5, 1.1, 1.7, 2.3};
759 return ((diff <
M_PI) ? diff : corr);
763 double deta = eta1 - eta2;
769 double deta = eta1 - eta2;
771 return deta*deta + dphi*dphi;
783 double phi1 = momVec.phi();
784 double phi2 = (posECAL - posVec).
phi();
785 double dphi =
deltaPhi( phi1, phi2 );
786 double deta = momVec.eta() - (posECAL - posVec).
eta();
986 h_NEventProc = fs->
make<TH1I>(
"h_NEventProc",
"h_NEventProc", 2, -0.5, 0.5);
987 h_L1AlgoNames = fs->
make<TH1I>(
"h_L1AlgoNames",
"h_L1AlgoNames:Bin Labels", 128, -0.5, 127.5);
989 double pBin[
PBins_+1] = {0.0, 2.0, 4.0, 6.0, 8.0, 10.0, 20.0, 30.0, 40.0,50.0,
990 60.0, 70.0, 80.0, 90.0, 100.0, 150.0, 200.0, 250.0,
991 300.0, 350.0, 400.0, 450.0, 500.0, 550.0, 600.0,
992 650.0, 700.0, 750.0, 800.0, 850.0, 900.0, 950.0,
994 double etaBin[
EtaBins_+1] = {-3.0, -2.9, -2.8, -2.7, -2.6, -2.5, -2.4, -2.3,
995 -2.2, -2.1, -2.0, -1.9, -1.8, -1.7, -1.6, -1.5,
996 -1.4, -1.3, -1.2, -1.1, -1.0, -0.9, -0.8, -0.7,
997 -0.6, -0.5, -0.4, -0.3, -0.2, -0.1, 0.0, 0.1,
998 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9,
999 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7,
1000 1.8, 1.9, 2.0, 2.1, 2.2, 2.3, 2.4, 2.5,
1001 2.6, 2.7, 2.8, 2.9, 3.0};
1003 "#pi^-",
"K^+",
"K^-",
"p",
"n",
"pbar",
1008 sprintf (name,
"pEta%d",
i);
1009 sprintf (title,
"#eta vs momentum for %s", particle[
i].c_str());
1014 tree_ = fs->
make<TTree>(
"tree_",
"tree");
1171 t_muEneR =
new std::vector<double>();
1229 tree_->Branch(
"t_isoTrkPAll",
"std::vector<double>", &t_isoTrkPAll);
1230 tree_->Branch(
"t_isoTrkPtAll",
"std::vector<double>", &t_isoTrkPtAll);
1231 tree_->Branch(
"t_isoTrkPhiAll",
"std::vector<double>", &t_isoTrkPhiAll);
1232 tree_->Branch(
"t_isoTrkEtaAll",
"std::vector<double>", &t_isoTrkEtaAll);
1233 tree_->Branch(
"t_isoTrkDPhiAll",
"std::vector<double>", &t_isoTrkDPhiAll);
1234 tree_->Branch(
"t_isoTrkDEtaAll",
"std::vector<double>", &t_isoTrkDEtaAll);
1235 tree_->Branch(
"t_isoTrkPdgIdAll",
"std::vector<double>", &t_isoTrkPdgIdAll);
1237 tree_->Branch(
"t_isoTrkP",
"std::vector<double>", &t_isoTrkP);
1238 tree_->Branch(
"t_isoTrkPt",
"std::vector<double>", &t_isoTrkPt);
1239 tree_->Branch(
"t_isoTrkEne",
"std::vector<double>", &t_isoTrkEne);
1240 tree_->Branch(
"t_isoTrkEta",
"std::vector<double>", &t_isoTrkEta);
1241 tree_->Branch(
"t_isoTrkPhi",
"std::vector<double>", &t_isoTrkPhi);
1242 tree_->Branch(
"t_isoTrkEtaEC",
"std::vector<double>", &t_isoTrkEtaEC);
1243 tree_->Branch(
"t_isoTrkPhiEC",
"std::vector<double>", &t_isoTrkPhiEC);
1244 tree_->Branch(
"t_isoTrkPdgId",
"std::vector<double>", &t_isoTrkPdgId);
1246 tree_->Branch(
"t_maxNearP31x31",
"std::vector<double>", &t_maxNearP31x31);
1247 tree_->Branch(
"t_cHadronEne31x31",
"std::vector<double>", &t_cHadronEne31x31);
1248 tree_->Branch(
"t_cHadronEne31x31_1",
"std::vector<double>", &t_cHadronEne31x31_1);
1249 tree_->Branch(
"t_cHadronEne31x31_2",
"std::vector<double>", &t_cHadronEne31x31_2);
1250 tree_->Branch(
"t_cHadronEne31x31_3",
"std::vector<double>", &t_cHadronEne31x31_3);
1251 tree_->Branch(
"t_nHadronEne31x31",
"std::vector<double>", &t_nHadronEne31x31);
1252 tree_->Branch(
"t_photonEne31x31",
"std::vector<double>", &t_photonEne31x31);
1253 tree_->Branch(
"t_eleEne31x31",
"std::vector<double>", &t_eleEne31x31);
1254 tree_->Branch(
"t_muEne31x31",
"std::vector<double>", &t_muEne31x31);
1256 tree_->Branch(
"t_maxNearP25x25",
"std::vector<double>", &t_maxNearP25x25);
1257 tree_->Branch(
"t_cHadronEne25x25",
"std::vector<double>", &t_cHadronEne25x25);
1258 tree_->Branch(
"t_cHadronEne25x25_1",
"std::vector<double>", &t_cHadronEne25x25_1);
1259 tree_->Branch(
"t_cHadronEne25x25_2",
"std::vector<double>", &t_cHadronEne25x25_2);
1260 tree_->Branch(
"t_cHadronEne25x25_3",
"std::vector<double>", &t_cHadronEne25x25_3);
1261 tree_->Branch(
"t_nHadronEne25x25",
"std::vector<double>", &t_nHadronEne25x25);
1262 tree_->Branch(
"t_photonEne25x25",
"std::vector<double>", &t_photonEne25x25);
1263 tree_->Branch(
"t_eleEne25x25",
"std::vector<double>", &t_eleEne25x25);
1264 tree_->Branch(
"t_muEne25x25",
"std::vector<double>", &t_muEne25x25);
1266 tree_->Branch(
"t_maxNearP21x21",
"std::vector<double>", &t_maxNearP21x21);
1267 tree_->Branch(
"t_cHadronEne21x21",
"std::vector<double>", &t_cHadronEne21x21);
1268 tree_->Branch(
"t_cHadronEne21x21_1",
"std::vector<double>", &t_cHadronEne21x21_1);
1269 tree_->Branch(
"t_cHadronEne21x21_2",
"std::vector<double>", &t_cHadronEne21x21_2);
1270 tree_->Branch(
"t_cHadronEne21x21_3",
"std::vector<double>", &t_cHadronEne21x21_3);
1271 tree_->Branch(
"t_nHadronEne21x21",
"std::vector<double>", &t_nHadronEne21x21);
1272 tree_->Branch(
"t_photonEne21x21",
"std::vector<double>", &t_photonEne21x21);
1273 tree_->Branch(
"t_eleEne21x21",
"std::vector<double>", &t_eleEne21x21);
1274 tree_->Branch(
"t_muEne21x21",
"std::vector<double>", &t_muEne21x21);
1276 tree_->Branch(
"t_maxNearP15x15",
"std::vector<double>", &t_maxNearP15x15);
1277 tree_->Branch(
"t_cHadronEne15x15",
"std::vector<double>", &t_cHadronEne15x15);
1278 tree_->Branch(
"t_cHadronEne15x15_1",
"std::vector<double>", &t_cHadronEne15x15_1);
1279 tree_->Branch(
"t_cHadronEne15x15_2",
"std::vector<double>", &t_cHadronEne15x15_2);
1280 tree_->Branch(
"t_cHadronEne15x15_3",
"std::vector<double>", &t_cHadronEne15x15_3);
1281 tree_->Branch(
"t_nHadronEne15x15",
"std::vector<double>", &t_nHadronEne15x15);
1282 tree_->Branch(
"t_photonEne15x15",
"std::vector<double>", &t_photonEne15x15);
1283 tree_->Branch(
"t_eleEne15x15",
"std::vector<double>", &t_eleEne15x15);
1284 tree_->Branch(
"t_muEne15x15",
"std::vector<double>", &t_muEne15x15);
1286 tree_->Branch(
"t_maxNearP11x11",
"std::vector<double>", &t_maxNearP11x11);
1287 tree_->Branch(
"t_cHadronEne11x11",
"std::vector<double>", &t_cHadronEne11x11);
1288 tree_->Branch(
"t_cHadronEne11x11_1",
"std::vector<double>", &t_cHadronEne11x11_1);
1289 tree_->Branch(
"t_cHadronEne11x11_2",
"std::vector<double>", &t_cHadronEne11x11_2);
1290 tree_->Branch(
"t_cHadronEne11x11_3",
"std::vector<double>", &t_cHadronEne11x11_3);
1291 tree_->Branch(
"t_nHadronEne11x11",
"std::vector<double>", &t_nHadronEne11x11);
1292 tree_->Branch(
"t_photonEne11x11",
"std::vector<double>", &t_photonEne11x11);
1293 tree_->Branch(
"t_eleEne11x11",
"std::vector<double>", &t_eleEne11x11);
1294 tree_->Branch(
"t_muEne11x11",
"std::vector<double>", &t_muEne11x11);
1296 tree_->Branch(
"t_maxNearP9x9",
"std::vector<double>", &t_maxNearP9x9);
1297 tree_->Branch(
"t_cHadronEne9x9",
"std::vector<double>", &t_cHadronEne9x9);
1298 tree_->Branch(
"t_cHadronEne9x9_1",
"std::vector<double>", &t_cHadronEne9x9_1);
1299 tree_->Branch(
"t_cHadronEne9x9_2",
"std::vector<double>", &t_cHadronEne9x9_2);
1300 tree_->Branch(
"t_cHadronEne9x9_3",
"std::vector<double>", &t_cHadronEne9x9_3);
1301 tree_->Branch(
"t_nHadronEne9x9",
"std::vector<double>", &t_nHadronEne9x9);
1302 tree_->Branch(
"t_photonEne9x9",
"std::vector<double>", &t_photonEne9x9);
1303 tree_->Branch(
"t_eleEne9x9",
"std::vector<double>", &t_eleEne9x9);
1304 tree_->Branch(
"t_muEne9x9",
"std::vector<double>", &t_muEne9x9);
1306 tree_->Branch(
"t_maxNearP7x7",
"std::vector<double>", &t_maxNearP7x7);
1307 tree_->Branch(
"t_cHadronEne7x7",
"std::vector<double>", &t_cHadronEne7x7);
1308 tree_->Branch(
"t_cHadronEne7x7_1",
"std::vector<double>", &t_cHadronEne7x7_1);
1309 tree_->Branch(
"t_cHadronEne7x7_2",
"std::vector<double>", &t_cHadronEne7x7_2);
1310 tree_->Branch(
"t_cHadronEne7x7_3",
"std::vector<double>", &t_cHadronEne7x7_3);
1311 tree_->Branch(
"t_nHadronEne7x7",
"std::vector<double>", &t_nHadronEne7x7);
1312 tree_->Branch(
"t_photonEne7x7",
"std::vector<double>", &t_photonEne7x7);
1313 tree_->Branch(
"t_eleEne7x7",
"std::vector<double>", &t_eleEne7x7);
1314 tree_->Branch(
"t_muEne7x7",
"std::vector<double>", &t_muEne7x7);
1316 tree_->Branch(
"t_maxNearP3x3",
"std::vector<double>", &t_maxNearP3x3);
1317 tree_->Branch(
"t_cHadronEne3x3",
"std::vector<double>", &t_cHadronEne3x3);
1318 tree_->Branch(
"t_cHadronEne3x3_1",
"std::vector<double>", &t_cHadronEne3x3_1);
1319 tree_->Branch(
"t_cHadronEne3x3_2",
"std::vector<double>", &t_cHadronEne3x3_2);
1320 tree_->Branch(
"t_cHadronEne3x3_3",
"std::vector<double>", &t_cHadronEne3x3_3);
1321 tree_->Branch(
"t_nHadronEne3x3",
"std::vector<double>", &t_nHadronEne3x3);
1322 tree_->Branch(
"t_photonEne3x3",
"std::vector<double>", &t_photonEne3x3);
1323 tree_->Branch(
"t_eleEne3x3",
"std::vector<double>", &t_eleEne3x3);
1324 tree_->Branch(
"t_muEne3x3",
"std::vector<double>", &t_muEne3x3);
1326 tree_->Branch(
"t_maxNearP1x1",
"std::vector<double>", &t_maxNearP1x1);
1327 tree_->Branch(
"t_cHadronEne1x1",
"std::vector<double>", &t_cHadronEne1x1);
1328 tree_->Branch(
"t_cHadronEne1x1_1",
"std::vector<double>", &t_cHadronEne1x1_1);
1329 tree_->Branch(
"t_cHadronEne1x1_2",
"std::vector<double>", &t_cHadronEne1x1_2);
1330 tree_->Branch(
"t_cHadronEne1x1_3",
"std::vector<double>", &t_cHadronEne1x1_3);
1331 tree_->Branch(
"t_nHadronEne1x1",
"std::vector<double>", &t_nHadronEne1x1);
1332 tree_->Branch(
"t_photonEne1x1",
"std::vector<double>", &t_photonEne1x1);
1333 tree_->Branch(
"t_eleEne1x1",
"std::vector<double>", &t_eleEne1x1);
1334 tree_->Branch(
"t_muEne1x1",
"std::vector<double>", &t_muEne1x1);
1336 tree_->Branch(
"t_maxNearPHC1x1",
"std::vector<double>", &t_maxNearPHC1x1);
1337 tree_->Branch(
"t_cHadronEneHC1x1",
"std::vector<double>", &t_cHadronEneHC1x1);
1338 tree_->Branch(
"t_cHadronEneHC1x1_1",
"std::vector<double>", &t_cHadronEneHC1x1_1);
1339 tree_->Branch(
"t_cHadronEneHC1x1_2",
"std::vector<double>", &t_cHadronEneHC1x1_2);
1340 tree_->Branch(
"t_cHadronEneHC1x1_3",
"std::vector<double>", &t_cHadronEneHC1x1_3);
1341 tree_->Branch(
"t_nHadronEneHC1x1",
"std::vector<double>", &t_nHadronEneHC1x1);
1342 tree_->Branch(
"t_photonEneHC1x1",
"std::vector<double>", &t_photonEneHC1x1);
1343 tree_->Branch(
"t_eleEneHC1x1",
"std::vector<double>", &t_eleEneHC1x1);
1344 tree_->Branch(
"t_muEneHC1x1",
"std::vector<double>", &t_muEneHC1x1);
1346 tree_->Branch(
"t_maxNearPHC3x3",
"std::vector<double>", &t_maxNearPHC3x3);
1347 tree_->Branch(
"t_cHadronEneHC3x3",
"std::vector<double>", &t_cHadronEneHC3x3);
1348 tree_->Branch(
"t_cHadronEneHC3x3_1",
"std::vector<double>", &t_cHadronEneHC3x3_1);
1349 tree_->Branch(
"t_cHadronEneHC3x3_2",
"std::vector<double>", &t_cHadronEneHC3x3_2);
1350 tree_->Branch(
"t_cHadronEneHC3x3_3",
"std::vector<double>", &t_cHadronEneHC3x3_3);
1351 tree_->Branch(
"t_nHadronEneHC3x3",
"std::vector<double>", &t_nHadronEneHC3x3);
1352 tree_->Branch(
"t_photonEneHC3x3",
"std::vector<double>", &t_photonEneHC3x3);
1353 tree_->Branch(
"t_eleEneHC3x3",
"std::vector<double>", &t_eleEneHC3x3);
1354 tree_->Branch(
"t_muEneHC3x3",
"std::vector<double>", &t_muEneHC3x3);
1356 tree_->Branch(
"t_maxNearPHC5x5",
"std::vector<double>", &t_maxNearPHC5x5);
1357 tree_->Branch(
"t_cHadronEneHC5x5",
"std::vector<double>", &t_cHadronEneHC5x5);
1358 tree_->Branch(
"t_cHadronEneHC5x5_1",
"std::vector<double>", &t_cHadronEneHC5x5_1);
1359 tree_->Branch(
"t_cHadronEneHC5x5_2",
"std::vector<double>", &t_cHadronEneHC5x5_2);
1360 tree_->Branch(
"t_cHadronEneHC5x5_3",
"std::vector<double>", &t_cHadronEneHC5x5_3);
1361 tree_->Branch(
"t_nHadronEneHC5x5",
"std::vector<double>", &t_nHadronEneHC5x5);
1362 tree_->Branch(
"t_photonEneHC5x5",
"std::vector<double>", &t_photonEneHC5x5);
1363 tree_->Branch(
"t_eleEneHC5x5",
"std::vector<double>", &t_eleEneHC5x5);
1364 tree_->Branch(
"t_muEneHC5x5",
"std::vector<double>", &t_muEneHC5x5);
1366 tree_->Branch(
"t_maxNearPHC7x7",
"std::vector<double>", &t_maxNearPHC7x7);
1367 tree_->Branch(
"t_cHadronEneHC7x7",
"std::vector<double>", &t_cHadronEneHC7x7);
1368 tree_->Branch(
"t_cHadronEneHC7x7_1",
"std::vector<double>", &t_cHadronEneHC7x7_1);
1369 tree_->Branch(
"t_cHadronEneHC7x7_2",
"std::vector<double>", &t_cHadronEneHC7x7_2);
1370 tree_->Branch(
"t_cHadronEneHC7x7_3",
"std::vector<double>", &t_cHadronEneHC7x7_3);
1371 tree_->Branch(
"t_nHadronEneHC7x7",
"std::vector<double>", &t_nHadronEneHC7x7);
1372 tree_->Branch(
"t_photonEneHC7x7",
"std::vector<double>", &t_photonEneHC7x7);
1373 tree_->Branch(
"t_eleEneHC7x7",
"std::vector<double>", &t_eleEneHC7x7);
1374 tree_->Branch(
"t_muEneHC7x7",
"std::vector<double>", &t_muEneHC7x7);
1376 tree_->Branch(
"t_maxNearPR",
"std::vector<double>", &t_maxNearPR);
1377 tree_->Branch(
"t_cHadronEneR",
"std::vector<double>", &t_cHadronEneR);
1378 tree_->Branch(
"t_cHadronEneR_1",
"std::vector<double>", &t_cHadronEneR_1);
1379 tree_->Branch(
"t_cHadronEneR_2",
"std::vector<double>", &t_cHadronEneR_2);
1380 tree_->Branch(
"t_cHadronEneR_3",
"std::vector<double>", &t_cHadronEneR_3);
1381 tree_->Branch(
"t_nHadronEneR",
"std::vector<double>", &t_nHadronEneR);
1382 tree_->Branch(
"t_photonEneR",
"std::vector<double>", &t_photonEneR);
1383 tree_->Branch(
"t_eleEneR",
"std::vector<double>", &t_eleEneR);
1384 tree_->Branch(
"t_muEneR",
"std::vector<double>", &t_muEneR);
1386 tree_->Branch(
"t_maxNearPIsoR",
"std::vector<double>", &t_maxNearPIsoR);
1387 tree_->Branch(
"t_cHadronEneIsoR",
"std::vector<double>", &t_cHadronEneIsoR);
1388 tree_->Branch(
"t_cHadronEneIsoR_1",
"std::vector<double>", &t_cHadronEneIsoR_1);
1389 tree_->Branch(
"t_cHadronEneIsoR_2",
"std::vector<double>", &t_cHadronEneIsoR_2);
1390 tree_->Branch(
"t_cHadronEneIsoR_3",
"std::vector<double>", &t_cHadronEneIsoR_3);
1391 tree_->Branch(
"t_nHadronEneIsoR",
"std::vector<double>", &t_nHadronEneIsoR);
1392 tree_->Branch(
"t_photonEneIsoR",
"std::vector<double>", &t_photonEneIsoR);
1393 tree_->Branch(
"t_eleEneIsoR",
"std::vector<double>", &t_eleEneIsoR);
1394 tree_->Branch(
"t_muEneIsoR",
"std::vector<double>", &t_muEneIsoR);
1396 tree_->Branch(
"t_maxNearPHCR",
"std::vector<double>", &t_maxNearPHCR);
1397 tree_->Branch(
"t_cHadronEneHCR",
"std::vector<double>", &t_cHadronEneHCR);
1398 tree_->Branch(
"t_cHadronEneHCR_1",
"std::vector<double>", &t_cHadronEneHCR_1);
1399 tree_->Branch(
"t_cHadronEneHCR_2",
"std::vector<double>", &t_cHadronEneHCR_2);
1400 tree_->Branch(
"t_cHadronEneHCR_3",
"std::vector<double>", &t_cHadronEneHCR_3);
1401 tree_->Branch(
"t_nHadronEneHCR",
"std::vector<double>", &t_nHadronEneHCR);
1402 tree_->Branch(
"t_photonEneHCR",
"std::vector<double>", &t_photonEneHCR);
1403 tree_->Branch(
"t_eleEneHCR",
"std::vector<double>", &t_eleEneHCR);
1404 tree_->Branch(
"t_muEneHCR",
"std::vector<double>", &t_muEneHCR);
1406 tree_->Branch(
"t_maxNearPIsoHCR",
"std::vector<double>", &t_maxNearPIsoHCR);
1407 tree_->Branch(
"t_cHadronEneIsoHCR",
"std::vector<double>", &t_cHadronEneIsoHCR);
1408 tree_->Branch(
"t_cHadronEneIsoHCR_1",
"std::vector<double>", &t_cHadronEneIsoHCR_1);
1409 tree_->Branch(
"t_cHadronEneIsoHCR_2",
"std::vector<double>", &t_cHadronEneIsoHCR_2);
1410 tree_->Branch(
"t_cHadronEneIsoHCR_3",
"std::vector<double>", &t_cHadronEneIsoHCR_3);
1411 tree_->Branch(
"t_nHadronEneIsoHCR",
"std::vector<double>", &t_nHadronEneIsoHCR);
1412 tree_->Branch(
"t_photonEneIsoHCR",
"std::vector<double>", &t_photonEneIsoHCR);
1413 tree_->Branch(
"t_eleEneIsoHCR",
"std::vector<double>", &t_eleEneIsoHCR);
1414 tree_->Branch(
"t_muEneIsoHCR",
"std::vector<double>", &t_muEneIsoHCR);
1416 tree_->Branch(
"t_L1Decision",
"std::vector<int>", &t_L1Decision);
1417 tree_->Branch(
"t_L1CenJetPt",
"std::vector<double>", &t_L1CenJetPt);
1418 tree_->Branch(
"t_L1CenJetEta",
"std::vector<double>", &t_L1CenJetEta);
1419 tree_->Branch(
"t_L1CenJetPhi",
"std::vector<double>", &t_L1CenJetPhi);
1420 tree_->Branch(
"t_L1FwdJetPt",
"std::vector<double>", &t_L1FwdJetPt);
1421 tree_->Branch(
"t_L1FwdJetEta",
"std::vector<double>", &t_L1FwdJetEta);
1422 tree_->Branch(
"t_L1FwdJetPhi",
"std::vector<double>", &t_L1FwdJetPhi);
1423 tree_->Branch(
"t_L1TauJetPt",
"std::vector<double>", &t_L1TauJetPt);
1424 tree_->Branch(
"t_L1TauJetEta",
"std::vector<double>", &t_L1TauJetEta);
1425 tree_->Branch(
"t_L1TauJetPhi",
"std::vector<double>", &t_L1TauJetPhi);
1426 tree_->Branch(
"t_L1MuonPt",
"std::vector<double>", &t_L1MuonPt);
1427 tree_->Branch(
"t_L1MuonEta",
"std::vector<double>", &t_L1MuonEta);
1428 tree_->Branch(
"t_L1MuonPhi",
"std::vector<double>", &t_L1MuonPhi);
1429 tree_->Branch(
"t_L1IsoEMPt",
"std::vector<double>", &t_L1IsoEMPt);
1430 tree_->Branch(
"t_L1IsoEMEta",
"std::vector<double>", &t_L1IsoEMEta);
1431 tree_->Branch(
"t_L1IsoEMPhi",
"std::vector<double>", &t_L1IsoEMPhi);
1432 tree_->Branch(
"t_L1NonIsoEMPt",
"std::vector<double>", &t_L1NonIsoEMPt);
1433 tree_->Branch(
"t_L1NonIsoEMEta",
"std::vector<double>", &t_L1NonIsoEMEta);
1434 tree_->Branch(
"t_L1NonIsoEMPhi",
"std::vector<double>", &t_L1NonIsoEMPhi);
1435 tree_->Branch(
"t_L1METPt",
"std::vector<double>", &t_L1METPt);
1436 tree_->Branch(
"t_L1METEta",
"std::vector<double>", &t_L1METEta);
1437 tree_->Branch(
"t_L1METPhi",
"std::vector<double>", &t_L1METPhi);
1659 int partID[
Particles]={11,-11,21,211,-211,321,-321,2212,2112,-2212,-2112,130};
1662 if (pdgId == partID[ik]) {
std::vector< double > * t_cHadronEneHC1x1_3
static const std::string kSharedResource
std::vector< double > * t_eleEne7x7
std::vector< double > * t_nHadronEne21x21
std::vector< double > * t_cHadronEneHC7x7_2
T getParameter(std::string const &) const
spr::genSimInfo isoinfo25x25
EventNumber_t event() const
std::vector< double > * t_isoTrkEtaAll
std::vector< double > * t_maxNearPHCR
std::vector< double > * t_isoTrkPdgId
double genPartPBins_[NPBins_+1]
std::vector< double > * t_L1FwdJetPhi
std::vector< double > * t_eleEne31x31
std::vector< double > * t_eleEneHC7x7
std::vector< spr::propagatedTrackID > propagateCALO(edm::Handle< reco::TrackCollection > &trkCollection, const CaloGeometry *geo, const MagneticField *bField, const std::string &theTrackQuality, bool debug=false)
std::vector< int > * t_L1Decision
double deltaR2(double eta1, double phi1, double eta2, double phi2)
spr::genSimInfo isoinfo31x31
std::vector< double > * t_cHadronEneIsoR_1
std::vector< double > * t_nHadronEne7x7
std::vector< double > * t_isoTrkPt
std::vector< double > * t_L1TauJetPhi
std::vector< double > * t_L1TauJetPt
std::vector< double > * t_cHadronEneHCR_1
std::vector< double > * t_L1CenJetEta
std::vector< double > * t_photonEne7x7
spr::genSimInfo isoinfo21x21
std::vector< double > * t_L1MuonPt
std::vector< double > * t_isoTrkEta
std::vector< double > * t_cHadronEneHC7x7
std::vector< double > * t_cHadronEneHC7x7_3
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
std::vector< double > * t_cHadronEne7x7_2
std::vector< double > * t_cHadronEne15x15_3
std::vector< double > * t_maxNearP15x15
virtual example_stream void analyze(const edm::Event &, const edm::EventSetup &) override
std::vector< double > * t_nHadronEneHC7x7
std::vector< double > * t_photonEne21x21
std::vector< double > * t_cHadronEneIsoHCR_2
std::vector< double > * t_cHadronEne25x25
std::vector< double > * t_photonEneHC5x5
bool getByToken(EDGetToken token, Handle< PROD > &result) const
std::vector< double > * t_cHadronEneHC1x1_2
edm::EDGetTokenT< l1extra::L1JetParticleCollection > tok_L1extCenJet_
std::vector< double > * t_L1IsoEMEta
#define DEFINE_FWK_MODULE(type)
std::vector< double > * t_muEneIsoHCR
std::vector< double > * t_eleEne11x11
IsolatedGenParticles(const edm::ParameterSet &)
std::vector< double > * t_cHadronEneR
std::vector< double > * t_eleEne3x3
~IsolatedGenParticles() override
std::vector< double > * t_L1IsoEMPt
std::vector< double > * t_cHadronEne3x3_2
Geom::Phi< T > phi() const
Global3DPoint GlobalPoint
std::vector< double > * t_cHadronEneHC3x3_2
std::vector< double > * t_photonEne1x1
std::vector< double > * t_cHadronEne1x1_2
std::vector< double > * t_nHadronEneR
std::vector< double > * t_cHadronEneIsoR_3
std::vector< double > * t_maxNearP11x11
std::vector< double > * t_maxNearPHC7x7
spr::genSimInfo isoinfoHC3x3
edm::EDGetTokenT< l1extra::L1JetParticleCollection > tok_L1extTauJet_
std::vector< double > * t_cHadronEneHC5x5_2
std::vector< double > * t_photonEneHCR
std::vector< double > * t_L1METEta
spr::genSimInfo isoinfoHCR
std::vector< double > * t_muEneIsoR
std::vector< double > * t_nHadronEne9x9
T * make(const Args &...args) const
make new ROOT object
std::vector< double > * t_L1MuonEta
std::vector< double > * t_isoTrkPdgIdAll
std::vector< double > * t_muEneHC7x7
std::vector< double > * t_cHadronEne31x31
std::vector< double > * t_nHadronEneIsoHCR
spr::genSimInfo isoinfo1x1
std::vector< double > * t_L1FwdJetPt
std::vector< double > * t_cHadronEne31x31_1
std::vector< double > * t_photonEneHC3x3
std::vector< double > * t_cHadronEneIsoHCR_1
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
double deltaR(double eta1, double phi1, double eta2, double phi2)
std::vector< double > * t_muEneR
std::vector< double > * t_muEne9x9
double deltaPhi(double v1, double v2)
std::vector< double > * t_muEne21x21
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > tok_L1GTrorsrc_
std::vector< double > * t_maxNearP7x7
void getData(T &iHolder) const
edm::EDGetTokenT< l1extra::L1MuonParticleCollection > tok_L1extMusrc_
spr::genSimInfo isoinfoHC7x7
std::vector< double > * t_muEneHC1x1
std::vector< double > * t_photonEneHC7x7
const std::vector< L1GlobalTriggerObjectMap > & gtObjectMap() const
get / set the vector of object maps
std::vector< double > * t_maxNearPIsoHCR
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
std::vector< double > * t_L1TauJetEta
std::vector< double > * t_cHadronEneHC5x5
std::vector< double > * t_cHadronEne31x31_2
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
std::vector< double > * t_isoTrkPAll
std::vector< double > * t_nHadronEneHC1x1
spr::genSimInfo isoinfo11x11
std::vector< double > * t_eleEneIsoHCR
std::vector< double > * t_eleEneHC5x5
std::vector< double > * t_cHadronEneIsoHCR
std::vector< double > * t_muEneHCR
std::vector< double > * t_cHadronEne7x7_1
std::vector< double > * t_maxNearP25x25
std::vector< double > * t_cHadronEne3x3_3
std::vector< double > * t_cHadronEneHC7x7_1
std::vector< double > * t_cHadronEneHC5x5_1
double genPartEtaBins_[NEtaBins_+1]
edm::EDGetTokenT< l1extra::L1EmParticleCollection > tok_L1Em_
std::vector< double > * t_eleEne25x25
std::vector< double > * t_eleEne9x9
std::vector< double > * t_eleEne1x1
std::vector< double > * t_muEne11x11
std::vector< double > * t_eleEneHCR
std::vector< double > * t_muEne7x7
spr::genSimInfo isoinfoHC5x5
std::vector< double > * t_cHadronEneHC1x1
std::vector< bool > DecisionWord
typedefs
std::vector< double > * t_cHadronEneR_3
std::vector< double > * t_cHadronEne11x11_1
std::vector< double > * t_muEne1x1
std::vector< double > * t_cHadronEne15x15_1
std::vector< double > * t_cHadronEneIsoHCR_3
std::vector< double > * t_cHadronEneIsoR
spr::genSimInfo isoinfoHC1x1
std::vector< double > * t_eleEneHC3x3
std::vector< double > * t_isoTrkDEtaAll
std::vector< double > * t_muEne25x25
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
std::vector< double > * t_cHadronEne9x9_3
std::vector< double > * t_L1NonIsoEMPt
std::vector< double > * t_photonEne25x25
std::vector< double > * t_maxNearP21x21
virtual example_stream void bookHistograms(DQMStore::IBooker &,@example_stream edm::Run const &,@example_stream edm::EventSetup const &) override
Abs< T >::type abs(const T &t)
std::vector< double > * t_maxNearP31x31
std::vector< double > * t_muEneHC3x3
void eGenSimInfo(const DetId &coreDet, HepMC::GenEvent::particle_const_iterator trkItr, std::vector< spr::propagatedGenTrackID > &trackIds, const CaloGeometry *geo, const CaloTopology *caloTopology, int ieta, int iphi, spr::genSimInfo &info, bool debug=false)
std::vector< double > * t_cHadronEneHC3x3
std::vector< double > * t_cHadronEne11x11
spr::genSimInfo isoinfoIsoHCR
std::vector< double > * t_cHadronEne25x25_3
std::vector< double > * t_cHadronEneHCR_3
T * make(const Args &...args) const
make new ROOT object
std::vector< double > * t_L1CenJetPt
spr::genSimInfo isoinfo15x15
std::vector< double > * t_maxNearPHC5x5
std::vector< double > * t_cHadronEneHCR_2
std::vector< double > * t_cHadronEne11x11_3
std::vector< double > * t_cHadronEneHCR
std::vector< double > * t_cHadronEne1x1
std::vector< double > * t_isoTrkDPhiAll
std::vector< double > * t_photonEneIsoHCR
std::vector< double > * t_nHadronEne31x31
std::vector< double > * t_maxNearP3x3
std::vector< double > * t_cHadronEne1x1_1
std::vector< double > * t_cHadronEne21x21_1
const DecisionWord & decisionWord(int bxInEventValue) const
std::vector< double > * t_isoTrkPhiEC
spr::genSimInfo isoinfoIsoR
std::vector< double > * t_cHadronEne11x11_2
std::vector< double > * t_L1CenJetPhi
std::vector< double > * t_maxNearP1x1
edm::EDGetTokenT< L1GlobalTriggerObjectMapRecord > tok_L1GTobjmap_
std::vector< double > * t_maxNearPHC3x3
std::vector< double > * t_nHadronEneHCR
std::vector< double > * t_eleEneR
double deltaR(double eta1, double eta2, double phi1, double phi2)
std::vector< double > * t_cHadronEneIsoR_2
std::vector< double > * t_cHadronEne9x9_1
std::vector< double > * t_eleEneIsoR
std::vector< double > * t_cHadronEneR_2
std::vector< double > * t_isoTrkPhiAll
void fillTrack(GlobalPoint &posVec, math::XYZTLorentzVector &momVec, GlobalPoint &posECAL, int pdgId, bool okECAL, bool accpet)
bool operator()(const HepMC::GenParticle *a, const HepMC::GenParticle *b) const
std::vector< double > * t_photonEneHC1x1
constexpr auto deltaR2(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
std::vector< double > * t_L1FwdJetEta
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
const HepMC::GenEvent * GetEvent() const
std::vector< double > * t_maxNearPR
edm::EDGetTokenT< l1extra::L1EmParticleCollection > tok_L1extNonIsoEm_
std::vector< double > * t_muEne31x31
void fillIsolatedTrack(math::XYZTLorentzVector &momVec, GlobalPoint &posECAL, int pdgId)
std::vector< double > * t_isoTrkPtAll
std::vector< double > * t_isoTrkP
std::vector< double > * t_nHadronEne11x11
std::vector< double > * t_nHadronEneIsoR
std::vector< double > * t_L1NonIsoEMPhi
std::vector< double > * t_eleEne21x21
std::vector< double > * t_maxNearPHC1x1
std::vector< double > * t_cHadronEne9x9_2
std::vector< double > * t_cHadronEne31x31_3
std::vector< double > * t_maxNearP9x9
std::vector< double > * t_photonEne31x31
std::vector< double > * t_nHadronEneHC3x3
std::vector< double > * t_cHadronEne15x15_2
std::vector< double > * t_photonEne15x15
std::vector< double > * t_L1NonIsoEMEta
std::vector< double > * t_isoTrkPhi
void add(std::string const &label, ParameterSetDescription const &psetDescription)
std::vector< double > * t_nHadronEne15x15
std::vector< double > * t_cHadronEneHC1x1_1
std::vector< double > * t_photonEneR
std::vector< double > * t_isoTrkEtaEC
std::vector< double > * t_nHadronEne1x1
std::vector< double > * t_cHadronEne3x3
spr::genSimInfo isoinfo9x9
edm::EDGetTokenT< edm::HepMCProduct > tok_hepmc_
void analyze(const edm::Event &, const edm::EventSetup &) override
std::vector< double > * t_cHadronEne25x25_2
std::vector< double > * t_L1IsoEMPhi
std::vector< double > * t_cHadronEneHC5x5_3
std::string algoBitToName_[nL1BitsMax_]
edm::EDGetTokenT< reco::GenParticleCollection > tok_genParticles_
std::vector< double > * t_photonEne9x9
std::vector< double > * t_L1METPhi
std::vector< double > * t_nHadronEne25x25
std::vector< double > * t_photonEne3x3
std::vector< double > * t_cHadronEneHC3x3_3
std::vector< double > * t_eleEneHC1x1
std::vector< double > * t_photonEne11x11
void hGenSimInfo(const DetId &coreDet, HepMC::GenEvent::particle_const_iterator trkItr, std::vector< spr::propagatedGenTrackID > &trackIds, const HcalTopology *topology, int ieta, int iphi, spr::genSimInfo &info, bool includeHO=false, bool debug=false)
std::vector< double > * t_muEne3x3
std::vector< double > * t_cHadronEne9x9
std::vector< double > * t_muEne15x15
std::vector< double > * t_cHadronEne21x21_2
std::vector< double > * t_cHadronEne3x3_1
std::vector< double > * t_cHadronEneHC3x3_1
edm::EDGetTokenT< l1extra::L1JetParticleCollection > tok_L1extFwdJet_
spr::genSimInfo isoinfo3x3
std::vector< double > * t_cHadronEne25x25_1
std::vector< double > * t_cHadronEne15x15
std::vector< double > * t_cHadronEne21x21
std::vector< double > * t_L1METPt
T const * product() const
std::vector< double > * t_muEneHC5x5
std::vector< double > * t_cHadronEneR_1
std::vector< double > * t_cHadronEne21x21_3
std::vector< double > * t_L1MuonPhi
std::vector< double > * t_cHadronEne7x7_3
std::vector< double > * t_photonEneIsoR
std::vector< double > * t_cHadronEne7x7
std::vector< double > * t_eleEne15x15
std::vector< double > * t_maxNearPIsoR
std::vector< double > * t_nHadronEne3x3
spr::genSimInfo isoinfo7x7
std::vector< double > * t_nHadronEneHC5x5
std::vector< double > * t_isoTrkEne
std::vector< double > * t_cHadronEne1x1_3