26 #include <Math/GenVector/VectorUtil.h> 35 #include "TDirectory.h" 156 double deltaPhi(
double v1,
double v2);
157 double deltaR(
double eta1,
double phi1,
double eta2,
double phi2);
169 std::map< std::pair<unsigned int,std::string>,
int>
l1AlgoMap_;
310 myverbose_(iConfig.getUntrackedParameter<
int>(
"verbosity",5)),
311 pvTracksPtMin_(iConfig.getUntrackedParameter<double>(
"pvTracksPtMin",1.0)),
312 debugTrks_(iConfig.getUntrackedParameter<
int>(
"debugTracks",0)),
314 minTrackP_(iConfig.getUntrackedParameter<double>(
"minTrackP",1.0)),
315 maxTrackEta_(iConfig.getUntrackedParameter<double>(
"maxTrackEta",5.0)),
318 tMinE_(iConfig.getUntrackedParameter<double>(
"timeMinCutECAL",-500.)),
319 tMaxE_(iConfig.getUntrackedParameter<double>(
"timeMaxCutECAL",500.)),
320 tMinH_(iConfig.getUntrackedParameter<double>(
"timeMinCutHCAL",-500.)),
321 tMaxH_(iConfig.getUntrackedParameter<double>(
"timeMaxCutHCAL",500.)),
404 tok_L1extTauJet_ = consumes<l1extra::L1JetParticleCollection>(L1extraTauJetSource_);
405 tok_L1extCenJet_ = consumes<l1extra::L1JetParticleCollection>(L1extraCenJetSource_);
406 tok_L1extFwdJet_ = consumes<l1extra::L1JetParticleCollection>(L1extraFwdJetSource_);
407 tok_L1extMu_ = consumes<l1extra::L1MuonParticleCollection>(L1extraMuonSource_);
408 tok_L1extIsoEm_ = consumes<l1extra::L1EmParticleCollection>(L1extraIsoEmSource_);
409 tok_L1extNoIsoEm_ = consumes<l1extra::L1EmParticleCollection>(L1extraNonIsoEmSource_);
410 tok_jets_ = consumes<reco::CaloJetCollection>(JetSrc_);
411 tok_hbhe_ = consumes<HBHERecHitCollection>(HBHERecHitSource_);
651 descriptions.
add(
"isolatedTracksNxN",desc);
656 bool haveIsoTrack=
false;
673 reco::TrackCollection::const_iterator trkItr;
677 << trkCollection->size();
692 <<
"\nNo valid L1 trigger configuration available." 693 <<
"\nSee text above for error code interpretation" 694 <<
"\nNo return here, in order to test each method, protected against configuration error.";
704 for (
CItAlgo itAlgo = algorithmMap.begin(); itAlgo != algorithmMap.end(); itAlgo++) {
706 int algBitNumber = ( itAlgo->second ).algoBitNumber();
707 l1AlgoMap_.insert( std::pair<std::pair<unsigned int,std::string>,
int>( std::pair<unsigned int,std::string>(algBitNumber, algName) , 0) ) ;
709 std::map< std::pair<unsigned int,std::string>,
int>::iterator itr;
712 <<
" " << (itr->first).second <<
" " 717 std::vector<int> algbits;
718 for (
CItAlgo itAlgo = algorithmMap.begin(); itAlgo != algorithmMap.end(); itAlgo++) {
720 int algBitNumber = ( itAlgo->second ).algoBitNumber();
726 l1AlgoMap_[std::pair<unsigned int,std::string>(algBitNumber, algName)] += 1;
731 algbits.push_back(algBitNumber);
738 << (*t_L1PreScale)[
ii] <<
" " 741 for (
int i=0;
i<128; ++
i) {
750 l1extra::L1JetParticleCollection::const_iterator itr;
752 for (itr = l1TauHandle->begin(),iL1Obj=0; itr != l1TauHandle->end(); ++itr,iL1Obj++) {
760 << itr->pt() <<
" eta/phi " << itr->eta()
761 <<
" " << itr->phi();
768 for (itr = l1CenJetHandle->begin(),iL1Obj=0; itr != l1CenJetHandle->end(); ++itr,iL1Obj++) {
776 <<
" " << itr->pt() <<
" eta/phi " 777 << itr->eta() <<
" " << itr->phi();
784 for (itr = l1FwdJetHandle->begin(),iL1Obj=0; itr != l1FwdJetHandle->end(); ++itr,iL1Obj++) {
792 <<
" " << itr->pt() <<
" eta/phi " 793 << itr->eta() <<
" " << itr->phi();
798 l1extra::L1EmParticleCollection::const_iterator itrEm;
801 for (itrEm = l1IsoEmHandle->begin(),iL1Obj=0; itrEm != l1IsoEmHandle->end(); ++itrEm,iL1Obj++) {
809 <<
" " << itrEm->pt() <<
" eta/phi " 810 << itrEm->eta() <<
" " << itrEm->phi();
817 for (itrEm = l1NonIsoEmHandle->begin(),iL1Obj=0; itrEm != l1NonIsoEmHandle->end(); ++itrEm,iL1Obj++) {
825 <<
" " << itrEm->pt() <<
" eta/phi " 826 << itrEm->eta() <<
" " << itrEm->phi();
831 l1extra::L1MuonParticleCollection::const_iterator itrMu;
834 for (itrMu = l1MuHandle->begin(),iL1Obj=0; itrMu != l1MuHandle->end(); ++itrMu,iL1Obj++) {
842 <<
" " << itrMu->pt() <<
" eta/phi " 843 << itrMu->eta() <<
" " << itrMu->phi();
853 std::vector<reco::Track> svTracks;
855 double sumPtMax = -1.0;
856 for(
unsigned int ind=0;ind<recVtxs->size();ind++) {
858 if ( !((*recVtxs)[ind].isFake()) ) {
859 double vtxTrkSumPt=0.0, vtxTrkSumPtWt=0.0;
861 double vtxTrkSumPtHP=0.0, vtxTrkSumPtHPWt=0.0;
862 int vtxTrkNHP =0, vtxTrkNHPWt =0;
866 for (vtxTrack = (*recVtxs)[ind].tracks_begin(); vtxTrack!=(*recVtxs)[ind].tracks_end(); vtxTrack++) {
870 bool trkQuality = (*vtxTrack)->quality(trackQuality_);
872 vtxTrkSumPt += (*vtxTrack)->pt();
874 vtxTrkSumPt += (*vtxTrack)->pt();
876 vtxTrkSumPtHP += (*vtxTrack)->pt();
880 double weight = (*recVtxs)[ind].trackWeight(*vtxTrack);
883 vtxTrkSumPtWt += (*vtxTrack)->pt();
886 vtxTrkSumPtHPWt += (*vtxTrack)->pt();
892 if (vtxTrkSumPt>sumPtMax) {
893 sumPtMax = vtxTrkSumPt;
894 leadPV =
math::XYZPoint( (*recVtxs)[ind].
x(),(*recVtxs)[ind].
y(), (*recVtxs)[ind].
z() );
897 t_PVx ->push_back( (*recVtxs)[ind].
x() );
898 t_PVy ->push_back( (*recVtxs)[ind].
y() );
899 t_PVz ->push_back( (*recVtxs)[ind].
z() );
900 t_PVisValid ->push_back( (*recVtxs)[ind].isValid() );
901 t_PVNTracks ->push_back( (*recVtxs)[ind].tracksSize() );
914 << (*recVtxs)[ind].isValid() <<
" isFake " 915 <<(*recVtxs)[ind].isFake()
916 <<
" hasRefittedTracks() " << ind <<
" " 917 << (*recVtxs)[ind].hasRefittedTracks()
918 <<
" refittedTrksSize " 919 << (*recVtxs)[ind].refittedTracks().size()
921 << (*recVtxs)[ind].tracksSize()
922 <<
" sumPt " << vtxTrkSumPt;
941 for (
unsigned int ijet=0;ijet<(*jets).size();ijet++) {
942 t_jetPt ->push_back( (*jets)[ijet].
pt() );
991 edm::SimTrackContainer::const_iterator simTrkItr;
1007 std::unique_ptr<TrackerHitAssociator> associate;
1019 std::vector<spr::propagatedTrackID> trkCaloDets;
1021 std::vector<spr::propagatedTrackID>::const_iterator trkDetItr;
1024 for (trkDetItr = trkCaloDets.begin(); trkDetItr != trkCaloDets.end(); trkDetItr++) {
1026 << trkDetItr->trkItr->eta() <<
" " 1027 << trkDetItr->okECAL <<
" " 1028 << trkDetItr->okHCAL;
1029 if (trkDetItr->okECAL) {
1030 if (trkDetItr->detIdECAL.subdetId() ==
EcalBarrel)
1035 if (trkDetItr->okHCAL)
1041 for (trkDetItr = trkCaloDets.begin(),nTracks=0; trkDetItr != trkCaloDets.end(); trkDetItr++,nTracks++) {
1043 const reco::Track* pTrack = &(*(trkDetItr->trkItr));
1047 for (
unsigned int ind=0; ind<recVtxs->size(); ind++) {
1048 if (!((*recVtxs)[ind].isFake())) {
1050 for (vtxTrack = (*recVtxs)[ind].tracks_begin(); vtxTrack!=(*recVtxs)[ind].tracks_end(); vtxTrack++) {
1053 if (pTrack == pvtxTrack.
get()) {
1057 if (pTrack->
pt()>1.0) {
1058 edm::LogVerbatim(
"IsoTrack") <<
"Debug the track association with vertex ";
1061 <<
" vtx " << ind <<
" pt " 1062 << pTrack->
pt() <<
" eta " 1063 << pTrack->
eta() <<
" " 1064 <<pTrack->
pt()-pvtxTrack->
pt()<<
" " 1065 << pTrack->
eta()-pvtxTrack->
eta();
1078 bool ifGood = pTrack->
quality(trackQuality_);
1079 double pt1 = pTrack->
pt();
1080 double p1 = pTrack->
p();
1081 double eta1 = pTrack->
momentum().eta();
1082 double phi1 = pTrack->
momentum().phi();
1083 double etaEcal1 = trkDetItr->etaECAL;
1084 double phiEcal1 = trkDetItr->phiECAL;
1085 double etaHcal1 = trkDetItr->etaHCAL;
1086 double phiHcal1 = trkDetItr->phiHCAL;
1087 double dxy1 = pTrack->
dxy();
1088 double dz1 = pTrack->
dz();
1090 double dxybs1 = beamSpotH.
isValid() ? pTrack->
dxy(bspot) : pTrack->
dxy();
1091 double dzbs1 = beamSpotH.
isValid() ? pTrack->
dz(bspot) : pTrack->
dz();
1092 double dxypv1 = pTrack->
dxy();
1093 double dzpv1 = pTrack->
dz();
1096 dxypv1 = pTrack->
dxy(thisTkPV);
1097 dzpv1 = pTrack->
dz (thisTkPV);
1107 if (ifGood && nLayersCrossed>7 ) {
1116 if (! ifGood)
continue;
1130 edm::SimTrackContainer::const_iterator matchedSimTrkAll =
spr::matchedSimTrack(iEvent, SimTk, SimVtx, pTrack, *associate,
false);
1136 double maxNearP31x31=999.0, maxNearP25x25=999.0, maxNearP21x21=999.0, maxNearP15x15=999.0;
1142 int iTrkEtaBin=-1, iTrkMomBin=-1;
1143 for(
unsigned int ieta=0; ieta<
NEtaBins; ieta++) {
1146 for (
unsigned int ipt=0; ipt<
NPBins; ipt++) {
1149 if (iTrkMomBin>=0 && iTrkEtaBin>=0) {
1155 if (maxNearP31x31<0.0 && nLayersCrossed>7 && nOuterHits>4) {
1165 if (maxNearP31x31<1.0) {
1167 haveIsoTrack =
true;
1170 double simTrackP = -1;
1172 edm::SimTrackContainer::const_iterator matchedSimTrk =
spr::matchedSimTrack(iEvent, SimTk, SimVtx, pTrack, *associate,
false);
1173 if( matchedSimTrk != SimTk->end() )simTrackP = matchedSimTrk->momentum().P();
1180 std::pair<double, bool> e7x7P, e9x9P, e11x11P, e15x15P;
1181 std::pair<double, bool> e7x7_10SigP, e9x9_10SigP, e11x11_10SigP, e15x15_10SigP;
1182 std::pair<double, bool> e7x7_15SigP, e9x9_15SigP, e11x11_15SigP, e15x15_15SigP;
1183 std::pair<double, bool> e7x7_20SigP, e9x9_20SigP, e11x11_20SigP, e15x15_20SigP;
1184 std::pair<double, bool> e7x7_25SigP, e9x9_25SigP, e11x11_25SigP, e15x15_25SigP;
1185 std::pair<double, bool> e7x7_30SigP, e9x9_30SigP, e11x11_30SigP, e15x15_30SigP;
1188 spr::caloSimInfo simInfo11x11, simInfo13x13, simInfo15x15, simInfo21x21, simInfo25x25, simInfo31x31;
1189 double trkEcalEne=0;
1191 const DetId isoCell = trkDetItr->detIdECAL;
1192 e7x7P =
spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology,sevlv.
product(),3,3, -100.0, -100.0,
tMinE_,
tMaxE_);
1193 e9x9P =
spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology,sevlv.
product(),4,4, -100.0, -100.0,
tMinE_,
tMaxE_);
1194 e11x11P =
spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology,sevlv.
product(),5,5, -100.0, -100.0,
tMinE_,
tMaxE_);
1195 e15x15P =
spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology,sevlv.
product(),7,7, -100.0, -100.0,
tMinE_,
tMaxE_);
1197 e7x7_10SigP =
spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology,sevlv.
product(),3,3, 0.030, 0.150,
tMinE_,
tMaxE_);
1198 e9x9_10SigP =
spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology,sevlv.
product(),4,4, 0.030, 0.150,
tMinE_,
tMaxE_);
1199 e11x11_10SigP =
spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology,sevlv.
product(),5,5, 0.030, 0.150,
tMinE_,
tMaxE_);
1200 e15x15_10SigP =
spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology,sevlv.
product(),7,7, 0.030, 0.150,
tMinE_,
tMaxE_);
1202 e7x7_15SigP =
spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology, sevlv.
product(),ttMap, 3,3, 0.20,0.45,
tMinE_,
tMaxE_);
1203 e9x9_15SigP =
spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology, sevlv.
product(),ttMap, 4,4, 0.20,0.45,
tMinE_,
tMaxE_);
1204 e11x11_15SigP =
spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology,sevlv.
product(), ttMap, 5,5, 0.20,0.45,
tMinE_,
tMaxE_);
1205 e15x15_15SigP =
spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology, sevlv.
product(),ttMap, 7,7, 0.20,0.45,
tMinE_,
tMaxE_,
false);
1207 e7x7_20SigP =
spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology,sevlv.
product(),3,3, 0.060, 0.300,
tMinE_,
tMaxE_);
1208 e9x9_20SigP =
spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology,sevlv.
product(),4,4, 0.060, 0.300,
tMinE_,
tMaxE_);
1209 e11x11_20SigP =
spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology,sevlv.
product(),5,5, 0.060, 0.300,
tMinE_,
tMaxE_);
1210 e15x15_20SigP =
spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology,sevlv.
product(),7,7, 0.060, 0.300,
tMinE_,
tMaxE_);
1212 e7x7_25SigP =
spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology,sevlv.
product(),3,3, 0.075, 0.375,
tMinE_,
tMaxE_);
1213 e9x9_25SigP =
spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology,sevlv.
product(),4,4, 0.075, 0.375,
tMinE_,
tMaxE_);
1214 e11x11_25SigP =
spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology,sevlv.
product(),5,5, 0.075, 0.375,
tMinE_,
tMaxE_);
1215 e15x15_25SigP =
spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology,sevlv.
product(),7,7, 0.075, 0.375,
tMinE_,
tMaxE_);
1217 e7x7_30SigP =
spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology,sevlv.
product(),3,3, 0.090, 0.450,
tMinE_,
tMaxE_);
1218 e9x9_30SigP =
spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology,sevlv.
product(),4,4, 0.090, 0.450,
tMinE_,
tMaxE_);
1219 e11x11_30SigP =
spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology,sevlv.
product(),5,5, 0.090, 0.450,
tMinE_,
tMaxE_);
1220 e15x15_30SigP =
spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology,sevlv.
product(),7,7, 0.090, 0.450,
tMinE_,
tMaxE_);
1224 << e9x9P.first <<
" e11x11 " 1225 << e11x11P.first <<
" e15x15 " 1228 <<
" e11x11_10Sig " <<e11x11_10SigP.first
1229 <<
" e15x15_10Sig " <<e15x15_10SigP.first;
1234 spr::eECALSimInfo(iEvent,isoCell,geo,caloTopology,pcaloeb,pcaloee,SimTk,SimVtx,pTrack, *associate, 1,1, simInfo3x3);
1235 spr::eECALSimInfo(iEvent,isoCell,geo,caloTopology,pcaloeb,pcaloee,SimTk,SimVtx,pTrack, *associate, 2,2, simInfo5x5);
1236 spr::eECALSimInfo(iEvent,isoCell,geo,caloTopology,pcaloeb,pcaloee,SimTk,SimVtx,pTrack, *associate, 3,3, simInfo7x7);
1237 spr::eECALSimInfo(iEvent,isoCell,geo,caloTopology,pcaloeb,pcaloee,SimTk,SimVtx,pTrack, *associate, 4,4, simInfo9x9);
1238 spr::eECALSimInfo(iEvent,isoCell,geo,caloTopology,pcaloeb,pcaloee,SimTk,SimVtx,pTrack, *associate, 5,5, simInfo11x11);
1239 spr::eECALSimInfo(iEvent,isoCell,geo,caloTopology,pcaloeb,pcaloee,SimTk,SimVtx,pTrack, *associate, 6,6, simInfo13x13);
1240 spr::eECALSimInfo(iEvent,isoCell,geo,caloTopology,pcaloeb,pcaloee,SimTk,SimVtx,pTrack, *associate, 7,7, simInfo15x15, 150.0,
false);
1241 spr::eECALSimInfo(iEvent,isoCell,geo,caloTopology,pcaloeb,pcaloee,SimTk,SimVtx,pTrack, *associate, 10,10, simInfo21x21);
1242 spr::eECALSimInfo(iEvent,isoCell,geo,caloTopology,pcaloeb,pcaloee,SimTk,SimVtx,pTrack, *associate, 12,12, simInfo25x25);
1243 spr::eECALSimInfo(iEvent,isoCell,geo,caloTopology,pcaloeb,pcaloee,SimTk,SimVtx,pTrack, *associate, 15,15, simInfo31x31);
1245 trkEcalEne =
spr::eCaloSimInfo(iEvent, geo, pcaloeb,pcaloee, SimTk, SimVtx, pTrack, *associate);
1250 << simInfo3x3.
eTotal <<
" eMatched " 1251 << simInfo3x3.
eMatched <<
" eRest " 1252 << simInfo3x3.
eRest <<
" eGamma " 1253 << simInfo3x3.
eGamma <<
" eNeutralHad " 1258 << simInfo5x5.
eTotal <<
" eMatched " 1259 << simInfo5x5.
eMatched <<
" eRest " 1260 << simInfo5x5.
eRest <<
" eGamma " 1261 << simInfo5x5.
eGamma <<
" eNeutralHad " 1266 << simInfo7x7.
eTotal <<
" eMatched " 1267 << simInfo7x7.
eMatched <<
" eRest " 1268 << simInfo7x7.
eRest <<
" eGamma " 1269 << simInfo7x7.
eGamma <<
" eNeutralHad " 1274 << simInfo9x9.
eTotal <<
" eMatched " 1275 << simInfo9x9.
eMatched <<
" eRest " 1276 << simInfo9x9.
eRest <<
" eGamma " 1277 << simInfo9x9.
eGamma <<
" eNeutralHad " 1282 << simInfo11x11.
eTotal <<
" eMatched " 1283 << simInfo11x11.
eMatched <<
" eRest " 1284 << simInfo11x11.
eRest <<
" eGamma " 1285 <<simInfo11x11.
eGamma <<
" eNeutralHad " 1290 << simInfo15x15.
eTotal <<
" eMatched " 1291 << simInfo15x15.
eMatched <<
" eRest " 1292 << simInfo15x15.
eRest <<
" eGamma " 1293 <<simInfo15x15.
eGamma <<
" eNeutralHad " 1298 << simInfo31x31.
eTotal <<
" eMatched " 1299 << simInfo31x31.
eMatched <<
" eRest " 1300 << simInfo31x31.
eRest <<
" eGamma " 1301 <<simInfo31x31.
eGamma <<
" eNeutralHad " 1310 double hcalScale=1.0;
1317 double maxNearHcalP3x3=-1, maxNearHcalP5x5=-1, maxNearHcalP7x7=-1;
1322 double h3x3=0, h5x5=0, h7x7=0;
1323 double h3x3Sig=0, h5x5Sig=0, h7x7Sig=0;
1324 double trkHcalEne = 0;
1327 if (trkDetItr->okHCAL) {
1328 const DetId ClosestCell(trkDetItr->detIdHCAL);
1330 h3x3 =
spr::eHCALmatrix(theHBHETopology, ClosestCell, hbhe,1,1,
false,
true, -100.0, -100.0, -100.0, -100.0,
tMinH_,
tMaxH_);
1331 h5x5 =
spr::eHCALmatrix(theHBHETopology, ClosestCell, hbhe,2,2,
false,
true, -100.0, -100.0, -100.0, -100.0,
tMinH_,
tMaxH_);
1332 h7x7 =
spr::eHCALmatrix(theHBHETopology, ClosestCell, hbhe,3,3,
false,
true, -100.0, -100.0, -100.0, -100.0,
tMinH_,
tMaxH_);
1333 h3x3Sig =
spr::eHCALmatrix(theHBHETopology, ClosestCell, hbhe,1,1,
false,
true, 0.7, 0.8, -100.0, -100.0,
tMinH_,
tMaxH_);
1334 h5x5Sig =
spr::eHCALmatrix(theHBHETopology, ClosestCell, hbhe,2,2,
false,
true, 0.7, 0.8, -100.0, -100.0,
tMinH_,
tMaxH_);
1335 h7x7Sig =
spr::eHCALmatrix(theHBHETopology, ClosestCell, hbhe,3,3,
false,
true, 0.7, 0.8, -100.0, -100.0,
tMinH_,
tMaxH_);
1339 << h3x3Sig <<
" 5x5 " << h5x5 <<
" " 1340 << h5x5Sig <<
" 7x7 " << h7x7 <<
" " 1345 spr::eHCALSimInfo(iEvent, theHBHETopology, ClosestCell, geo,pcalohh, SimTk, SimVtx, pTrack, *associate, 1,1, hsimInfo3x3);
1346 spr::eHCALSimInfo(iEvent, theHBHETopology, ClosestCell, geo,pcalohh, SimTk, SimVtx, pTrack, *associate, 2,2, hsimInfo5x5);
1347 spr::eHCALSimInfo(iEvent, theHBHETopology, ClosestCell, geo,pcalohh, SimTk, SimVtx, pTrack, *associate, 3,3, hsimInfo7x7, 150.0,
false,
false);
1348 trkHcalEne =
spr::eCaloSimInfo(iEvent, geo,pcalohh, SimTk, SimVtx, pTrack, *associate);
1352 << hsimInfo3x3.
eTotal <<
" eMatched " 1353 << hsimInfo3x3.
eMatched <<
" eRest " 1354 << hsimInfo3x3.
eRest <<
" eGamma " 1361 << hsimInfo5x5.
eTotal <<
" eMatched " 1362 << hsimInfo5x5.
eMatched <<
" eRest " 1363 << hsimInfo5x5.
eRest <<
" eGamma " 1370 << hsimInfo7x7.
eTotal <<
" eMatched " 1371 << hsimInfo7x7.
eMatched <<
" eRest " 1372 << hsimInfo7x7.
eRest <<
" eGamma " 1385 <<
" Event " <<iEvent.
id().
event();
1386 std::vector<std::pair<DetId,double> > v7x7 =
spr::eHCALmatrixCell(theHBHETopology, ClosestCell, hbhe,3,3,
false,
false);
1389 for (
unsigned int iv=0; iv<v7x7.size(); iv++) {
1390 sumv += v7x7[iv].second;
1393 <<
" in " << v7x7.size();
1394 for(
unsigned int iv=0; iv<v7x7.size(); iv++) {
1397 << std::hex << v7x7[iv].first()
1398 <<
std::dec <<
" " <<
id <<
" Energy " 1405 trkHcalEne =
spr::eCaloSimInfo(iEvent, geo,pcalohh, SimTk, SimVtx, pTrack, *associate);
1414 double trackOutPosOutHitDr =
diff.R();
1415 double trackL = point2_TK0.second;
1418 <<
" " << point2_TK0.first.eta() <<
" " 1419 << point2_TK0.first.phi();
1425 <<
diff.R() <<
" diffR/L " 1426 <<
diff.R()/point2_TK0.second;
1429 for (
unsigned int ind=0;ind<recVtxs->size();ind++) {
1430 if (!((*recVtxs)[ind].isFake())) {
1432 if (
deltaR(eta1,phi1, (*vtxTrack)->eta(),(*vtxTrack)->phi()) < 0.01 )
t_trackPVIdx ->push_back( ind );
1486 t_e7x7 ->push_back( e7x7P.first );
1487 t_e9x9 ->push_back( e9x9P.first );
1488 t_e11x11 ->push_back( e11x11P.first );
1489 t_e15x15 ->push_back( e15x15P.first );
1552 t_h3x3 ->push_back( h3x3 );
1553 t_h5x5 ->push_back( h5x5 );
1554 t_h7x7 ->push_back( h7x7 );
1592 if(haveIsoTrack)
tree_->Fill();
1601 double tempgen_TH[
NPBins+1] = { 0.0, 1.0, 2.0, 3.0, 4.0,
1602 5.0, 6.0, 7.0, 9.0, 11.0,
1603 15.0, 20.0, 30.0, 50.0, 75.0, 100.0};
1607 double tempgen_Eta[
NEtaBins+1] = {0.0, 1.131, 1.653, 2.172};
1618 std::map< std::pair<unsigned int,std::string>,
int>::iterator itr;
1621 <<
" " << (itr->first).second <<
" " 1623 int ibin = (itr->first).
first;
1624 TString
name( (itr->first).second );
1839 char hname[100], htit[100];
1844 for(
unsigned int ieta=0; ieta<
NEtaBins; ieta++) {
1845 double lowEta=-5.0, highEta= 5.0;
1849 for(
unsigned int ipt=0; ipt<
NPBins; ipt++) {
1850 double lowP=0.0, highP=300.0;
1853 sprintf(hname,
"h_maxNearP31x31_ptBin%i_etaBin%i",ipt, ieta);
1854 sprintf(htit,
"maxNearP in 31x31 (%3.2f<|#eta|<%3.2f), (%2.0f<trkP<%3.0f)", lowEta, highEta, lowP, highP );
1857 sprintf(hname,
"h_maxNearP25x25_ptBin%i_etaBin%i",ipt, ieta);
1858 sprintf(htit,
"maxNearP in 25x25 (%3.2f<|#eta|<%3.2f), (%2.0f<trkP<%3.0f)", lowEta, highEta, lowP, highP );
1861 sprintf(hname,
"h_maxNearP21x21_ptBin%i_etaBin%i",ipt, ieta);
1862 sprintf(htit,
"maxNearP in 21x21 (%3.2f<|#eta|<%3.2f), (%2.0f<trkP<%3.0f)", lowEta, highEta, lowP, highP );
1865 sprintf(hname,
"h_maxNearP15x15_ptBin%i_etaBin%i",ipt, ieta);
1866 sprintf(htit,
"maxNearP in 15x15 (%3.2f<|#eta|<%3.2f), (%2.0f<trkP<%3.0f)", lowEta, highEta, lowP, highP );
1872 h_L1AlgoNames = fs->
make<TH1I>(
"h_L1AlgoNames",
"h_L1AlgoNames:Bin Labels", 128, -0.5, 127.5);
1876 h_PVTracksWt = fs->
make<TH1F>(
"h_PVTracksWt",
"h_PVTracksWt", 600, -0.1, 1.1);
1878 h_nTracks = fs->
make<TH1F>(
"h_nTracks",
"h_nTracks", 1000, -0.5, 999.5);
1880 sprintf(hname,
"h_recEtaPt_0");
1881 sprintf(htit,
"h_recEtaPt (all tracks Eta vs pT)");
1884 sprintf(hname,
"h_recEtaP_0");
1885 sprintf(htit,
"h_recEtaP (all tracks Eta vs pT)");
1890 h_recEta_0 = fs->
make<TH1F>(
"h_recEta_0",
"Eta (all tracks)", 60, -3.0, 3.0);
1891 h_recPhi_0 = fs->
make<TH1F>(
"h_recPhi_0",
"Phi (all tracks)", 100, -3.2, 3.2);
1893 sprintf(hname,
"h_recEtaPt_1");
1894 sprintf(htit,
"h_recEtaPt (all good tracks Eta vs pT)");
1897 sprintf(hname,
"h_recEtaP_1");
1898 sprintf(htit,
"h_recEtaP (all good tracks Eta vs pT)");
1903 h_recEta_1 = fs->
make<TH1F>(
"h_recEta_1",
"Eta (all good tracks)", 60, -3.0, 3.0);
1904 h_recPhi_1 = fs->
make<TH1F>(
"h_recPhi_1",
"Phi (all good tracks)", 100, -3.2, 3.2);
1906 sprintf(hname,
"h_recEtaPt_2");
1907 sprintf(htit,
"h_recEtaPt (charge isolation Eta vs pT)");
1910 sprintf(hname,
"h_recEtaP_2");
1911 sprintf(htit,
"h_recEtaP (charge isolation Eta vs pT)");
1916 h_recEta_2 = fs->
make<TH1F>(
"h_recEta_2",
"Eta (charge isolation)", 60, -3.0, 3.0);
1917 h_recPhi_2 = fs->
make<TH1F>(
"h_recPhi_2",
"Phi (charge isolation)", 100, -3.2, 3.2);
1919 tree_ = fs->
make<TTree>(
"tree",
"tree");
1920 tree_->SetAutoSave(10000);
1927 t_PVx =
new std::vector<double>();
1928 t_PVy =
new std::vector<double>();
1929 t_PVz =
new std::vector<double>();
1941 tree_->Branch(
"PVx" ,
"std::vector<double>" ,&
t_PVx);
1942 tree_->Branch(
"PVy" ,
"std::vector<double>" ,&t_PVy);
1943 tree_->Branch(
"PVz" ,
"std::vector<double>" ,&t_PVz);
1944 tree_->Branch(
"PVisValid" ,
"std::vector<int>" ,&t_PVisValid);
1945 tree_->Branch(
"PVndof" ,
"std::vector<int>" ,&t_PVndof);
1946 tree_->Branch(
"PVNTracks" ,
"std::vector<int>" ,&t_PVNTracks);
1947 tree_->Branch(
"PVNTracksWt" ,
"std::vector<int>" ,&t_PVNTracksWt);
1948 tree_->Branch(
"t_PVTracksSumPt" ,
"std::vector<double>" ,&t_PVTracksSumPt);
1949 tree_->Branch(
"t_PVTracksSumPtWt" ,
"std::vector<double>" ,&t_PVTracksSumPtWt);
1950 tree_->Branch(
"PVNTracksHP" ,
"std::vector<int>" ,&t_PVNTracksHP);
1951 tree_->Branch(
"PVNTracksHPWt" ,
"std::vector<int>" ,&t_PVNTracksHPWt);
1952 tree_->Branch(
"t_PVTracksSumPtHP" ,
"std::vector<double>" ,&t_PVTracksSumPtHP);
1953 tree_->Branch(
"t_PVTracksSumPtHPWt" ,
"std::vector<double>" ,&t_PVTracksSumPtHPWt);
1983 tree_->Branch(
"t_L1PreScale",
"std::vector<int>", &t_L1PreScale);
1984 tree_->Branch(
"t_L1CenJetPt",
"std::vector<double>", &t_L1CenJetPt);
1985 tree_->Branch(
"t_L1CenJetEta",
"std::vector<double>", &t_L1CenJetEta);
1986 tree_->Branch(
"t_L1CenJetPhi",
"std::vector<double>", &t_L1CenJetPhi);
1987 tree_->Branch(
"t_L1FwdJetPt",
"std::vector<double>", &t_L1FwdJetPt);
1988 tree_->Branch(
"t_L1FwdJetEta",
"std::vector<double>", &t_L1FwdJetEta);
1989 tree_->Branch(
"t_L1FwdJetPhi",
"std::vector<double>", &t_L1FwdJetPhi);
1990 tree_->Branch(
"t_L1TauJetPt",
"std::vector<double>", &t_L1TauJetPt);
1991 tree_->Branch(
"t_L1TauJetEta",
"std::vector<double>", &t_L1TauJetEta);
1992 tree_->Branch(
"t_L1TauJetPhi",
"std::vector<double>", &t_L1TauJetPhi);
1993 tree_->Branch(
"t_L1MuonPt",
"std::vector<double>", &t_L1MuonPt);
1994 tree_->Branch(
"t_L1MuonEta",
"std::vector<double>", &t_L1MuonEta);
1995 tree_->Branch(
"t_L1MuonPhi",
"std::vector<double>", &t_L1MuonPhi);
1996 tree_->Branch(
"t_L1IsoEMPt",
"std::vector<double>", &t_L1IsoEMPt);
1997 tree_->Branch(
"t_L1IsoEMEta",
"std::vector<double>", &t_L1IsoEMEta);
1998 tree_->Branch(
"t_L1IsoEMPhi",
"std::vector<double>", &t_L1IsoEMPhi);
1999 tree_->Branch(
"t_L1NonIsoEMPt",
"std::vector<double>", &t_L1NonIsoEMPt);
2000 tree_->Branch(
"t_L1NonIsoEMEta",
"std::vector<double>", &t_L1NonIsoEMEta);
2001 tree_->Branch(
"t_L1NonIsoEMPhi",
"std::vector<double>", &t_L1NonIsoEMPhi);
2002 tree_->Branch(
"t_L1METPt",
"std::vector<double>", &t_L1METPt);
2003 tree_->Branch(
"t_L1METEta",
"std::vector<double>", &t_L1METEta);
2004 tree_->Branch(
"t_L1METPhi",
"std::vector<double>", &t_L1METPhi);
2006 t_jetPt =
new std::vector<double>();
2007 t_jetEta =
new std::vector<double>();
2008 t_jetPhi =
new std::vector<double>();
2011 tree_->Branch(
"t_jetPt",
"std::vector<double>",&
t_jetPt);
2012 tree_->Branch(
"t_jetEta",
"std::vector<double>",&t_jetEta);
2013 tree_->Branch(
"t_jetPhi",
"std::vector<double>",&t_jetPhi);
2014 tree_->Branch(
"t_nTrksJetCalo",
"std::vector<double>",&t_nTrksJetCalo);
2015 tree_->Branch(
"t_nTrksJetVtx",
"std::vector<double>",&t_nTrksJetVtx);
2028 tree_->Branch(
"t_trackPhiAll",
"std::vector<double>", &t_trackPhiAll );
2029 tree_->Branch(
"t_trackEtaAll",
"std::vector<double>", &t_trackEtaAll );
2030 tree_->Branch(
"t_trackPtAll",
"std::vector<double>", &t_trackPtAll );
2031 tree_->Branch(
"t_trackDxyAll",
"std::vector<double>", &t_trackDxyAll );
2032 tree_->Branch(
"t_trackDzAll",
"std::vector<double>", &t_trackDzAll );
2033 tree_->Branch(
"t_trackDxyPVAll",
"std::vector<double>", &t_trackDxyPVAll );
2034 tree_->Branch(
"t_trackDzPVAll",
"std::vector<double>", &t_trackDzPVAll );
2035 tree_->Branch(
"t_trackChiSqAll",
"std::vector<double>", &t_trackChiSqAll );
2038 t_trackP =
new std::vector<double>();
2067 t_trackHitOutMissTOB =
new std::vector<int>();
2068 t_trackHitOutMissTEC =
new std::vector<int>();
2069 t_trackHitOutMissTIB =
new std::vector<int>();
2070 t_trackHitOutMissTID =
new std::vector<int>();
2081 t_trackL =
new std::vector<double>();
2083 tree_->Branch(
"t_trackP",
"std::vector<double>", &
t_trackP );
2084 tree_->Branch(
"t_trackPt",
"std::vector<double>", &t_trackPt );
2085 tree_->Branch(
"t_trackEta",
"std::vector<double>", &t_trackEta );
2086 tree_->Branch(
"t_trackPhi",
"std::vector<double>", &t_trackPhi );
2087 tree_->Branch(
"t_trackEcalEta",
"std::vector<double>", &t_trackEcalEta );
2088 tree_->Branch(
"t_trackEcalPhi",
"std::vector<double>", &t_trackEcalPhi );
2089 tree_->Branch(
"t_trackHcalEta",
"std::vector<double>", &t_trackHcalEta );
2090 tree_->Branch(
"t_trackHcalPhi",
"std::vector<double>", &t_trackHcalPhi );
2092 tree_->Branch(
"t_trackNOuterHits",
"std::vector<int>", &t_trackNOuterHits );
2093 tree_->Branch(
"t_NLayersCrossed",
"std::vector<int>", &t_NLayersCrossed );
2094 tree_->Branch(
"t_trackHitsTOB",
"std::vector<int>", &t_trackHitsTOB );
2095 tree_->Branch(
"t_trackHitsTEC",
"std::vector<int>", &t_trackHitsTEC );
2096 tree_->Branch(
"t_trackHitInMissTOB",
"std::vector<int>", &t_trackHitInMissTOB );
2097 tree_->Branch(
"t_trackHitInMissTEC",
"std::vector<int>", &t_trackHitInMissTEC );
2098 tree_->Branch(
"t_trackHitInMissTIB",
"std::vector<int>", &t_trackHitInMissTIB );
2099 tree_->Branch(
"t_trackHitInMissTID",
"std::vector<int>", &t_trackHitInMissTID );
2100 tree_->Branch(
"t_trackHitInMissTIBTID",
"std::vector<int>", &t_trackHitInMissTIBTID );
2101 tree_->Branch(
"t_trackHitOutMissTOB",
"std::vector<int>", &t_trackHitOutMissTOB);
2102 tree_->Branch(
"t_trackHitOutMissTEC",
"std::vector<int>", &t_trackHitOutMissTEC);
2103 tree_->Branch(
"t_trackHitOutMissTIB",
"std::vector<int>", &t_trackHitOutMissTIB);
2104 tree_->Branch(
"t_trackHitOutMissTID",
"std::vector<int>", &t_trackHitOutMissTID);
2105 tree_->Branch(
"t_trackHitOutMissTOBTEC",
"std::vector<int>", &t_trackHitOutMissTOBTEC);
2106 tree_->Branch(
"t_trackHitInMeasTOB",
"std::vector<int>", &t_trackHitInMeasTOB );
2107 tree_->Branch(
"t_trackHitInMeasTEC",
"std::vector<int>", &t_trackHitInMeasTEC );
2108 tree_->Branch(
"t_trackHitInMeasTIB",
"std::vector<int>", &t_trackHitInMeasTIB );
2109 tree_->Branch(
"t_trackHitInMeasTID",
"std::vector<int>", &t_trackHitInMeasTID );
2110 tree_->Branch(
"t_trackHitOutMeasTOB",
"std::vector<int>", &t_trackHitOutMeasTOB);
2111 tree_->Branch(
"t_trackHitOutMeasTEC",
"std::vector<int>", &t_trackHitOutMeasTEC);
2112 tree_->Branch(
"t_trackHitOutMeasTIB",
"std::vector<int>", &t_trackHitOutMeasTIB);
2113 tree_->Branch(
"t_trackHitOutMeasTID",
"std::vector<int>", &t_trackHitOutMeasTID);
2114 tree_->Branch(
"t_trackOutPosOutHitDr",
"std::vector<double>", &t_trackOutPosOutHitDr);
2115 tree_->Branch(
"t_trackL",
"std::vector<double>", &t_trackL);
2117 tree_->Branch(
"t_trackDxy",
"std::vector<double>", &t_trackDxy );
2118 tree_->Branch(
"t_trackDxyBS",
"std::vector<double>", &t_trackDxyBS );
2119 tree_->Branch(
"t_trackDz",
"std::vector<double>", &t_trackDz );
2120 tree_->Branch(
"t_trackDzBS",
"std::vector<double>", &t_trackDzBS );
2121 tree_->Branch(
"t_trackDxyPV",
"std::vector<double>", &t_trackDxyPV );
2122 tree_->Branch(
"t_trackDzPV",
"std::vector<double>", &t_trackDzPV );
2123 tree_->Branch(
"t_trackChiSq",
"std::vector<double>", &t_trackChiSq );
2124 tree_->Branch(
"t_trackPVIdx",
"std::vector<int>", &t_trackPVIdx );
2130 tree_->Branch(
"t_maxNearP21x21",
"std::vector<double>", &t_maxNearP21x21);
2133 t_e7x7 =
new std::vector<double>();
2134 t_e9x9 =
new std::vector<double>();
2135 t_e11x11 =
new std::vector<double>();
2136 t_e15x15 =
new std::vector<double>();
2139 tree_->Branch(
"t_e7x7",
"std::vector<double>", &t_e7x7);
2140 tree_->Branch(
"t_e9x9",
"std::vector<double>", &t_e9x9);
2141 tree_->Branch(
"t_e11x11",
"std::vector<double>", &t_e11x11);
2142 tree_->Branch(
"t_e15x15",
"std::vector<double>", &t_e15x15);
2166 tree_->Branch(
"t_e9x9_10Sig" ,
"std::vector<double>", &t_e9x9_10Sig);
2167 tree_->Branch(
"t_e11x11_10Sig" ,
"std::vector<double>", &t_e11x11_10Sig);
2168 tree_->Branch(
"t_e15x15_10Sig" ,
"std::vector<double>", &t_e15x15_10Sig);
2169 tree_->Branch(
"t_e7x7_15Sig" ,
"std::vector<double>", &t_e7x7_15Sig);
2170 tree_->Branch(
"t_e9x9_15Sig" ,
"std::vector<double>", &t_e9x9_15Sig);
2171 tree_->Branch(
"t_e11x11_15Sig" ,
"std::vector<double>", &t_e11x11_15Sig);
2172 tree_->Branch(
"t_e15x15_15Sig" ,
"std::vector<double>", &t_e15x15_15Sig);
2173 tree_->Branch(
"t_e7x7_20Sig" ,
"std::vector<double>", &t_e7x7_20Sig);
2174 tree_->Branch(
"t_e9x9_20Sig" ,
"std::vector<double>", &t_e9x9_20Sig);
2175 tree_->Branch(
"t_e11x11_20Sig" ,
"std::vector<double>", &t_e11x11_20Sig);
2176 tree_->Branch(
"t_e15x15_20Sig" ,
"std::vector<double>", &t_e15x15_20Sig);
2177 tree_->Branch(
"t_e7x7_25Sig" ,
"std::vector<double>", &t_e7x7_25Sig);
2178 tree_->Branch(
"t_e9x9_25Sig" ,
"std::vector<double>", &t_e9x9_25Sig);
2179 tree_->Branch(
"t_e11x11_25Sig" ,
"std::vector<double>", &t_e11x11_25Sig);
2180 tree_->Branch(
"t_e15x15_25Sig" ,
"std::vector<double>", &t_e15x15_25Sig);
2181 tree_->Branch(
"t_e7x7_30Sig" ,
"std::vector<double>", &t_e7x7_30Sig);
2182 tree_->Branch(
"t_e9x9_30Sig" ,
"std::vector<double>", &t_e9x9_30Sig);
2183 tree_->Branch(
"t_e11x11_30Sig" ,
"std::vector<double>", &t_e11x11_30Sig);
2184 tree_->Branch(
"t_e15x15_30Sig" ,
"std::vector<double>", &t_e15x15_30Sig);
2222 tree_->Branch(
"t_esim9x9",
"std::vector<double>", &t_esim9x9);
2223 tree_->Branch(
"t_esim11x11",
"std::vector<double>", &t_esim11x11);
2224 tree_->Branch(
"t_esim15x15",
"std::vector<double>", &t_esim15x15);
2226 tree_->Branch(
"t_esim7x7Matched",
"std::vector<double>", &t_esim7x7Matched);
2227 tree_->Branch(
"t_esim9x9Matched",
"std::vector<double>", &t_esim9x9Matched);
2228 tree_->Branch(
"t_esim11x11Matched",
"std::vector<double>", &t_esim11x11Matched);
2229 tree_->Branch(
"t_esim15x15Matched",
"std::vector<double>", &t_esim15x15Matched);
2231 tree_->Branch(
"t_esim7x7Rest",
"std::vector<double>", &t_esim7x7Rest);
2232 tree_->Branch(
"t_esim9x9Rest",
"std::vector<double>", &t_esim9x9Rest);
2233 tree_->Branch(
"t_esim11x11Rest",
"std::vector<double>", &t_esim11x11Rest);
2234 tree_->Branch(
"t_esim15x15Rest",
"std::vector<double>", &t_esim15x15Rest);
2236 tree_->Branch(
"t_esim7x7Photon",
"std::vector<double>", &t_esim7x7Photon);
2237 tree_->Branch(
"t_esim9x9Photon",
"std::vector<double>", &t_esim9x9Photon);
2238 tree_->Branch(
"t_esim11x11Photon",
"std::vector<double>", &t_esim11x11Photon);
2239 tree_->Branch(
"t_esim15x15Photon",
"std::vector<double>", &t_esim15x15Photon);
2241 tree_->Branch(
"t_esim7x7NeutHad",
"std::vector<double>", &t_esim7x7NeutHad);
2242 tree_->Branch(
"t_esim9x9NeutHad",
"std::vector<double>", &t_esim9x9NeutHad);
2243 tree_->Branch(
"t_esim11x11NeutHad",
"std::vector<double>", &t_esim11x11NeutHad);
2244 tree_->Branch(
"t_esim15x15NeutHad",
"std::vector<double>", &t_esim15x15NeutHad);
2246 tree_->Branch(
"t_esim7x7CharHad",
"std::vector<double>", &t_esim7x7CharHad);
2247 tree_->Branch(
"t_esim9x9CharHad",
"std::vector<double>", &t_esim9x9CharHad);
2248 tree_->Branch(
"t_esim11x11CharHad",
"std::vector<double>", &t_esim11x11CharHad);
2249 tree_->Branch(
"t_esim15x15CharHad",
"std::vector<double>", &t_esim15x15CharHad);
2251 tree_->Branch(
"t_trkEcalEne",
"std::vector<double>", &t_trkEcalEne);
2252 tree_->Branch(
"t_simTrackP",
"std::vector<double>", &t_simTrackP);
2253 tree_->Branch(
"t_esimPdgId",
"std::vector<double>", &t_esimPdgId);
2259 t_h3x3 =
new std::vector<double>();
2260 t_h5x5 =
new std::vector<double>();
2261 t_h7x7 =
new std::vector<double>();
2290 tree_->Branch(
"t_maxNearHcalP5x5",
"std::vector<double>", &t_maxNearHcalP5x5);
2291 tree_->Branch(
"t_maxNearHcalP7x7",
"std::vector<double>", &t_maxNearHcalP7x7);
2292 tree_->Branch(
"t_h3x3",
"std::vector<double>", &t_h3x3);
2293 tree_->Branch(
"t_h5x5",
"std::vector<double>", &t_h5x5);
2294 tree_->Branch(
"t_h7x7",
"std::vector<double>", &t_h7x7);
2295 tree_->Branch(
"t_h3x3Sig",
"std::vector<double>", &t_h3x3Sig);
2296 tree_->Branch(
"t_h5x5Sig",
"std::vector<double>", &t_h5x5Sig);
2297 tree_->Branch(
"t_h7x7Sig",
"std::vector<double>", &t_h7x7Sig);
2298 tree_->Branch(
"t_infoHcal",
"std::vector<int>", &t_infoHcal);
2330 return ((diff <
M_PI) ? diff : corr);
2334 double deta = eta1 - eta2;
2335 double dphi =
deltaPhi(phi1, phi2);
2336 return std::sqrt(deta*deta + dphi*dphi);
2345 <<
"\n TrackMmentum " << pTrack->
momentum()
2346 <<
" (pt,eta,phi)(" << pTrack->
pt() <<
"," 2347 << pTrack->
eta() <<
"," << pTrack->
phi() <<
")" 2348 <<
" p " << pTrack->
p() <<
"\n Normalized chi2 " 2350 << pTrack->
charge() <<
" qoverp() " 2351 << pTrack->
qoverp() <<
"+-" 2353 << pTrack->
d0() <<
"\n NValidHits " 2357 << pTrack->
quality(trackQuality_);
2378 <<
"\n \t pixelLayersWithMeasurement() " 2380 <<
"\n \t stripLayersWithMeasurement() " 2382 <<
"\n \t pixelBarrelLayersWithMeasurement() " 2384 <<
"\n \t pixelEndcapLayersWithMeasurement() " 2386 <<
"\n \t stripTIBLayersWithMeasurement() " 2388 <<
"\n \t stripTIDLayersWithMeasurement() " 2390 <<
"\n \t stripTOBLayersWithMeasurement() " 2392 <<
"\n \t stripTECLayersWithMeasurement() "
std::vector< double > * t_hsim7x7CharHad
double qoverp() const
q / p
static const std::string kSharedResource
double p() const
momentum vector magnitude
std::vector< double > * t_hsim3x3Matched
int stripTOBLayersWithMeasurement() const
std::vector< double > * t_esim7x7CharHad
edm::EDGetTokenT< l1extra::L1JetParticleCollection > tok_L1extCenJet_
std::vector< double > * t_e15x15
value_type const * get() const
std::vector< double > * t_nTrksJetCalo
const bool L1TriggerAlgoInfo_
T getParameter(std::string const &) const
EventNumber_t event() const
std::vector< double > * t_maxNearHcalP7x7
double deltaPhi(double v1, double v2)
const Point & referencePoint() const
Reference point on the track.
std::vector< double > * t_trackPt
std::vector< double > * t_trackPAll
const bool printTrkHitPattern_
std::vector< double > * t_e7x7
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< double > * t_trackHcalPhi
std::vector< double > * t_trackDxyPVAll
const unsigned int nTracks(const reco::Vertex &sv)
~IsolatedTracksNxN() override
static std::string qualityName(TrackQuality)
std::vector< int > * t_trackHitOutMeasTEC
std::vector< double > * t_trackPdgIdAll
void eCaloSimInfo(std::vector< DetId > vdets, const CaloGeometry *geo, edm::Handle< T > &hitsEB, edm::Handle< T > &hitsEE, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, edm::SimTrackContainer::const_iterator trkInfo, caloSimInfo &info, double timeCut=150, bool debug=false)
std::vector< double > * t_trackOutPosOutHitDr
std::vector< double > * t_maxNearHcalP5x5
std::vector< double > * t_L1NonIsoEMPt
std::vector< int > * t_trackHitOutMeasTIB
std::vector< double > * t_esim7x7
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
std::vector< int > * t_trackHitInMissTOB
std::vector< double > * t_trackDz
double d0() const
dxy parameter in perigee convention (d0 = -dxy)
std::map< std::string, double > eHCALSimInfo(const edm::Event &, const HcalTopology *topology, const DetId &det, const CaloGeometry *geo, edm::Handle< T > &hits, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const reco::Track *pTrack, TrackerHitAssociator &associate, int ieta, int iphi, double timeCut=150, bool includeHO=false, bool debug=false)
std::vector< double > * t_trackEcalEta
int stripTIBLayersWithMeasurement() const
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
std::vector< double > * t_trackEtaAll
std::map< std::pair< unsigned int, std::string >, int > l1AlgoMap_
std::vector< double > * t_esim11x11Matched
std::vector< double > * t_L1IsoEMEta
std::vector< double > * t_PVTracksSumPt
bool getByToken(EDGetToken token, Handle< PROD > &result) const
std::vector< double > * t_e9x9_10Sig
TH1F * h_maxNearP25x25[NPBins][NEtaBins]
TrackQuality
track quality
std::vector< double > * t_hsim3x3CharHad
#define DEFINE_FWK_MODULE(type)
int stripTOBLayersWithoutMeasurement(HitCategory category) const
std::vector< int > * t_PVndof
std::vector< double > * t_hsim7x7Rest
std::vector< double > * t_L1TauJetPhi
std::vector< double > * t_PVTracksSumPtWt
const bool availableL1Configuration(int &errorCode, int &l1ConfCode) const
std::vector< int > * t_infoHcal
std::vector< double > * t_e11x11_15Sig
std::vector< double > * t_L1TauJetPt
std::vector< int > * t_PVNTracksWt
std::vector< double > * t_trackEcalPhi
std::vector< double > * t_esim11x11NeutHad
std::vector< double > * t_L1TauJetEta
std::vector< double > * t_e15x15_15Sig
std::vector< double > * t_L1MuonEta
std::vector< double > * t_L1MuonPt
int bunchCrossing() const
std::vector< double > * t_h3x3
edm::LuminosityBlockNumber_t luminosityBlock() const
std::vector< double > * t_L1MuonPhi
double phi() const
azimuthal angle of momentum vector
unsigned short numberOfLostHits() const
number of cases where track crossed a layer without getting a hit.
const bool decision(const edm::Event &iEvent, const std::string &nameAlgoTechTrig, int &errorCode) const
std::vector< double > * t_trackDxyAll
T * make(const Args &...args) const
make new ROOT object
std::vector< double > * t_maxNearHcalP3x3
IsolatedTracksNxN(const edm::ParameterSet &)
edm::EDGetTokenT< edm::SimVertexContainer > tok_simVtx_
std::vector< double > * t_hsim3x3Photon
edm::EDGetTokenT< reco::BeamSpot > tok_bs_
int pixelLayersWithMeasurement() const
const Vector & momentum() const
track momentum vector
std::vector< double > * t_PVTracksSumPtHP
const math::XYZPoint & outerPosition() const
position of the outermost hit
std::vector< double > * t_esim11x11Rest
int trackerLayersWithMeasurement() const
int pixelEndcapLayersWithMeasurement() const
const double maxTrackEta_
std::vector< int > * t_trackNOuterHits
std::vector< double > * t_h7x7Sig
std::vector< double > * t_e15x15_30Sig
std::vector< double > * t_trackPhiAll
std::vector< double > * t_e7x7_25Sig
double genPartPBins[NPBins+1]
std::vector< double > * t_trkHcalEne
double deltaR(double eta1, double phi1, double eta2, double phi2)
std::vector< double > * t_e7x7_20Sig
std::vector< double > * t_e11x11_10Sig
std::vector< double > * t_trackPtAll
std::vector< double > * t_h3x3Sig
std::vector< double > * t_esimPdgId
void printHitPattern(HitCategory category, int position, std::ostream &stream) const
std::vector< double > * t_e11x11_20Sig
std::vector< double > * t_jetEta
std::vector< double > * t_maxNearP31x31
std::vector< int > * t_trackHitInMissTEC
double chargeIsolationEcal(unsigned int trkIndex, std::vector< spr::propagatedTrackID > &vdetIds, const CaloGeometry *geo, const CaloTopology *caloTopology, int ieta, int iphi, bool debug=false)
std::vector< double > * t_trkEcalEne
std::vector< double > * t_trackEta
std::vector< double > * t_esim9x9Photon
std::vector< int > * t_trackHitInMeasTID
double eta() const
pseudorapidity of momentum vector
std::vector< double > * t_hsim5x5Rest
std::vector< double > * t_e11x11
std::vector< double > * t_esim15x15
edm::EDGetTokenT< edm::SimTrackContainer > tok_simTk_
std::vector< double > * t_L1CenJetPt
std::vector< double > * t_trackChiSqAll
std::vector< double > * t_e15x15_25Sig
std::vector< int > * t_trackHitOutMissTIB
edm::EDGetTokenT< edm::PCaloHitContainer > tok_caloHH_
std::vector< double > * t_esim15x15Rest
std::vector< double > * t_esim11x11
std::vector< double > * t_hsim7x7
std::vector< int > * t_PVNTracksHPWt
int stripTIDLayersWithMeasurement() const
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
std::vector< int > * t_trackHitOutMissTID
std::vector< int > * t_trackHitOutMissTOBTEC
double pt() const
track transverse momentum
std::vector< int > * t_trackHitsTEC
std::vector< double > * t_e9x9_30Sig
edm::EDGetTokenT< edm::PCaloHitContainer > tok_caloEB_
std::vector< double > * t_L1CenJetPhi
int numberOfAllHits(HitCategory category) const
std::vector< double > * t_L1FwdJetEta
std::vector< double > * t_h7x7
Abs< T >::type abs(const T &t)
void analyze(const edm::Event &, const edm::EventSetup &) override
std::vector< int > * t_ecalSpike11x11
const bool writeAllTracks_
std::vector< double > * t_esim15x15NeutHad
std::vector< double > * t_e9x9_20Sig
std::vector< int > * t_trackHitOutMeasTOB
std::vector< int > * t_trackHitInMeasTIB
edm::SimTrackContainer::const_iterator matchedSimTrack(const edm::Event &iEvent, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const reco::Track *pTrack, TrackerHitAssociator &associate, bool debug=false)
unsigned short numberOfValidHits() const
number of valid hits found
edm::EDGetTokenT< reco::TrackCollection > tok_genTrack_
T * make(const Args &...args) const
make new ROOT object
std::vector< double > * t_trackDzPV
std::vector< int > * t_PVNTracksHP
std::vector< double > * t_L1FwdJetPhi
edm::EDGetTokenT< l1extra::L1JetParticleCollection > tok_L1extFwdJet_
edm::EDGetTokenT< l1extra::L1EmParticleCollection > tok_L1extIsoEm_
ParameterDescriptionBase * add(U const &iLabel, T const &value)
std::vector< double > * t_nTrksJetVtx
std::vector< double > * t_esim7x7NeutHad
std::vector< double > * t_hsim3x3NeutHad
std::vector< double > * t_L1NonIsoEMPhi
std::vector< double > * t_trackDzBS
std::vector< int > * t_trackHitOutMissTOB
std::vector< double > * t_L1CenJetEta
std::vector< double > * t_trackDzPVAll
edm::EDGetTokenT< l1extra::L1MuonParticleCollection > tok_L1extMu_
std::vector< double > * t_esim7x7Matched
std::vector< double > * t_esim9x9
std::vector< double > * t_hsim5x5
std::vector< double > * t_h5x5
double qoverpError() const
error on signed transverse curvature
std::vector< double > * t_trackDxyPV
std::vector< double > * t_hsim5x5NeutHad
std::vector< double > * t_trackChiSq
double dz() const
dz parameter (= dsz/cos(lambda)). This is the track z0 w.r.t (0,0,0) only if the refPoint is close to...
std::vector< double > * t_hsim5x5Photon
std::vector< double > * t_PVy
std::vector< unsigned int > m_triggerMaskAlgoTrig
std::vector< int > * t_L1PreScale
std::vector< double > * t_hsim3x3Rest
int stripTIDLayersWithoutMeasurement(HitCategory category) const
std::vector< int > * t_PVisValid
static TrackQuality qualityByName(const std::string &name)
std::vector< double > * t_esim9x9Rest
std::vector< double > * t_L1METPhi
std::vector< int > * t_trackHitInMissTIB
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
std::vector< double > * t_e9x9_15Sig
std::vector< double > * t_e7x7_15Sig
std::vector< double > * t_trackPhi
T const * product() const
std::vector< double > * t_e7x7_10Sig
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
XYZPointD XYZPoint
point in space with cartesian internal representation
const double pvTracksPtMin_
edm::EDGetTokenT< l1extra::L1EmParticleCollection > tok_L1extNoIsoEm_
std::vector< double > * t_trackDzAll
edm::EDGetTokenT< reco::VertexCollection > tok_recVtx_
TH1F * h_maxNearP31x31[NPBins][NEtaBins]
std::vector< double > * t_esim11x11CharHad
int stripLayersWithMeasurement() const
int pixelBarrelLayersWithMeasurement() const
edm::EDGetTokenT< edm::PCaloHitContainer > tok_caloEE_
edm::EDGetTokenT< EcalRecHitCollection > tok_EB_
TH1F * h_maxNearP15x15[NPBins][NEtaBins]
void add(std::string const &label, ParameterSetDescription const &psetDescription)
std::vector< double > * t_e9x9_25Sig
void eECALSimInfo(const edm::Event &, const DetId &det, const CaloGeometry *geo, const CaloTopology *caloTopology, edm::Handle< T > &hitsEB, edm::Handle< T > &hitsEE, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const reco::Track *pTrack, TrackerHitAssociator &associate, int ieta, int iphi, caloSimInfo &info, double timeCut=150, bool debug=false)
std::vector< double > * t_esim7x7Photon
static const bool useL1GtTriggerMenuLite(true)
std::vector< double > * t_esim9x9NeutHad
std::vector< double > * t_L1FwdJetPt
std::vector< double > * t_simTrackP
std::vector< double > * t_hsim7x7Matched
std::vector< int > * t_trackPVIdx
bool quality(const TrackQuality) const
Track quality.
std::vector< int > * t_trackHitsTOB
std::vector< double > * t_esim9x9Matched
std::vector< double > * t_hsim7x7NeutHad
std::vector< double > * t_L1IsoEMPhi
std::vector< int > * t_PVNTracks
edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
std::vector< double > * t_maxNearP21x21
TrackerHitAssociator::Config trackerHitAssociatorConfig_
std::vector< double > * t_L1NonIsoEMEta
std::vector< double > * t_PVz
std::pair< math::XYZPoint, double > propagateTrackerEnd(const reco::Track *, const MagneticField *, bool debug=false)
void printTrack(const reco::Track *pTrack)
std::vector< double > * t_e15x15_20Sig
void getL1GtRunCache(const edm::Run &, const edm::EventSetup &, const bool, const bool)
get all the run-constant quantities for L1 trigger and cache them
std::vector< double > * t_PVTracksSumPtHPWt
std::vector< double > * t_trackDxy
std::vector< std::string > * t_L1AlgoNames
std::vector< double > * t_hsim5x5CharHad
std::vector< double > * t_e15x15_10Sig
int stripTECLayersWithMeasurement() const
std::vector< TrackBaseRef >::const_iterator trackRef_iterator
The iteratator for the vector<TrackRef>
TH1F * h_maxNearP21x21[NPBins][NEtaBins]
int stripTECLayersWithoutMeasurement(HitCategory category) const
std::vector< double > * t_jetPhi
std::vector< double > * t_trackL
std::vector< double > * t_esim7x7Rest
std::vector< double > * t_trackDxyBS
int charge() const
track electric charge
const Point & position() const
position
std::vector< double > * t_trackHcalEta
std::vector< double > * t_L1METPt
std::vector< int > * t_NLayersCrossed
edm::EDGetTokenT< reco::CaloJetCollection > tok_jets_
std::vector< std::pair< DetId, double > > eHCALmatrixCell(const HcalTopology *topology, const DetId &det, edm::Handle< T > &hits, int ieta, int iphi, bool includeHO=false, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100, bool debug=false)
std::vector< int > * t_trackHitInMeasTOB
std::vector< double > * t_PVx
std::vector< int > * t_trackHitInMeasTEC
std::vector< double > * t_esim15x15Photon
std::vector< double > * t_e9x9
std::vector< double > * t_hsim5x5Matched
const L1GtTriggerMenu * ptrL1TriggerMenuEventSetup(int &errorCode)
return a pointer to the L1 trigger menu from event setup
double genPartEtaBins[NEtaBins+1]
double dxy() const
dxy parameter. (This is the transverse impact parameter w.r.t. to (0,0,0) ONLY if refPoint is close t...
std::vector< double > * t_esim15x15Matched
double chargeIsolationHcal(unsigned int trkIndex, std::vector< spr::propagatedTrackID > &vdetIds, const HcalTopology *topology, int ieta, int iphi, bool debug=false)
std::vector< int > * t_trackHitOutMeasTID
std::vector< double > * t_L1METEta
std::vector< double > * t_e7x7_30Sig
T const * product() const
std::vector< int > * t_trackHitOutMissTEC
std::vector< double > * t_e11x11_25Sig
std::vector< double > * t_hsim3x3
std::vector< double > * t_trackP
std::vector< double > * t_hsim7x7Photon
std::vector< double > * t_jetPt
static const bool useL1EventSetup(true)
std::vector< double > * t_L1IsoEMPt
std::vector< double > * t_esim11x11Photon
int stripTIBLayersWithoutMeasurement(HitCategory category) const
std::vector< double > * t_h5x5Sig
std::vector< int > * t_trackHitInMissTID
std::vector< double > * t_e11x11_30Sig
std::vector< int > * t_trackHitInMissTIBTID
std::vector< double > * t_esim9x9CharHad
double eECALmatrix(const DetId &detId, edm::Handle< T > &hitsEB, edm::Handle< T > &hitsEE, const CaloGeometry *geo, const CaloTopology *caloTopology, int ieta, int iphi, double ebThr=-100, double eeThr=-100, double tMin=-500, double tMax=500, bool debug=false)
edm::EDGetTokenT< EcalRecHitCollection > tok_EE_
double eHCALmatrix(const HcalTopology *topology, const DetId &det, edm::Handle< T > &hits, int ieta, int iphi, bool includeHO=false, bool algoNew=true, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100, double tMin=-500, double tMax=500, int useRaw=0, bool debug=false)
edm::EDGetTokenT< l1extra::L1JetParticleCollection > tok_L1extTauJet_
std::vector< double > * t_esim15x15CharHad
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
const int prescaleFactor(const edm::Event &iEvent, const std::string &nameAlgoTechTrig, int &errorCode) const
return prescale factor for a given algorithm or technical trigger