diff --git a/LArCalorimeter/LArMonTools/LArMonTools/LArDigitMon.h b/LArCalorimeter/LArMonTools/LArMonTools/LArDigitMon.h index 4c3f01221eed7de49df90ad87c2903cd0a4d071e..01454ae1deefeb1885f9985509d9260436545eeb 100755 --- a/LArCalorimeter/LArMonTools/LArMonTools/LArDigitMon.h +++ b/LArCalorimeter/LArMonTools/LArMonTools/LArDigitMon.h @@ -54,6 +54,7 @@ public: StatusCode initialize(); + StatusCode finalize(); StatusCode bookHistograms(); StatusCode fillHistograms(); StatusCode procHistograms(); @@ -86,6 +87,29 @@ private: /** Define the monitoring histograms used for each partitions of the LArCalorimeter*/ struct partition { + partition(): + m_NullDigit(0), + m_SatDigit(0), + m_OutDigit(0), + m_NullDigitChan(0), + m_SatDigitChan(0), + m_OutDigitChan(0), + m_Temp_NullDigitChan(0), + m_Temp_SatDigitChan(0), + m_Temp_OutDigitChan(0), + m_PNullDigit(0), + m_PSatDigit(0), + m_POutDigit(0), + m_AverDig(0), + m_AverTempPos_PerStream(0), + m_EnTime(0), + m_SignShape(0), + m_MaxVsTime(0), + m_TriggerType(0), + sumpos(0) + { + }; + TH2I_LW* m_NullDigit; TH2I_LW* m_SatDigit; TH2I_LW* m_OutDigit; @@ -179,6 +203,7 @@ private: void FillSignShape(partition& sub, int& i,float nrj,float sample_max); void FillNullHisto(partition& sub); void ScalePartition(partition& sub); + void EndOfRun(partition& sub); void DeleteHist(partition& sub); void ScaleHisto(LWHist2D * h,int& events); void ComputeError(LWHist2D* hist,int& events); diff --git a/LArCalorimeter/LArMonTools/LArMonTools/LArFEBMon.h b/LArCalorimeter/LArMonTools/LArMonTools/LArFEBMon.h index 2199699b59e407ae2a9cda132925f1f255317aa6..8aed9ba8a5e1718bfbede079e5c56db3dd1e3690 100755 --- a/LArCalorimeter/LArMonTools/LArMonTools/LArFEBMon.h +++ b/LArCalorimeter/LArMonTools/LArMonTools/LArFEBMon.h @@ -77,6 +77,7 @@ private: unsigned int m_l1Trig; std::vector<int> m_febInErrorTree; + std::vector<int> m_febErrorTypeTree; // a handle on StoreGate // StoreGateSvc* m_storeGate; @@ -171,10 +172,8 @@ private: TProfile_LW* m_rejectedLBProfile; TH1I_LW* m_rejBitsHisto; - TH1I_LW* m_eventsTime; TH1I_LW* m_eventsLB; // TH1I_LW* m_rejectedEventsTime; - TProfile_LW* m_rejectedYieldTime; TProfile_LW* m_rejectedYieldLB; TProfile_LW* m_rejectedYieldLBout; TProfile_LW* m_eventSizeLB; diff --git a/LArCalorimeter/LArMonTools/LArMonTools/LArNoisyROMon.h b/LArCalorimeter/LArMonTools/LArMonTools/LArNoisyROMon.h index 4c92932c8c0ac586e98f8a007d560f2720069627..fb1a86fab7e50adc2fded10109cc7f365cfb4011 100644 --- a/LArCalorimeter/LArMonTools/LArMonTools/LArNoisyROMon.h +++ b/LArCalorimeter/LArMonTools/LArMonTools/LArNoisyROMon.h @@ -36,6 +36,7 @@ public: virtual ~LArNoisyROMon(); StatusCode initialize(); + StatusCode finalize(); StatusCode bookHistograms(); StatusCode fillHistograms(); StatusCode checkHists(bool fromFinalize); diff --git a/LArCalorimeter/LArMonTools/src/LArCollisionTimeMonTool.cxx b/LArCalorimeter/LArMonTools/src/LArCollisionTimeMonTool.cxx index 184dac9f270ee685346710ae6fbbca06e9bfd165..97feb2ab3e85cb228191661802ce3613c059fd78 100755 --- a/LArCalorimeter/LArMonTools/src/LArCollisionTimeMonTool.cxx +++ b/LArCalorimeter/LArMonTools/src/LArCollisionTimeMonTool.cxx @@ -37,7 +37,7 @@ LArCollisionTimeMonTool::LArCollisionTimeMonTool(const std::string& type, const std::string& name, const IInterface* parent) : ManagedMonitorToolBase(type, name, parent), - m_lumi_blocks( 1000 ), + m_lumi_blocks( 1500 ), m_ECTimeDiff(0), m_ECTimeAvg(0), m_timeCut(5.0), diff --git a/LArCalorimeter/LArMonTools/src/LArDigitMon.cxx b/LArCalorimeter/LArMonTools/src/LArDigitMon.cxx index b094f99ec071277468aeacc4c4a9897923d83083..1b0faab61072a7c92f5fbb9ebb4ed2780b79b71f 100755 --- a/LArCalorimeter/LArMonTools/src/LArDigitMon.cxx +++ b/LArCalorimeter/LArMonTools/src/LArDigitMon.cxx @@ -123,6 +123,23 @@ LArDigitMon::~LArDigitMon() { } +StatusCode +LArDigitMon::finalize() +{ + msg(MSG::INFO)<<"Finalize LArDigitMon" << endreq; + DeleteHist(BarrelA); + DeleteHist(BarrelC); + DeleteHist(EmecA); + DeleteHist(EmecC); + DeleteHist(HecA); + DeleteHist(HecC); + DeleteHist(FcalA); + DeleteHist(FcalC); + + return StatusCode::SUCCESS; + +} + /*---------------------------------------------------------*/ StatusCode LArDigitMon::initialize() @@ -494,6 +511,7 @@ LArDigitMon::fillHistograms() }/** End of loop on LArDigit*/ + // Loop on all partition histograms to renormalise by the number of channels ScalePartition(BarrelA); ScalePartition(BarrelC); ScalePartition(EmecA); @@ -523,14 +541,14 @@ StatusCode LArDigitMon::procHistograms() FillSumary(FcalC); /** Properly Delete the LW hists*/ if(endOfRun){ - DeleteHist(BarrelA); - DeleteHist(BarrelC); - DeleteHist(EmecA); - DeleteHist(EmecC); - DeleteHist(HecA); - DeleteHist(HecC); - DeleteHist(FcalA); - DeleteHist(FcalC); + EndOfRun(BarrelA); + EndOfRun(BarrelC); + EndOfRun(EmecA); + EndOfRun(EmecC); + EndOfRun(HecA); + EndOfRun(HecC); + EndOfRun(FcalA); + EndOfRun(FcalC); } return StatusCode::SUCCESS; @@ -592,13 +610,17 @@ void LArDigitMon::BookPartitions(partition& sub, const std::string& PartitionNam /** Book histograms*/ + + // For 3 the types of errors (saturation, null, outOfRange), 3 histograms are booked but only 2 saved: + // m_[Type]Digit : (FT,slot) histogram. Number of errors per FEB. Histograms not saved as it needs to be normalized + // by the number of channels per FEB (128) + // m_P[Type]Digit : (FT,slot) histogram. Derived by m_[Type]Digit after normalization by the number of channels + // m_[Type]DigitChan : (FT+Slot; chan) histogram. Number of errors per channel. + std::string hName = "tSaturation_"; hName =hName+PartitionName; std::string hTitle=titlesat+PartitionName; sub.m_SatDigit = TH2I_LW::create(hName.c_str(), hTitle.c_str(),slot,slot_low,slot_up,FEB,FEB_low,FEB_up); - // ExpertGroupEff.regHist(sub.m_SatDigit).ignore(); - // m_strHelper->definePartitionSummProp(sub.m_SatDigit).ignore(); - hName = "Saturation_"; hName =hName+PartitionName; hTitle=titlesat+PartitionName; @@ -610,25 +632,17 @@ void LArDigitMon::BookPartitions(partition& sub, const std::string& PartitionNam hName =hName+PartitionName; hTitle=titlenull+PartitionName; sub.m_NullDigit= TH2I_LW::create(hName.c_str(), hTitle.c_str(),slot,slot_low,slot_up,FEB,FEB_low,FEB_up); - // ExpertGroupEff.regHist(sub.m_NullDigit).ignore(); - // m_strHelper->definePartitionSummProp(sub.m_NullDigit).ignore(); - hName = "NullDigit_"; hName =hName+PartitionName; hTitle=titlenull+PartitionName; sub.m_PNullDigit = TProfile2D_LW::create(hName.c_str(),hTitle.c_str(),slot,slot_low,slot_up,FEB,FEB_low,FEB_up); ExpertGroup.regHist(sub.m_PNullDigit).ignore(); m_strHelper->definePartitionSummProp(sub.m_PNullDigit).ignore(); - - + hName = "tOutOfRange_"; hName =hName+PartitionName; hTitle=titleout; sub.m_OutDigit = TH2I_LW::create(hName.c_str(), hTitle.c_str(),slot,slot_low,slot_up,FEB,FEB_low,FEB_up); - // ExpertGroupEff.regHist(sub.m_OutDigit).ignore(); - // m_strHelper->definePartitionSummProp(sub.m_OutDigit).ignore(); - - hName = "OutOfRange_"; hName =hName+PartitionName; hTitle=titleout; @@ -657,7 +671,7 @@ void LArDigitMon::BookPartitions(partition& sub, const std::string& PartitionNam ExpertGroupEff.regHist(sub.m_OutDigitChan).ignore(); m_strHelper->definePartitionSummProp2(sub.m_OutDigitChan).ignore(); - + // Booking of histograms monitoring the highest sample position hName = "AvePosMaxDig_"; hName =hName+PartitionName; hTitle=titlemaxdi+PartitionName+cutadc+expectedSamp; @@ -673,7 +687,6 @@ void LArDigitMon::BookPartitions(partition& sub, const std::string& PartitionNam sub.m_EnTime = TH2F_LW::create(hName.c_str(),hTitle.c_str(),32,-0.5,31.5, 300, 0., 3000.); sub.m_EnTime->GetXaxis()->SetTitle("Sample Number"); sub.m_EnTime->GetYaxis()->SetTitle("Energy [ADC]"); - //Not supported in LWHists: sub.m_EnTime->GetYaxis()->SetTitleOffset(1.2); ExpertGroup.regHist(sub.m_EnTime).ignore(); @@ -716,7 +729,8 @@ void LArDigitMon::BookPartitions(partition& sub, const std::string& PartitionNam sub.m_AverTempPos_PerStream->GetYaxis()->SetBinLabel(nStreams+1,"others"); ShiftGroup.regHist(sub.m_AverTempPos_PerStream).ignore(); - + // In online, we need to have a temp histogram to record the number of errors. And periodically, these histograms are dumped + // in the regular histograms after normalisation by the current number of events. if(m_IsOnline) { sub.m_Temp_NullDigitChan=TH2I_LW::create(("temp_NullDigit_"+PartitionName).c_str(), "",crates,crates_low,crates_up,chan,chan_low,chan_up); @@ -886,16 +900,23 @@ void LArDigitMon::FillSumary(partition& sub) } /*---------------------------------------------------------*/ void LArDigitMon::ScalePartition(partition& sub) +// { - DumpHisto(sub.m_NullDigit,sub.m_PNullDigit); - DumpHisto(sub.m_SatDigit,sub.m_PSatDigit); - DumpHisto(sub.m_OutDigit,sub.m_POutDigit); + //DumpHisto(sub.m_NullDigit,sub.m_PNullDigit); + //DumpHisto(sub.m_SatDigit,sub.m_PSatDigit); + //DumpHisto(sub.m_OutDigit,sub.m_POutDigit); if(m_IsOnline){ DumpOnlineHisto(sub.m_Temp_NullDigitChan,sub.m_NullDigitChan); DumpOnlineHisto(sub.m_Temp_SatDigitChan,sub.m_SatDigitChan); DumpOnlineHisto(sub.m_Temp_OutDigitChan,sub.m_OutDigitChan); } + // BT on 10/4/2015 : originally the DumpHisto was 4 lines before (see comments above). + // I have the feeling that the online normalisation was wrong. + DumpHisto(sub.m_NullDigit,sub.m_PNullDigit); + DumpHisto(sub.m_SatDigit,sub.m_PSatDigit); + DumpHisto(sub.m_OutDigit,sub.m_POutDigit); + ATH_MSG_DEBUG("End of Scale Histograms " ); } @@ -931,6 +952,8 @@ void LArDigitMon::ComputeError(LWHist2D* hist,int& events) } /*---------------------------------------------------------*/ void LArDigitMon::DumpHisto(LWHist2D* hist1,TProfile2D_LW* hist2) +// At the end of run/processing, renormalize the (FT,Slot) histograms +// by the number of FEB channels (128) { unsigned xbin, ybin; @@ -986,7 +1009,47 @@ int LArDigitMon::GetNumberCells(TProfile2D_LW* hist1,double treshold) return sum; } /*---------------------------------------------------------*/ +void LArDigitMon::EndOfRun(partition& sub) +// This method was formerly named DeleteHists. +// Renamed by BT on 10/4/2015 as it does more than this, e.g: +// Normalisation by the number of events. +{ + if(sub.m_OutDigit){ + sub.m_OutDigit->Reset(); + } + + if(sub.m_NullDigit){ + sub.m_NullDigit->Reset(); + } + + if(sub.m_SatDigit){ + sub.m_SatDigit->Reset() ; + } + + if(m_IsOnline) + { + if(sub.m_Temp_NullDigitChan){ + sub.m_Temp_NullDigitChan->Reset(); + } + + if(sub.m_Temp_SatDigitChan){ + sub.m_Temp_SatDigitChan->Reset(); + } + + if(sub.m_Temp_OutDigitChan){ + sub.m_Temp_OutDigitChan->Reset(); + } + } + else{ + ScaleHisto(sub.m_NullDigitChan,m_eventsCounter); + ScaleHisto(sub.m_SatDigitChan,m_eventsCounter); + ScaleHisto(sub.m_OutDigitChan,m_eventsCounter); + } +} + + void LArDigitMon::DeleteHist(partition& sub) +// deleting local histograms { if(sub.m_OutDigit){ LWHist::safeDelete(sub.m_OutDigit); @@ -1020,9 +1083,7 @@ void LArDigitMon::DeleteHist(partition& sub) sub.m_Temp_OutDigitChan=0; } } - else{ - ScaleHisto(sub.m_NullDigitChan,m_eventsCounter); - ScaleHisto(sub.m_SatDigitChan,m_eventsCounter); - ScaleHisto(sub.m_OutDigitChan,m_eventsCounter); - } + } + + diff --git a/LArCalorimeter/LArMonTools/src/LArFEBMon.cxx b/LArCalorimeter/LArMonTools/src/LArFEBMon.cxx index ef4a19c6f4ef190565154bc78ac132d69adec0b2..b3971739419db5bb991094552fb2ba6c36fec761 100755 --- a/LArCalorimeter/LArMonTools/src/LArFEBMon.cxx +++ b/LArCalorimeter/LArMonTools/src/LArFEBMon.cxx @@ -50,8 +50,10 @@ LArFEBMon::LArFEBMon(const std::string& type, m_currentFebStatus(false), m_eventTime(0), m_eventTime_ns(0), + m_l1Trig(0), m_strHelper(0), m_trigDec("Trig::TrigDecisionTool/TrigDecisionTool"), + m_trigok(false), m_barrelCSummary(), m_barrelASummary(), m_emecCSummary(), @@ -92,9 +94,7 @@ LArFEBMon::LArFEBMon(const std::string& type, m_rejectedLBProfile = NULL; m_rejBitsHisto = NULL; - m_eventsTime = NULL; m_eventsLB = NULL; - m_rejectedYieldTime = NULL; m_rejectedYieldLB = NULL; m_rejectedYieldLBout = NULL; m_eventSizeLB = NULL; @@ -168,10 +168,11 @@ StatusCode LArFEBMon::bookHistograms() { (m_rejectedHisto->GetXaxis())->SetBinLabel(3,"Accepted"); sc = sc && summaryGroup.regHist(m_rejectedHisto); - m_rejectedYield = TH1F_LW::create("EventsRejectedYield","Offline rejection yield (at least one error)",3,0.5,3.5); + m_rejectedYield = TH1F_LW::create("EventsRejectedYield","Data corruption yield",3,0.5,3.5); (m_rejectedYield->GetXaxis())->SetBinLabel(1,"Whole event corrupted"); (m_rejectedYield->GetXaxis())->SetBinLabel(2,"Single FEB corrupted"); (m_rejectedYield->GetXaxis())->SetBinLabel(3,"Accepted"); + (m_rejectedYield->GetYaxis())->SetTitle("Yield(%)"); sc = sc && summaryGroupW.regHist(m_rejectedYield); if (m_isOnline){ // Histo useless offline -> switch off in order to avoid merging warning @@ -186,7 +187,7 @@ StatusCode LArFEBMon::bookHistograms() { (m_rejBitsHisto->GetYaxis())->SetTitle("Number of (rejected) events"); sc = sc && summaryGroup.regHist(m_rejBitsHisto); - m_LArAllErrors_dE = TH2I_LW::create("NbOfLArFEBMonErrors_dE","Nb of (LArFEBMon errors)",13,0.5,13.5,8,-0.5,7.5); + m_LArAllErrors_dE = TH2I_LW::create("NbOfLArFEBMonErrors_dE","# of data corruption errors",13,0.5,13.5,8,-0.5,7.5); (m_LArAllErrors_dE->GetXaxis())->SetBinLabel(1,"Parity"); (m_LArAllErrors_dE->GetXaxis())->SetBinLabel(2,"BCID"); (m_LArAllErrors_dE->GetXaxis())->SetBinLabel(3,"Sample Header"); @@ -209,45 +210,28 @@ StatusCode LArFEBMon::bookHistograms() { (m_LArAllErrors_dE->GetYaxis())->SetBinLabel(8,"FCALA"); (m_LArAllErrors_dE->GetYaxis())->SetBinLabel(7,"FCALC"); sc = sc && summaryGroup.regHist(m_LArAllErrors_dE); - - // Number of events per minute vs time - m_eventsTime = TH1I_LW::create("NbOfEventsVsTime","Nb of events per minutes",1440,0,1440); - for (int iLab = 1; iLab < 24 ; iLab++){ - int label = iLab * 60; - (m_eventsTime->GetXaxis())->SetBinLabel(label,Form("%.0d",iLab)); - (m_eventsTime->GetXaxis())->SetTitle("UTC"); - } - sc = sc && summaryGroup.regHist(m_eventsTime); - - // Number of events rejected per minute vs time - m_rejectedYieldTime = TProfile_LW::create("YieldOfRejectedEventsVsTime","Yield(%) of rejected events per mn",1440,0,1440); - for (int iLab = 1; iLab < 24 ; iLab++){ - int label = iLab * 60; - (m_rejectedYieldTime->GetXaxis())->SetBinLabel(label,Form("%.0d",iLab)); - (m_rejectedYieldTime->GetXaxis())->SetTitle("UTC"); - } - sc = sc && summaryGroup.regHist(m_rejectedYieldTime); - + // Number of events per minute vs LB m_eventsLB = TH1I_LW::create("NbOfEventsVsLB","Nb of events per LB",1500,-0.5,1499.5); - (m_eventsLB->GetXaxis())->SetTitle("LB"); + (m_eventsLB->GetXaxis())->SetTitle("Luminosity Block"); sc = sc && summaryGroup.regHist(m_eventsLB); // Number of events rejected per LB - m_rejectedYieldLB = TProfile_LW::create("YieldOfRejectedEventsVsLB","Yield(%) of corrupted events per LB",1500,-0.5,1499.5); - (m_rejectedYieldLB->GetXaxis())->SetTitle("LB"); + m_rejectedYieldLB = TProfile_LW::create("YieldOfRejectedEventsVsLB","Yield of corrupted events",1500,-0.5,1499.5); + (m_rejectedYieldLB->GetXaxis())->SetTitle("Luminosity Block"); + (m_rejectedYieldLB->GetYaxis())->SetTitle("Yield(%)"); m_rejectedYieldLB->SetMinimum(-5.); sc = sc && summaryGroup.regHist(m_rejectedYieldLB); // Number of events rejected per LB outside time veto window - m_rejectedYieldLBout = TProfile_LW::create("YieldOfRejectedEventsVsLBout","Yield(%) of corrupted events per LB outside a time veto window",1500,-0.5,1499.5); - (m_rejectedYieldLBout->GetXaxis())->SetTitle("LB"); + m_rejectedYieldLBout = TProfile_LW::create("YieldOfRejectedEventsVsLBout","Yield of corrupted events not vetoed by time window",1500,-0.5,1499.5); + (m_rejectedYieldLBout->GetXaxis())->SetTitle("Luminosity Block"); m_rejectedYieldLBout->SetMinimum(-5.); sc = sc && summaryGroup.regHist(m_rejectedYieldLBout); // Mean event size per LB - m_eventSizeLB = TProfile_LW::create("eventSizeVsLB","LAr event size per LB (w/o ROS headers)",1500,-0.5,1499.5); - (m_eventSizeLB->GetXaxis())->SetTitle("LB"); + m_eventSizeLB = TProfile_LW::create("eventSizeVsLB","LAr event size (w/o ROS headers)",1500,-0.5,1499.5); + (m_eventSizeLB->GetXaxis())->SetTitle("Luminosity Block"); (m_eventSizeLB->GetYaxis())->SetTitle("Megabytes"); sc = sc && summaryGroup.regHist(m_eventSizeLB); @@ -256,7 +240,7 @@ StatusCode LArFEBMon::bookHistograms() { int nStreams = m_streams.size(); if(nStreams > 0) { m_stream_eventSizeLB = TProfile2D_LW::create("eventSizeStreamVsLB","LAr event size per stream per LB (w/o ROS headers)",1500,-0.5,1499.5,nStreams+1,-0.5,nStreams+0.5); - (m_stream_eventSizeLB->GetXaxis())->SetTitle("LB"); + (m_stream_eventSizeLB->GetXaxis())->SetTitle("Luminosity Block"); for (int str = 0; str < nStreams; str++) { (m_stream_eventSizeLB->GetYaxis())->SetBinLabel(str+1,m_streams[str].c_str()); } @@ -267,7 +251,7 @@ StatusCode LArFEBMon::bookHistograms() { // All nb of readout FEB per partition in one TH2 - m_nbOfEvts2D = TH2I_LW::create("NbOfEvts2d","# of readout FEB (DSP header check only)",500,-20.5,479.5,4,-0.5,3.5); + m_nbOfEvts2D = TH2I_LW::create("NbOfEvts2d","# of readout FEB/DSP header",500,-20.5,479.5,4,-0.5,3.5); (m_nbOfEvts2D->GetYaxis())->SetBinLabel(2,"Barrel A"); (m_nbOfEvts2D->GetYaxis())->SetBinLabel(1,"Barrel C"); (m_nbOfEvts2D->GetYaxis())->SetBinLabel(4,"Endcap A"); @@ -275,15 +259,15 @@ StatusCode LArFEBMon::bookHistograms() { sc = sc && perPartitionDataGroup.regHist(m_nbOfEvts2D); // Global nb of readout FEB - m_nbOfFebBlocksTotal = TH1I_LW::create("NbOfReadoutFEBGlobal","# of readout FEB in whole LAr(DSP header check only)",FEBnbins,FEBmin,FEBmax); + m_nbOfFebBlocksTotal = TH1I_LW::create("NbOfReadoutFEBGlobal","# of readout FEB/DSP header",FEBnbins,FEBmin,FEBmax); sc = sc && perPartitionDataGroup.regHist(m_nbOfFebBlocksTotal); // DSP threshold - m_dspThresholds_ADC = TH1I_LW::create("dspThresholdsADC","DSP ADC thresholds - Only in physics",2000,-100.5,1899.5); + m_dspThresholds_ADC = TH1I_LW::create("dspThresholdsADC","DSP thresholds to readout samples",2000,-100.5,1899.5); m_dspThresholds_ADC->GetYaxis()->SetTitle("Number of cells"); m_dspThresholds_ADC->GetXaxis()->SetTitle("Cell threshold in ADC counts"); sc = sc && perPartitionDataGroupLowerLB.regHist(m_dspThresholds_ADC); - m_dspThresholds_qtime = TH1I_LW::create("dspThresholds_qfactortime","DSP qfactor+time thresholds - Only in physic",2000,-100.5,1899.5); + m_dspThresholds_qtime = TH1I_LW::create("dspThresholds_qfactortime","DSP thresholds to readout (qfactor+time)",2000,-100.5,1899.5); m_dspThresholds_qtime->GetYaxis()->SetTitle("Number of cells"); m_dspThresholds_qtime->GetXaxis()->SetTitle("Cell threshold in ADC counts"); sc = sc && perPartitionDataGroupLowerLB.regHist(m_dspThresholds_qtime); @@ -303,23 +287,27 @@ StatusCode LArFEBMon::bookHistograms() { sc = sc && perPartitionDataGroup.regHist(m_hTriggerType); m_hTriggerTypeAllDSP = TH1I_LW::create("TriggerWordAllDSP","Number L1 trigger word per DSP (8 bits)", 256, -0.5, 255.5); m_hTriggerTypeAllDSP->GetXaxis()->SetTitle("L1 trigger word"); + (m_hTriggerTypeAllDSP->GetYaxis())->SetTitle("Number of events"); sc = sc && perPartitionDataGroup.regHist(m_hTriggerTypeAllDSP); // Nb of samples - m_nbOfSamples = TH1I_LW::create("NbOfSamples","Nb of samples (1st readout FEB) - Only in raw data / physic",35,-1.5,33.5); + m_nbOfSamples = TH1I_LW::create("NbOfSamples","# of samples (1st readout FEB)",35,-1.5,33.5); + (m_nbOfSamples->GetYaxis())->SetTitle("Number of events"); sc = sc && perPartitionDataGroup.regHist(m_nbOfSamples); // Nb of cells above DSP samples threshold - m_totNbSw2 = TH1I_LW::create("NbOfSw2","Total nb of cells above DSP ADC threshold",2000,-1000,199000); + m_totNbSw2 = TH1I_LW::create("NbOfSw2","# of cells with samples readout",2000,-1000,199000); + (m_totNbSw2->GetXaxis())->SetTitle("Number of cells"); + (m_totNbSw2->GetYaxis())->SetTitle("Number of events"); sc = sc && perPartitionDataGroup.regHist(m_totNbSw2); // Book per partition set of histograms - sc = sc && bookNewPartitionSumm(m_barrelCSummary,"BarrelC"); - sc = sc && bookNewPartitionSumm(m_barrelASummary,"BarrelA"); - sc = sc && bookNewPartitionSumm(m_emecCSummary,"EmecC"); - sc = sc && bookNewPartitionSumm(m_emecASummary,"EmecA"); - sc = sc && bookNewPartitionSumm(m_hecCSummary,"HecC"); - sc = sc && bookNewPartitionSumm(m_hecASummary,"HecA"); + sc = sc && bookNewPartitionSumm(m_barrelCSummary,"EMBC"); + sc = sc && bookNewPartitionSumm(m_barrelASummary,"EMBA"); + sc = sc && bookNewPartitionSumm(m_emecCSummary,"EMECC"); + sc = sc && bookNewPartitionSumm(m_emecASummary,"EMECA"); + sc = sc && bookNewPartitionSumm(m_hecCSummary,"HECC"); + sc = sc && bookNewPartitionSumm(m_hecASummary,"HECA"); sc = sc && bookNewPartitionSumm(m_fcalCSummary,"FcalC"); sc = sc && bookNewPartitionSumm(m_fcalASummary,"FcalA"); @@ -345,6 +333,7 @@ StatusCode LArFEBMon::bookHistograms() { m_CorruptTree->Branch("time",&m_eventTime,"time/i"); m_CorruptTree->Branch("time_ns",&m_eventTime_ns,"time_ns/i"); m_CorruptTree->Branch("febHwId",&m_febInErrorTree); + m_CorruptTree->Branch("febErrorType",&m_febErrorTypeTree); summaryGroup.regTree(m_CorruptTree).ignore(); // } @@ -365,6 +354,7 @@ StatusCode LArFEBMon::fillHistograms() { m_eventRejected = false; m_rejectionBits.reset(); m_febInErrorTree.clear(); + m_febErrorTypeTree.clear(); m_eventsCounter++; @@ -384,8 +374,6 @@ StatusCode LArFEBMon::fillHistograms() { m_eventTime=thisEvent->timeStamp(); m_eventTime_ns=thisEvent->timeStampNSOffset(); - int offset = m_eventTime/(24*3600); - float running_time = float(m_eventTime - (offset*24*3600))/60; unsigned lumi_block = thisEvent->lumiBlock(); //msg(MSG::INFO) << "LArFEBMon Lumi block: "<<lumi_block<<endreq; @@ -414,7 +402,7 @@ StatusCode LArFEBMon::fillHistograms() { // At 1st event, retrieve DSP thresholds and fill histogram with values for all channels if (m_eventsCounter == 1 && firstEventType == 4) { - m_dspThresholds_ADC->SetTitle(Form("DSP thresholds for E calculation (only in physics) - LB %4d",lumi_block)); + m_dspThresholds_ADC->SetTitle(Form("DSP thresholds for ADC-sample transmission (only in physics) - LB %4d",lumi_block)); m_dspThresholds_qtime->SetTitle(Form("DSP thresholds for qfactor+time calculation (only in physics) - LB %4d",lumi_block)); if (m_keyDSPThresholds.size()>0) { if (detStore()->contains<LArDSPThresholdsComplete>(m_keyDSPThresholds)) { @@ -608,7 +596,10 @@ StatusCode LArFEBMon::fillHistograms() { fillErrorsSummary(m_fcalASummary,partitionNb_dE,ft,slot,feberrorSummary,lumi_block); break; } - if (m_currentFebStatus && m_febInErrorTree.size()<29) m_febInErrorTree.push_back(febid.get_identifier32().get_compact()); + if (m_currentFebStatus && m_febInErrorTree.size()<29){ + m_febInErrorTree.push_back(febid.get_identifier32().get_compact()); + m_febErrorTypeTree.push_back(m_rejectionBits.to_ulong()); + } } } // Check and reset the rejected histo per partition @@ -697,7 +688,6 @@ StatusCode LArFEBMon::fillHistograms() { } - m_eventsTime->Fill(running_time); m_eventsLB->Fill(lumi_block); m_totNbSw2->Fill(totNbOfSweet2); larEventSize = larEventSize/262144; @@ -710,7 +700,6 @@ StatusCode LArFEBMon::fillHistograms() { } if ((m_eventRejected) || nbOfFebOK(nbOfFeb,m_nbOfFebBlocksTotal)){ - m_rejectedYieldTime->Fill(running_time,100); m_rejectedYieldLB->Fill(lumi_block,100); if (!(thisEvent->isEventFlagBitSet(xAOD::EventInfo::LAr,LArEventBitInfo::DATACORRUPTEDVETO))) m_rejectedYieldLBout->Fill(lumi_block,100); @@ -720,7 +709,6 @@ StatusCode LArFEBMon::fillHistograms() { m_CorruptTree->Fill(); } else{ - m_rejectedYieldTime->Fill(running_time,0); m_rejectedYieldLB->Fill(lumi_block,0); m_rejectedYieldLBout->Fill(lumi_block,0); if (m_isOnline) m_rejectedLBProfile->Fill(0.5,0); @@ -1035,13 +1023,13 @@ StatusCode LArFEBMon::bookNewPartitionSumm(summaryPartition& summ,std::string su sc = sc && perPartitionDataGroup.regHist(summ.nbOfEvts); hName = "NbOfSweet1PerFEB"+summName; - hTitle = "Average nb of cells above DSP qfactor+time threshold - Physic only - " + summName; + hTitle = "Average # of cells with (qfactor+time) readout - " + summName; summ.nbOfSweet1 = TProfile2D_LW::create(hName.c_str(),hTitle.c_str(),nbOfSlot,0.5,slotMax,nbOfFT,-0.5,ftMax); sc = sc && m_strHelper->definePartitionSummProp(summ.nbOfSweet1); sc = sc && perPartitionDataGroup.regHist(summ.nbOfSweet1); hName = "NbOfSweet2PerFEB"+summName; - hTitle = "Average nb of cells above DSP ADC threshold - Physic only - " + summName; + hTitle = "Average # of cells with samples readout - " + summName; summ.nbOfSweet2 = TProfile2D_LW::create(hName.c_str(),hTitle.c_str(),nbOfSlot,0.5,slotMax,nbOfFT,-0.5,ftMax); sc = sc && m_strHelper->definePartitionSummProp(summ.nbOfSweet2); sc = sc && perPartitionDataGroup.regHist(summ.nbOfSweet2); @@ -1057,7 +1045,7 @@ StatusCode LArFEBMon::bookNewPartitionSumm(summaryPartition& summ,std::string su hName = "eventSizeStreamVsLB"+summName; hTitle = "LAr event size per stream per LB (w/o ROS headers)" + summName; summ.stream_eventSizeLB = TProfile2D_LW::create(hName.c_str(),hTitle.c_str(),1500,-0.5,1499.5,nStreams+1,-0.5,nStreams+0.5); - (summ.stream_eventSizeLB)->GetXaxis()->SetTitle("LB"); + (summ.stream_eventSizeLB)->GetXaxis()->SetTitle("Luminosity Block"); for (int str = 0; str < nStreams; str++) { (summ.stream_eventSizeLB->GetYaxis())->SetBinLabel(str+1,m_streams[str].c_str()); } @@ -1067,7 +1055,7 @@ StatusCode LArFEBMon::bookNewPartitionSumm(summaryPartition& summ,std::string su hName = "eventSizeVsLB"+summName; hTitle = "LAr event size per LB (w/o ROS headers)" + summName; summ.eventSizeLB = TProfile_LW::create(hName.c_str(),hTitle.c_str(),1500,-0.5,1499.5); - (summ.eventSizeLB)->GetXaxis()->SetTitle("LB"); + (summ.eventSizeLB)->GetXaxis()->SetTitle("Luminosity Block"); sc = sc && perPartitionDataGroup.regHist(summ.eventSizeLB); } diff --git a/LArCalorimeter/LArMonTools/src/LArNoisyROMon.cxx b/LArCalorimeter/LArMonTools/src/LArNoisyROMon.cxx index 627a55162af1c4de8fcbdf97c9cb7a34dc15c672..fb952357dde136a52350be1efcbc0bdc80937c87 100644 --- a/LArCalorimeter/LArMonTools/src/LArNoisyROMon.cxx +++ b/LArCalorimeter/LArMonTools/src/LArNoisyROMon.cxx @@ -95,8 +95,8 @@ StatusCode LArNoisyROMon::bookHistograms() MonGroup GroupBarrel(this, "/LAr/NoisyRO/Barrel", run, ATTRIB_MANAGED ); MonGroup GroupBarrelFrac(this, "/LAr/NoisyRO/Barrel", run, ATTRIB_MANAGED ,"", "weightedEff"); MonGroup GroupBarrelFracBin(this, "/LAr/NoisyRO/Barrel", run, ATTRIB_MANAGED ,"", "perBinEffPerCent"); - bookPartitionHistos(m_BarrelA,"BarrelA",GroupBarrel,GroupBarrelFrac,GroupBarrelFracBin); - bookPartitionHistos(m_BarrelC,"BarrelC",GroupBarrel,GroupBarrelFrac,GroupBarrelFracBin); + bookPartitionHistos(m_BarrelA,"EMBA",GroupBarrel,GroupBarrelFrac,GroupBarrelFracBin); + bookPartitionHistos(m_BarrelC,"EMBC",GroupBarrel,GroupBarrelFrac,GroupBarrelFracBin); MonGroup GroupEMEC(this, "/LAr/NoisyRO/EMEC", run, ATTRIB_MANAGED ); MonGroup GroupEMECFrac(this, "/LAr/NoisyRO/EMEC", run, ATTRIB_MANAGED,"", "weightedEff" ); @@ -118,10 +118,7 @@ StatusCode LArNoisyROMon::bookHistograms() overall.regTree(m_NoiseTimeTree).ignore(); MonGroup overallPerCent(this, "/LAr/NoisyRO", run, ATTRIB_MANAGED, "", "perBinEffPerCent" ); - tit << "Percentage of events flagged as noisy (> " << m_BadFEBCut << " noisy FEBs)"; - hTitle = tit.str(); - tit.str(""); - h_NoisyEventFrac = TH1F_LW::create("NoisyEvent", hTitle.c_str(), 2000, 0.5, 2000.5); + h_NoisyEventFrac = TH1F_LW::create("NoisyEvent", "Yield of events flagged as LArNoisyRO_Std", 2000, 0.5, 2000.5); h_NoisyEventFrac->GetXaxis()->SetTitle("Luminosity Block"); overallPerCent.regHist(h_NoisyEventFrac).ignore(); h_NoisyEvent = TH1I_LW::create("temp_NoisyEvent", hTitle.c_str(), 2000, 0.5, 2000.5); @@ -129,26 +126,28 @@ StatusCode LArNoisyROMon::bookHistograms() h_LBN = TH1I_LW::create("LBN", "LBN ", 2000, 0.5, 2000.5); - tit << "Percentage of events flagged as noisy outside time veto window (> " << m_BadFEBCut << " noisy FEBs)"; - hTitle = tit.str(); - tit.str(""); - h_NoisyEventTimeVetoFrac = TH1F_LW::create("NoisyEvent_TimeVeto", hTitle.c_str(), 2000, 0.5, 2000.5); + h_NoisyEventTimeVetoFrac = TH1F_LW::create("NoisyEvent_TimeVeto", "Yield of events flagged as LArNoisyRO_Std not vetoed by time window", 2000, 0.5, 2000.5); h_NoisyEventTimeVetoFrac->GetXaxis()->SetTitle("Luminosity Block"); overallPerCent.regHist(h_NoisyEventTimeVetoFrac).ignore(); + // Histogram below is temporary. Normalized at the end of run to produce the above histograms h_NoisyEventTimeVeto = TH1I_LW::create("temp_NoisyEvent_TimeVeto", hTitle.c_str(), 2000, 0.5, 2000.5); h_NoisyEventTimeVeto->GetXaxis()->SetTitle("Luminosity Block"); - hTitle = "Percentage of events flagged as noisy with saturated quality cells (tight cuts)"; + hTitle = "Yield of events flagged as LArNoisyROSaturated"; h_SaturatedTightFrac = TH1F_LW::create("SaturatedTightEvent", hTitle.c_str(), 2000, 0.5, 2000.5); h_SaturatedTightFrac->GetXaxis()->SetTitle("Luminosity Block"); + h_SaturatedTightFrac->GetYaxis()->SetTitle("Yield(%)"); overallPerCent.regHist(h_SaturatedTightFrac).ignore(); + // Histogram below is temporary. Normalized at the end of run to produce the above histograms h_SaturatedTight = TH1I_LW::create("temp_SaturatedTight", hTitle.c_str(), 2000, 0.5, 2000.5); h_SaturatedTight->GetXaxis()->SetTitle("Luminosity Block"); - hTitle = "Percentage of events flagged as noisy with saturated quality cells (tight cuts) outside time veto window"; + hTitle = "Yield of events flagged as LArNoisyROSaturated not vetoed by time window"; h_SaturatedTightTimeVetoFrac = TH1F_LW::create("SaturatedTightEvent_TimeVeto", hTitle.c_str(), 2000, 0.5, 2000.5); h_SaturatedTightTimeVetoFrac->GetXaxis()->SetTitle("Luminosity Block"); + h_SaturatedTightTimeVetoFrac->GetYaxis()->SetTitle("Yield(%)"); overallPerCent.regHist(h_SaturatedTightTimeVetoFrac).ignore(); + // Histogram below is temporary. Normalized at the end of run to produce the above histograms h_SaturatedTightTimeVeto = TH1I_LW::create("temp_SaturatedTight_TimeVeto", hTitle.c_str(), 2000, 0.5, 2000.5); h_SaturatedTightTimeVeto->GetXaxis()->SetTitle("Luminosity Block"); @@ -441,56 +440,69 @@ StatusCode LArNoisyROMon::procHistograms() if ( endOfRun ) { // delete temposary histograms if ( h_LBN ) { - LWHist::safeDelete(h_LBN); - h_LBN = NULL; +// LWHist::safeDelete(h_LBN); +// h_LBN = NULL; + h_LBN->Reset(); } if ( h_NoisyEvent ) { - LWHist::safeDelete(h_NoisyEvent); - h_NoisyEvent = NULL; +// LWHist::safeDelete(h_NoisyEvent); +// h_NoisyEvent = NULL; + h_NoisyEvent->Reset(); } if ( m_BarrelA.h_NoisyEvent ) { - LWHist::safeDelete(m_BarrelA.h_NoisyEvent); - m_BarrelA.h_NoisyEvent = NULL; +// LWHist::safeDelete(m_BarrelA.h_NoisyEvent); +// m_BarrelA.h_NoisyEvent = NULL; + m_BarrelA.h_NoisyEvent->Reset(); } if ( m_BarrelC.h_NoisyEvent ) { - LWHist::safeDelete(m_BarrelC.h_NoisyEvent); - m_BarrelC.h_NoisyEvent = NULL; +// LWHist::safeDelete(m_BarrelC.h_NoisyEvent); +// m_BarrelC.h_NoisyEvent = NULL; + m_BarrelC.h_NoisyEvent->Reset(); } if ( m_EMECA.h_NoisyEvent ) { - LWHist::safeDelete(m_EMECA.h_NoisyEvent); - m_EMECA.h_NoisyEvent = NULL; +// LWHist::safeDelete(m_EMECA.h_NoisyEvent); +// m_EMECA.h_NoisyEvent = NULL; + m_EMECA.h_NoisyEvent->Reset(); } if ( m_EMECC.h_NoisyEvent ) { - LWHist::safeDelete(m_EMECC.h_NoisyEvent); - m_EMECC.h_NoisyEvent = NULL; +// LWHist::safeDelete(m_EMECC.h_NoisyEvent); +// m_EMECC.h_NoisyEvent = NULL; + m_EMECC.h_NoisyEvent->Reset(); } if ( h_NoisyEventTimeVeto ) { - LWHist::safeDelete(h_NoisyEventTimeVeto); - h_NoisyEventTimeVeto = NULL; +// LWHist::safeDelete(h_NoisyEventTimeVeto); +// h_NoisyEventTimeVeto = NULL; + h_NoisyEventTimeVeto->Reset(); } if ( m_BarrelA.h_NoisyEventTimeVeto ) { - LWHist::safeDelete(m_BarrelA.h_NoisyEventTimeVeto); - m_BarrelA.h_NoisyEventTimeVeto = NULL; +// LWHist::safeDelete(m_BarrelA.h_NoisyEventTimeVeto); +// m_BarrelA.h_NoisyEventTimeVeto = NULL; + m_BarrelA.h_NoisyEventTimeVeto->Reset(); } if ( m_BarrelC.h_NoisyEventTimeVeto ) { - LWHist::safeDelete(m_BarrelC.h_NoisyEventTimeVeto); - m_BarrelC.h_NoisyEventTimeVeto = NULL; +// LWHist::safeDelete(m_BarrelC.h_NoisyEventTimeVeto); +// m_BarrelC.h_NoisyEventTimeVeto = NULL; + m_BarrelC.h_NoisyEventTimeVeto->Reset(); } if ( m_EMECA.h_NoisyEventTimeVeto ) { - LWHist::safeDelete(m_EMECA.h_NoisyEventTimeVeto); - m_EMECA.h_NoisyEventTimeVeto = NULL; +// LWHist::safeDelete(m_EMECA.h_NoisyEventTimeVeto); +// m_EMECA.h_NoisyEventTimeVeto = NULL; + m_EMECA.h_NoisyEventTimeVeto->Reset(); } if ( m_EMECC.h_NoisyEventTimeVeto ) { - LWHist::safeDelete(m_EMECC.h_NoisyEventTimeVeto); - m_EMECC.h_NoisyEventTimeVeto = NULL; +// LWHist::safeDelete(m_EMECC.h_NoisyEventTimeVeto); +// m_EMECC.h_NoisyEventTimeVeto = NULL; + m_EMECC.h_NoisyEventTimeVeto->Reset(); } if ( h_SaturatedTight ) { - LWHist::safeDelete(h_SaturatedTight); - h_SaturatedTight = NULL; +// LWHist::safeDelete(h_SaturatedTight); +// h_SaturatedTight = NULL; + h_SaturatedTight->Reset(); } if ( h_SaturatedTightTimeVeto ) { - LWHist::safeDelete(h_SaturatedTightTimeVeto); - h_SaturatedTightTimeVeto = NULL; +// LWHist::safeDelete(h_SaturatedTightTimeVeto); +// h_SaturatedTightTimeVeto = NULL; + h_SaturatedTightTimeVeto->Reset(); } } return StatusCode::SUCCESS; @@ -561,7 +573,7 @@ void LArNoisyROMon::bookPartitionHistos(partitionHistos& partition, const std::s int FEB=25,slot=15; double FEB_low=-0.5, FEB_up=24.5, slot_low=0.5, slot_up=15.5; // for Barrel - if( name == "BarrelA" || name == "BarrelC") + if( name == "EMBA" || name == "EMBC") { FEB=32, slot=14; FEB_low=-0.5, FEB_up=31.5, slot_low=0.5, slot_up=14.5; @@ -569,7 +581,7 @@ void LArNoisyROMon::bookPartitionHistos(partitionHistos& partition, const std::s // 2D FEB maps (x : slot / y : FT) with z: fraction of events for which the FEB is noisy. hName = "NoisyFEBFracPerEvt_"+name; - hTitle = "Percentage of events with FEB noisy "+m_NoisyFEBDefStr+" - "+name; + hTitle = "Yield of events with FEB noisy "+m_NoisyFEBDefStr+" - "+name; partition.h_NoisyFEBFracPerEvt = TH2F_LW::create(hName.c_str(), hTitle.c_str(), slot,slot_low,slot_up,FEB,FEB_low,FEB_up); partition.h_NoisyFEBFracPerEvt->GetXaxis()->SetTitle("Slot"); partition.h_NoisyFEBFracPerEvt->GetYaxis()->SetTitle("Feedthrough"); @@ -583,23 +595,18 @@ void LArNoisyROMon::bookPartitionHistos(partitionHistos& partition, const std::s } // Fraction of events found noisy per LB - Std flag - tit << "Percentage of events flagged as noisy (> " << m_BadFEBCut << " noisy FEBs) - " << name; - hTitle = tit.str(); - tit.str(""); hName = "NoisyEvent_"+name; - partition.h_NoisyEventFrac = TH1F_LW::create(hName.c_str(), hTitle.c_str(), 2000, 0.5, 2000.5); + partition.h_NoisyEventFrac = TH1F_LW::create(hName.c_str(),"Yield of events flagged as LArNoisyRO_Std", 2000, 0.5, 2000.5); partition.h_NoisyEventFrac->GetXaxis()->SetTitle("Luminosity Block"); groupfracbin.regHist(partition.h_NoisyEventFrac).ignore(); + // Histogram below is temporary. Normalized at the end of run to produce the above histograms hName = "temp_NoisyEvent_"+name; partition.h_NoisyEvent = TH1I_LW::create(hName.c_str(), hTitle.c_str(), 2000, 0.5, 2000.5); partition.h_NoisyEvent->GetXaxis()->SetTitle("Luminosity Block"); // Fraction of events found noisy per LB - Weighted flag - tit << "Percentage of events flagged as noisy (> " << m_BadFEBCut << " noisy FEBs with weighted sum) - " << name; - hTitle = tit.str(); - tit.str(""); hName = "NoisyWEvent_"+name; - partition.h_NoisyWEventFrac = TH1F_LW::create(hName.c_str(), hTitle.c_str(), 2000, 0.5, 2000.5); + partition.h_NoisyWEventFrac = TH1F_LW::create(hName.c_str(), "Yield of events flagged as LArNoisyRO_StdOpt", 2000, 0.5, 2000.5); partition.h_NoisyWEventFrac->GetXaxis()->SetTitle("Luminosity Block"); groupfracbin.regHist(partition.h_NoisyWEventFrac).ignore(); hName = "temp_NoisyWEvent_"+name; @@ -609,11 +616,8 @@ void LArNoisyROMon::bookPartitionHistos(partitionHistos& partition, const std::s // Fraction of events found noisy per LB after time veto - Std flag - tit << "Percentage of events flagged as noisy outside time veto window (> " << m_BadFEBCut << " noisy FEBs) - " << name; - hTitle = tit.str(); - tit.str(""); hName = "NoisyEvent_TimeVeto_"+name; - partition.h_NoisyEventTimeVetoFrac = TH1F_LW::create(hName.c_str(), hTitle.c_str(), 2000, 0.5, 2000.5); + partition.h_NoisyEventTimeVetoFrac = TH1F_LW::create(hName.c_str(), "Yield of events flagged as LArNoisyRO_Std not vetoed by time window", 2000, 0.5, 2000.5); partition.h_NoisyEventTimeVetoFrac->GetXaxis()->SetTitle("Luminosity Block"); groupfracbin.regHist(partition.h_NoisyEventTimeVetoFrac).ignore(); @@ -622,11 +626,8 @@ void LArNoisyROMon::bookPartitionHistos(partitionHistos& partition, const std::s partition.h_NoisyEventTimeVeto->GetXaxis()->SetTitle("Luminosity Block"); // Fraction of events found noisy per LB after time veto - Weighted flag - tit << "Percentage of events flagged as noisy outside time veto window (> " << m_BadFEBCut << " noisy FEBs with weighted sum) - " << name; - hTitle = tit.str(); - tit.str(""); hName = "NoisyWEvent_TimeVeto_"+name; - partition.h_NoisyWEventTimeVetoFrac = TH1F_LW::create(hName.c_str(), hTitle.c_str(), 2000, 0.5, 2000.5); + partition.h_NoisyWEventTimeVetoFrac = TH1F_LW::create(hName.c_str(), "Yield of events flagged as LArNoisyRO_StdOpt not vetoed by time window", 2000, 0.5, 2000.5); partition.h_NoisyWEventTimeVetoFrac->GetXaxis()->SetTitle("Luminosity Block"); groupfracbin.regHist(partition.h_NoisyWEventTimeVetoFrac).ignore(); @@ -693,3 +694,64 @@ void LArNoisyROMon::fillTriggerHisto(partitionHistos& partition, uint8_t trigger } } + +StatusCode LArNoisyROMon::finalize() +{ + msg(MSG::INFO) << " in LArNoisyROMon::finalize() " << endreq; + // delete temposary histograms + + if ( h_LBN ) { + LWHist::safeDelete(h_LBN); + h_LBN = NULL; + } + if ( h_NoisyEvent ) { + LWHist::safeDelete(h_NoisyEvent); + h_NoisyEvent = NULL; + } + if ( m_BarrelA.h_NoisyEvent ) { + LWHist::safeDelete(m_BarrelA.h_NoisyEvent); + m_BarrelA.h_NoisyEvent = NULL; + } + if ( m_BarrelC.h_NoisyEvent ) { + LWHist::safeDelete(m_BarrelC.h_NoisyEvent); + m_BarrelC.h_NoisyEvent = NULL; + } + if ( m_EMECA.h_NoisyEvent ) { + LWHist::safeDelete(m_EMECA.h_NoisyEvent); + m_EMECA.h_NoisyEvent = NULL; + } + if ( m_EMECC.h_NoisyEvent ) { + LWHist::safeDelete(m_EMECC.h_NoisyEvent); + m_EMECC.h_NoisyEvent = NULL; + } + if ( h_NoisyEventTimeVeto ) { + LWHist::safeDelete(h_NoisyEventTimeVeto); + h_NoisyEventTimeVeto = NULL; + } + if ( m_BarrelA.h_NoisyEventTimeVeto ) { + LWHist::safeDelete(m_BarrelA.h_NoisyEventTimeVeto); + m_BarrelA.h_NoisyEventTimeVeto = NULL; + } + if ( m_BarrelC.h_NoisyEventTimeVeto ) { + LWHist::safeDelete(m_BarrelC.h_NoisyEventTimeVeto); + m_BarrelC.h_NoisyEventTimeVeto = NULL; + } + if ( m_EMECA.h_NoisyEventTimeVeto ) { + LWHist::safeDelete(m_EMECA.h_NoisyEventTimeVeto); + m_EMECA.h_NoisyEventTimeVeto = NULL; + } + if ( m_EMECC.h_NoisyEventTimeVeto ) { + LWHist::safeDelete(m_EMECC.h_NoisyEventTimeVeto); + m_EMECC.h_NoisyEventTimeVeto = NULL; + } + if ( h_SaturatedTight ) { + LWHist::safeDelete(h_SaturatedTight); + h_SaturatedTight = NULL; + } + if ( h_SaturatedTightTimeVeto ) { + LWHist::safeDelete(h_SaturatedTightTimeVeto); + h_SaturatedTightTimeVeto = NULL; + } + + return StatusCode::SUCCESS; +} diff --git a/LArCalorimeter/LArMonTools/src/LArRODMonTool.cxx b/LArCalorimeter/LArMonTools/src/LArRODMonTool.cxx index 0b3851a09e0e50292bf1852c24457313fad25671..531fb94070cf6a42587e2f84276b10ee9e611d96 100755 --- a/LArCalorimeter/LArMonTools/src/LArRODMonTool.cxx +++ b/LArCalorimeter/LArMonTools/src/LArRODMonTool.cxx @@ -254,28 +254,28 @@ LArRODMonTool::bookHistograms() LArOnlineIDStrHelper strHelper(m_LArOnlineIDHelper); strHelper.setDefaultNameType(LArOnlineIDStrHelper::LARONLINEID); - // Barrel A and C - MonGroup generalGroupBarrel( this, "/LAr/DSPMonitoring/Barrel", run, ATTRIB_MANAGED ); + // EMB A and C + MonGroup generalGroupBarrel( this, "/LAr/DSPMonitoring/EMB", run, ATTRIB_MANAGED ); MonGroup generalGroupEndcap( this, "/LAr/DSPMonitoring/Emec", run, ATTRIB_MANAGED ); MonGroup generalGroupHec( this, "/LAr/DSPMonitoring/Hec", run, ATTRIB_MANAGED ); MonGroup generalGroupFcal( this, "/LAr/DSPMonitoring/Fcal", run, ATTRIB_MANAGED ); - m_histos[EMBA].m_partName="BarrelA"; + m_histos[EMBA].m_partName="EMBA"; m_histos[EMBA].m_monGroup=&generalGroupBarrel; - m_histos[EMBC].m_partName="BarrelC"; + m_histos[EMBC].m_partName="EMBC"; m_histos[EMBC].m_monGroup=&generalGroupBarrel; - m_histos[EMECA].m_partName="EmecA"; + m_histos[EMECA].m_partName="EMECA"; m_histos[EMECA].m_monGroup=&generalGroupEndcap; - m_histos[EMECC].m_partName="EmecC"; + m_histos[EMECC].m_partName="EMECC"; m_histos[EMECC].m_monGroup=&generalGroupEndcap; - m_histos[HECA].m_partName="HecA"; + m_histos[HECA].m_partName="HECA"; m_histos[HECA].m_monGroup=&generalGroupHec; - m_histos[HECC].m_partName="HecC"; + m_histos[HECC].m_partName="HECC"; m_histos[HECC].m_monGroup=&generalGroupHec; m_histos[FCALA].m_partName="FcalA"; @@ -289,34 +289,34 @@ LArRODMonTool::bookHistograms() HistGroup& hg=m_histos[p]; const std::string& Part = hg.m_partName; hName = "DE_" + Part; - hTitle = "E_{offline} - E_{online} distribution" + Part; + hTitle = "E_{offline} - E_{online}-" + Part; hg.m_hDE = new TH1F(hName.c_str(), hTitle.c_str(),400,-40.,40.); - hg.m_hDE->GetXaxis()->SetTitle("E_{offline} - E_{online} (MeV)"); + hg.m_hDE->GetXaxis()->SetTitle("E_{offline} - E_{online}"); CHECK(hg.m_monGroup->regHist(hg.m_hDE)); hName = "DT_" + Part; - hTitle = "T_{offline} - T_{online} distribution" + Part; + hTitle = "T_{offline} - T_{online}-" + Part; hg.m_hDT = new TH1F(hName.c_str(), hTitle.c_str(),400,-800.,800.); - hg.m_hDT->GetXaxis()->SetTitle("T_{offline} - T_{online} (ps)"); + hg.m_hDT->GetXaxis()->SetTitle("T_{offline} - T_{online}"); CHECK(hg.m_monGroup->regHist(hg.m_hDT)); hName = "DQ_" + Part; - hTitle = "Q_{offline} - Q_{online} / #sqrt{Q_{offline}} distribution" + Part; + hTitle = "Q_{offline} - Q_{online} / #sqrt{Q_{offline}}-" + Part; hg.m_hDQ = new TH1F(hName.c_str(), hTitle.c_str(),400,-3000.,1000.); hg.m_hDQ->GetXaxis()->SetTitle("Q_{offline} - Q_{online} / #sqrt{Q_{offline}}"); CHECK(hg.m_monGroup->regHist(hg.m_hDQ)); hName = "Out_E_FT_vs_SLOT_" + Part; - hTitle = "Cells with E_{offline} - E_{online} > numerical precision "; + hTitle = "# of cells with E_{offline} - E_{online} > numerical precision "; hTitle = hTitle + Part; hg.m_hOut_E_FT_vs_SLOT = new TH2F(hName.c_str(), hTitle.c_str(),15,0.5,15.5,32,-0.5,31.5); hg.m_hOut_E_FT_vs_SLOT->GetXaxis()->SetTitle("Slot"); - hg.m_hOut_E_FT_vs_SLOT->GetYaxis()->SetTitle("FT"); + hg.m_hOut_E_FT_vs_SLOT->GetYaxis()->SetTitle("Feedthrough"); sc = sc && strHelper.definePartitionSummProp(hg.m_hOut_E_FT_vs_SLOT); CHECK(hg.m_monGroup->regHist(hg.m_hOut_E_FT_vs_SLOT)); hName = "Out_T_FT_vs_SLOT_" + Part; - hTitle = "Cells with T_{offline} - T_{online} > numerical precision "; + hTitle = "# of cells with T_{offline} - T_{online} > numerical precision "; hTitle = hTitle + Part; hg.m_hOut_T_FT_vs_SLOT = new TH2F(hName.c_str(), hTitle.c_str(),15,0.5,15.5,32,-0.5,31.5); hg.m_hOut_T_FT_vs_SLOT->GetXaxis()->SetTitle("Slot"); @@ -325,7 +325,7 @@ LArRODMonTool::bookHistograms() CHECK(hg.m_monGroup->regHist(hg.m_hOut_T_FT_vs_SLOT)); hName = "Out_Q_FT_vs_SLOT_" + Part; - hTitle = "Cells with Q_{offline} - Q_{online} / #sqrt{Q_{offline}} > numerical precision "; + hTitle = "# of cells with Q_{offline} - Q_{online} / #sqrt{Q_{offline}} > numerical precision "; hTitle = hTitle + Part; hg.m_hOut_Q_FT_vs_SLOT = new TH2F(hName.c_str(), hTitle.c_str(),15,0.5,15.5,32,-0.5,31.5); hg.m_hOut_Q_FT_vs_SLOT->GetXaxis()->SetTitle("Slot"); @@ -334,21 +334,21 @@ LArRODMonTool::bookHistograms() CHECK(hg.m_monGroup->regHist(hg.m_hOut_Q_FT_vs_SLOT)); hName = "Eon_VS_Eoff_" + Part; - hTitle = "E_{online} VS E_{offline} (MeV) " + Part; + hTitle = "E_{online} VS E_{offline}-" + Part; hg.m_hEon_VS_Eoff = new TH2F(hName.c_str(), hTitle.c_str(),300,-20000.,20000.,300,-20000.,20000.); hg.m_hEon_VS_Eoff->GetXaxis()->SetTitle("E_{offline} (MeV)"); hg.m_hEon_VS_Eoff->GetYaxis()->SetTitle("E_{online} (MeV)"); CHECK(hg.m_monGroup->regHist(hg.m_hEon_VS_Eoff)); hName = "Ton_VS_Toff_" + Part; - hTitle = "T_{online} VS T_{offline} (ps) " + Part; + hTitle = "T_{online} VS T_{offline}-" + Part; hg.m_hTon_VS_Toff = new TH2F(hName.c_str(), hTitle.c_str(),300,-80000.,80000.,300,-80000.,80000.); hg.m_hTon_VS_Toff->GetXaxis()->SetTitle("T_{offline} (ps)"); hg.m_hTon_VS_Toff->GetYaxis()->SetTitle("T_{online} (ps)"); CHECK(hg.m_monGroup->regHist(hg.m_hTon_VS_Toff)); hName = "Qon_VS_Qoff_" + Part; - hTitle = "Q_{online} VS Q_{offline} " + Part; + hTitle = "Q_{online} VS Q_{offline}-" + Part; hg.m_hQon_VS_Qoff = new TH2F(hName.c_str(), hTitle.c_str(),300,0.,66000.,300,0.,66000.); hg.m_hQon_VS_Qoff->GetXaxis()->SetTitle("Q_{offline}"); hg.m_hQon_VS_Qoff->GetYaxis()->SetTitle("Q_{online}"); @@ -367,15 +367,15 @@ LArRODMonTool::bookHistograms() hName = "Summary_E"; hTitle = "Summary of errors on Energy per partition and per gain"; m_hSummaryErrors_Energy = new TH2F(hName.c_str(),hTitle.c_str(),8,0.,8.,3,0.,3.); - m_hSummaryErrors_Energy->GetXaxis()->SetTitle("Sub Detector"); - m_hSummaryErrors_Energy->GetXaxis()->SetBinLabel(1,"Barrel C"); - m_hSummaryErrors_Energy->GetXaxis()->SetBinLabel(2,"Barrel A"); - m_hSummaryErrors_Energy->GetXaxis()->SetBinLabel(3,"Emec C"); - m_hSummaryErrors_Energy->GetXaxis()->SetBinLabel(4,"Emec A"); - m_hSummaryErrors_Energy->GetXaxis()->SetBinLabel(5,"Hec C"); - m_hSummaryErrors_Energy->GetXaxis()->SetBinLabel(6,"Hec A"); - m_hSummaryErrors_Energy->GetXaxis()->SetBinLabel(7,"Fcal C"); - m_hSummaryErrors_Energy->GetXaxis()->SetBinLabel(8,"Fcal A"); + m_hSummaryErrors_Energy->GetXaxis()->SetTitle("Partition"); + m_hSummaryErrors_Energy->GetXaxis()->SetBinLabel(1,"EMBC"); + m_hSummaryErrors_Energy->GetXaxis()->SetBinLabel(2,"EMBA"); + m_hSummaryErrors_Energy->GetXaxis()->SetBinLabel(3,"EMECC"); + m_hSummaryErrors_Energy->GetXaxis()->SetBinLabel(4,"EMECA"); + m_hSummaryErrors_Energy->GetXaxis()->SetBinLabel(5,"HECC"); + m_hSummaryErrors_Energy->GetXaxis()->SetBinLabel(6,"HECA"); + m_hSummaryErrors_Energy->GetXaxis()->SetBinLabel(7,"FcalC"); + m_hSummaryErrors_Energy->GetXaxis()->SetBinLabel(8,"FcalA"); m_hSummaryErrors_Energy->GetYaxis()->SetTitle("Gain"); m_hSummaryErrors_Energy->GetYaxis()->SetBinLabel(3,"Low Gain"); m_hSummaryErrors_Energy->GetYaxis()->SetBinLabel(2,"Medium Gain"); @@ -385,15 +385,15 @@ LArRODMonTool::bookHistograms() hName = "Summary_T"; hTitle = "Summary of errors on Time per partition and per gain"; m_hSummaryErrors_Time = new TH2F(hName.c_str(),hTitle.c_str(),8,0.,8.,3,0.,3.); - m_hSummaryErrors_Time->GetXaxis()->SetTitle("Sub Detector"); - m_hSummaryErrors_Time->GetXaxis()->SetBinLabel(1,"Barrel C"); - m_hSummaryErrors_Time->GetXaxis()->SetBinLabel(2,"Barrel A"); - m_hSummaryErrors_Time->GetXaxis()->SetBinLabel(3,"Emec C"); - m_hSummaryErrors_Time->GetXaxis()->SetBinLabel(4,"Emec A"); - m_hSummaryErrors_Time->GetXaxis()->SetBinLabel(5,"Hec C"); - m_hSummaryErrors_Time->GetXaxis()->SetBinLabel(6,"Hec A"); - m_hSummaryErrors_Time->GetXaxis()->SetBinLabel(7,"Fcal C"); - m_hSummaryErrors_Time->GetXaxis()->SetBinLabel(8,"Fcal A"); + m_hSummaryErrors_Time->GetXaxis()->SetTitle("Partition"); + m_hSummaryErrors_Time->GetXaxis()->SetBinLabel(1,"EMBC"); + m_hSummaryErrors_Time->GetXaxis()->SetBinLabel(2,"EMBA"); + m_hSummaryErrors_Time->GetXaxis()->SetBinLabel(3,"EMECC"); + m_hSummaryErrors_Time->GetXaxis()->SetBinLabel(4,"EMECA"); + m_hSummaryErrors_Time->GetXaxis()->SetBinLabel(5,"HECC"); + m_hSummaryErrors_Time->GetXaxis()->SetBinLabel(6,"HECA"); + m_hSummaryErrors_Time->GetXaxis()->SetBinLabel(7,"FcalC"); + m_hSummaryErrors_Time->GetXaxis()->SetBinLabel(8,"FcalA"); m_hSummaryErrors_Time->GetYaxis()->SetTitle("Gain"); m_hSummaryErrors_Time->GetYaxis()->SetBinLabel(3,"Low Gain"); m_hSummaryErrors_Time->GetYaxis()->SetBinLabel(2,"Medium Gain"); @@ -403,15 +403,15 @@ LArRODMonTool::bookHistograms() hName = "Summary_Q"; hTitle = "Summary of errors on Quality per partition and per gain"; m_hSummaryErrors_Quality = new TH2F(hName.c_str(),hTitle.c_str(),8,0.,8.,3,0.,3.); - m_hSummaryErrors_Quality->GetXaxis()->SetTitle("Sub Detector"); - m_hSummaryErrors_Quality->GetXaxis()->SetBinLabel(1,"Barrel C"); - m_hSummaryErrors_Quality->GetXaxis()->SetBinLabel(2,"Barrel A"); - m_hSummaryErrors_Quality->GetXaxis()->SetBinLabel(3,"Emec C"); - m_hSummaryErrors_Quality->GetXaxis()->SetBinLabel(4,"Emec A"); - m_hSummaryErrors_Quality->GetXaxis()->SetBinLabel(5,"Hec C"); - m_hSummaryErrors_Quality->GetXaxis()->SetBinLabel(6,"Hec A"); - m_hSummaryErrors_Quality->GetXaxis()->SetBinLabel(7,"Fcal C"); - m_hSummaryErrors_Quality->GetXaxis()->SetBinLabel(8,"Fcal A"); + m_hSummaryErrors_Quality->GetXaxis()->SetTitle("Partition"); + m_hSummaryErrors_Quality->GetXaxis()->SetBinLabel(1,"EMBC"); + m_hSummaryErrors_Quality->GetXaxis()->SetBinLabel(2,"EMBA"); + m_hSummaryErrors_Quality->GetXaxis()->SetBinLabel(3,"EMECC"); + m_hSummaryErrors_Quality->GetXaxis()->SetBinLabel(4,"EMECA"); + m_hSummaryErrors_Quality->GetXaxis()->SetBinLabel(5,"HECC"); + m_hSummaryErrors_Quality->GetXaxis()->SetBinLabel(6,"HECA"); + m_hSummaryErrors_Quality->GetXaxis()->SetBinLabel(7,"FcalC"); + m_hSummaryErrors_Quality->GetXaxis()->SetBinLabel(8,"FcalA"); m_hSummaryErrors_Quality->GetYaxis()->SetTitle("Gain"); m_hSummaryErrors_Quality->GetYaxis()->SetBinLabel(3,"Low Gain"); m_hSummaryErrors_Quality->GetYaxis()->SetBinLabel(2,"Medium Gain"); @@ -471,43 +471,43 @@ LArRODMonTool::bookHistograms() hName = "EErrorsPerLB"; hTitle = "Nb of errors in E per LB and per partition"; m_hEErrors_LB_part = new TH2I(hName.c_str(), hTitle.c_str(),m_nb_lb,-0.5,m_nb_lb-0.5,8,0,8); - m_hEErrors_LB_part->GetYaxis()->SetBinLabel(1,"Barrel C"); - m_hEErrors_LB_part->GetYaxis()->SetBinLabel(2,"Barrel A"); - m_hEErrors_LB_part->GetYaxis()->SetBinLabel(3,"Emec C"); - m_hEErrors_LB_part->GetYaxis()->SetBinLabel(4,"Emec A"); - m_hEErrors_LB_part->GetYaxis()->SetBinLabel(5,"Hec C"); - m_hEErrors_LB_part->GetYaxis()->SetBinLabel(6,"Hec A"); - m_hEErrors_LB_part->GetYaxis()->SetBinLabel(7,"Fcal C"); - m_hEErrors_LB_part->GetYaxis()->SetBinLabel(8,"Fcal A"); - m_hEErrors_LB_part->GetXaxis()->SetTitle("LumiBlock"); + m_hEErrors_LB_part->GetYaxis()->SetBinLabel(1,"EMBC"); + m_hEErrors_LB_part->GetYaxis()->SetBinLabel(2,"EMBA"); + m_hEErrors_LB_part->GetYaxis()->SetBinLabel(3,"EMECC"); + m_hEErrors_LB_part->GetYaxis()->SetBinLabel(4,"EMECA"); + m_hEErrors_LB_part->GetYaxis()->SetBinLabel(5,"HECC"); + m_hEErrors_LB_part->GetYaxis()->SetBinLabel(6,"HECA"); + m_hEErrors_LB_part->GetYaxis()->SetBinLabel(7,"FcalC"); + m_hEErrors_LB_part->GetYaxis()->SetBinLabel(8,"FcalA"); + m_hEErrors_LB_part->GetXaxis()->SetTitle("Luminosity Block"); CHECK(infosGroup.regHist(m_hEErrors_LB_part)); hName = "TErrorsPerLB"; hTitle = "Nb of errors in T per LB and per partition"; m_hTErrors_LB_part = new TH2I(hName.c_str(), hTitle.c_str(),m_nb_lb,-0.5,m_nb_lb-0.5,8,0,8); - m_hTErrors_LB_part->GetYaxis()->SetBinLabel(1,"Barrel C"); - m_hTErrors_LB_part->GetYaxis()->SetBinLabel(2,"Barrel A"); - m_hTErrors_LB_part->GetYaxis()->SetBinLabel(3,"Emec C"); - m_hTErrors_LB_part->GetYaxis()->SetBinLabel(4,"Emec A"); - m_hTErrors_LB_part->GetYaxis()->SetBinLabel(5,"Hec C"); - m_hTErrors_LB_part->GetYaxis()->SetBinLabel(6,"Hec A"); - m_hTErrors_LB_part->GetYaxis()->SetBinLabel(7,"Fcal C"); - m_hTErrors_LB_part->GetYaxis()->SetBinLabel(8,"Fcal A"); - m_hTErrors_LB_part->GetXaxis()->SetTitle("LumiBlock"); + m_hTErrors_LB_part->GetYaxis()->SetBinLabel(1,"EMBC"); + m_hTErrors_LB_part->GetYaxis()->SetBinLabel(2,"EMBA"); + m_hTErrors_LB_part->GetYaxis()->SetBinLabel(3,"EMECC"); + m_hTErrors_LB_part->GetYaxis()->SetBinLabel(4,"EMECA"); + m_hTErrors_LB_part->GetYaxis()->SetBinLabel(5,"HECC"); + m_hTErrors_LB_part->GetYaxis()->SetBinLabel(6,"HECA"); + m_hTErrors_LB_part->GetYaxis()->SetBinLabel(7,"FcalC"); + m_hTErrors_LB_part->GetYaxis()->SetBinLabel(8,"FcalA"); + m_hTErrors_LB_part->GetXaxis()->SetTitle("Luminosity Block"); CHECK(infosGroup.regHist(m_hTErrors_LB_part)); hName = "QErrorsPerLB"; hTitle = "Nb of errors in Q per LB and per partition"; m_hQErrors_LB_part = new TH2I(hName.c_str(), hTitle.c_str(),m_nb_lb,-0.5,m_nb_lb-0.5,8,0,8); - m_hQErrors_LB_part->GetYaxis()->SetBinLabel(1,"Barrel C"); - m_hQErrors_LB_part->GetYaxis()->SetBinLabel(2,"Barrel A"); - m_hQErrors_LB_part->GetYaxis()->SetBinLabel(3,"Emec C"); - m_hQErrors_LB_part->GetYaxis()->SetBinLabel(4,"Emec A"); - m_hQErrors_LB_part->GetYaxis()->SetBinLabel(5,"Hec C"); - m_hQErrors_LB_part->GetYaxis()->SetBinLabel(6,"Hec A"); - m_hQErrors_LB_part->GetYaxis()->SetBinLabel(7,"Fcal C"); - m_hQErrors_LB_part->GetYaxis()->SetBinLabel(8,"Fcal A"); - m_hQErrors_LB_part->GetXaxis()->SetTitle("LumiBlock"); + m_hQErrors_LB_part->GetYaxis()->SetBinLabel(1,"EMBC"); + m_hQErrors_LB_part->GetYaxis()->SetBinLabel(2,"EMBA"); + m_hQErrors_LB_part->GetYaxis()->SetBinLabel(3,"EMECC"); + m_hQErrors_LB_part->GetYaxis()->SetBinLabel(4,"EMECA"); + m_hQErrors_LB_part->GetYaxis()->SetBinLabel(5,"HECC"); + m_hQErrors_LB_part->GetYaxis()->SetBinLabel(6,"HECA"); + m_hQErrors_LB_part->GetYaxis()->SetBinLabel(7,"FcalC"); + m_hQErrors_LB_part->GetYaxis()->SetBinLabel(8,"FcalA"); + m_hQErrors_LB_part->GetXaxis()->SetTitle("Luminosity Block"); CHECK(infosGroup.regHist(m_hQErrors_LB_part)); int nStreams = m_streams.size(); diff --git a/LArCalorimeter/LArMonTools/src/LArRawChannelMonTool.cxx b/LArCalorimeter/LArMonTools/src/LArRawChannelMonTool.cxx index f93b1f674780754411a700fa1e6f4a838612e8c8..d4042389d63679135f1ee33e6fb0859140b2863c 100755 --- a/LArCalorimeter/LArMonTools/src/LArRawChannelMonTool.cxx +++ b/LArCalorimeter/LArMonTools/src/LArRawChannelMonTool.cxx @@ -78,7 +78,7 @@ typedef map_det_th2ptr::const_iterator citer_det_th2ptr; //typedef std::map<Sampling, std::deque<Region> > sam_region_map_t; -static const double coarse_pi = 3.2; +//static const double coarse_pi = 3.2; /*----------------------------------------------------------------------------*/ @@ -670,8 +670,7 @@ StatusCode LArRawChannelMonTool::bookHistograms() if ( _monitor_burst){ // if ( _monitor_positive_noise ) { - std::string his_title = "Percent of Channels in the " + detector_str( det ) + - " with +E > " + lexical_cast<std::string>( _noise_threshold ) +" #sigma"; + std::string his_title = "Yield of channels with +E > " + lexical_cast<std::string>( _noise_threshold ) +" #sigma -"+ detector_str( det ); factory_ptr.reset(new LWHist1DFactory<TH1F_LW>(his_title.c_str(),375, 0., 7.5 )); factory_ptr->SetXTitle("Percent of Channels"); factory_ptr->SetYTitle("Number of Events per 0.02 %"); @@ -681,8 +680,7 @@ StatusCode LArRawChannelMonTool::bookHistograms() if ( _monitor_burst){ // if ( _monitor_negative_noise ) { - std::string his_title = "Percent of Channels in the " + detector_str( det ) + - " with -E > " + lexical_cast<std::string>( _noise_threshold ) +" #sigma"; + std::string his_title = "Yield of channels with -E > " + lexical_cast<std::string>( _noise_threshold ) +" #sigma - " + detector_str( det ); factory_ptr.reset(new LWHist1DFactory<TH1F_LW>(his_title.c_str(),375, 0., 7.5 )); factory_ptr->SetXTitle("Percent of Channels"); factory_ptr->SetYTitle("Number of Events per 0.02 %"); @@ -692,8 +690,7 @@ StatusCode LArRawChannelMonTool::bookHistograms() // Noise fraction (Positive only) histogram when not flagged by LArNoisyROAlg_W if ( _monitor_burst){ // if ( _monitor_negative_noise ) { - std::string his_title = "Percent of Channels in the " + detector_str( det ) + - " with Wheighted Flag > " + lexical_cast<std::string>( _noise_threshold ) +" #sigma"; + std::string his_title = "Yield of channels with +E > " + lexical_cast<std::string>( _noise_threshold ) +" #sigma (no LArNoisyRO_StdOpt) -"+ detector_str( det ); factory_ptr.reset(new LWHist1DFactory<TH1F_LW>(his_title.c_str(),375, 0., 7.5 )); factory_ptr->SetXTitle("Percent of Channels"); factory_ptr->SetYTitle("Number of Events per 0.02 %"); @@ -704,8 +701,7 @@ StatusCode LArRawChannelMonTool::bookHistograms() // Noise fraction (Positive only) histogram when not flagged by LArNoisyROAlg if ( _monitor_burst){ // if ( _monitor_positive_noise ) { - std::string his_title = "Percent of Channels in the " + detector_str( det ) + - " with +E > " + lexical_cast<std::string>( _noise_threshold ) +" #sigma (Events with No Bursty FEBs)"; + std::string his_title = "Yield of channels with +E > " + lexical_cast<std::string>( _noise_threshold ) +" #sigma (no LArNoisyRO_Std) -"+ detector_str( det ); factory_ptr.reset(new LWHist1DFactory<TH1F_LW>(his_title.c_str(),375, 0., 7.5 )); factory_ptr->SetXTitle("Percent of Channels"); factory_ptr->SetYTitle("Number of Events per 0.02 %"); @@ -715,8 +711,7 @@ StatusCode LArRawChannelMonTool::bookHistograms() // Noise fraction (Positive only) histogram when flagged by LArNoisyROAlg but without time bit set (time veto) if ( _monitor_burst){ // if ( _monitor_positive_noise ) { - std::string his_title = "Percent of Channels in the " + detector_str( det ) + - " with +E > " + lexical_cast<std::string>( _noise_threshold ) +" #sigma (Events with no LArEventInfo::ERROR )"; + std::string his_title = "Yield of channels with +E > " + lexical_cast<std::string>( _noise_threshold ) +" #sigma (time vetoed) -"+ detector_str( det ); factory_ptr.reset(new LWHist1DFactory<TH1F_LW>(his_title.c_str(),375, 0., 7.5 )); factory_ptr->SetXTitle("Percent of Channels"); factory_ptr->SetYTitle("Number of Events per 0.02 %"); @@ -724,18 +719,15 @@ StatusCode LArRawChannelMonTool::bookHistograms() } if ( _monitor_signal ) { - std::string his_title = "Sum of the energy (MeV) in all channels of the " + detector_str( det ) + " (no LArEventInfo::ERROR)"; + std::string his_title = "Energy sum (time vetoed) " + detector_str( det ); factory_ptr.reset(new LWHistProfileFactory(his_title.c_str(),_n_lumi_blocks, 0.5, double(_n_lumi_blocks)+0.5 )); factory_ptr->SetXTitle("Luminosity Block"); - factory_ptr->SetYTitle("Mean total energy per lumi block (MeV)"); + factory_ptr->SetYTitle("Mean total energy(MeV)"); det_histogram_factories[det][pedestal_evolution_h] = factory_ptr; } if ( _monitor_burst ) { - std::string his_title = "Number Of Events With More Than " + - std::string( Form( "%.2f", _noise_burst_percent_thresholds[det]) ) + - " % Of All Channels In The " + detector_str(det) + " Reporting |E| > " + - lexical_cast<std::string>( _noise_threshold ) + "#sigma"; + std::string his_title = "# of Events With Y_{3#sigma}>" + std::string( Form( "%.2f", _noise_burst_percent_thresholds[det]) ) + " % - " + detector_str(det); // TH1F graft( ("det_burst_graft"+detector_str(det)).c_str(), his_title.c_str(), 1440, -0.5, 1439.5 ); factory_ptr.reset(new LWHist1DFactory<TH1F_LW>(his_title.c_str(),_n_lumi_blocks, 0.5, double(_n_lumi_blocks)+0.5)); factory_ptr->SetXTitle("Luminosity Block"); @@ -745,10 +737,7 @@ StatusCode LArRawChannelMonTool::bookHistograms() // With Time Veto if ( _monitor_burst ) { - std::string his_title = "Number Of Events (after LArNoisyRO Time Veto) With More Than " + - std::string( Form( "%.2f", _noise_burst_percent_thresholds[det]) ) + - " % Of All Channels In The " + detector_str(det) + " Reporting |E| > " + - lexical_cast<std::string>( _noise_threshold ) + "#sigma"; + std::string his_title = "# of Events With Y_{3#sigma}>" + std::string( Form( "%.2f", _noise_burst_percent_thresholds[det]) ) + " % (time vetoed)- " + detector_str(det); // TH1F graft( ("det_burst_graft"+detector_str(det)).c_str(), his_title.c_str(), 1440, -0.5, 1439.5 ); factory_ptr.reset(new LWHist1DFactory<TH1F_LW>(his_title.c_str(),_n_lumi_blocks, 0.5, double(_n_lumi_blocks)+0.5)); factory_ptr->SetXTitle("Luminosity Block"); @@ -801,7 +790,7 @@ StatusCode LArRawChannelMonTool::bookHistograms() } if ( _monitor_signal ) { - std::string his_title = "Sum of the energy (MeV) in all channels of the " + detector_str( det ) + " per bunch crossing "; + std::string his_title = "Energy sum per bunch crossing - " + detector_str( det ); factory_ptr.reset(new LWHistProfileFactory(his_title.c_str(),3564, 0.5, 3564.5 )); factory_ptr->SetXTitle("Bunch Crossing Number"); factory_ptr->SetYTitle("Mean total energy (MeV)");