CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Private Attributes
DTLocalTriggerSynchTest Class Reference

#include <DTLocalTriggerSynchTest.h>

Inheritance diagram for DTLocalTriggerSynchTest:
DTLocalTriggerBaseTest DQMEDHarvester edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns, edm::one::SharedResources > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 DTLocalTriggerSynchTest (const edm::ParameterSet &ps)
 Constructor. More...
 
 ~DTLocalTriggerSynchTest () override
 Destructor. More...
 
- Public Member Functions inherited from DTLocalTriggerBaseTest
 DTLocalTriggerBaseTest ()
 Constructor. More...
 
 ~DTLocalTriggerBaseTest () override
 Destructor. More...
 
- Public Member Functions inherited from DQMEDHarvester
void accumulate (edm::Event const &ev, edm::EventSetup const &es) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void beginRun (edm::Run const &, edm::EventSetup const &) override
 
 DQMEDHarvester ()
 
void endJob () final
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void endLuminosityBlockProduce (edm::LuminosityBlock &, edm::EventSetup const &) final
 
void endRun (edm::Run const &, edm::EventSetup const &) override
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) override
 
 ~DQMEDHarvester () override=default
 
- Public Member Functions inherited from edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns, edm::one::SharedResources >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 

Protected Member Functions

void beginRun (const edm::Run &run, const edm::EventSetup &c) override
 begin Run More...
 
void bookChambHistos (DQMStore::IBooker &, DTChamberId chambId, std::string htype, std::string subfolder="")
 Book the new MEs (for each chamber) More...
 
void dqmEndJob (DQMStore::IBooker &, DQMStore::IGetter &) override
 
void dqmEndLuminosityBlock (DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &) override
 Perform client diagnostic in online. More...
 
float getFloatFromME (DQMStore::IGetter &, DTChamberId chId, std::string meType)
 Get float MEs. More...
 
void makeRatioME (TH1F *numerator, TH1F *denominator, MonitorElement *result)
 Compute efficiency plots. More...
 
void runClientDiagnostic (DQMStore::IBooker &, DQMStore::IGetter &) override
 DQM Client Diagnostic. More...
 
- Protected Member Functions inherited from DTLocalTriggerBaseTest
void beginRun (edm::Run const &run, edm::EventSetup const &context) override
 BeginRun. More...
 
void bookCmsHistos (DQMStore::IBooker &, std::string hTag, std::string folder="", bool isGlb=false)
 Book the new MEs (CMS summary) More...
 
void bookSectorHistos (DQMStore::IBooker &, int wheel, int sector, std::string hTag, std::string folder="")
 Book the new MEs (for each sector) More...
 
void bookWheelHistos (DQMStore::IBooker &, int wheel, std::string hTag, std::string folder="")
 Book the new MEs (for each wheel) More...
 
std::string category ()
 Get message logger name. More...
 
void endRun (edm::Run const &run, edm::EventSetup const &context) override
 Perform client diagnostic in offline. More...
 
std::string fullName (std::string htype)
 Create fullname from histo partial name. More...
 
template<class T >
TgetHisto (MonitorElement *me)
 Convert ME to Histogram fo type T. More...
 
std::string getMEName (std::string histoTag, std::string subfolder, const DTChamberId &chambid)
 Get the ME name (by chamber) More...
 
std::string getMEName (std::string histoTag, std::string subfolder, int wh)
 Get the ME name (by wheel) More...
 
std::pair< float, float > phiRange (const DTChamberId &id)
 Calculate phi range for histograms. More...
 
void setConfig (const edm::ParameterSet &ps, std::string name)
 Set configuration variables. More...
 
std::string & topFolder (bool isTM)
 Get top folder name. More...
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Private Attributes

bool bookingdone
 
double bxTime
 
std::map< uint32_t, std::map< std::string, MonitorElement * > > chambME
 
std::string denHistoTag
 
int minEntries
 
int nBXHigh
 
int nBXLow
 
std::string numHistoTag
 
bool rangeInBX
 
