43 theFile =
new TFile(rootFileName.c_str(),
"READ");
60 MainFolder =
"DQMData/DT/";
85 string PsFileNameWithRun = PsFileName +
"_" + RunNum.str() +
".ps";
86 TPostScript psFile(PsFileNameWithRun.c_str(),111);
89 TCanvas
c1(
"c1",
"",600,780);
94 if(DataIntegrityHistos){
97 stringstream dduID; dduID << DDUId;
99 string histo_name1 = MainFolder +
"DataIntegrity/FED" + dduID.str() +
"/FED" + dduID.str() +
"_TTSValues";
100 TH1F *histo1 = (TH1F*)
theFile -> Get(histo_name1.c_str());
105 string histo_name2 = MainFolder +
"DataIntegrity/FED" + dduID.str() +
"/FED" + dduID.str() +
"_ROSStatus";
106 TH1F *histo2 = (TH1F*)
theFile -> Get(histo_name2.c_str());
111 string histo_name3 = MainFolder +
"DataIntegrity/FED" + dduID.str() +
"/FED" + dduID.str() +
"_ROSSummary";
112 TH1F *histo3 = (TH1F*)
theFile -> Get(histo_name3.c_str());
117 string histo_name4 = MainFolder +
"DataIntegrity/FED" + dduID.str() +
"/ROS1/FED" + dduID.str() +
"_ROS1_ROSError";
118 TH1F *histo4 = (TH1F*)
theFile -> Get(histo_name4.c_str());
133 vector<const DTChamber*>::const_iterator ch_digi_it = muonGeom->chambers().begin();
134 vector<const DTChamber*>::const_iterator ch_digi_end = muonGeom->chambers().end();
135 for (; ch_digi_it != ch_digi_end; ++ch_digi_it) {
137 stringstream wheel; wheel << ch.
wheel();
139 stringstream sector; sector << ch.
sector();
140 vector<const DTSuperLayer*>::const_iterator sl_it = (*ch_digi_it)->superLayers().begin();
141 vector<const DTSuperLayer*>::const_iterator sl_end = (*ch_digi_it)->superLayers().end();
143 for(; sl_it != sl_end; ++sl_it) {
145 stringstream superLayer; superLayer << sl.
superlayer();
147 string digiFolder = MainFolder +
"DTDigiTask/Wheel" + wheel.str();
148 string histo_name = digiFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/TimeBoxes/TimeBox_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str()+
"_SL" + superLayer.str();
149 TH1F *
histo = (TH1F *)
theFile->Get(histo_name.c_str());
164 vector<const DTChamber*>::const_iterator ch_digi2_it = muonGeom->chambers().begin();
165 vector<const DTChamber*>::const_iterator ch_digi2_end = muonGeom->chambers().end();
166 for (; ch_digi2_it != ch_digi2_end; ++ch_digi2_it) {
168 stringstream wheel; wheel << ch.
wheel();
170 stringstream sector; sector << ch.
sector();
172 vector<const DTSuperLayer*>::const_iterator sl_it = (*ch_digi2_it)->superLayers().begin();
173 vector<const DTSuperLayer*>::const_iterator sl_end = (*ch_digi2_it)->superLayers().end();
175 for(; sl_it != sl_end; ++sl_it) {
177 vector<const DTLayer*>::const_iterator l_it = (*sl_it)->layers().begin();
178 vector<const DTLayer*>::const_iterator l_end = (*sl_it)->layers().end();
179 stringstream superLayer; superLayer << sl.
superlayer();
181 for(; l_it != l_end; ++l_it) {
183 stringstream layer; layer << layerId.
layer();
185 string digiFolder = MainFolder +
"DTDigiTask/Wheel" + wheel.str();
186 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();
187 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
204 vector<const DTChamber*>::const_iterator ch_digi3_it = muonGeom->chambers().begin();
205 vector<const DTChamber*>::const_iterator ch_digi3_end = muonGeom->chambers().end();
206 for (; ch_digi3_it != ch_digi3_end; ++ch_digi3_it) {
208 stringstream wheel; wheel << ch.
wheel();
210 stringstream sector; sector << ch.
sector();
212 vector<const DTSuperLayer*>::const_iterator sl_it = (*ch_digi3_it)->superLayers().begin();
213 vector<const DTSuperLayer*>::const_iterator sl_end = (*ch_digi3_it)->superLayers().end();
215 for(; sl_it != sl_end; ++sl_it) {
217 vector<const DTLayer*>::const_iterator l_it = (*sl_it)->layers().begin();
218 vector<const DTLayer*>::const_iterator l_end = (*sl_it)->layers().end();
219 stringstream superLayer; superLayer << sl.
superlayer();
221 for(; l_it != l_end; ++l_it) {
223 stringstream layer; layer << layerId.
layer();
225 string digiFolder = MainFolder +
"DTDigiTask/Wheel" + wheel.str();
226 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();
227 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
244 vector<const DTChamber*>::const_iterator ch_digi4_it = muonGeom->chambers().begin();
245 vector<const DTChamber*>::const_iterator ch_digi4_end = muonGeom->chambers().end();
246 for (; ch_digi4_it != ch_digi4_end; ++ch_digi4_it) {
248 stringstream wheel; wheel << ch.
wheel();
250 stringstream sector; sector << ch.
sector();
252 vector<const DTSuperLayer*>::const_iterator sl_it = (*ch_digi4_it)->superLayers().begin();
253 vector<const DTSuperLayer*>::const_iterator sl_end = (*ch_digi4_it)->superLayers().end();
255 for(; sl_it != sl_end; ++sl_it) {
257 vector<const DTLayer*>::const_iterator l_it = (*sl_it)->layers().begin();
258 vector<const DTLayer*>::const_iterator l_end = (*sl_it)->layers().end();
259 stringstream superLayer; superLayer << sl.
superlayer();
261 for(; l_it != l_end; ++l_it) {
263 stringstream layer; layer << layerId.
layer();
265 string digiFolder = MainFolder +
"DTDigiTask/Wheel" + wheel.str();
266 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();
267 TProfile *
histo = (TProfile*)
theFile -> Get(histo_name.c_str());
289 vector<const DTChamber*>::const_iterator ch_reco_it = muonGeom->chambers().begin();
290 vector<const DTChamber*>::const_iterator ch_reco_end = muonGeom->chambers().end();
291 for (; ch_reco_it != ch_reco_end; ++ch_reco_it) {
293 stringstream wheel; wheel << ch.
wheel();
295 stringstream sector; sector << ch.
sector();
297 string recoFolder = MainFolder +
"DTSegmentAnalysisTask/Wheel" + wheel.str();
298 string histo_name = recoFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/hN4DSeg_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str();
299 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
301 int pad = (ch.
station() - 1)*2 + 1;
305 histo_name = recoFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/h4DSegmXvsYInCham_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str();
306 TProfile *histo2 = (TProfile*)
theFile -> Get(histo_name.c_str());
308 int pad = (ch.
station() - 1)*2 + 2;
318 vector<const DTChamber*>::const_iterator ch_reco2_it = muonGeom->chambers().begin();
319 vector<const DTChamber*>::const_iterator ch_reco2_end = muonGeom->chambers().end();
320 for (; ch_reco2_it != ch_reco2_end; ++ch_reco2_it) {
322 stringstream wheel; wheel << ch.
wheel();
324 stringstream sector; sector << ch.
sector();
326 string recoFolder = MainFolder +
"DTSegmentAnalysisTask/Wheel" + wheel.str();
327 string histo_name = recoFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/h4DSegmPhiDirection_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str();
328 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
330 int pad = (ch.
station() - 1)*2 + 1;
334 histo_name = recoFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/h4DSegmThetaDirection_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str();
335 TH1F *histo2 = (TH1F*)
theFile -> Get(histo_name.c_str());
337 int pad = (ch.
station() - 1)*2 + 2;
352 vector<const DTChamber*>::const_iterator ch_reso_it = muonGeom->chambers().begin();
353 vector<const DTChamber*>::const_iterator ch_reso_end = muonGeom->chambers().end();
354 for (; ch_reso_it != ch_reso_end; ++ch_reso_it) {
356 stringstream wheel; wheel << ch.
wheel();
358 stringstream sector; sector << ch.
sector();
359 vector<const DTSuperLayer*>::const_iterator sl_it = (*ch_reso_it)->superLayers().begin();
360 vector<const DTSuperLayer*>::const_iterator sl_end = (*ch_reso_it)->superLayers().end();
362 for(; sl_it != sl_end; ++sl_it) {
364 stringstream superLayer; superLayer << sl.
superlayer();
366 string resoFolder = MainFolder +
"DTResolutionAnalysisTask/Wheel" + wheel.str();
367 string histo_name = resoFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/hResDist_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str() +
"_SL" + superLayer.str();
368 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
381 vector<const DTChamber*>::const_iterator ch_reso2_it = muonGeom->chambers().begin();
382 vector<const DTChamber*>::const_iterator ch_reso2_end = muonGeom->chambers().end();
383 for (; ch_reso2_it != ch_reso2_end; ++ch_reso2_it) {
385 stringstream wheel; wheel << ch.
wheel();
387 stringstream sector; sector << ch.
sector();
388 vector<const DTSuperLayer*>::const_iterator sl_it = (*ch_reso2_it)->superLayers().begin();
389 vector<const DTSuperLayer*>::const_iterator sl_end = (*ch_reso2_it)->superLayers().end();
391 for(; sl_it != sl_end; ++sl_it) {
393 stringstream superLayer; superLayer << sl.
superlayer();
395 string resoFolder = MainFolder +
"DTResolutionAnalysisTask/Wheel" + wheel.str();
396 string histo_name = resoFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/hResDistVsDist_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str() +
"_SL" + superLayer.str();
397 TProfile *
histo = (TProfile*)
theFile -> Get(histo_name.c_str());
410 if(EfficiencyHistos){
415 vector<const DTChamber*>::const_iterator ch_eff_it = muonGeom->chambers().begin();
416 vector<const DTChamber*>::const_iterator ch_eff_end = muonGeom->chambers().end();
417 for (; ch_eff_it != ch_eff_end; ++ch_eff_it) {
419 stringstream wheel; wheel << ch.
wheel();
421 stringstream sector; sector << ch.
sector();
423 vector<const DTSuperLayer*>::const_iterator sl_it = (*ch_eff_it)->superLayers().begin();
424 vector<const DTSuperLayer*>::const_iterator sl_end = (*ch_eff_it)->superLayers().end();
426 for(; sl_it != sl_end; ++sl_it) {
428 vector<const DTLayer*>::const_iterator l_it = (*sl_it)->layers().begin();
429 vector<const DTLayer*>::const_iterator l_end = (*sl_it)->layers().end();
430 stringstream superLayer; superLayer << sl.
superlayer();
432 for(; l_it != l_end; ++l_it) {
434 stringstream layer; layer << layerId.
layer();
436 string efficiencyFolder = MainFolder +
"Tests/DTEfficiency/Wheel" + wheel.str();
437 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();
438 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
457 vector<const DTChamber*>::const_iterator ch_eff2_it = muonGeom->chambers().begin();
458 vector<const DTChamber*>::const_iterator ch_eff2_end = muonGeom->chambers().end();
459 for (; ch_eff2_it != ch_eff2_end; ++ch_eff2_it) {
461 stringstream wheel; wheel << ch.
wheel();
463 stringstream sector; sector << ch.
sector();
465 string efficiencyFolder = MainFolder +
"Tests/DTChamberEfficiency/Wheel" + wheel.str();
466 string histo_name = efficiencyFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/xEfficiency_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str();
467 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
478 vector<const DTChamber*>::const_iterator ch_eff3_it = muonGeom->chambers().begin();
479 vector<const DTChamber*>::const_iterator ch_eff3_end = muonGeom->chambers().end();
480 for (; ch_eff3_it != ch_eff3_end; ++ch_eff3_it) {
482 stringstream wheel; wheel << ch.
wheel();
484 stringstream sector; sector << ch.
sector();
486 string efficiencyFolder = MainFolder +
"Tests/DTChamberEfficiency/Wheel" + wheel.str();
487 string histo_name = efficiencyFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/yEfficiency_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str();
488 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
499 if(TestPulsesHistos){
503 vector<const DTChamber*>::const_iterator ch_TP_it = muonGeom->chambers().begin();
504 vector<const DTChamber*>::const_iterator ch_TP_end = muonGeom->chambers().end();
505 for (; ch_TP_it != ch_TP_end; ++ch_TP_it) {
507 stringstream wheel; wheel << ch.
wheel();
509 stringstream sector; sector << ch.
sector();
511 vector<const DTSuperLayer*>::const_iterator sl_it = (*ch_TP_it)->superLayers().begin();
512 vector<const DTSuperLayer*>::const_iterator sl_end = (*ch_TP_it)->superLayers().end();
514 for(; sl_it != sl_end; ++sl_it) {
516 vector<const DTLayer*>::const_iterator l_it = (*sl_it)->layers().begin();
517 vector<const DTLayer*>::const_iterator l_end = (*sl_it)->layers().end();
518 stringstream superLayer; superLayer << sl.
superlayer();
520 for(; l_it != l_end; ++l_it) {
522 stringstream layer; layer << layerId.
layer();
524 string testPulsesFolder = MainFolder +
"DTTestPulsesTask/Wheel" + wheel.str();
525 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();
526 TProfile *
histo = (TProfile*)
theFile -> Get(histo_name.c_str());
547 vector<const DTChamber*>::const_iterator ch_trigger_it = muonGeom->chambers().begin();
548 vector<const DTChamber*>::const_iterator ch_trigger_end = muonGeom->chambers().end();
549 for (; ch_trigger_it != ch_trigger_end; ++ch_trigger_it) {
551 stringstream wheel; wheel << ch.
wheel();
553 stringstream sector; sector << ch.
sector();
555 string triggerFolder = MainFolder +
"DTLocalTriggerTask/Wheel" + wheel.str();
556 string histo_name = triggerFolder +
"/Sector" + sector.str() +
"/Station" + station.str() +
"/LocalTriggerPhi/DDU_BXvsQual_W" + wheel.str() +
"_Sec" + sector.str() +
"_St" + station.str();
557 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
567 vector<const DTChamber*>::const_iterator ch_trigger2_it = muonGeom->chambers().begin();
568 vector<const DTChamber*>::const_iterator ch_trigger2_end = muonGeom->chambers().end();
569 for (; ch_trigger2_it != ch_trigger2_end; ++ch_trigger2_it) {
571 stringstream wheel; wheel << ch.
wheel();
573 stringstream sector; sector << ch.
sector();
575 string triggerFolder = MainFolder +
"DTLocalTriggerTask/Wheel" + wheel.str();
576 string histo_name = triggerFolder +
"/Sector" + sector.str() +
"/Station" + station.str() +
"/LocalTriggerTheta/DDU_ThetaBXvsQual_W" + wheel.str() +
"_Sec" + sector.str() +
"_St" + station.str();
577 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
588 int counter1=0,counter2=0;
590 vector<const DTChamber*>::const_iterator ch_trigger3_it = muonGeom->chambers().begin();
591 vector<const DTChamber*>::const_iterator ch_trigger3_end = muonGeom->chambers().end();
592 for (; ch_trigger3_it != ch_trigger3_end; ++ch_trigger3_it) {
594 stringstream wheel; wheel << ch.
wheel();
595 stringstream sector; sector << ch.
sector();
597 string triggerFolder = MainFolder +
"Tests/DTLocalTrigger/Wheel" + wheel.str();
598 string histo_Name = triggerFolder +
"/Sector" + sector.str() +
"/LocalTriggerPhi/CorrFraction_Phi_W" + wheel.str() +
"_Sec" + sector.str();
599 TH1F *Histo1 = (TH1F*)
theFile -> Get(histo_Name.c_str());
600 if(Histo1 && counter1==0){
605 histo_Name = triggerFolder +
"/Sector" + sector.str() +
"/LocalTriggerTheta/HFraction_Theta_W" + wheel.str() +
"_Sec" + sector.str();
606 TH1F *Histo2 = (TH1F*)
theFile -> Get(histo_Name.c_str());
607 if(Histo2 && counter2==0){
619 vector<const DTChamber*>::const_iterator ch_trigger4_it = muonGeom->chambers().begin();
620 vector<const DTChamber*>::const_iterator ch_trigger4_end = muonGeom->chambers().end();
621 for (; ch_trigger4_it != ch_trigger4_end; ++ch_trigger4_it) {
623 stringstream wheel; wheel << ch.
wheel();
625 stringstream sector; sector << ch.
sector();
627 string triggerFolder = MainFolder +
"Tests/DTLocalTrigger/Wheel" + wheel.str();
628 string histo_name = triggerFolder +
"/Sector" + sector.str() +
"/Station" + station.str() +
"/TrigEffPos_Phi_W" + wheel.str() +
"_Sec" + sector.str() +
"_St" + station.str();
629 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
630 string histo_nameHHHL = triggerFolder +
"/Sector" + sector.str() +
"/Station" + station.str() +
"/TrigEffPosHHHL_Phi_W" + wheel.str() +
"_Sec" + sector.str() +
"_St" + station.str();
631 TH1F *histoHHHL = (TH1F*)
theFile -> Get(histo_nameHHHL.c_str());
634 histo->GetYaxis()->SetRangeUser(0,1.1);
637 histoHHHL->Draw(
"same");
647 vector<const DTChamber*>::const_iterator ch_trigger5_it = muonGeom->chambers().begin();
648 vector<const DTChamber*>::const_iterator ch_trigger5_end = muonGeom->chambers().end();
649 for (; ch_trigger5_it != ch_trigger5_end; ++ch_trigger5_it) {
651 stringstream wheel; wheel << ch.
wheel();
653 stringstream sector; sector << ch.
sector();
655 string triggerFolder = MainFolder +
"Tests/DTLocalTrigger/Wheel" + wheel.str();
656 string histo_name = triggerFolder +
"/Sector" + sector.str() +
"/Station" + station.str() +
"/TrigEffAngle_Phi_W" + wheel.str() +
"_Sec" + sector.str() +
"_St" + station.str();
657 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
660 histo->GetYaxis()->SetRangeUser(0,1.1);
670 vector<const DTChamber*>::const_iterator ch_trigger6_it = muonGeom->chambers().begin();
671 vector<const DTChamber*>::const_iterator ch_trigger6_end = muonGeom->chambers().end();
672 for (; ch_trigger6_it != ch_trigger6_end; ++ch_trigger6_it) {
674 stringstream wheel; wheel << ch.
wheel();
676 stringstream sector; sector << ch.
sector();
678 string triggerFolder = MainFolder +
"Tests/DTLocalTrigger/Wheel" + wheel.str();
679 string histo_name = triggerFolder +
"/Sector" + sector.str() +
"/Station" + station.str() +
"/TrigEffPos_Theta_W" + wheel.str() +
"_Sec" + sector.str() +
"_St" + station.str();
680 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
683 histo->GetYaxis()->SetRangeUser(0,1.1);
693 vector<const DTChamber*>::const_iterator ch_trigger7_it = muonGeom->chambers().begin();
694 vector<const DTChamber*>::const_iterator ch_trigger7_end = muonGeom->chambers().end();
695 for (; ch_trigger7_it != ch_trigger7_end; ++ch_trigger7_it) {
697 stringstream wheel; wheel << ch.
wheel();
699 stringstream sector; sector << ch.
sector();
701 string triggerFolder = MainFolder +
"Tests/DTLocalTrigger/Wheel" + wheel.str();
702 string histo_name = triggerFolder +
"/Sector" + sector.str() +
"/Station" + station.str() +
"/TrigEffAngle_Theta_W" + wheel.str() +
"_Sec" + sector.str() +
"_St" + station.str();
703 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
705 histo->GetYaxis()->SetRangeUser(0,1.1);
T getUntrackedParameter(std::string const &, T const &) const
int layer() const
Return the layer number.
void beginRun(const edm::Run &run, const edm::EventSetup &setup)
BeginRun.
void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override
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.