CMS 3D CMS Logo

RPCMultiplicityTest.cc
Go to the documentation of this file.
1 /*
2  * \author Anna Cimmino
3  */
7 
10 
12  edm::LogVerbatim("multiplicity") << "[RPCMultiplicityTest]: Constructor";
13  useRollInfo_ = ps.getUntrackedParameter<bool>("UseRollInfo", false);
14  prescaleFactor_ = ps.getUntrackedParameter<int>("DiagnosticPrescale", 1);
15  numberOfDisks_ = ps.getUntrackedParameter<int>("NumberOfEndcapDisks", 4);
16  numberOfRings_ = ps.getUntrackedParameter<int>("NumberOfEndcapRings", 2);
17  testMode_ = ps.getUntrackedParameter<bool>("testMode", false);
18 }
19 
21  edm::LogVerbatim("multiplicity") << "[RPCMultiplicityTest]: Begin job";
22  globalFolder_ = workingFolder;
23 }
24 
27 
28  std::stringstream histoName;
29 
30  for (int i = -2; i <= 2; i++) { //loop on wheels and disks
31 
32  histoName.str("");
33  histoName << "NumberOfDigi_Mean_Roll_vs_Sector_Wheel" << i;
34 
35  auto me = RPCRollMapHisto::bookBarrel(ibooker, i, histoName.str(), histoName.str(), useRollInfo_);
36  MULTWheel[i + 2] = dynamic_cast<MonitorElement*>(me);
37 
38  if (testMode_) {
39  histoName.str("");
40  histoName << "NumberOfDigi_Mean_Distribution_Wheel" << i;
41  MULTDWheel[i + 2] = ibooker.book1D(histoName.str().c_str(), histoName.str().c_str(), 100, 0.5, 50.5);
42  }
43 
44  } //end wheels
45 
46  for (int d = -numberOfDisks_; d <= numberOfDisks_; d++) {
47  if (d == 0)
48  continue;
49 
50  int offset = numberOfDisks_;
51  if (d > 0)
52  offset--; //used to skip case equale to zero
53 
54  histoName.str("");
55  histoName << "NumberOfDigi_Mean_Ring_vs_Segment_Disk" << d;
56  auto me = RPCRollMapHisto::bookEndcap(ibooker, d, histoName.str(), histoName.str(), useRollInfo_);
57  MULTDisk[d + offset] = dynamic_cast<MonitorElement*>(me);
58 
59  if (testMode_) {
60  histoName.str("");
61  histoName << "NumberOfDigi_Mean_Distribution_Disk" << d;
62  MULTDDisk[d + offset] = ibooker.book1D(histoName.str().c_str(), histoName.str().c_str(), 100, 0.5, 50.5);
63  }
64  } //end loop on wheels and disks
65 }
66 
67 void RPCMultiplicityTest::getMonitorElements(std::vector<MonitorElement*>& meVector,
68  std::vector<RPCDetId>& detIdVector,
69  std::string& clientHistoName) {
70  //Get NumberOfDigi ME for each roll
71  for (unsigned int i = 0; i < meVector.size(); i++) {
72  std::string meName = meVector[i]->getName();
73 
74  if (meName.find(clientHistoName) != std::string::npos) {
75  myNumDigiMe_.push_back(meVector[i]);
76  myDetIds_.push_back(detIdVector[i]);
77  }
78  }
79 }
80 
82  edm::LogVerbatim("multiplicity") << "[RPCMultiplicityTest]: Client Operation";
83 
84  //Loop on MEs
85  for (unsigned int i = 0; i < myNumDigiMe_.size(); i++) {
87  } //End loop on MEs
88 }
89 
91  MonitorElement* MULT = nullptr;
92  MonitorElement* MULTD = nullptr;
93 
94  if (detId.region() == 0) {
95  MULT = MULTWheel[detId.ring() + 2];
96  if (testMode_) {
97  MULTD = MULTDWheel[detId.ring() + 2];
98  }
99  } else {
100  if (-detId.station() + numberOfDisks_ >= 0) {
101  if (detId.region() < 0) {
102  MULT = MULTDisk[-detId.station() + numberOfDisks_];
103  if (testMode_) {
104  MULTD = MULTDDisk[-detId.station() + numberOfDisks_];
105  }
106  } else {
107  MULT = MULTDisk[detId.station() + numberOfDisks_ - 1];
108  if (testMode_) {
109  MULTD = MULTDDisk[detId.station() + numberOfDisks_ - 1];
110  }
111  }
112  }
113  }
114 
115  int xBin, yBin;
116  if (detId.region() == 0) { //Barrel
117  xBin = detId.sector();
118  rpcdqm::utils rollNumber;
119  yBin = rollNumber.detId2RollNr(detId);
120  } else { //Endcap
121  //get segment number
122  RPCGeomServ RPCServ(detId);
123  xBin = RPCServ.segment();
124  (numberOfRings_ == 3 ? yBin = detId.ring() * 3 - detId.roll() + 1
125  : yBin = (detId.ring() - 1) * 3 - detId.roll() + 1);
126  }
127 
128  float mean = myMe->getMean();
129 
130  if (MULT) {
131  MULT->setBinContent(xBin, yBin, mean);
132  }
133  if (testMode_ && MULTD) {
134  MULTD->Fill(mean);
135  }
136 }
RPCRollMapHisto::bookBarrel
static MonitorElement * bookBarrel(IBooker &booker, const int wheel, const std::string &prefix, const std::string &title, const bool useRollInfo)
Definition: RPCRollMapHisto.cc:8
RPCMultiplicityTest::testMode_
bool testMode_
Definition: RPCMultiplicityTest.h:31
RPCMultiplicityTest::myDetIds_
std::vector< RPCDetId > myDetIds_
Definition: RPCMultiplicityTest.h:30
mps_fire.i
i
Definition: mps_fire.py:428
RPCGeomServ
Definition: RPCGeomServ.h:8
RPCMultiplicityTest::getMonitorElements
void getMonitorElements(std::vector< MonitorElement * > &, std::vector< RPCDetId > &, std::string &) override
Definition: RPCMultiplicityTest.cc:67
MessageLogger.h
SiStripPI::mean
Definition: SiStripPayloadInspectorHelper.h:169
RPCDetId::station
int station() const
Definition: RPCDetId.h:78
RPCDetId::region
int region() const
Region id: 0 for Barrel, +/-1 For +/- Endcap.
Definition: RPCDetId.h:53
photonAnalyzer_cfi.xBin
xBin
Definition: photonAnalyzer_cfi.py:81
RPCMultiplicityTest::beginJob
void beginJob(std::string &) override
Definition: RPCMultiplicityTest.cc:20
utils.h
RPCDetId
Definition: RPCDetId.h:16
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
dqm::legacy::MonitorElement
Definition: MonitorElement.h:462
photonAnalyzer_cfi.yBin
yBin
Definition: photonAnalyzer_cfi.py:85
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
RPCGeomServ.h
RPCRollMapHisto::bookEndcap
static MonitorElement * bookEndcap(IBooker &booker, const int disk, const std::string &prefix, const std::string &title, const bool useRollInfo)
Definition: RPCRollMapHisto.cc:81
rpcdqm::utils
Definition: utils.h:29
RPCMultiplicityTest::MULTWheel
MonitorElement * MULTWheel[5]
Definition: RPCMultiplicityTest.h:32
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
RPCMultiplicityTest::MULTDisk
MonitorElement * MULTDisk[10]
Definition: RPCMultiplicityTest.h:34
RPCRollMapHisto.h
RPCMultiplicityTest::useRollInfo_
bool useRollInfo_
Definition: RPCMultiplicityTest.h:28
RPCDetId::roll
int roll() const
Definition: RPCDetId.h:92
edm::ParameterSet
Definition: ParameterSet.h:47
RPCMultiplicityTest::clientOperation
void clientOperation() override
Definition: RPCMultiplicityTest.cc:81
RPCMultiplicityTest.h
RPCMultiplicityTest::numberOfRings_
int numberOfRings_
Definition: RPCMultiplicityTest.h:27
rpcdqm::utils::detId2RollNr
int detId2RollNr(const RPCDetId &_id)
Definition: utils.h:31
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
RPCDetId::ring
int ring() const
Definition: RPCDetId.h:59
RPCGeomServ::segment
virtual int segment()
Definition: RPCGeomServ.cc:361
dqm::impl::MonitorElement::setBinContent
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
Definition: MonitorElement.cc:682
RPCMultiplicityTest::RPCMultiplicityTest
RPCMultiplicityTest(const edm::ParameterSet &ps)
Constructor.
Definition: RPCMultiplicityTest.cc:11
RPCMultiplicityTest::myBooker
void myBooker(DQMStore::IBooker &) override
Definition: RPCMultiplicityTest.cc:25
RPCMultiplicityTest::numberOfDisks_
int numberOfDisks_
Definition: RPCMultiplicityTest.h:26
RPCMultiplicityTest::globalFolder_
std::string globalFolder_
Definition: RPCMultiplicityTest.h:25
edm::LogVerbatim
Log< level::Info, true > LogVerbatim
Definition: MessageLogger.h:128
RPCDetId::sector
int sector() const
Sector id: the group of chambers at same phi (and increasing r)
Definition: RPCDetId.h:81
HltBtagPostValidation_cff.histoName
histoName
Definition: HltBtagPostValidation_cff.py:17
RPCMultiplicityTest::fillGlobalME
void fillGlobalME(RPCDetId &detId, MonitorElement *myMe)
Definition: RPCMultiplicityTest.cc:90
dqm::impl::MonitorElement::getMean
virtual double getMean(int axis=1) const
get mean value of histogram along x, y or z axis (axis=1, 2, 3 respectively)
Definition: MonitorElement.cc:540
dqm::implementation::IBooker
Definition: DQMStore.h:43
RPCMultiplicityTest::MULTDWheel
MonitorElement * MULTDWheel[5]
Definition: RPCMultiplicityTest.h:33
ztail.d
d
Definition: ztail.py:151
RPCMultiplicityTest::myNumDigiMe_
std::vector< MonitorElement * > myNumDigiMe_
Definition: RPCMultiplicityTest.h:29
hlt_dqm_clientPB-live_cfg.me
me
Definition: hlt_dqm_clientPB-live_cfg.py:61
hltrates_dqm_sourceclient-live_cfg.offset
offset
Definition: hltrates_dqm_sourceclient-live_cfg.py:82
RPCMultiplicityTest::MULTDDisk
MonitorElement * MULTDDisk[10]
Definition: RPCMultiplicityTest.h:35
RPCMultiplicityTest::prescaleFactor_
int prescaleFactor_
Definition: RPCMultiplicityTest.h:24
dqm::implementation::IBooker::book1D
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98