std::string ratioHistoTag
 
DTTPGParameters wPhaseMap
 
bool writeDB
 

Additional Inherited Members

- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Attributes inherited from DTLocalTriggerBaseTest
std::string baseFolderDDU
 
std::string baseFolderTM
 
std::map< std::string, MonitorElement * > cmsME
 
std::string hwSource
 
std::vector< std::string > hwSources
 
edm::ESHandle< DTGeometrymuonGeom
 
int nevents
 
unsigned int nLumiSegs
 
edm::ParameterSet parameters
 
int prescaleFactor
 
int run
 
bool runOnline
 
std::map< int, std::map< std::string, MonitorElement * > > secME
 
std::string sourceFolder
 
std::string testName
 
std::string trigSource
 
std::vector< std::string > trigSources
 
std::map< int, std::map< std::string, MonitorElement * > > whME
 
- Protected Attributes inherited from DQMEDHarvester
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 22 of file DTLocalTriggerSynchTest.h.

Constructor & Destructor Documentation

DTLocalTriggerSynchTest::DTLocalTriggerSynchTest ( const edm::ParameterSet ps)

Constructor.

Definition at line 45 of file DTLocalTriggerSynchTest.cc.

45  {
46 
47  setConfig(ps,"DTLocalTriggerSynch");
48  baseFolderTM = "DT/90-LocalTriggerSynch/";
49  baseFolderDDU = "DT/90-LocalTriggerSynch/";
50 
51  bookingdone = false;
52 
53 }
void setConfig(const edm::ParameterSet &ps, std::string name)
Set configuration variables.
DTLocalTriggerSynchTest::~DTLocalTriggerSynchTest ( )
override

Destructor.

Definition at line 56 of file DTLocalTriggerSynchTest.cc.

56  {
57 
58 }

Member Function Documentation

void DTLocalTriggerSynchTest::beginRun ( const edm::Run run,
const edm::EventSetup c 
)
overrideprotected

begin Run

Definition at line 61 of file DTLocalTriggerSynchTest.cc.

References DTLocalTriggerBaseTest::beginRun(), and hgcalDigitizer_cfi::bxTime.

61  {
62 
63  numHistoTag = parameters.getParameter<string>("numHistoTag");
64  denHistoTag = parameters.getParameter<string>("denHistoTag");
65  ratioHistoTag = parameters.getParameter<string>("ratioHistoTag");
66  bxTime = parameters.getParameter<double>("bxTimeInterval");
67  rangeInBX = parameters.getParameter<bool>("rangeWithinBX");
68  nBXLow = parameters.getParameter<int>("nBXLow");
69  nBXHigh = parameters.getParameter<int>("nBXHigh");
70  minEntries = parameters.getParameter<int>("minEntries");
71 
73 }
void beginRun(edm::Run const &run, edm::EventSetup const &context) override
BeginRun.
void DTLocalTriggerSynchTest::bookChambHistos ( DQMStore::IBooker ,
DTChamberId  chambId,
std::string  htype,
std::string  subfolder = "" 
)
protected

Book the new MEs (for each chamber)

Definition at line 261 of file DTLocalTriggerSynchTest.cc.

References DQMStore::IBooker::book1D(), hgcalDigitizer_cfi::bxTime, taus_updatedMVAIds_cff::category, printsummarytable::folder, edm::max(), edm::min(), pileupCalc::nbins, DetId::rawId(), DTChamberId::sector(), DQMStore::IBooker::setCurrentFolder(), DTChamberId::station(), relativeConstraints::station, DTChamberId::wheel(), and makeMuonMisalignmentScenario::wheel.

