20 std::string summaryFolder = ps.
getUntrackedParameter<std::string>(
"SummaryFolder",
"SummaryHistograms");
22 summaryDir_ = subsystemFolder +
"/"+ recHitTypeFolder +
"/"+ summaryFolder ;
23 prefixDir_ = subsystemFolder +
"/"+ recHitTypeFolder ;
55 std::stringstream histoName;
59 for (
int r = 0 ; r < 3; r++){
62 histoName<<
"RPCChamberQuality_"<<
regions_[
r];
65 me =
dbe_->
book1D(histoName.str().c_str(), histoName.str().c_str(), 7, 0.5, 7.5);
72 histoName<<
"RPC_System_Quality_Overview";
75 me =
dbe_->
book2D(histoName.str().c_str(), histoName.str().c_str(), 7, 0.5, 7.5, 3, 0.5, 3.5);
82 for(
int w=-2;
w<3;
w++){
85 histoName<<
"RPCChamberQuality_Roll_vs_Sector_Wheel"<<
w;
88 me =
dbe_->
book2D(histoName.str().c_str(), histoName.str().c_str(), 12, 0.5, 12.5, 21, 0.5, 21.5);
94 histoName<<
"RPCChamberQuality_Distribution_Wheel"<<
w;
98 me =
dbe_->
book1D(histoName.str().c_str(), histoName.str().c_str(), 7, 0.5, 7.5);
106 histoName<<
"RPCChamberQuality_Ring_vs_Segment_Disk"<<d;
112 me =
dbe_->
book2D(histoName.str().c_str(), histoName.str().c_str(), 36, 0.5, 36.5, 6, 0.5, 6.5);
117 histoName<<
"RPCChamberQuality_Distribution_Disk"<<d;
121 me =
dbe_->
book1D(histoName.str().c_str(), histoName.str().c_str(), 7, 0.5, 7.5);
132 edm::LogVerbatim (
"rpceventsummary") <<
"[RPCChamberQuality]: End Job, performing DQM client operation";
140 std::stringstream meName;
155 for(
int r = 0 ;
r < 3 ;
r++) {
158 summary[
r] =
dbe_ ->
get(meName.str());
160 if( summary[
r] != 0 ) summary[
r]->
Reset();
164 for (
int wheel=-2; wheel<3; wheel++) {
166 meName<<
"Roll_vs_Sector_Wheel"<<wheel;
173 for(
int i=-3;
i<4;
i++) {
177 meName<<
"Ring_vs_Segment_Disk"<<
i;
185 meName<<
summaryDir_<<
"/RPC_System_Quality_Overview";
186 RpcOverview =
dbe_ ->
get(meName.str());
187 RpcOverview->
Reset();
190 for(
int r = 0 ;
r< 3;
r++) {
191 if (summary[
r] == 0 )
continue;
193 if(entries == 0)
continue;
194 for (
int x = 1;
x <= 7;
x++) {
236 std::stringstream meName;
239 meName<<
summaryDir_<<
"/RPCChamberQuality_"<<MESufix;
240 RCQ =
dbe_ ->
get(meName.str());
244 int pos = MESufix.find_last_of(
"_");
246 meName<<
summaryDir_<<
"/RPCChamberQuality_Distribution"<<MESufix.substr(pos);
247 RCQD =
dbe_ ->
get(meName.str());
248 if (RCQD) RCQD->
Reset();
253 HV =
dbe_ ->
get(meName.str());
257 LV =
dbe_ ->
get(meName.str());
260 meName <<
summaryDir_<<
"/DeadChannelFraction_"<<MESufix;
261 DEAD =
dbe_->
get(meName.str());
264 meName<<
summaryDir_<<
"/ClusterSizeIn1Bin_"<<MESufix;
265 CLS =
dbe_ ->
get(meName.str());
269 NoisySt =
dbe_ ->
get(meName.str());
272 meName<<
summaryDir_<<
"/NumberOfDigi_Mean_"<<MESufix;
273 MULT =
dbe_ ->
get(meName.str());
276 meName<<
summaryDir_<<
"/AsymmetryLeftRight_"<<MESufix;
277 Chip =
dbe_ ->
get(meName.str());
279 int xBinMax, yBinMax;
281 if (region != 0) xBinMax = 37;
284 for(
int x=1;
x<xBinMax;
x++) {
289 else if(
x==9 ||
x==11) yBinMax=16;
292 for(
int y=1;
y<yBinMax;
y++) {
297 float noisystrips = 0;
302 if(HV) hv = (int)HV ->getBinContent(
x,
y);
303 if(LV) lv = (int)LV ->getBinContent(
x,
y);
305 if( hv!=1 || lv!=1) {
308 if(DEAD) dead= DEAD -> getBinContent(
x,
y);
311 }
else if (0.33<=dead && dead<0.80 ){
314 if(CLS ) firstbin = CLS -> getBinContent(
x,
y);
315 if(firstbin >= 0.88) {
318 if(NoisySt) noisystrips = NoisySt -> getBinContent(
x,
y);
319 if (noisystrips > 0){
322 if(MULT) mult = MULT -> getBinContent(
x,
y);
337 if (RCQ) RCQ -> setBinContent(
x,
y, chamberState);
338 if (RCQD) RCQD ->
Fill(chamberState);
339 if (quality) quality->
Fill(chamberState);
T getUntrackedParameter(std::string const &, T const &) const
const std::string & getName(void) const
get name of ME
void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
void labelXAxisSegment(MonitorElement *myMe)
void labelYAxisRoll(MonitorElement *myMe, int region, int ring, bool useRollInfo)
void analyze(const edm::Event &iEvent, const edm::EventSetup &c)
static const std::string xLabels_[7]
double getEntries(void) const
get # of entries
void beginRun(const edm::Run &r, const edm::EventSetup &c)
virtual ~RPCChamberQuality()
math::XYZTLorentzVectorD LV
void labelYAxisRing(MonitorElement *myMe, int numberOfRings, bool useRollInfo)
void performeClientOperation(std::string, int, MonitorElement *)
RPCChamberQuality(const edm::ParameterSet &ps)
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
void removeElement(const std::string &name)
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. "my/long/dir/my_histo")
void labelXAxisSector(MonitorElement *myMe)
MonitorElement * RpcEvents
static const std::string regions_[3]
void fillMonitorElements()
double getBinContent(int binx) const
get content of bin (1-D)
void beginLuminosityBlock(edm::LuminosityBlock const &lumiSeg, edm::EventSetup const &context)
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
void endLuminosityBlock(edm::LuminosityBlock const &lumiSeg, edm::EventSetup const &c)
void Reset(void)
reset ME (ie. contents, errors, etc)
void setCurrentFolder(const std::string &fullpath)
void endRun(const edm::Run &r, const edm::EventSetup &c)