56 double getDist(
double,
double,
double,
double);
157 double dphi = fabs(phi1 - phi2);
158 if(dphi>acos(-1)) dphi = 2*acos(-1)-dphi;
159 double dr =
sqrt(dphi*dphi +
pow(eta1-eta2,2));
194 for (
unsigned int i=0;
i<l1seedNames_.size();
i++)
243 txtout<<std::setw(50)<<std::left<<
"lumi(cm^-2*s^-1)"<<
lumi_<<std::endl;
244 txtout<<std::setw(50)<<std::left<<
"Events processed/rate(Hz)"<<
nTotal<<
"/"<<sampleRate<<std::endl;
245 txtout<<std::setw(50)<<std::left<<
"L1 accepts/(rate+-error (Hz))"<<
nL1accepts<<
"/("<<l1Rate<<
"+-"<<l1rateError<<
")"<<std::endl;
246 txtout<<std::setw(50)<<std::left<<
"HLTL3accepts/(rate+-error (Hz))"<<
nHLTL3accepts<<
"/("<<hltRate<<
"+-"<<hltRateError<<
")"<<std::endl;
247 txtout<<std::setw(50)<<std::left<<
"L3 acc. |eta|<0.5 / rate"<<
nl3_0005<<
" / "<<rate_0005<<std::endl;
248 txtout<<std::setw(50)<<std::left<<
"L3 acc. |eta|>0.5 && |eta|<1.0 / rate"<<
nl3_0510<<
" / "<<rate_0510<<std::endl;
249 txtout<<std::setw(50)<<std::left<<
"L3 acc. |eta|>1.0 && |eta|<1.5 / rate"<<
nl3_1015<<
" / "<<rate_1015<<std::endl;
250 txtout<<std::setw(50)<<std::left<<
"L3 acc. |eta|>1.5 && |eta|<2.0 / rate"<<
nl3_1520<<
" / "<<rate_1520<<std::endl;
252 txtout<<std::setw(50)<<std::left<<
"HLTL3acceptsPure/(rate+-error (Hz))"<<
nHLTL3acceptsPure<<
"/("<<hltRatePure<<
"+-"<<hltRatePureError<<
")"<<std::endl;
253 txtout<<std::setw(50)<<std::left<<
"pure L3 acc. |eta|<0.5 / rate"<<
purnl3_0005<<
" / "<<prate_0005<<std::endl;
254 txtout<<std::setw(50)<<std::left<<
"pure L3 acc. |eta|>0.5 && |eta|<1.0 / rate"<<
purnl3_0510<<
" / "<<prate_0510<<std::endl;
255 txtout<<std::setw(50)<<std::left<<
"pure L3 acc. |eta|>1.0 && |eta|<1.5 / rate"<<
purnl3_1015<<
" / "<<prate_1015<<std::endl;
256 txtout<<std::setw(50)<<std::left<<
"pure L3 acc. |eta|>1.5 && |eta|<2.0 / rate"<<
purnl3_1520<<
" / "<<prate_1520<<std::endl;
265 double phiGJLead=-10000;
266 double etaGJLead=-10000;
286 int l1seedBitNumber=-10;
287 for (
CItAlgo itAlgo = bitMap.begin(); itAlgo != bitMap.end(); itAlgo++)
289 if (itAlgo->first==
l1seedNames_[
i]) l1seedBitNumber = (itAlgo->second).algoBitNumber();
291 int prescale=prescaleSet[0][l1seedBitNumber];
308 reco::GenJetCollection::const_iterator gjit=gjcol->begin();
309 if (gjit!=gjcol->end())
311 etaGJLead=gjit->eta();
312 phiGJLead=gjit->phi();
317 if (gjit!=gjcol->end())
357 if (KEYS1.size()>0) nFired++;
358 if (trEv->filterTag(iFilt)==
hltFilterTag_) KEYS=trEv->filterKeys(iFilt);
363 if (nFired==2&&nReg>0)
369 if (TObj.
pt()*cosh(TObj.
eta())<10)
continue;
382 for (
int i=0;
i<50;
i++)
393 double dphiGJ=fabs(TObj.
phi()-phiGJLead);
394 if (dphiGJ>acos(-1)) dphiGJ=2*acos(-1)-dphiGJ;
395 double dR=
sqrt(dphiGJ*dphiGJ+
pow(TObj.
eta()-etaGJLead,2));
401 if (fabs(TObj.
eta())<0.5)
407 if (fabs(TObj.
eta())>0.5&&fabs(TObj.
eta())<1.0)
413 if (fabs(TObj.
eta())>1.0&&fabs(TObj.
eta())<1.5)
419 if (fabs(TObj.
eta())<2.0&&fabs(TObj.
eta())>1.5)
425 if (l2col->size()==0)
continue;
427 reco::IsolatedPixelTrackCandidateCollection::const_iterator l2match;
428 for (reco::IsolatedPixelTrackCandidateCollection::const_iterator eptit=l2col->begin(); eptit!=l2col->end(); eptit++)
433 hl2pVsEta->
Fill(eptit->track()->eta(),eptit->track()->p(),1);
437 double R=
getDist(eptit->eta(), eptit->phi(), TObj.
eta(), TObj.
phi());
451 double minRecoL3dist=100;
452 reco::TrackCollection::const_iterator mrtr;
453 for (reco::TrackCollection::const_iterator rtrit=recoTr->begin(); rtrit!=recoTr->end(); rtrit++)
455 double R=
getDist(rtrit->eta(),rtrit->phi(),TObj.
eta(),TObj.
phi());
471 if (!l1pass||!passl3)
return;
541 hl2pVsEta=
dbe_->
book2D(
"hl2pVsEta",
"Distribution of l2 track energy vs eta",25,-2.5,2.5,100,0,100);
554 hOffPvsEta=
dbe_->
book2D(
"hOffPvsEta",
"Distribution of offline track energy vs eta",25,-2.5,2.5,100,0,100);
MonitorElement * hpTgenLead
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
edm::InputTag hltFilterTag_
MonitorElement * hl3pVsEta
MonitorElement * hl2pVsEta
#define DEFINE_FWK_MODULE(type)
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE")
MonitorElement * hOffL3TrackPtRat
MonitorElement * hl3Pt0005
MonitorElement * hl3P0005
MonitorElement * hl3P0510
MonitorElement * hL3L2trackMatch
std::vector< std::string > l1seedNames_
std::vector< int > l1counter
double getDist(double, double, double, double)
MonitorElement * hLeadTurnOn
MonitorElement * hOffPvsEta
Single trigger physics object (e.g., an isolated muon)
MonitorElement * hl3Pt1520
virtual void analyze(const edm::Event &, const edm::EventSetup &)
MonitorElement * hRateVsThr
MonitorElement * hisopTvsEta
MonitorElement * hl3P1015
edm::InputTag recoTracksLabel_
std::vector< bool > DecisionWord
typedefs
edm::InputTag genJetsLabel_
MonitorElement * hDistToGJ
MonitorElement * hl3Pt0510
MonitorElement * hl3Pt1015
edm::InputTag hltEventTag_
MonitorElement * hNextToLeadTurnOn
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
edm::InputTag gtDigiLabel_
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
MonitorElement * haccepts
const std::vector< std::vector< int > > & gtPrescaleFactors() const
get the prescale factors by reference
MonitorElement * hPhiToGJ
MonitorElement * hpTgenNextL1
edm::InputTag l2colLabel_
MonitorElement * hpTgenNext
std::vector< size_type > Keys
MonitorElement * hpTgenLeadL1
T const * product() const
MonitorElement * hl3P1520
ValHcalIsoTrackHLT(const edm::ParameterSet &)
std::vector< edm::InputTag > l1extraJetTag_
std::string outRootFileName_
MonitorElement * hL3L2pTrat
std::string outTxtFileName_
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * hOffL3TrackMatch
Power< A, B >::type pow(const A &a, const B &b)
void setCurrentFolder(const std::string &fullpath)