43 theFile =
new TFile(rootFileName.c_str(),
"READ");
60 MainFolder =
"DQMData/DT/";
99 string PsFileNameWithRun = PsFileName +
"_" + RunNum.str() +
".ps";
100 TPostScript psFile(PsFileNameWithRun.c_str(),111);
103 TCanvas
c1(
"c1",
"",600,780);
108 if(DataIntegrityHistos){
111 stringstream dduID; dduID << DDUId;
113 string histo_name1 = MainFolder +
"DataIntegrity/FED" + dduID.str() +
"/FED" + dduID.str() +
"_TTSValues";
114 TH1F *histo1 = (TH1F*)
theFile -> Get(histo_name1.c_str());
119 string histo_name2 = MainFolder +
"DataIntegrity/FED" + dduID.str() +
"/FED" + dduID.str() +
"_ROSStatus";
120 TH1F *histo2 = (TH1F*)
theFile -> Get(histo_name2.c_str());
125 string histo_name3 = MainFolder +
"DataIntegrity/FED" + dduID.str() +
"/FED" + dduID.str() +
"_ROSSummary";
126 TH1F *histo3 = (TH1F*)
theFile -> Get(histo_name3.c_str());
131 string histo_name4 = MainFolder +
"DataIntegrity/FED" + dduID.str() +
"/ROS1/FED" + dduID.str() +
"_ROS1_ROSError";
132 TH1F *histo4 = (TH1F*)
theFile -> Get(histo_name4.c_str());
147 vector<DTChamber*>::const_iterator ch_digi_it = muonGeom->chambers().begin();
148 vector<DTChamber*>::const_iterator ch_digi_end = muonGeom->chambers().end();
149 for (; ch_digi_it != ch_digi_end; ++ch_digi_it) {
151 stringstream wheel; wheel << ch.
wheel();
153 stringstream sector; sector << ch.
sector();
154 vector<const DTSuperLayer*>::const_iterator sl_it = (*ch_digi_it)->superLayers().begin();
155 vector<const DTSuperLayer*>::const_iterator sl_end = (*ch_digi_it)->superLayers().end();
157 for(; sl_it != sl_end; ++sl_it) {
159 vector<const DTLayer*>::const_iterator l_it = (*sl_it)->layers().begin();
160 vector<const DTLayer*>::const_iterator l_end = (*sl_it)->layers().end();
161 stringstream superLayer; superLayer << sl.
superlayer();
163 string digiFolder = MainFolder +
"DTDigiTask/Wheel" + wheel.str();
164 string histo_name = digiFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/TimeBoxes/TimeBox_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str()+
"_SL" + superLayer.str();
165 TH1F *
histo = (TH1F *)
theFile->Get(histo_name.c_str());
180 vector<DTChamber*>::const_iterator ch_digi2_it = muonGeom->chambers().begin();
181 vector<DTChamber*>::const_iterator ch_digi2_end = muonGeom->chambers().end();
182 for (; ch_digi2_it != ch_digi2_end; ++ch_digi2_it) {
184 stringstream wheel; wheel << ch.
wheel();
186 stringstream sector; sector << ch.
sector();
188 vector<const DTSuperLayer*>::const_iterator sl_it = (*ch_digi2_it)->superLayers().begin();
189 vector<const DTSuperLayer*>::const_iterator sl_end = (*ch_digi2_it)->superLayers().end();
191 for(; sl_it != sl_end; ++sl_it) {
193 vector<const DTLayer*>::const_iterator l_it = (*sl_it)->layers().begin();
194 vector<const DTLayer*>::const_iterator l_end = (*sl_it)->layers().end();
195 stringstream superLayer; superLayer << sl.
superlayer();
197 for(; l_it != l_end; ++l_it) {
199 stringstream layer; layer << layerId.
layer();
201 string digiFolder = MainFolder +
"DTDigiTask/Wheel" + wheel.str();
202 string histo_name = digiFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/Occupancies/OccupancyInTimeHits_perL_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str()+
"_SL" + superLayer.str() +
"_L" + layer.str();
203 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
220 vector<DTChamber*>::const_iterator ch_digi3_it = muonGeom->chambers().begin();
221 vector<DTChamber*>::const_iterator ch_digi3_end = muonGeom->chambers().end();
222 for (; ch_digi3_it != ch_digi3_end; ++ch_digi3_it) {
224 stringstream wheel; wheel << ch.
wheel();
226 stringstream sector; sector << ch.
sector();
228 vector<const DTSuperLayer*>::const_iterator sl_it = (*ch_digi3_it)->superLayers().begin();
229 vector<const DTSuperLayer*>::const_iterator sl_end = (*ch_digi3_it)->superLayers().end();
231 for(; sl_it != sl_end; ++sl_it) {
233 vector<const DTLayer*>::const_iterator l_it = (*sl_it)->layers().begin();
234 vector<const DTLayer*>::const_iterator l_end = (*sl_it)->layers().end();
235 stringstream superLayer; superLayer << sl.
superlayer();
237 for(; l_it != l_end; ++l_it) {
239 stringstream layer; layer << layerId.
layer();
241 string digiFolder = MainFolder +
"DTDigiTask/Wheel" + wheel.str();
242 string histo_name = digiFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/Occupancies/OccupancyNoise_perL_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str()+
"_SL" + superLayer.str() +
"_L" + layer.str();
243 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
260 vector<DTChamber*>::const_iterator ch_digi4_it = muonGeom->chambers().begin();
261 vector<DTChamber*>::const_iterator ch_digi4_end = muonGeom->chambers().end();
262 for (; ch_digi4_it != ch_digi4_end; ++ch_digi4_it) {
264 stringstream wheel; wheel << ch.
wheel();
266 stringstream sector; sector << ch.
sector();
268 vector<const DTSuperLayer*>::const_iterator sl_it = (*ch_digi4_it)->superLayers().begin();
269 vector<const DTSuperLayer*>::const_iterator sl_end = (*ch_digi4_it)->superLayers().end();
271 for(; sl_it != sl_end; ++sl_it) {
273 vector<const DTLayer*>::const_iterator l_it = (*sl_it)->layers().begin();
274 vector<const DTLayer*>::const_iterator l_end = (*sl_it)->layers().end();
275 stringstream superLayer; superLayer << sl.
superlayer();
277 for(; l_it != l_end; ++l_it) {
279 stringstream layer; layer << layerId.
layer();
281 string digiFolder = MainFolder +
"DTDigiTask/Wheel" + wheel.str();
282 string histo_name = digiFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/DigiPerEvent/DigiPerEvent_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str() +
"_SL" + superLayer.str() +
"_L" + layer.str();
283 TProfile *
histo = (TProfile*)
theFile -> Get(histo_name.c_str());
305 vector<DTChamber*>::const_iterator ch_reco_it = muonGeom->chambers().begin();
306 vector<DTChamber*>::const_iterator ch_reco_end = muonGeom->chambers().end();
307 for (; ch_reco_it != ch_reco_end; ++ch_reco_it) {
309 stringstream wheel; wheel << ch.
wheel();
311 stringstream sector; sector << ch.
sector();
313 string recoFolder = MainFolder +
"DTSegmentAnalysisTask/Wheel" + wheel.str();
314 string histo_name = recoFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/hN4DSeg_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str();
315 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
317 int pad = (ch.
station() - 1)*2 + 1;
321 histo_name = recoFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/h4DSegmXvsYInCham_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str();
322 TProfile *histo2 = (TProfile*)
theFile -> Get(histo_name.c_str());
324 int pad = (ch.
station() - 1)*2 + 2;
334 vector<DTChamber*>::const_iterator ch_reco2_it = muonGeom->chambers().begin();
335 vector<DTChamber*>::const_iterator ch_reco2_end = muonGeom->chambers().end();
336 for (; ch_reco2_it != ch_reco2_end; ++ch_reco2_it) {
338 stringstream wheel; wheel << ch.
wheel();
340 stringstream sector; sector << ch.
sector();
342 string recoFolder = MainFolder +
"DTSegmentAnalysisTask/Wheel" + wheel.str();
343 string histo_name = recoFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/h4DSegmPhiDirection_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str();
344 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
346 int pad = (ch.
station() - 1)*2 + 1;
350 histo_name = recoFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/h4DSegmThetaDirection_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str();
351 TH1F *histo2 = (TH1F*)
theFile -> Get(histo_name.c_str());
353 int pad = (ch.
station() - 1)*2 + 2;
368 vector<DTChamber*>::const_iterator ch_reso_it = muonGeom->chambers().begin();
369 vector<DTChamber*>::const_iterator ch_reso_end = muonGeom->chambers().end();
370 for (; ch_reso_it != ch_reso_end; ++ch_reso_it) {
372 stringstream wheel; wheel << ch.
wheel();
374 stringstream sector; sector << ch.
sector();
375 vector<const DTSuperLayer*>::const_iterator sl_it = (*ch_reso_it)->superLayers().begin();
376 vector<const DTSuperLayer*>::const_iterator sl_end = (*ch_reso_it)->superLayers().end();
378 for(; sl_it != sl_end; ++sl_it) {
380 stringstream superLayer; superLayer << sl.
superlayer();
382 string resoFolder = MainFolder +
"DTResolutionAnalysisTask/Wheel" + wheel.str();
383 string histo_name = resoFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/hResDist_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str() +
"_SL" + superLayer.str();
384 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
397 vector<DTChamber*>::const_iterator ch_reso2_it = muonGeom->chambers().begin();
398 vector<DTChamber*>::const_iterator ch_reso2_end = muonGeom->chambers().end();
399 for (; ch_reso2_it != ch_reso2_end; ++ch_reso2_it) {
401 stringstream wheel; wheel << ch.
wheel();
403 stringstream sector; sector << ch.
sector();
404 vector<const DTSuperLayer*>::const_iterator sl_it = (*ch_reso2_it)->superLayers().begin();
405 vector<const DTSuperLayer*>::const_iterator sl_end = (*ch_reso2_it)->superLayers().end();
407 for(; sl_it != sl_end; ++sl_it) {
409 stringstream superLayer; superLayer << sl.
superlayer();
411 string resoFolder = MainFolder +
"DTResolutionAnalysisTask/Wheel" + wheel.str();
412 string histo_name = resoFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/hResDistVsDist_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str() +
"_SL" + superLayer.str();
413 TProfile *
histo = (TProfile*)
theFile -> Get(histo_name.c_str());
426 if(EfficiencyHistos){
431 vector<DTChamber*>::const_iterator ch_eff_it = muonGeom->chambers().begin();
432 vector<DTChamber*>::const_iterator ch_eff_end = muonGeom->chambers().end();
433 for (; ch_eff_it != ch_eff_end; ++ch_eff_it) {
435 stringstream wheel; wheel << ch.
wheel();
437 stringstream sector; sector << ch.
sector();
439 vector<const DTSuperLayer*>::const_iterator sl_it = (*ch_eff_it)->superLayers().begin();
440 vector<const DTSuperLayer*>::const_iterator sl_end = (*ch_eff_it)->superLayers().end();
442 for(; sl_it != sl_end; ++sl_it) {
444 vector<const DTLayer*>::const_iterator l_it = (*sl_it)->layers().begin();
445 vector<const DTLayer*>::const_iterator l_end = (*sl_it)->layers().end();
446 stringstream superLayer; superLayer << sl.
superlayer();
448 for(; l_it != l_end; ++l_it) {
450 stringstream layer; layer << layerId.
layer();
452 string efficiencyFolder = MainFolder +
"Tests/DTEfficiency/Wheel" + wheel.str();
453 string histo_name = efficiencyFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/UnassEfficiency_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str() +
"_SL" + superLayer.str() +
"_L" + layer.str();
454 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
473 vector<DTChamber*>::const_iterator ch_eff2_it = muonGeom->chambers().begin();
474 vector<DTChamber*>::const_iterator ch_eff2_end = muonGeom->chambers().end();
475 for (; ch_eff2_it != ch_eff2_end; ++ch_eff2_it) {
477 stringstream wheel; wheel << ch.
wheel();
479 stringstream sector; sector << ch.
sector();
481 string efficiencyFolder = MainFolder +
"Tests/DTChamberEfficiency/Wheel" + wheel.str();
482 string histo_name = efficiencyFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/xEfficiency_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str();
483 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
494 vector<DTChamber*>::const_iterator ch_eff3_it = muonGeom->chambers().begin();
495 vector<DTChamber*>::const_iterator ch_eff3_end = muonGeom->chambers().end();
496 for (; ch_eff3_it != ch_eff3_end; ++ch_eff3_it) {
498 stringstream wheel; wheel << ch.
wheel();
500 stringstream sector; sector << ch.
sector();
502 string efficiencyFolder = MainFolder +
"Tests/DTChamberEfficiency/Wheel" + wheel.str();
503 string histo_name = efficiencyFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/yEfficiency_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str();
504 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
515 if(TestPulsesHistos){
519 vector<DTChamber*>::const_iterator ch_TP_it = muonGeom->chambers().begin();
520 vector<DTChamber*>::const_iterator ch_TP_end = muonGeom->chambers().end();
521 for (; ch_TP_it != ch_TP_end; ++ch_TP_it) {
523 stringstream wheel; wheel << ch.
wheel();
525 stringstream sector; sector << ch.
sector();
527 vector<const DTSuperLayer*>::const_iterator sl_it = (*ch_TP_it)->superLayers().begin();
528 vector<const DTSuperLayer*>::const_iterator sl_end = (*ch_TP_it)->superLayers().end();
530 for(; sl_it != sl_end; ++sl_it) {
532 vector<const DTLayer*>::const_iterator l_it = (*sl_it)->layers().begin();
533 vector<const DTLayer*>::const_iterator l_end = (*sl_it)->layers().end();
534 stringstream superLayer; superLayer << sl.
superlayer();
536 for(; l_it != l_end; ++l_it) {
538 stringstream layer; layer << layerId.
layer();
540 string testPulsesFolder = MainFolder +
"DTTestPulsesTask/Wheel" + wheel.str();
541 string histo_name = testPulsesFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/SuperLayer" + superLayer.str() +
"/TPProfile/TestPulses2D_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str() +
"_SL" + superLayer.str() +
"_L" + layer.str();
542 TProfile *
histo = (TProfile*)
theFile -> Get(histo_name.c_str());
563 vector<DTChamber*>::const_iterator ch_trigger_it = muonGeom->chambers().begin();
564 vector<DTChamber*>::const_iterator ch_trigger_end = muonGeom->chambers().end();
565 for (; ch_trigger_it != ch_trigger_end; ++ch_trigger_it) {
567 stringstream wheel; wheel << ch.
wheel();
569 stringstream sector; sector << ch.
sector();
571 string triggerFolder = MainFolder +
"DTLocalTriggerTask/Wheel" + wheel.str();
572 string histo_name = triggerFolder +
"/Sector" + sector.str() +
"/Station" + station.str() +
"/LocalTriggerPhi/DDU_BXvsQual_W" + wheel.str() +
"_Sec" + sector.str() +
"_St" + station.str();
573 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
583 vector<DTChamber*>::const_iterator ch_trigger2_it = muonGeom->chambers().begin();
584 vector<DTChamber*>::const_iterator ch_trigger2_end = muonGeom->chambers().end();
585 for (; ch_trigger2_it != ch_trigger2_end; ++ch_trigger2_it) {
587 stringstream wheel; wheel << ch.
wheel();
589 stringstream sector; sector << ch.
sector();
591 string triggerFolder = MainFolder +
"DTLocalTriggerTask/Wheel" + wheel.str();
592 string histo_name = triggerFolder +
"/Sector" + sector.str() +
"/Station" + station.str() +
"/LocalTriggerTheta/DDU_ThetaBXvsQual_W" + wheel.str() +
"_Sec" + sector.str() +
"_St" + station.str();
593 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
604 int counter1=0,counter2=0;
606 vector<DTChamber*>::const_iterator ch_trigger3_it = muonGeom->chambers().begin();
607 vector<DTChamber*>::const_iterator ch_trigger3_end = muonGeom->chambers().end();
608 for (; ch_trigger3_it != ch_trigger3_end; ++ch_trigger3_it) {
610 stringstream wheel; wheel << ch.
wheel();
611 stringstream sector; sector << ch.
sector();
613 string triggerFolder = MainFolder +
"Tests/DTLocalTrigger/Wheel" + wheel.str();
614 string histo_Name = triggerFolder +
"/Sector" + sector.str() +
"/LocalTriggerPhi/CorrFraction_Phi_W" + wheel.str() +
"_Sec" + sector.str();
615 TH1F *Histo1 = (TH1F*)
theFile -> Get(histo_Name.c_str());
616 if(Histo1 && counter1==0){
621 histo_Name = triggerFolder +
"/Sector" + sector.str() +
"/LocalTriggerTheta/HFraction_Theta_W" + wheel.str() +
"_Sec" + sector.str();
622 TH1F *Histo2 = (TH1F*)
theFile -> Get(histo_Name.c_str());
623 if(Histo2 && counter2==0){
635 vector<DTChamber*>::const_iterator ch_trigger4_it = muonGeom->chambers().begin();
636 vector<DTChamber*>::const_iterator ch_trigger4_end = muonGeom->chambers().end();
637 for (; ch_trigger4_it != ch_trigger4_end; ++ch_trigger4_it) {
639 stringstream wheel; wheel << ch.
wheel();
641 stringstream sector; sector << ch.
sector();
643 string triggerFolder = MainFolder +
"Tests/DTLocalTrigger/Wheel" + wheel.str();
644 string histo_name = triggerFolder +
"/Sector" + sector.str() +
"/Station" + station.str() +
"/TrigEffPos_Phi_W" + wheel.str() +
"_Sec" + sector.str() +
"_St" + station.str();
645 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
646 string histo_nameHHHL = triggerFolder +
"/Sector" + sector.str() +
"/Station" + station.str() +
"/TrigEffPosHHHL_Phi_W" + wheel.str() +
"_Sec" + sector.str() +
"_St" + station.str();
647 TH1F *histoHHHL = (TH1F*)
theFile -> Get(histo_nameHHHL.c_str());
650 histo->GetYaxis()->SetRangeUser(0,1.1);
653 histoHHHL->Draw(
"same");
663 vector<DTChamber*>::const_iterator ch_trigger5_it = muonGeom->chambers().begin();
664 vector<DTChamber*>::const_iterator ch_trigger5_end = muonGeom->chambers().end();
665 for (; ch_trigger5_it != ch_trigger5_end; ++ch_trigger5_it) {
667 stringstream wheel; wheel << ch.
wheel();
669 stringstream sector; sector << ch.
sector();
671 string triggerFolder = MainFolder +
"Tests/DTLocalTrigger/Wheel" + wheel.str();
672 string histo_name = triggerFolder +
"/Sector" + sector.str() +
"/Station" + station.str() +
"/TrigEffAngle_Phi_W" + wheel.str() +
"_Sec" + sector.str() +
"_St" + station.str();
673 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
676 histo->GetYaxis()->SetRangeUser(0,1.1);
686 vector<DTChamber*>::const_iterator ch_trigger6_it = muonGeom->chambers().begin();
687 vector<DTChamber*>::const_iterator ch_trigger6_end = muonGeom->chambers().end();
688 for (; ch_trigger6_it != ch_trigger6_end; ++ch_trigger6_it) {
690 stringstream wheel; wheel << ch.
wheel();
692 stringstream sector; sector << ch.
sector();
694 string triggerFolder = MainFolder +
"Tests/DTLocalTrigger/Wheel" + wheel.str();
695 string histo_name = triggerFolder +
"/Sector" + sector.str() +
"/Station" + station.str() +
"/TrigEffPos_Theta_W" + wheel.str() +
"_Sec" + sector.str() +
"_St" + station.str();
696 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
699 histo->GetYaxis()->SetRangeUser(0,1.1);
709 vector<DTChamber*>::const_iterator ch_trigger7_it = muonGeom->chambers().begin();
710 vector<DTChamber*>::const_iterator ch_trigger7_end = muonGeom->chambers().end();
711 for (; ch_trigger7_it != ch_trigger7_end; ++ch_trigger7_it) {
713 stringstream wheel; wheel << ch.
wheel();
715 stringstream sector; sector << ch.
sector();
717 string triggerFolder = MainFolder +
"Tests/DTLocalTrigger/Wheel" + wheel.str();
718 string histo_name = triggerFolder +
"/Sector" + sector.str() +
"/Station" + station.str() +
"/TrigEffAngle_Theta_W" + wheel.str() +
"_Sec" + sector.str() +
"_St" + station.str();
719 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
721 histo->GetYaxis()->SetRangeUser(0,1.1);
T getUntrackedParameter(std::string const &, T const &) const
void analyze(const edm::Event &e, const edm::EventSetup &c)
Analyze.
int layer() const
Return the layer number.
void beginRun(const edm::Run &run, const edm::EventSetup &setup)
BeginRun.
virtual ~DTCreateSummaryHistos()
Destructor.
int superlayer() const
Return the superlayer number (deprecated method name)
DTCreateSummaryHistos(const edm::ParameterSet &ps)
Constructor.
int station() const
Return the station number.
int wheel() const
Return the wheel number.