41 theFile =
new TFile(rootFileName.c_str(),
"READ");
58 MainFolder =
"DQMData/DT/";
97 string PsFileNameWithRun = PsFileName +
"_" + RunNum.str() +
".ps";
98 TPostScript psFile(PsFileNameWithRun.c_str(),111);
101 TCanvas
c1(
"c1",
"",600,780);
106 if(DataIntegrityHistos){
109 stringstream dduID; dduID << DDUId;
111 string histo_name1 = MainFolder +
"DataIntegrity/FED" + dduID.str() +
"/FED" + dduID.str() +
"_TTSValues";
112 TH1F *histo1 = (TH1F*)
theFile -> Get(histo_name1.c_str());
117 string histo_name2 = MainFolder +
"DataIntegrity/FED" + dduID.str() +
"/FED" + dduID.str() +
"_ROSStatus";
118 TH1F *histo2 = (TH1F*)
theFile -> Get(histo_name2.c_str());
123 string histo_name3 = MainFolder +
"DataIntegrity/FED" + dduID.str() +
"/FED" + dduID.str() +
"_ROSSummary";
124 TH1F *histo3 = (TH1F*)
theFile -> Get(histo_name3.c_str());
129 string histo_name4 = MainFolder +
"DataIntegrity/FED" + dduID.str() +
"/ROS1/FED" + dduID.str() +
"_ROS1_ROSError";
130 TH1F *histo4 = (TH1F*)
theFile -> Get(histo_name4.c_str());
145 vector<const DTChamber*>::const_iterator ch_digi_it = muonGeom->chambers().begin();
146 vector<const DTChamber*>::const_iterator ch_digi_end = muonGeom->chambers().end();
147 for (; ch_digi_it != ch_digi_end; ++ch_digi_it) {
149 stringstream wheel; wheel << ch.
wheel();
151 stringstream sector; sector << ch.
sector();
152 vector<const DTSuperLayer*>::const_iterator sl_it = (*ch_digi_it)->superLayers().begin();
153 vector<const DTSuperLayer*>::const_iterator sl_end = (*ch_digi_it)->superLayers().end();
155 for(; sl_it != sl_end; ++sl_it) {
157 stringstream superLayer; superLayer << sl.
superlayer();
159 string digiFolder = MainFolder +
"DTDigiTask/Wheel" + wheel.str();
160 string histo_name = digiFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/TimeBoxes/TimeBox_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str()+
"_SL" + superLayer.str();
161 TH1F *
histo = (TH1F *)
theFile->Get(histo_name.c_str());
176 vector<const DTChamber*>::const_iterator ch_digi2_it = muonGeom->chambers().begin();
177 vector<const DTChamber*>::const_iterator ch_digi2_end = muonGeom->chambers().end();
178 for (; ch_digi2_it != ch_digi2_end; ++ch_digi2_it) {
180 stringstream wheel; wheel << ch.
wheel();
182 stringstream sector; sector << ch.
sector();
184 vector<const DTSuperLayer*>::const_iterator sl_it = (*ch_digi2_it)->superLayers().begin();
185 vector<const DTSuperLayer*>::const_iterator sl_end = (*ch_digi2_it)->superLayers().end();
187 for(; sl_it != sl_end; ++sl_it) {
189 vector<const DTLayer*>::const_iterator l_it = (*sl_it)->layers().begin();
190 vector<const DTLayer*>::const_iterator l_end = (*sl_it)->layers().end();
191 stringstream superLayer; superLayer << sl.
superlayer();
193 for(; l_it != l_end; ++l_it) {
195 stringstream layer; layer << layerId.
layer();
197 string digiFolder = MainFolder +
"DTDigiTask/Wheel" + wheel.str();
198 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();
199 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
216 vector<const DTChamber*>::const_iterator ch_digi3_it = muonGeom->chambers().begin();
217 vector<const DTChamber*>::const_iterator ch_digi3_end = muonGeom->chambers().end();
218 for (; ch_digi3_it != ch_digi3_end; ++ch_digi3_it) {
220 stringstream wheel; wheel << ch.
wheel();
222 stringstream sector; sector << ch.
sector();
224 vector<const DTSuperLayer*>::const_iterator sl_it = (*ch_digi3_it)->superLayers().begin();
225 vector<const DTSuperLayer*>::const_iterator sl_end = (*ch_digi3_it)->superLayers().end();
227 for(; sl_it != sl_end; ++sl_it) {
229 vector<const DTLayer*>::const_iterator l_it = (*sl_it)->layers().begin();
230 vector<const DTLayer*>::const_iterator l_end = (*sl_it)->layers().end();
231 stringstream superLayer; superLayer << sl.
superlayer();
233 for(; l_it != l_end; ++l_it) {
235 stringstream layer; layer << layerId.
layer();
237 string digiFolder = MainFolder +
"DTDigiTask/Wheel" + wheel.str();
238 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();
239 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
256 vector<const DTChamber*>::const_iterator ch_digi4_it = muonGeom->chambers().begin();
257 vector<const DTChamber*>::const_iterator ch_digi4_end = muonGeom->chambers().end();
258 for (; ch_digi4_it != ch_digi4_end; ++ch_digi4_it) {
260 stringstream wheel; wheel << ch.
wheel();
262 stringstream sector; sector << ch.
sector();
264 vector<const DTSuperLayer*>::const_iterator sl_it = (*ch_digi4_it)->superLayers().begin();
265 vector<const DTSuperLayer*>::const_iterator sl_end = (*ch_digi4_it)->superLayers().end();
267 for(; sl_it != sl_end; ++sl_it) {
269 vector<const DTLayer*>::const_iterator l_it = (*sl_it)->layers().begin();
270 vector<const DTLayer*>::const_iterator l_end = (*sl_it)->layers().end();
271 stringstream superLayer; superLayer << sl.
superlayer();
273 for(; l_it != l_end; ++l_it) {
275 stringstream layer; layer << layerId.
layer();
277 string digiFolder = MainFolder +
"DTDigiTask/Wheel" + wheel.str();
278 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();
279 TProfile *
histo = (TProfile*)
theFile -> Get(histo_name.c_str());
301 vector<const DTChamber*>::const_iterator ch_reco_it = muonGeom->chambers().begin();
302 vector<const DTChamber*>::const_iterator ch_reco_end = muonGeom->chambers().end();
303 for (; ch_reco_it != ch_reco_end; ++ch_reco_it) {
305 stringstream wheel; wheel << ch.
wheel();
307 stringstream sector; sector << ch.
sector();
309 string recoFolder = MainFolder +
"DTSegmentAnalysisTask/Wheel" + wheel.str();
310 string histo_name = recoFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/hN4DSeg_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str();
311 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
313 int pad = (ch.
station() - 1)*2 + 1;
317 histo_name = recoFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/h4DSegmXvsYInCham_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str();
318 TProfile *histo2 = (TProfile*)
theFile -> Get(histo_name.c_str());
320 int pad = (ch.
station() - 1)*2 + 2;
330 vector<const DTChamber*>::const_iterator ch_reco2_it = muonGeom->chambers().begin();
331 vector<const DTChamber*>::const_iterator ch_reco2_end = muonGeom->chambers().end();
332 for (; ch_reco2_it != ch_reco2_end; ++ch_reco2_it) {
334 stringstream wheel; wheel << ch.
wheel();
336 stringstream sector; sector << ch.
sector();
338 string recoFolder = MainFolder +
"DTSegmentAnalysisTask/Wheel" + wheel.str();
339 string histo_name = recoFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/h4DSegmPhiDirection_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str();
340 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
342 int pad = (ch.
station() - 1)*2 + 1;
346 histo_name = recoFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/h4DSegmThetaDirection_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str();
347 TH1F *histo2 = (TH1F*)
theFile -> Get(histo_name.c_str());
349 int pad = (ch.
station() - 1)*2 + 2;
364 vector<const DTChamber*>::const_iterator ch_reso_it = muonGeom->chambers().begin();
365 vector<const DTChamber*>::const_iterator ch_reso_end = muonGeom->chambers().end();
366 for (; ch_reso_it != ch_reso_end; ++ch_reso_it) {
368 stringstream wheel; wheel << ch.
wheel();
370 stringstream sector; sector << ch.
sector();
371 vector<const DTSuperLayer*>::const_iterator sl_it = (*ch_reso_it)->superLayers().begin();
372 vector<const DTSuperLayer*>::const_iterator sl_end = (*ch_reso_it)->superLayers().end();
374 for(; sl_it != sl_end; ++sl_it) {
376 stringstream superLayer; superLayer << sl.
superlayer();
378 string resoFolder = MainFolder +
"DTResolutionAnalysisTask/Wheel" + wheel.str();
379 string histo_name = resoFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/hResDist_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str() +
"_SL" + superLayer.str();
380 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
393 vector<const DTChamber*>::const_iterator ch_reso2_it = muonGeom->chambers().begin();
394 vector<const DTChamber*>::const_iterator ch_reso2_end = muonGeom->chambers().end();
395 for (; ch_reso2_it != ch_reso2_end; ++ch_reso2_it) {
397 stringstream wheel; wheel << ch.
wheel();
399 stringstream sector; sector << ch.
sector();
400 vector<const DTSuperLayer*>::const_iterator sl_it = (*ch_reso2_it)->superLayers().begin();
401 vector<const DTSuperLayer*>::const_iterator sl_end = (*ch_reso2_it)->superLayers().end();
403 for(; sl_it != sl_end; ++sl_it) {
405 stringstream superLayer; superLayer << sl.
superlayer();
407 string resoFolder = MainFolder +
"DTResolutionAnalysisTask/Wheel" + wheel.str();
408 string histo_name = resoFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/hResDistVsDist_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str() +
"_SL" + superLayer.str();
409 TProfile *
histo = (TProfile*)
theFile -> Get(histo_name.c_str());
422 if(EfficiencyHistos){
427 vector<const DTChamber*>::const_iterator ch_eff_it = muonGeom->chambers().begin();
428 vector<const DTChamber*>::const_iterator ch_eff_end = muonGeom->chambers().end();
429 for (; ch_eff_it != ch_eff_end; ++ch_eff_it) {
431 stringstream wheel; wheel << ch.
wheel();
433 stringstream sector; sector << ch.
sector();
435 vector<const DTSuperLayer*>::const_iterator sl_it = (*ch_eff_it)->superLayers().begin();
436 vector<const DTSuperLayer*>::const_iterator sl_end = (*ch_eff_it)->superLayers().end();
438 for(; sl_it != sl_end; ++sl_it) {
440 vector<const DTLayer*>::const_iterator l_it = (*sl_it)->layers().begin();
441 vector<const DTLayer*>::const_iterator l_end = (*sl_it)->layers().end();
442 stringstream superLayer; superLayer << sl.
superlayer();
444 for(; l_it != l_end; ++l_it) {
446 stringstream layer; layer << layerId.
layer();
448 string efficiencyFolder = MainFolder +
"Tests/DTEfficiency/Wheel" + wheel.str();
449 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();
450 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
469 vector<const DTChamber*>::const_iterator ch_eff2_it = muonGeom->chambers().begin();
470 vector<const DTChamber*>::const_iterator ch_eff2_end = muonGeom->chambers().end();
471 for (; ch_eff2_it != ch_eff2_end; ++ch_eff2_it) {
473 stringstream wheel; wheel << ch.
wheel();
475 stringstream sector; sector << ch.
sector();
477 string efficiencyFolder = MainFolder +
"Tests/DTChamberEfficiency/Wheel" + wheel.str();
478 string histo_name = efficiencyFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/xEfficiency_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str();
479 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
490 vector<const DTChamber*>::const_iterator ch_eff3_it = muonGeom->chambers().begin();
491 vector<const DTChamber*>::const_iterator ch_eff3_end = muonGeom->chambers().end();
492 for (; ch_eff3_it != ch_eff3_end; ++ch_eff3_it) {
494 stringstream wheel; wheel << ch.
wheel();
496 stringstream sector; sector << ch.
sector();
498 string efficiencyFolder = MainFolder +
"Tests/DTChamberEfficiency/Wheel" + wheel.str();
499 string histo_name = efficiencyFolder +
"/Station" + station.str() +
"/Sector" + sector.str() +
"/yEfficiency_W" + wheel.str() +
"_St" + station.str() +
"_Sec" + sector.str();
500 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
511 if(TestPulsesHistos){
515 vector<const DTChamber*>::const_iterator ch_TP_it = muonGeom->chambers().begin();
516 vector<const DTChamber*>::const_iterator ch_TP_end = muonGeom->chambers().end();
517 for (; ch_TP_it != ch_TP_end; ++ch_TP_it) {
519 stringstream wheel; wheel << ch.
wheel();
521 stringstream sector; sector << ch.
sector();
523 vector<const DTSuperLayer*>::const_iterator sl_it = (*ch_TP_it)->superLayers().begin();
524 vector<const DTSuperLayer*>::const_iterator sl_end = (*ch_TP_it)->superLayers().end();
526 for(; sl_it != sl_end; ++sl_it) {
528 vector<const DTLayer*>::const_iterator l_it = (*sl_it)->layers().begin();
529 vector<const DTLayer*>::const_iterator l_end = (*sl_it)->layers().end();
530 stringstream superLayer; superLayer << sl.
superlayer();
532 for(; l_it != l_end; ++l_it) {
534 stringstream layer; layer << layerId.
layer();
536 string testPulsesFolder = MainFolder +
"DTTestPulsesTask/Wheel" + wheel.str();
537 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();
538 TProfile *
histo = (TProfile*)
theFile -> Get(histo_name.c_str());
559 vector<const DTChamber*>::const_iterator ch_trigger_it = muonGeom->chambers().begin();
560 vector<const DTChamber*>::const_iterator ch_trigger_end = muonGeom->chambers().end();
561 for (; ch_trigger_it != ch_trigger_end; ++ch_trigger_it) {
563 stringstream wheel; wheel << ch.
wheel();
565 stringstream sector; sector << ch.
sector();
567 string triggerFolder = MainFolder +
"DTLocalTriggerTask/Wheel" + wheel.str();
568 string histo_name = triggerFolder +
"/Sector" + sector.str() +
"/Station" + station.str() +
"/LocalTriggerPhi/DDU_BXvsQual_W" + wheel.str() +
"_Sec" + sector.str() +
"_St" + station.str();
569 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
579 vector<const DTChamber*>::const_iterator ch_trigger2_it = muonGeom->chambers().begin();
580 vector<const DTChamber*>::const_iterator ch_trigger2_end = muonGeom->chambers().end();
581 for (; ch_trigger2_it != ch_trigger2_end; ++ch_trigger2_it) {
583 stringstream wheel; wheel << ch.
wheel();
585 stringstream sector; sector << ch.
sector();
587 string triggerFolder = MainFolder +
"DTLocalTriggerTask/Wheel" + wheel.str();
588 string histo_name = triggerFolder +
"/Sector" + sector.str() +
"/Station" + station.str() +
"/LocalTriggerTheta/DDU_ThetaBXvsQual_W" + wheel.str() +
"_Sec" + sector.str() +
"_St" + station.str();
589 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
600 int counter1=0,counter2=0;
602 vector<const DTChamber*>::const_iterator ch_trigger3_it = muonGeom->chambers().begin();
603 vector<const DTChamber*>::const_iterator ch_trigger3_end = muonGeom->chambers().end();
604 for (; ch_trigger3_it != ch_trigger3_end; ++ch_trigger3_it) {
606 stringstream wheel; wheel << ch.
wheel();
607 stringstream sector; sector << ch.
sector();
609 string triggerFolder = MainFolder +
"Tests/DTLocalTrigger/Wheel" + wheel.str();
610 string histo_Name = triggerFolder +
"/Sector" + sector.str() +
"/LocalTriggerPhi/CorrFraction_Phi_W" + wheel.str() +
"_Sec" + sector.str();
611 TH1F *Histo1 = (TH1F*)
theFile -> Get(histo_Name.c_str());
612 if(Histo1 && counter1==0){
617 histo_Name = triggerFolder +
"/Sector" + sector.str() +
"/LocalTriggerTheta/HFraction_Theta_W" + wheel.str() +
"_Sec" + sector.str();
618 TH1F *Histo2 = (TH1F*)
theFile -> Get(histo_Name.c_str());
619 if(Histo2 && counter2==0){
631 vector<const DTChamber*>::const_iterator ch_trigger4_it = muonGeom->chambers().begin();
632 vector<const DTChamber*>::const_iterator ch_trigger4_end = muonGeom->chambers().end();
633 for (; ch_trigger4_it != ch_trigger4_end; ++ch_trigger4_it) {
635 stringstream wheel; wheel << ch.
wheel();
637 stringstream sector; sector << ch.
sector();
639 string triggerFolder = MainFolder +
"Tests/DTLocalTrigger/Wheel" + wheel.str();
640 string histo_name = triggerFolder +
"/Sector" + sector.str() +
"/Station" + station.str() +
"/TrigEffPos_Phi_W" + wheel.str() +
"_Sec" + sector.str() +
"_St" + station.str();
641 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
642 string histo_nameHHHL = triggerFolder +
"/Sector" + sector.str() +
"/Station" + station.str() +
"/TrigEffPosHHHL_Phi_W" + wheel.str() +
"_Sec" + sector.str() +
"_St" + station.str();
643 TH1F *histoHHHL = (TH1F*)
theFile -> Get(histo_nameHHHL.c_str());
646 histo->GetYaxis()->SetRangeUser(0,1.1);
649 histoHHHL->Draw(
"same");
659 vector<const DTChamber*>::const_iterator ch_trigger5_it = muonGeom->chambers().begin();
660 vector<const DTChamber*>::const_iterator ch_trigger5_end = muonGeom->chambers().end();
661 for (; ch_trigger5_it != ch_trigger5_end; ++ch_trigger5_it) {
663 stringstream wheel; wheel << ch.
wheel();
665 stringstream sector; sector << ch.
sector();
667 string triggerFolder = MainFolder +
"Tests/DTLocalTrigger/Wheel" + wheel.str();
668 string histo_name = triggerFolder +
"/Sector" + sector.str() +
"/Station" + station.str() +
"/TrigEffAngle_Phi_W" + wheel.str() +
"_Sec" + sector.str() +
"_St" + station.str();
669 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
672 histo->GetYaxis()->SetRangeUser(0,1.1);
682 vector<const DTChamber*>::const_iterator ch_trigger6_it = muonGeom->chambers().begin();
683 vector<const DTChamber*>::const_iterator ch_trigger6_end = muonGeom->chambers().end();
684 for (; ch_trigger6_it != ch_trigger6_end; ++ch_trigger6_it) {
686 stringstream wheel; wheel << ch.
wheel();
688 stringstream sector; sector << ch.
sector();
690 string triggerFolder = MainFolder +
"Tests/DTLocalTrigger/Wheel" + wheel.str();
691 string histo_name = triggerFolder +
"/Sector" + sector.str() +
"/Station" + station.str() +
"/TrigEffPos_Theta_W" + wheel.str() +
"_Sec" + sector.str() +
"_St" + station.str();
692 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
695 histo->GetYaxis()->SetRangeUser(0,1.1);
705 vector<const DTChamber*>::const_iterator ch_trigger7_it = muonGeom->chambers().begin();
706 vector<const DTChamber*>::const_iterator ch_trigger7_end = muonGeom->chambers().end();
707 for (; ch_trigger7_it != ch_trigger7_end; ++ch_trigger7_it) {
709 stringstream wheel; wheel << ch.
wheel();
711 stringstream sector; sector << ch.
sector();
713 string triggerFolder = MainFolder +
"Tests/DTLocalTrigger/Wheel" + wheel.str();
714 string histo_name = triggerFolder +
"/Sector" + sector.str() +
"/Station" + station.str() +
"/TrigEffAngle_Theta_W" + wheel.str() +
"_Sec" + sector.str() +
"_St" + station.str();
715 TH1F *
histo = (TH1F*)
theFile -> Get(histo_name.c_str());
717 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.