262  {
263 
264  stringstream wheel; wheel << chambId.wheel();
265  stringstream station; station << chambId.station();
266  stringstream sector; sector << chambId.sector();
267 
268  string fullType = fullName(htype);
269  bool isTM = hwSource=="TM" ;
270  string HistoName = fullType + "_W" + wheel.str() + "_Sec" + sector.str() + "_St" + station.str();
271 
272  string folder = topFolder(isTM) + "Wheel" + wheel.str() + "/Sector" + sector.str() + "/Station" + station.str();
273  if ( subfolder!="") { folder += "7" + subfolder; }
274 
275  ibooker.setCurrentFolder(folder);
276 
277  LogPrint(category()) << "[" << testName << "Test]: booking " << folder << "/" <<HistoName;
278 
279 
280  uint32_t indexChId = chambId.rawId();
281  float min = rangeInBX ? 0 : nBXLow*bxTime;
282  float max = rangeInBX ? bxTime : nBXHigh*bxTime;
283  int nbins = static_cast<int>(ceil( rangeInBX ? bxTime : (nBXHigh-nBXLow)*bxTime));
284 
285  chambME[indexChId][fullType] = ibooker.book1D(HistoName.c_str(),"All/HH ratio vs Muon Arrival Time",nbins,min,max);
286 
287 }
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:47
T min(T a, T b)
Definition: MathUtil.h:58
std::string category()
Get message logger name.
std::string HistoName
std::string & topFolder(bool isTM)
Get top folder name.
int sector() const
Definition: DTChamberId.h:61
std::map< uint32_t, std::map< std::string, MonitorElement * > > chambME
int station() const
Return the station number.
Definition: DTChamberId.h:51
int wheel() const
Return the wheel number.
Definition: DTChamberId.h:45
std::string fullName(std::string htype)
Create fullname from histo partial name.
void DTLocalTriggerSynchTest::dqmEndJob ( DQMStore::IBooker ibooker,
DQMStore::IGetter igetter 
)
overrideprotectedvirtual

Reimplemented from DTLocalTriggerBaseTest.

Definition at line 165 of file DTLocalTriggerSynchTest.cc.

References DTTPGParameters::begin(), hgcalDigitizer_cfi::bxTime, taus_updatedMVAIds_cff::category, DTLocalTriggerBaseTest::dqmEndJob(), DTTPGParameters::end(), DQMStore::IGetter::get(), DTTimeUnits::ns, DTTPGParameters::set(), and DTCalibDBUtils::writeToDB().

