41 <<
" Input Tag for Trigger " << labelTrigger_
42 <<
" track " << labelTrack_ <<
" threshold "
43 << pThr_ <<
" with " << l1FilterTag_.size()
44 <<
" level 1 and " << hltFilterTag_.size()
45 <<
" hlt filter tags" <<
"\n";
46 for (
unsigned int k=0;
k<l1FilterTag_.size(); ++
k)
47 LogDebug(
"HcalIsoTrack") <<
"L1FilterTag[" <<
k <<
"] " << l1FilterTag_[
k] <<
"\n";
48 for (
unsigned int k=0;
k<hltFilterTag_.size(); ++
k)
49 LogDebug(
"HcalIsoTrack") <<
"HLTFilterTag[" <<
k <<
"] " << hltFilterTag_[
k] <<
"\n";
63 LogDebug(
"HcalIsoTrack") <<
"Gets Trigger information with "
64 << trEv.
isValid() <<
" and offline tracks with "
65 << recoIsoTracks.
isValid() <<
"\n";
73 double etaTrigl1(-10000), phiTrigl1(-10000), ptMaxl1(0);
78 KEYSl1=trEv->filterKeys(iFilt);
80 LogDebug(
"HcalIsoTrack") <<
"# of objects " << nRegl1 <<
"\n";
83 LogDebug(
"HcalIsoTrack") <<
"Object[" << iReg <<
"] with pt " << TObj.
pt() <<
" " << TObj.
eta() <<
" " << TObj.
phi() <<
"\n";
84 if (TObj.
pt()>ptMaxl1) {
92 LogDebug(
"HcalIsoTrack") <<
"For L1 trigger type " <<
k <<
" pt "
93 << ptMaxl1 <<
" eta " << etaTrigl1
94 <<
" phi " << phiTrigl1 <<
"\n";
108 KEYS=trEv->filterKeys(iFilt);
110 LogDebug(
"HcalIsoTrack") <<
"# of objects for HLT " << nReg <<
"\n";
114 LogDebug(
"HcalIsoTrack") <<
"HLT Filter Tag " <<
l
115 <<
" trigger " << iFilt <<
" object "
116 << iReg <<
" p " << TObj.
p()
122 hHltP_[indexH_[
l]] ->Fill(TObj.
p());
125 if (
ifL3_[
l]) accept =
true;
127 double minRecoL3dist(1000),
pt(1000);
128 reco::HcalIsolatedTrackCandidateCollection::const_iterator mrtr;
129 for (mrtr=recoIsoTracks->begin(); mrtr!=recoIsoTracks->end();
131 double R =
deltaR(mrtr->eta(),mrtr->phi(),TObj.
eta(),TObj.
phi());
132 if (R<minRecoL3dist) {
137 LogDebug(
"HcalIsoTrack") <<
"Minimum R " << minRecoL3dist
138 <<
" pt " << pt <<
":"
139 << TObj.
pt() <<
"\n";
152 for (reco::HcalIsolatedTrackCandidateCollection::const_iterator itr=recoIsoTracks->begin(); itr!=recoIsoTracks->end(); itr++) {
155 std::pair<int,int>
etaphi = itr->towerIndex();
158 LogDebug(
"HcalIsoTrack") <<
"Reco track p " << itr->p()
159 <<
" eta|phi " << etaphi.first
160 <<
"|" << etaphi.second <<
" maxP "
161 << itr->maxP() <<
" EcalE "
162 << itr->energyEcal() <<
" pointers "
165 if (itr->p()>=
pThr_) {
166 hHltP_[3] ->Fill(itr->p());
168 hHltPhi_[3]->Fill(itr->phi());
170 double etaAbs =
std::abs(itr->eta());
171 hOffP_[0]->Fill(itr->p());
174 LogDebug(
"HcalIsoTrack") <<
"Range " << l <<
" p " << itr->p()
184 LogDebug(
"HcalIsoTrack") <<
"Accept " << accept <<
"\n";
196 sprintf (title,
"p_T of L1 object for %s",
l1FilterTag_[
k].c_str());
197 hL1Pt_.push_back(iBooker.
book1D(name,title,1000,0,1000));
198 hL1Pt_[
k]->setAxisTitle(
"p_T (GeV)", 1);
200 sprintf (title,
"#eta of L1 object for %s",
l1FilterTag_[
k].c_str());
204 sprintf (title,
"#phi of L1 object for %s",
l1FilterTag_[
k].c_str());
210 for (
unsigned int l=0;
l<4;
l++) {
211 sprintf (name,
"hp%s", types[
l].c_str());
212 sprintf (title,
"Momentum of %s object", types[
l].c_str());
213 hHltP_.push_back(iBooker.
book1D(name,title,200,0,1000));
214 hHltP_[
l]->setAxisTitle(
"p (GeV)", 1);
215 sprintf (name,
"heta%s", types[
l].c_str());
216 sprintf (title,
"#eta of %s object", types[
l].c_str());
219 sprintf (name,
"hphi%s", types[
l].c_str());
220 sprintf (title,
"#phi of %s object", types[
l].c_str());
224 sprintf (title,
"Distance of offline track from L3 object");
227 sprintf (title,
"Ratio of p L3/Offline");
233 ifL3_.push_back(indx==2);
235 <<
" type " <<
type_[
l] <<
" index "
239 double etaV[6] = {0.0, 0.5, 1.0, 1.5, 2.0, 2.5};
240 for (
unsigned int k=0;
k<6; ++
k) {
241 sprintf (name,
"hOffP%d",
k);
243 sprintf (title,
"p of AlCaReco object (All)");
245 sprintf (title,
"p of AlCaReco object (%3.1f < |#eta| < %3.1f)",etaV[
k-1],etaV[
k]);
248 hOffP_.push_back(iBooker.
book1D(name,title,1000,0,1000));
249 hOffP_[
k]->setAxisTitle(
"E (GeV)",1);
251 hMaxP_ = iBooker.
book1D(
"hChgIsol",
"Energy for charge isolation",110,-10,100);
255 hIeta_ = iBooker.
book1D(
"hIEta",
"i#eta for HCAL tower",90,-45,45);
257 hIphi_ = iBooker.
book1D(
"hIPhi",
"i#phi for HCAL tower",72,0,72);
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
edm::InputTag labelTrack_
edm::EDGetTokenT< reco::HcalIsolatedTrackCandidateCollection > tokTrack_
virtual void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
bool getByToken(EDGetToken token, Handle< PROD > &result) const
virtual void analyze(const edm::Event &, const edm::EventSetup &) override
DQMHcalIsoTrackAlCaReco(const edm::ParameterSet &)
std::vector< unsigned int > indexH_
edm::InputTag labelTrigger_
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
std::vector< MonitorElement * > hHltEta_
std::vector< double > etaRange_
Single trigger physics object (e.g., an isolated muon)
edm::EDGetTokenT< trigger::TriggerEvent > tokTrigger_
std::vector< MonitorElement * > hHltPhi_
MonitorElement * book1D(Args &&...args)
std::pair< T, T > etaphi(T x, T y, T z)
Abs< T >::type abs(const T &t)
~DQMHcalIsoTrackAlCaReco()
std::vector< MonitorElement * > hOffP_
std::vector< std::string > hltFilterTag_
double deltaR(double eta1, double eta2, double phi1, double phi2)
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
std::vector< MonitorElement * > hL1phi_
void setCurrentFolder(const std::string &fullpath)
std::vector< MonitorElement * > hL1Pt_
std::vector< bool > ifL3_
std::vector< size_type > Keys
MonitorElement * hEnEcal_
std::vector< MonitorElement * > hHltP_
std::vector< MonitorElement * > hL1Eta_
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
std::vector< std::string > l1FilterTag_