28 for (
int i=1;
i<21;
i++)
30 if (fabs(eta)<=(
i*0.087)&&fabs(eta)>(
i-1)*0.087) ieta=int(fabs(eta)/eta)*
i;
32 if (fabs(eta)>1.740&&fabs(eta)<=1.830) ieta=int(fabs(eta)/eta)*21;
33 if (fabs(eta)>1.830&&fabs(eta)<=1.930) ieta=int(fabs(eta)/eta)*22;
34 if (fabs(eta)>1.930&&fabs(eta)<=2.043) ieta=int(fabs(eta)/eta)*23;
35 if (fabs(eta)>2.043&&fabs(eta)<=2.172) ieta=int(fabs(eta)/eta)*24;
37 double delta=phi+0.174532925;
38 if (delta<0) delta=delta+2*acos(-1);
41 for (
int i=0;
i<72;
i++)
43 if (delta<(
i+1)*0.087266462&&delta>
i*0.087266462) iphi=
i;
48 for (
int i=0;
i<36;
i++)
50 if (delta<2*(
i+1)*0.087266462&&delta>2*
i*0.087266462) iphi=2*
i;
54 return std::pair<int,int>(ieta,iphi);
104 double etaTrigl1=-10000;
105 double phiTrigl1=-10000;
110 if (TObj.
pt()>ptMaxl1)
112 etaTrigl1=TObj.
eta();
113 phiTrigl1=TObj.
phi();
119 std::vector<double> trigEta;
120 std::vector<double> trigPhi;
129 KEYS=trEv->filterKeys(iFilt);
139 if (TObj.
p()<
pThr_)
continue;
144 if (recoIsoTracks->size()>0)
146 double minRecoL3dist=1000;
147 reco::IsolatedPixelTrackCandidateCollection::const_iterator mrtr;
148 for (reco::IsolatedPixelTrackCandidateCollection::const_iterator rtrit=recoIsoTracks->begin(); rtrit!=recoIsoTracks->end(); rtrit++)
150 double R=
deltaR(rtrit->eta(),rtrit->phi(),TObj.
eta(),TObj.
phi());
162 trigEta.push_back(TObj.
eta());
163 trigPhi.push_back(TObj.
phi());
168 for (reco::IsolatedPixelTrackCandidateCollection::const_iterator itr=recoIsoTracks->begin(); itr!=recoIsoTracks->end(); itr++)
171 for (
unsigned int l=0;
l<trigEta.size();
l++)
173 if (
deltaR(itr->eta(),itr->phi(),trigEta[
l],trigPhi[
l])<0.02) match=
true;
188 if (fabs(itr->eta())<1.479)
204 if (fabs(itr->eta())>0.5&&fabs(itr->eta())<1.0)
hOffP_0510->
Fill(itr->p(),1);
205 if (fabs(itr->eta())>1.0&&fabs(itr->eta())<1.5)
hOffP_1015->
Fill(itr->p(),1);
206 if (fabs(itr->eta())<1.5&&fabs(itr->eta())<2.0)
hOffP_1520->
Fill(itr->p(),1);
210 std::pair<int,int> TI=
towerIndex(itr->eta(),itr->phi());
222 hl3Pt=iBooker.
book1D(
"hl3Pt",
"pT of hlt L3 objects",1000,0,1000);
225 hl3eta=iBooker.
book1D(
"hl3eta",
"eta of hlt L3 objects",16,-2,2);
229 hl3phi=iBooker.
book1D(
"hl3phi",
"phi of hlt L3 objects",16,-3.2,3.2);
231 hOffEta=iBooker.
book1D(
"hOffEta",
"eta of alcareco objects",100,-2,2);
233 hOffPhi=iBooker.
book1D(
"hOffPhi",
"phi of alcareco objects",100,-3.2,3.2);
235 hOffP=iBooker.
book1D(
"hOffP",
"p of alcareco objects",1000,0,1000);
237 hOffP_0005=iBooker.
book1D(
"hOffP_0005",
"p of alcareco objects, |eta|<0.5",1000,0,1000);
239 hOffP_0510=iBooker.
book1D(
"hOffP_0510",
"p of alcareco objects, 0.5<|eta|<1.0",1000,0,1000);
241 hOffP_1015=iBooker.
book1D(
"hOffP_1015",
"p of alcareco objects, 1.0<|eta|<1.5",1000,0,1000);
243 hOffP_1520=iBooker.
book1D(
"hOffP_1520",
"p of alcareco objects, 1.5<|eta|<2.0",1000,0,1000);
245 hOffEtaFP=iBooker.
book1D(
"hOffEtaFP",
"eta of alcareco objects, FP",16,-2,2);
249 hOffPhiFP=iBooker.
book1D(
"hOffPhiFP",
"phi of alcareco objects, FP",16,-3.2,3.2);
251 hTracksSumP=iBooker.
book1D(
"hTracksSumP",
"summary p of tracks in the isolation cone",100,0,20);
253 hTracksMaxP=iBooker.
book1D(
"hTracksMaxP",
"maximum p among tracks in the isolation cone",100,0,20);
255 hDeposEcalInnerEE=iBooker.
book1D(
"hDeposEcalInnerEE",
"ecal energy deposition in inner cone around track, EE",20,0,20);
257 hDeposEcalOuterEE=iBooker.
book1D(
"hDeposEcalOuterEE",
"ecal energy deposition in outer cone around track, EE",100,0,100);
258 hDeposEcalInnerEB=iBooker.
book1D(
"hDeposEcalInnerEB",
"ecal energy deposition in inner cone around track, EB",20,0,20);
260 hDeposEcalOuterEB=iBooker.
book1D(
"hDeposEcalOuterEB",
"ecal energy deposition in outer cone around track, EB",100,0,100);
262 hOccupancyFull=iBooker.
book2D(
"hOccupancyFull",
"number of tracks per tower, full energy range",48,-25,25,73,0,73);
267 hOccupancyHighEn=iBooker.
book2D(
"hOccupancyHighEn",
"number of tracks per tower, high energy tracks",48,-25,25,73,0,73);
277 hL1jetMatch=iBooker.
book1D(
"hL1jetMatch",
"dR(eta,phi) from leading L1 jet to offline track",100,0,5);
edm::EDGetTokenT< trigger::TriggerEvent > hltEventTag_
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * hOccupancyHighEn
MonitorElement * hDeposEcalOuterEB
MonitorElement * hOffL3TrackMatch
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::pair< int, int > towerIndex(double eta, double phi)
MonitorElement * hOffAbsEta
MonitorElement * hOffPhiFP
MonitorElement * hOffP_1520
MonitorElement * hDeposEcalInnerEE
Single trigger physics object (e.g., an isolated muon)
MonitorElement * hOffP_0510
MonitorElement * hTracksMaxP
MonitorElement * hOffP_0005
edm::EDGetTokenT< reco::IsolatedPixelTrackCandidateCollection > arITrLabel_
MonitorElement * book1D(Args &&...args)
~DQMHcalIsoTrackAlCaReco()
MonitorElement * hOffEtaFP
MonitorElement * hDeposEcalInnerEB
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)
void setCurrentFolder(const std::string &fullpath)
edm::InputTag recoTrLabel_
MonitorElement * book2D(Args &&...args)
std::vector< size_type > Keys
MonitorElement * hOffP_1015
MonitorElement * hOccupancyFull
MonitorElement * hTracksSumP
MonitorElement * hL1jetMatch
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
TH2F * getTH2F(void) const
MonitorElement * hOffL3TrackPtRat
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * hl3AbsEta
MonitorElement * hDeposEcalOuterEE