165  {
166 
167  DTLocalTriggerBaseTest::dqmEndJob(ibooker,igetter);
168 
169  if ( parameters.getParameter<bool>("writeDB")) {
170  LogVerbatim(category()) << "[" << testName
171  << "Test]: writeDB flag set to true. Producing peak position database." << endl;
172 
173  DTTPGParameters* delayMap = new DTTPGParameters();
174  hwSource = parameters.getParameter<bool>("dbFromTM") ? "TM" : "DDU";
175  std::vector<const DTChamber*>::const_iterator chambIt = muonGeom->chambers().begin();
176  std::vector<const DTChamber*>::const_iterator chambEnd = muonGeom->chambers().end();
177  for (; chambIt!=chambEnd; ++chambIt) {
178 
179  DTChamberId chId = (*chambIt)->id();
180  float fineDelay = 0;
181  int coarseDelay = static_cast<int>((getFloatFromME(igetter,chId,"tTrig_SL1") +
182  getFloatFromME(igetter,chId,"tTrig_SL3"))*0.5/bxTime);
183 
184  bool fineDiff = parameters.getParameter<bool>("fineParamDiff");
185  bool coarseDiff = parameters.getParameter<bool>("coarseParamDiff");
186 
187  TH1F *ratioH = getHisto<TH1F>(igetter.get(getMEName(ratioHistoTag,"", chId)));
188  if (ratioH->GetEntries()>minEntries) {
189  TF1 *fitF=ratioH->GetFunction("mypol8");
190  if (fitF) { fineDelay=fitF->GetMaximumX(0,bxTime); }
191  } else {
192  LogInfo(category()) << "[" << testName
193  << "Test]: Ratio histogram for chamber " << chId
194  << " is empty. Worst Phase value set to 0." << endl;
195  }
196 
197  if (fineDiff || coarseDiff) {
198  float wFine;
199  int wCoarse;
200  wPhaseMap.get(chId,wCoarse,wFine,DTTimeUnits::ns);
201  if (fineDiff) { fineDelay = wFine - fineDelay; }
202  if (coarseDiff) { coarseDelay = wCoarse - coarseDelay; }
203  }
204  delayMap->set(chId,coarseDelay,fineDelay,DTTimeUnits::ns);
205  }
206 
207  std::vector< std::pair<DTTPGParametersId,DTTPGParametersData> >::const_iterator dbIt = delayMap->begin();
208  std::vector< std::pair<DTTPGParametersId,DTTPGParametersData> >::const_iterator dbEnd = delayMap->end();
209  for (; dbIt!=dbEnd; ++dbIt) {
210  LogVerbatim(category()) << "[" << testName << "Test]: DB entry for Wh " << (*dbIt).first.wheelId
211  << " Sec " << (*dbIt).first.sectorId
212  << " St " << (*dbIt).first.stationId
213  << " has coarse " << (*dbIt).second.nClock
214  << " and phase " << (*dbIt).second.tPhase << std::endl;
215  }
216 
217  string delayRecord = "DTTPGParametersRcd";
218  DTCalibDBUtils::writeToDB(delayRecord,delayMap);
219 
220  }
221 
222 }
const std::vector< const DTChamber * > & chambers() const
Return a vector of all Chamber.
Definition: DTGeometry.cc:84
const_iterator begin() const
int set(int wheelId, int stationId, int sectorId, int nc, float ph, DTTimeUnits::type unit)
MonitorElement * get(const std::string &path)
Definition: DQMStore.cc:302
edm::ESHandle< DTGeometry > muonGeom
const_iterator end() const
float getFloatFromME(DQMStore::IGetter &, DTChamberId chId, std::string meType)
Get float MEs.
std::string category()
Get message logger name.
std::string getMEName(std::string histoTag, std::string subfolder, const DTChamberId &chambid)
Get the ME name (by chamber)
void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override
int get(int wheelId, int stationId, int sectorId, int &nc, float &ph, DTTimeUnits::type unit) const
get content
static void writeToDB(std::string record, T *payload)
void DTLocalTriggerSynchTest::dqmEndLuminosityBlock ( DQMStore::IBooker ibooker,
DQMStore::IGetter igetter,
edm::LuminosityBlock const &  lumiSeg,
edm::EventSetup const &  context 
)
overrideprotectedvirtual

Perform client diagnostic in online.

Reimplemented from DTLocalTriggerBaseTest.

Definition at line 76 of file DTLocalTriggerSynchTest.cc.

References taus_updatedMVAIds_cff::category, and edm::EventSetup::get().

77  {
78 
79  if (bookingdone) return;
80 
81  vector<string>::const_iterator iTr = trigSources.begin();
82  vector<string>::const_iterator trEnd = trigSources.end();
83  vector<string>::const_iterator iHw = hwSources.begin();
84  vector<string>::const_iterator hwEnd = hwSources.end();
85 
86  //Booking
87  if(parameters.getUntrackedParameter<bool>("staticBooking", true)){
88  for (; iTr != trEnd; ++iTr){
89  trigSource = (*iTr);
90  for (; iHw != hwEnd; ++iHw){
91  hwSource = (*iHw);
92  std::vector<const DTChamber*>::const_iterator chambIt = muonGeom->chambers().begin();
93  std::vector<const DTChamber*>::const_iterator chambEnd = muonGeom->chambers().end();
94  for (; chambIt!=chambEnd; ++chambIt) {
95  DTChamberId chId = ((*chambIt)->id());
96  bookChambHistos(ibooker,chId,ratioHistoTag);
97  }
98  }
99  }
100  }
101 
102  LogVerbatim(category()) << "[" << testName << "Test]: book Histograms" << endl;
103 
104  if (parameters.getParameter<bool>("fineParamDiff")) {
105  ESHandle<DTTPGParameters> wPhaseHandle;
106  c.get<DTTPGParametersRcd>().get(wPhaseHandle);
107  wPhaseMap = (*wPhaseHandle);
108  }
109 
110  bookingdone = true;
111 
112 }
std::vector< std::string > trigSources
const std::vector< const DTChamber * > & chambers() const
Return a vector of all Chamber.
Definition: DTGeometry.cc:84
edm::ESHandle< DTGeometry > muonGeom
std::string category()
Get message logger name.
void bookChambHistos(DQMStore::IBooker &, DTChamberId chambId, std::string htype, std::string subfolder="")
Book the new MEs (for each chamber)
std::vector< std::string > hwSources
float DTLocalTriggerSynchTest::getFloatFromME ( DQMStore::IGetter igetter,
DTChamberId  chId,
std::string  meType 
)
protected

