39 bool &rpPlotInitialized);
69 const string hit_ratio_name =
"hit ratio in hot spot";
72 if (hit_ratio ==
nullptr) {
76 hit_ratio = ibooker.
book1D(hit_ratio_name,
title +
";plane;N_hits(320<strip<440) / N_hits(all)", 10, -0.5, 9.5);
82 TAxis *y_axis = activity->
getTH2F()->GetYaxis();
83 for (
int bix = 1; bix <= activity->
getNbinsX(); ++bix) {
84 double S_full = 0., S_sel = 0.;
85 for (
int biy = 1; biy <= activity->
getNbinsY(); ++biy) {
87 double s = y_axis->GetBinCenter(biy);
91 if (
s > 320. &&
s < 440.)
95 double r = (S_full > 0.) ? S_sel / S_full : 0.;
106 bool &rpPlotInitialized) {
116 if (!efficiency_num || !efficiency_den)
120 const string efficiency_name =
"efficiency";
126 TAxis *axis = efficiency_den->
getTH1()->GetXaxis();
129 efficiency_name,
title +
";track position (mm)", axis->GetNbins(), axis->GetXmin(), axis->GetXmax());
137 const string rp_efficiency_name =
"plane efficiency";
140 if (rp_efficiency ==
nullptr) {
143 TAxis *axis = efficiency_den->
getTH1()->GetXaxis();
145 rp_efficiency = ibooker.
book2D(rp_efficiency_name,
146 title +
";plane;track position (mm)",
153 rpPlotInitialized =
true;
155 if (!rpPlotInitialized)
156 rp_efficiency->
getTH2F()->Reset();
157 rpPlotInitialized =
true;
161 for (
signed int bi = 1; bi <=
efficiency->getNbinsX(); bi++) {
166 double p =
num / den;
167 double p_unc =
sqrt(
p * (1. -
p) / den);
171 int pl_bi =
detId.plane() + 1;
186 for (
unsigned int arm = 0;
arm < 2;
arm++) {
188 for (
unsigned int st = 0; st < 3; st += 2) {
190 for (
unsigned int rp = 0; rp < 6; ++rp) {
203 MakeHitNumberRatios(
rpId, ibooker, igetter);
205 bool rpPlotInitialized =
false;
208 for (
unsigned int pl = 0; pl < 10; ++pl) {
211 MakePlaneEfficiencyHistograms(plId, ibooker, igetter, rpPlotInitialized);
Detector ID class for TOTEM Si strip detectors.
virtual void setCurrentFolder(std::string const &fullpath)
void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override
~TotemRPDQMHarvester() override
virtual TH2F * getTH2F() const
void rpName(std::string &name, NameFlag flag=nFull) const
void MakeHitNumberRatios(unsigned int id, DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter)
#define DEFINE_FWK_MODULE(type)
void dqmEndLuminosityBlock(DQMStore::IBooker &, DQMStore::IGetter &, const edm::LuminosityBlock &, const edm::EventSetup &) override
virtual int getNbinsY() const
get # of bins in Y-axis
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
virtual TH1F * getTH1F() const
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
virtual MonitorElement * get(std::string const &fullpath) const
void MakePlaneEfficiencyHistograms(unsigned int id, DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter, bool &rpPlotInitialized)
Base class for CTPPS detector IDs.
virtual TH1 * getTH1() const
virtual int getNbinsX() const
get # of bins in X-axis
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
TotemRPDQMHarvester(const edm::ParameterSet &ps)
virtual double getBinContent(int binx) const
get content of bin (1-D)