#include <DTLocalTriggerBaseTask.h>
Public Member Functions | |
DTLocalTriggerBaseTask (const edm::ParameterSet &ps) | |
Constructor. | |
virtual | ~DTLocalTriggerBaseTask () |
Destructor. | |
Protected Member Functions | |
void | analyze (const edm::Event &e, const edm::EventSetup &c) |
Analyze. | |
void | beginJob () |
void | beginLuminosityBlock (const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &context) |
To reset the MEs. | |
void | beginRun (const edm::Run &, const edm::EventSetup &) |
Beginrun. | |
void | endJob (void) |
EndJob. | |
void | endLuminosityBlock (const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &context) |
Perform trend plot operations. | |
Private Member Functions | |
void | bookHistos (const DTChamberId &chamb) |
Book the histograms. | |
void | bookHistos (int wh) |
Book the histograms. | |
void | runDCCAnalysis (std::vector< L1MuDTChambPhDigi > *phTrigs, std::vector< L1MuDTChambThDigi > *thTrigs) |
Run analysis on DCC data. | |
void | runDDUAnalysis (edm::Handle< DTLocalTriggerCollection > &trigsDDU) |
Run analysis on ROS data. | |
void | runDDUvsDCCAnalysis () |
Run analysis on ROS data. | |
void | setQLabels (MonitorElement *me, short int iaxis) |
Set Quality labels. | |
std::string & | topFolder (std::string type) |
Get the Top folder (different between Physics and TP and DCC/DDU) | |
Private Attributes | |
std::string | baseFolder [2] |
int | bestAccRange |
std::map< uint32_t, std::map < std::string, MonitorElement * > > | chamberHistos |
bool | detailedAnalysis |
MonitorElement * | nEventMonitor |
int | nEvents |
int | nEventsInLS |
int | nLumis |
bool | processDCC |
bool | processDDU |
int | targetBXDCC |
int | targetBXDDU |
std::map< uint32_t, DTTPGCompareUnit > | theCompMap |
DQMStore * | theDQMStore |
edm::ParameterSet | theParams |
DTTrigGeomUtils * | theTrigGeomUtils |
std::vector< std::string > | theTypes |
bool | tpMode |
std::map< uint32_t, DTTimeEvolutionHisto * > | trendHistos |
std::map< int, std::map < std::string, MonitorElement * > > | wheelHistos |
Friends | |
class | DTMonitorModule |
Definition at line 43 of file DTLocalTriggerBaseTask.h.
DTLocalTriggerBaseTask::DTLocalTriggerBaseTask | ( | const edm::ParameterSet & | ps | ) |
Constructor.
Definition at line 67 of file DTLocalTriggerBaseTask.cc.
References bestAccRange, detailedAnalysis, edm::ParameterSet::getUntrackedParameter(), LogTrace, cmsCodeRules::cppFunctionSkipper::operator, processDCC, processDDU, targetBXDCC, targetBXDDU, theDQMStore, theParams, theTypes, topFolder(), and tpMode.
: nEvents(0), nLumis(0), theTrigGeomUtils(0) { LogTrace("DTDQM|DTMonitorModule|DTLocalTriggerBaseTask") << "[DTLocalTriggerBaseTask]: Constructor"<<endl; tpMode = ps.getUntrackedParameter<bool>("testPulseMode"); detailedAnalysis = ps.getUntrackedParameter<bool>("detailedAnalysis"); targetBXDCC = ps.getUntrackedParameter<int>("targetBXDCC"); targetBXDDU = ps.getUntrackedParameter<int>("targetBXDDU"); bestAccRange = ps.getUntrackedParameter<int>("bestTrigAccRange"); processDCC = ps.getUntrackedParameter<bool>("processDCC"); processDDU = ps.getUntrackedParameter<bool>("processDDU"); if (processDCC) theTypes.push_back("DCC"); if (processDDU) theTypes.push_back("DDU"); if (tpMode) { topFolder("DCC") = "DT/11-LocalTriggerTP-DCC/"; topFolder("DDU") = "DT/12-LocalTriggerTP-DDU/"; } else { topFolder("DCC") = "DT/03-LocalTrigger-DCC/"; topFolder("DDU") = "DT/04-LocalTrigger-DDU/"; } theParams = ps; theDQMStore = edm::Service<DQMStore>().operator->(); }
DTLocalTriggerBaseTask::~DTLocalTriggerBaseTask | ( | ) | [virtual] |
Destructor.
Definition at line 100 of file DTLocalTriggerBaseTask.cc.
References LogTrace, nEvents, and theTrigGeomUtils.
{ LogTrace("DTDQM|DTMonitorModule|DTLocalTriggerBaseTask") << "[DTLocalTriggerBaseTask]: analyzed " << nEvents << " events" << endl; if (theTrigGeomUtils) { delete theTrigGeomUtils; } }
void DTLocalTriggerBaseTask::analyze | ( | const edm::Event & | e, |
const edm::EventSetup & | c | ||
) | [protected, virtual] |
Analyze.
Implements edm::EDAnalyzer.
Definition at line 188 of file DTLocalTriggerBaseTask.cc.
References MonitorElement::Fill(), edm::Event::getByLabel(), edm::ParameterSet::getUntrackedParameter(), edm::HandleBase::isValid(), nEventMonitor, nEvents, nEventsInLS, processDCC, processDDU, runDCCAnalysis(), runDDUAnalysis(), runDDUvsDCCAnalysis(), theCompMap, and theParams.
{ nEvents++; nEventsInLS++; nEventMonitor->Fill(nEvents); theCompMap.clear(); Handle<L1MuDTChambPhContainer> phiTrigsDCC; Handle<L1MuDTChambThContainer> thetaTrigsDCC; Handle<DTLocalTriggerCollection> trigsDDU; if (processDCC) { InputTag inputTagDCC = theParams.getUntrackedParameter<InputTag>("inputTagDCC"); e.getByLabel(inputTagDCC,phiTrigsDCC); e.getByLabel(inputTagDCC,thetaTrigsDCC); if (phiTrigsDCC.isValid() && thetaTrigsDCC.isValid()) { runDCCAnalysis(phiTrigsDCC->getContainer(),thetaTrigsDCC->getContainer()); } else { LogVerbatim("DTDQM|DTMonitorModule|DTLocalTriggerBaseTask") << "[DTLocalTriggerBaseTask]: one or more DCC handles for Input Tag " << inputTagDCC <<" not found!" << endl; return; } } if (processDDU) { InputTag inputTagDDU = theParams.getUntrackedParameter<InputTag>("inputTagDDU"); e.getByLabel(inputTagDDU,trigsDDU); if (trigsDDU.isValid()) { runDDUAnalysis(trigsDDU); } else { LogVerbatim("DTDQM|DTMonitorModule|DTLocalTriggerBaseTask") << "[DTLocalTriggerBaseTask]: one or more DDU handles for Input Tag " << inputTagDDU <<" not found!" << endl; return; } } if (processDCC && processDDU) runDDUvsDCCAnalysis(); }
void DTLocalTriggerBaseTask::beginJob | ( | void | ) | [protected, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 109 of file DTLocalTriggerBaseTask.cc.
References LogTrace.
{ LogTrace("DTDQM|DTMonitorModule|DTLocalTriggerBaseTask") << "[DTLocalTriggerBaseTask]: BeginJob" << endl; }
void DTLocalTriggerBaseTask::beginLuminosityBlock | ( | const edm::LuminosityBlock & | lumiSeg, |
const edm::EventSetup & | context | ||
) | [protected, virtual] |
To reset the MEs.
Reimplemented from edm::EDAnalyzer.
Definition at line 140 of file DTLocalTriggerBaseTask.cc.
References chamberHistos, edm::ParameterSet::getUntrackedParameter(), LogTrace, nEventsInLS, nLumis, and theParams.
{ nEventsInLS=0; nLumis++; int resetCycle = theParams.getUntrackedParameter<int>("ResetCycle"); LogTrace("DTDQM|DTMonitorModule|DTLocalTriggerBaseTask") << "[DTLocalTriggerBaseTask]: Begin of LS transition" << endl; if( nLumis%resetCycle == 0 ) { map<uint32_t,map<string,MonitorElement*> >::const_iterator chambIt = chamberHistos.begin(); map<uint32_t,map<string,MonitorElement*> >::const_iterator chambEnd = chamberHistos.end(); for(;chambIt!=chambEnd;++chambIt) { map<string,MonitorElement*>::const_iterator histoIt = chambIt->second.begin(); map<string,MonitorElement*>::const_iterator histoEnd = chambIt->second.end(); for(;histoIt!=histoEnd;++histoIt) { histoIt->second->Reset(); } } } }
void DTLocalTriggerBaseTask::beginRun | ( | const edm::Run & | run, |
const edm::EventSetup & | context | ||
) | [protected, virtual] |
Beginrun.
Reimplemented from edm::EDAnalyzer.
Definition at line 117 of file DTLocalTriggerBaseTask.cc.
References DQMStore::bookFloat(), bookHistos(), DTChamberId, edm::EventSetup::get(), LogTrace, nEventMonitor, DQMStore::setCurrentFolder(), testRegression::stat, theDQMStore, and theTrigGeomUtils.
{ LogTrace("DTDQM|DTMonitorModule|DTLocalTriggerBaseTask") << "[DTLocalTriggerBaseTask]: BeginRun" << endl; ESHandle<DTGeometry> theGeom; context.get<MuonGeometryRecord>().get(theGeom); theTrigGeomUtils = new DTTrigGeomUtils(theGeom); theDQMStore->setCurrentFolder("DT/EventInfo/Counters"); nEventMonitor = theDQMStore->bookFloat("nProcessedEventsTrigger"); for (int wh=-2;wh<3;++wh){ for (int stat=1;stat<5;++stat){ for (int sect=1;sect<13;++sect){ bookHistos(DTChamberId(wh,stat,sect)); } } bookHistos(wh); } }
void DTLocalTriggerBaseTask::bookHistos | ( | const DTChamberId & | chamb | ) | [private] |
Book the histograms.
Definition at line 236 of file DTLocalTriggerBaseTask.cc.
References DQMStore::book1D(), DQMStore::book2D(), chamberHistos, detailedAnalysis, edm::ParameterSet::getUntrackedParameter(), LogTrace, DTTrigGeomUtils::phiRange(), processDCC, processDDU, DetId::rawId(), DTChamberId::sector(), DQMStore::setCurrentFolder(), setQLabels(), relativeConstraints::station, DTChamberId::station(), theDQMStore, theParams, theTrigGeomUtils, theTypes, topFolder(), tpMode, trendHistos, and DTChamberId::wheel().
Referenced by beginRun().
{ uint32_t rawId = dtCh.rawId(); stringstream wheel; wheel << dtCh.wheel(); stringstream station; station << dtCh.station(); stringstream sector; sector << dtCh.sector(); map<string,int> minBX; map<string,int> maxBX; minBX["DCC"] = theParams.getUntrackedParameter<int>("minBXDCC"); maxBX["DCC"] = theParams.getUntrackedParameter<int>("maxBXDCC"); minBX["DDU"] = theParams.getUntrackedParameter<int>("minBXDDU"); maxBX["DDU"] = theParams.getUntrackedParameter<int>("maxBXDDU"); int nTimeBins = theParams.getUntrackedParameter<int>("nTimeBins"); int nLSTimeBin = theParams.getUntrackedParameter<int>("nLSTimeBin"); string chTag = "_W" + wheel.str() + "_Sec" + sector.str() + "_St" + station.str(); vector<string>::const_iterator typeIt = theTypes.begin(); vector<string>::const_iterator typeEnd = theTypes.end(); for (; typeIt!=typeEnd; ++typeIt) { LogTrace("DTDQM|DTMonitorModule|DTLocalTriggerBaseTask") << "[DTLocalTriggerBaseTask]: booking histos for " << topFolder((*typeIt)) << "Wheel" << wheel.str() << "/Sector" << sector.str() << "/Station"<< station.str() << endl; // Book Phi View Related Plots theDQMStore->setCurrentFolder(topFolder(*typeIt) + "Wheel" + wheel.str() + "/Sector" + sector.str() + "/Station" + station.str() + "/LocalTriggerPhi"); string histoTag = (*typeIt) + "_BXvsQual"; chamberHistos[rawId][histoTag] = theDQMStore->book2D(histoTag+chTag,"BX vs trigger quality", 7,-0.5,6.5,(int)(maxBX[(*typeIt)]-minBX[*typeIt]+1),minBX[*typeIt]-.5,maxBX[*typeIt]+.5); setQLabels((chamberHistos[rawId])[histoTag],1); if (!tpMode) { histoTag = (*typeIt) + "_BestQual"; chamberHistos[rawId][histoTag] = theDQMStore->book1D(histoTag+chTag, "Trigger quality of best primitives",7,-0.5,6.5); setQLabels(chamberHistos[rawId][histoTag],1); histoTag = (*typeIt) + "_Flag1stvsQual"; chamberHistos[dtCh.rawId()][histoTag] = theDQMStore->book2D(histoTag+chTag, "1st/2nd trig flag vs quality",7,-0.5,6.5,2,-0.5,1.5); setQLabels(chamberHistos[rawId][histoTag],1); } if (*typeIt=="DCC") { float minPh, maxPh; int nBinsPh; theTrigGeomUtils->phiRange(dtCh,minPh,maxPh,nBinsPh); histoTag = (*typeIt) + "_QualvsPhirad"; chamberHistos[rawId][histoTag] = theDQMStore->book2D(histoTag+chTag, "Trigger quality vs local position",nBinsPh,minPh,maxPh,7,-0.5,6.5); setQLabels(chamberHistos[rawId][histoTag],2); if (detailedAnalysis && !tpMode) { histoTag == (*typeIt) + "_QualvsPhibend"; chamberHistos[rawId][histoTag] = theDQMStore->book2D(histoTag+chTag, "Trigger quality vs local direction",200,-40.,40.,7,-0.5,6.5); setQLabels((chamberHistos[dtCh.rawId()])[histoTag],2); } } // Book Theta View Related Plots theDQMStore->setCurrentFolder(topFolder(*typeIt) + "Wheel" + wheel.str() + "/Sector" + sector.str() + "/Station" + station.str() + "/LocalTriggerTheta"); if((*typeIt)=="DCC") { histoTag = (*typeIt) + "_PositionvsBX"; chamberHistos[rawId][histoTag] = theDQMStore->book2D(histoTag+chTag,"Theta trigger position vs BX", (int)(maxBX[(*typeIt)]-minBX[*typeIt]+1),minBX[*typeIt]-.5,maxBX[*typeIt]+.5,7,-0.5,6.5); } else { histoTag = (*typeIt) + "_ThetaBXvsQual"; chamberHistos[rawId][histoTag] = theDQMStore->book2D(histoTag+chTag,"BX vs trigger quality",7,-0.5,6.5, (int)(maxBX[(*typeIt)]-minBX[*typeIt]+1),minBX[*typeIt]-.5,maxBX[*typeIt]+.5); setQLabels((chamberHistos[dtCh.rawId()])[histoTag],1); histoTag = (*typeIt) + "_ThetaBestQual"; chamberHistos[rawId][histoTag] = theDQMStore->book1D(histoTag+chTag, "Trigger quality of best primitives (theta)",7,-0.5,6.5); setQLabels((chamberHistos[dtCh.rawId()])[histoTag],1); } } if (processDCC && processDDU) { // Book DCC/DDU Comparison Plots theDQMStore->setCurrentFolder(topFolder("DDU") + "Wheel" + wheel.str() + "/Sector" + sector.str() + "/Station" + station.str() + "/LocalTriggerPhi"); string histoTag = "COM_QualDDUvsQualDCC"; chamberHistos[rawId][histoTag] = theDQMStore->book2D(histoTag+chTag, "DDU quality vs DCC quality",8,-1.5,6.5,8,-1.5,6.5); setQLabels((chamberHistos[rawId])[histoTag],1); setQLabels((chamberHistos[rawId])[histoTag],2); histoTag = "COM_MatchingTrend"; trendHistos[rawId] = new DTTimeEvolutionHisto(&(*theDQMStore),histoTag+chTag, "Fraction of DDU-DCC matches w.r.t. proc evts", nTimeBins,nLSTimeBin,true,0); } }
void DTLocalTriggerBaseTask::bookHistos | ( | int | wh | ) | [private] |
Book the histograms.
Definition at line 345 of file DTLocalTriggerBaseTask.cc.
References DQMStore::bookProfile2D(), LogTrace, MonitorElement::setAxisTitle(), DQMStore::setCurrentFolder(), theDQMStore, topFolder(), and wheelHistos.
{ stringstream wheel; wheel << wh; theDQMStore->setCurrentFolder(topFolder("DDU") + "Wheel" + wheel.str() + "/"); string whTag = "_W" + wheel.str(); LogTrace("DTDQM|DTMonitorModule|DTLocalTriggerBaseTask") << "[DTLocalTriggerBaseTask]: booking wheel histos for " << topFolder("DDU") << "Wheel" << wh << endl; string histoTag = "COM_BXDiff"; MonitorElement *me = theDQMStore->bookProfile2D(histoTag+whTag, "DDU-DCC BX Difference",12,1,13,4,1,5,0.,20.); me->setAxisTitle("Sector",1); me->setAxisTitle("station",2); wheelHistos[wh][histoTag] = me; }
void DTLocalTriggerBaseTask::endJob | ( | void | ) | [protected, virtual] |
EndJob.
Reimplemented from edm::EDAnalyzer.
Definition at line 177 of file DTLocalTriggerBaseTask.cc.
References nEvents, processDCC, processDDU, DQMStore::rmdir(), theDQMStore, and topFolder().
{ LogVerbatim("DTDQM|DTMonitorModule|DTLocalTriggerBaseTask") << "[DTLocalTriggerBaseTask]: analyzed " << nEvents << " events" << endl; if (processDCC) theDQMStore->rmdir(topFolder("DCC")); if (processDDU) theDQMStore->rmdir(topFolder("DDU")); }
void DTLocalTriggerBaseTask::endLuminosityBlock | ( | const edm::LuminosityBlock & | lumiSeg, |
const edm::EventSetup & | context | ||
) | [protected, virtual] |
Perform trend plot operations.
Reimplemented from edm::EDAnalyzer.
Definition at line 163 of file DTLocalTriggerBaseTask.cc.
References LogTrace, edm::LuminosityBlockBase::luminosityBlock(), nEventsInLS, and trendHistos.
{ LogTrace("DTDQM|DTMonitorModule|DTLocalTriggerBaseTask") << "[DTLocalTriggerBaseTask]: End of LS transition" << endl; map<uint32_t,DTTimeEvolutionHisto* >::const_iterator chambIt = trendHistos.begin(); map<uint32_t,DTTimeEvolutionHisto* >::const_iterator chambEnd = trendHistos.end(); for(;chambIt!=chambEnd;++chambIt) { chambIt->second->updateTimeSlot(lumiSeg.luminosityBlock(), nEventsInLS); } }
void DTLocalTriggerBaseTask::runDCCAnalysis | ( | std::vector< L1MuDTChambPhDigi > * | phTrigs, |
std::vector< L1MuDTChambThDigi > * | thTrigs | ||
) | [private] |
Run analysis on DCC data.
Definition at line 365 of file DTLocalTriggerBaseTask.cc.
References abs, bestAccRange, chamberHistos, detailedAnalysis, dir, pos, DetId::rawId(), targetBXDCC, theCompMap, theTrigGeomUtils, tpMode, DTTrigGeomUtils::trigDir(), and DTTrigGeomUtils::trigPos().
Referenced by analyze().
{ vector<L1MuDTChambPhDigi>::const_iterator iph = phTrigs->begin(); vector<L1MuDTChambPhDigi>::const_iterator iphe = phTrigs->end(); for(; iph !=iphe ; ++iph) { int wh = iph->whNum(); int sec = iph->scNum() + 1; // DTTF->DT Convention int st = iph->stNum(); int qual = iph->code(); int is1st = iph->Ts2Tag() ? 1 : 0; int bx = iph->bxNum() - is1st; if (qual <0 || qual>6) continue; // Check that quality is in a valid range DTChamberId dtChId(wh,st,sec); uint32_t rawId = dtChId.rawId(); float pos = theTrigGeomUtils->trigPos(&(*iph)); float dir = theTrigGeomUtils->trigDir(&(*iph)); if (abs(bx-targetBXDCC)<= bestAccRange && theCompMap[rawId].qualDCC() <= qual) theCompMap[rawId].setDCC(qual,bx); map<string, MonitorElement*> &innerME = chamberHistos[rawId]; if (tpMode) { innerME["DCC_BXvsQual"]->Fill(qual,bx); // SM BX vs Qual Phi view (1st tracks) innerME["DCC_QualvsPhirad"]->Fill(pos,qual); // SM Qual vs radial angle Phi view } else { innerME["DCC_BXvsQual"]->Fill(qual,bx); // SM BX vs Qual Phi view (1st tracks) innerME["DCC_Flag1stvsQual"]->Fill(qual,is1st); // SM Qual 1st/2nd track flag Phi view if (!is1st) innerME["DCC_QualvsPhirad"]->Fill(pos,qual); // SM Qual vs radial angle Phi view ONLY for 1st tracks if (detailedAnalysis) { innerME["DCC_QualvsPhibend"]->Fill(dir,qual); // SM Qual vs bending Phi view } } } vector<L1MuDTChambThDigi>::const_iterator ith = thTrigs->begin(); vector<L1MuDTChambThDigi>::const_iterator ithe = thTrigs->end(); for(; ith != ithe; ++ith) { int wh = ith->whNum(); int sec = ith->scNum() + 1; // DTTF -> DT Convention int st = ith->stNum(); int bx = ith->bxNum(); int thcode[7]; for (int pos=0; pos<7; pos++) thcode[pos] = ith->code(pos); DTChamberId dtChId(wh,st,sec); uint32_t rawId = dtChId.rawId(); map<string, MonitorElement*> &innerME = chamberHistos[rawId]; for (int pos=0; pos<7; pos++) if (thcode[pos]) innerME["DCC_PositionvsBX"]->Fill(bx,pos); // SM BX vs Position Theta view } // Fill Quality plots with best DCC triggers (phi view) if (!tpMode) { map<uint32_t,DTTPGCompareUnit>::const_iterator compIt = theCompMap.begin(); map<uint32_t,DTTPGCompareUnit>::const_iterator compEnd = theCompMap.end(); for (; compIt!=compEnd; ++compIt) { int bestQual = compIt->second.qualDCC(); if (bestQual > -1) chamberHistos[compIt->first]["DCC_BestQual"]->Fill(bestQual); // SM Best Qual Trigger Phi view } } }
void DTLocalTriggerBaseTask::runDDUAnalysis | ( | edm::Handle< DTLocalTriggerCollection > & | trigsDDU | ) | [private] |
Run analysis on ROS data.
Definition at line 446 of file DTLocalTriggerBaseTask.cc.
References abs, bestAccRange, chamberHistos, DetId::rawId(), targetBXDDU, theCompMap, and tpMode.
Referenced by analyze().
{ DTLocalTriggerCollection::DigiRangeIterator detUnitIt = trigsDDU->begin(); DTLocalTriggerCollection::DigiRangeIterator detUnitEnd = trigsDDU->end(); for (; detUnitIt!=detUnitEnd; ++detUnitIt){ const DTChamberId& chId = (*detUnitIt).first; uint32_t rawId = chId.rawId(); const DTLocalTriggerCollection::Range& range = (*detUnitIt).second; DTLocalTriggerCollection::const_iterator trigIt = range.first; map<string, MonitorElement*> &innerME = chamberHistos[rawId]; int bestQualTheta = -1; for (; trigIt!=range.second; ++trigIt){ int qualPhi = trigIt->quality(); int qualTheta = trigIt->trTheta(); int flag1st = trigIt->secondTrack() ? 1 : 0; int bx = trigIt->bx(); int bxPhi = bx - flag1st; // phi BX assign is different for 1st & 2nd tracks if( qualPhi>-1 && qualPhi<7 ) { // it is a phi trigger if (abs(bx-targetBXDDU) <= bestAccRange && theCompMap[rawId].qualDDU()<= qualPhi) theCompMap[rawId].setDDU(qualPhi,bxPhi); if(tpMode) { innerME["DDU_BXvsQual"]->Fill(qualPhi,bxPhi); // SM BX vs Qual Phi view } else { innerME["DDU_BXvsQual"]->Fill(qualPhi,bxPhi); // SM BX vs Qual Phi view innerME["DDU_Flag1stvsQual"]->Fill(qualPhi,flag1st); // SM Quality vs 1st/2nd track flag Phi view } } if( qualTheta>0 && !tpMode ){// it is a theta trigger & is not TP if (qualTheta > bestQualTheta){ bestQualTheta = qualTheta; } innerME["DDU_ThetaBXvsQual"]->Fill(qualTheta,bx); // SM BX vs Qual Theta view } } // Fill Quality plots with best ddu triggers if (!tpMode && theCompMap.find(rawId)!= theCompMap.end()) { int bestQualPhi = theCompMap[rawId].qualDDU(); if (bestQualPhi>-1) innerME["DDU_BestQual"]->Fill(bestQualPhi); // SM Best Qual Trigger Phi view if(bestQualTheta>0) { innerME["DDU_ThetaBestQual"]->Fill(bestQualTheta); // SM Best Qual Trigger Theta view } } } }
void DTLocalTriggerBaseTask::runDDUvsDCCAnalysis | ( | ) | [private] |
Run analysis on ROS data.
Definition at line 504 of file DTLocalTriggerBaseTask.cc.
References chamberHistos, DTTPGCompareUnit::deltaBX(), DTTPGCompareUnit::hasBoth(), DTTPGCompareUnit::hasOne(), DTTPGCompareUnit::hasSameQual(), DTTPGCompareUnit::qualDCC(), DTTPGCompareUnit::qualDDU(), DTChamberId::sector(), DTChamberId::station(), theCompMap, trendHistos, DTChamberId::wheel(), and wheelHistos.
Referenced by analyze().
{ map<uint32_t,DTTPGCompareUnit>::const_iterator compIt = theCompMap.begin(); map<uint32_t,DTTPGCompareUnit>::const_iterator compEnd = theCompMap.end(); for (; compIt!=compEnd; ++compIt) { uint32_t rawId = compIt->first; DTChamberId chId(rawId); map<string, MonitorElement*> &innerME = chamberHistos[rawId]; const DTTPGCompareUnit & compUnit = compIt->second; if ( compUnit.hasOne() ){ innerME["COM_QualDDUvsQualDCC"]->Fill(compUnit.qualDCC(),compUnit.qualDDU()); } if ( compUnit.hasBoth() ){ wheelHistos[chId.wheel()]["COM_BXDiff"]->Fill(chId.sector(),chId.station(),compUnit.deltaBX()); if ( compUnit.hasSameQual() ) { trendHistos[rawId]->accumulateValueTimeSlot(1); } } } }
void DTLocalTriggerBaseTask::setQLabels | ( | MonitorElement * | me, |
short int | iaxis | ||
) | [private] |
Set Quality labels.
Definition at line 530 of file DTLocalTriggerBaseTask.cc.
References MonitorElement::getTH1(), timingPdfMaker::histo, i, and reco_calib_source_client_cfg::labels.
Referenced by bookHistos().
{ TH1* histo = me->getTH1(); if (!histo) return; TAxis* axis=0; if (iaxis==1) { axis=histo->GetXaxis(); } else if(iaxis==2) { axis=histo->GetYaxis(); } if (!axis) return; string labels[7] = {"LI","LO","HI","HO","LL","HL","HH"}; int istart = axis->GetXmin()<-1 ? 2 : 1; for (int i=0;i<7;i++) { axis->SetBinLabel(i+istart,labels[i].c_str()); } }
std::string& DTLocalTriggerBaseTask::topFolder | ( | std::string | type | ) | [inline, private] |
Get the Top folder (different between Physics and TP and DCC/DDU)
Definition at line 87 of file DTLocalTriggerBaseTask.h.
References baseFolder.
Referenced by bookHistos(), DTLocalTriggerBaseTask(), and endJob().
{ return baseFolder[type == "DCC"]; }
friend class DTMonitorModule [friend] |
Definition at line 45 of file DTLocalTriggerBaseTask.h.
std::string DTLocalTriggerBaseTask::baseFolder[2] [private] |
Definition at line 102 of file DTLocalTriggerBaseTask.h.
Referenced by topFolder().
int DTLocalTriggerBaseTask::bestAccRange [private] |
Definition at line 110 of file DTLocalTriggerBaseTask.h.
Referenced by DTLocalTriggerBaseTask(), runDCCAnalysis(), and runDDUAnalysis().
std::map<uint32_t,std::map<std::string,MonitorElement*> > DTLocalTriggerBaseTask::chamberHistos [private] |
Definition at line 119 of file DTLocalTriggerBaseTask.h.
Referenced by beginLuminosityBlock(), bookHistos(), runDCCAnalysis(), runDDUAnalysis(), and runDDUvsDCCAnalysis().
bool DTLocalTriggerBaseTask::detailedAnalysis [private] |
Definition at line 104 of file DTLocalTriggerBaseTask.h.
Referenced by bookHistos(), DTLocalTriggerBaseTask(), and runDCCAnalysis().
Definition at line 121 of file DTLocalTriggerBaseTask.h.
Referenced by analyze(), and beginRun().
int DTLocalTriggerBaseTask::nEvents [private] |
Definition at line 98 of file DTLocalTriggerBaseTask.h.
Referenced by analyze(), endJob(), and ~DTLocalTriggerBaseTask().
int DTLocalTriggerBaseTask::nEventsInLS [private] |
Definition at line 99 of file DTLocalTriggerBaseTask.h.
Referenced by analyze(), beginLuminosityBlock(), and endLuminosityBlock().
int DTLocalTriggerBaseTask::nLumis [private] |
Definition at line 100 of file DTLocalTriggerBaseTask.h.
Referenced by beginLuminosityBlock().
bool DTLocalTriggerBaseTask::processDCC [private] |
Definition at line 105 of file DTLocalTriggerBaseTask.h.
Referenced by analyze(), bookHistos(), DTLocalTriggerBaseTask(), and endJob().
bool DTLocalTriggerBaseTask::processDDU [private] |
Definition at line 106 of file DTLocalTriggerBaseTask.h.
Referenced by analyze(), bookHistos(), DTLocalTriggerBaseTask(), and endJob().
int DTLocalTriggerBaseTask::targetBXDCC [private] |
Definition at line 109 of file DTLocalTriggerBaseTask.h.
Referenced by DTLocalTriggerBaseTask(), and runDCCAnalysis().
int DTLocalTriggerBaseTask::targetBXDDU [private] |
Definition at line 108 of file DTLocalTriggerBaseTask.h.
Referenced by DTLocalTriggerBaseTask(), and runDDUAnalysis().
std::map<uint32_t,DTTPGCompareUnit> DTLocalTriggerBaseTask::theCompMap [private] |
Definition at line 117 of file DTLocalTriggerBaseTask.h.
Referenced by analyze(), runDCCAnalysis(), runDDUAnalysis(), and runDDUvsDCCAnalysis().
DQMStore* DTLocalTriggerBaseTask::theDQMStore [private] |
Definition at line 112 of file DTLocalTriggerBaseTask.h.
Referenced by beginRun(), bookHistos(), DTLocalTriggerBaseTask(), and endJob().
Definition at line 113 of file DTLocalTriggerBaseTask.h.
Referenced by analyze(), beginLuminosityBlock(), bookHistos(), and DTLocalTriggerBaseTask().
Definition at line 114 of file DTLocalTriggerBaseTask.h.
Referenced by beginRun(), bookHistos(), runDCCAnalysis(), and ~DTLocalTriggerBaseTask().
std::vector<std::string> DTLocalTriggerBaseTask::theTypes [private] |
Definition at line 115 of file DTLocalTriggerBaseTask.h.
Referenced by bookHistos(), and DTLocalTriggerBaseTask().
bool DTLocalTriggerBaseTask::tpMode [private] |
Definition at line 103 of file DTLocalTriggerBaseTask.h.
Referenced by bookHistos(), DTLocalTriggerBaseTask(), runDCCAnalysis(), and runDDUAnalysis().
std::map<uint32_t,DTTimeEvolutionHisto* > DTLocalTriggerBaseTask::trendHistos [private] |
Definition at line 120 of file DTLocalTriggerBaseTask.h.
Referenced by bookHistos(), endLuminosityBlock(), and runDDUvsDCCAnalysis().
std::map<int,std::map<std::string,MonitorElement*> > DTLocalTriggerBaseTask::wheelHistos [private] |
Definition at line 118 of file DTLocalTriggerBaseTask.h.
Referenced by bookHistos(), and runDDUvsDCCAnalysis().