Get float MEs.

Definition at line 233 of file DTLocalTriggerSynchTest.cc.

References taus_updatedMVAIds_cff::category, DQMStore::IGetter::get(), MonitorElement::getFloatValue(), DTChamberId::sector(), DTChamberId::station(), relativeConstraints::station, DTChamberId::wheel(), and makeMuonMisalignmentScenario::wheel.

234  {
235 
236  stringstream wheel; wheel << chId.wheel();
237  stringstream station; station << chId.station();
238  stringstream sector; sector << chId.sector();
239 
240  string folderName = topFolder(hwSource=="TM") + "Wheel" + wheel.str() +
241  "/Sector" + sector.str() + "/Station" + station.str() + "/" ;
242 
243  string histoname = sourceFolder + folderName
244  + meType
245  + "_W" + wheel.str()
246  + "_Sec" + sector.str()
247  + "_St" + station.str();
248 
249  MonitorElement* me = igetter.get(histoname);
250  if (me) {
251  return me->getFloatValue();
252  }
253  else {
254  LogProblem(category()) << "[" << testName << "Test]: " << histoname << " is not a valid ME. 0 returned" << std::endl;
255  }
256 
257  return 0;
258 
259  }
double getFloatValue() const
MonitorElement * get(const std::string &path)
Definition: DQMStore.cc:302
std::string category()
Get message logger name.
std::string & topFolder(bool isTM)
Get top folder name.
int sector() const
Definition: DTChamberId.h:61
int station() const
Return the station number.
Definition: DTChamberId.h:51
int wheel() const
Return the wheel number.
Definition: DTChamberId.h:45
void DTLocalTriggerSynchTest::makeRatioME ( TH1F *  numerator,
TH1F *  denominator,
MonitorElement result 
)
protected

Compute efficiency plots.

Definition at line 226 of file DTLocalTriggerSynchTest.cc.

References PostProcessor_cff::efficiency, and MonitorElement::getTH1F().

void DTLocalTriggerSynchTest::runClientDiagnostic ( DQMStore::IBooker ibooker,
DQMStore::IGetter igetter 
)
overrideprotectedvirtual

DQM Client Diagnostic.

Implements DTLocalTriggerBaseTest.

Definition at line 115 of file DTLocalTriggerSynchTest.cc.

References taus_updatedMVAIds_cff::category, DQMStore::IGetter::get(), MonitorElement::getName(), and DetId::rawId().

115  {
116 
117  // Loop over Trig & Hw sources
118  for (vector<string>::const_iterator iTr = trigSources.begin(); iTr != trigSources.end(); ++iTr){
119  trigSource = (*iTr);
120  for (vector<string>::const_iterator iHw = hwSources.begin(); iHw != hwSources.end(); ++iHw){
121  hwSource = (*iHw);
122  std::vector<const DTChamber*>::const_iterator chambIt = muonGeom->chambers().begin();
123  std::vector<const DTChamber*>::const_iterator chambEnd = muonGeom->chambers().end();
124  for (; chambIt!=chambEnd; ++chambIt) {
125  DTChamberId chId = (*chambIt)->id();
126  uint32_t indexCh = chId.rawId();
127 
128  // Perform peak finding
129 
130  TH1F *numH = getHisto<TH1F>(igetter.get(getMEName(numHistoTag,"", chId)));
131  TH1F *denH = getHisto<TH1F>(igetter.get(getMEName(denHistoTag,"", chId)));
132 
133  if (numH && denH && numH->GetEntries()>minEntries && denH->GetEntries()>minEntries) {
134  std::map<std::string,MonitorElement*> innerME = chambME[indexCh];
135  MonitorElement* ratioH = innerME.find(fullName(ratioHistoTag))->second;
136  makeRatioME(numH,denH,ratioH);
137  try {
138  //Need our own copy to avoid threading problems
139  TF1 mypol8("mypol8","pol8");
140  getHisto<TH1F>(ratioH)->Fit(&mypol8,"CQO");
141  } catch (cms::Exception& iException) {
142  edm::LogPrint(category()) << "[" << testName
143  << "Test]: Error fitting "
144  << ratioH->getName() << " returned 0" << endl;
145  }
146  } else {
147  if (!numH || !denH) {
148  LogPrint(category()) << "[" << testName
149  << "Test]: At least one of the required Histograms was not found for chamber "
150  << chId << ". Peaks not computed" << endl;
151  } else {
152  LogPrint(category()) << "[" << testName
153  << "Test]: Number of plots entries for "
154  << chId << " is less than minEntries="
155  << minEntries <<". Peaks not computed" << endl;
156  }
157  }
158 
159  }
160  }
161  }
162 
163 }
std::vector< std::string > trigSources
const std::vector< const DTChamber * > & chambers() const
Return a vector of all Chamber.
Definition: DTGeometry.cc:84
MonitorElement * get(const std::string &path)
Definition: DQMStore.cc:302
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:47
const std::string & getName() const
get name of ME
edm::ESHandle< DTGeometry > muonGeom
Definition: Fit.h:34
std::string category()
Get message logger name.
void makeRatioME(TH1F *numerator, TH1F *denominator, MonitorElement *result)
Compute efficiency plots.
std::string getMEName(std::string histoTag, std::string subfolder, const DTChamberId &chambid)
Get the ME name (by chamber)
std::map< uint32_t, std::map< std::string, MonitorElement * > > chambME
std::vector< std::string > hwSources
std::string fullName(std::string htype)
Create fullname from histo partial name.

Member Data Documentation

bool DTLocalTriggerSynchTest::bookingdone
private

Definition at line 72 of file DTLocalTriggerSynchTest.h.

double DTLocalTriggerSynchTest::bxTime
private

Definition at line 64 of file DTLocalTriggerSynchTest.h.

std::map<uint32_t,std::map<std::string,MonitorElement*> > DTLocalTriggerSynchTest::chambME
private

Definition at line 60 of file DTLocalTriggerSynchTest.h.

std::string DTLocalTriggerSynchTest::denHistoTag
private

Definition at line 62 of file DTLocalTriggerSynchTest.h.

int DTLocalTriggerSynchTest::minEntries
private

Definition at line 68 of file DTLocalTriggerSynchTest.h.

int DTLocalTriggerSynchTest::nBXHigh
private

Definition at line 67 of file DTLocalTriggerSynchTest.h.

int DTLocalTriggerSynchTest::nBXLow
private

Definition at line 66 of file DTLocalTriggerSynchTest.h.

std::string DTLocalTriggerSynchTest::numHistoTag
private

Definition at line 61 of file DTLocalTriggerSynchTest.h.

bool DTLocalTriggerSynchTest::rangeInBX
private

Definition at line 65 of file DTLocalTriggerSynchTest.h.

std::string DTLocalTriggerSynchTest::ratioHistoTag
private

Definition at line 63 of file DTLocalTriggerSynchTest.h.

DTTPGParameters DTLocalTriggerSynchTest::wPhaseMap
private

Definition at line 70 of file DTLocalTriggerSynchTest.h.

bool DTLocalTriggerSynchTest::writeDB
private

Definition at line 69 of file DTLocalTriggerSynchTest.h.