From 1bdb09dba99882c284c1c25b1bdd3d286ab26c60 Mon Sep 17 00:00:00 2001
From: bigliett <michela.biglietti@cern.ch>
Date: Mon, 22 Jun 2020 13:14:14 +0200
Subject: [PATCH] updates for the configuration

---
 .../MdtRawDataMonitoring/MdtRawDataMonAlg.h   | 46 ++++--------
 .../python/MDTMonitorAlgorithm.py             | 40 ++--------
 .../src/MdtRawDataMonAlg.cxx                  | 73 +++++++++----------
 3 files changed, 56 insertions(+), 103 deletions(-)

diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MdtRawDataMonitoring/MdtRawDataMonitoring/MdtRawDataMonAlg.h b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MdtRawDataMonitoring/MdtRawDataMonitoring/MdtRawDataMonAlg.h
index 3c8c088f6e8b..351fe161c323 100755
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MdtRawDataMonitoring/MdtRawDataMonitoring/MdtRawDataMonAlg.h
+++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MdtRawDataMonitoring/MdtRawDataMonitoring/MdtRawDataMonAlg.h
@@ -114,8 +114,6 @@ class MdtRawDataMonAlg: public AthMonitorAlgorithm {
   TH2* m_mdthitsperchamber_InnerMiddleOuterLumi[2];
   TH2* m_mdthitsperML_byLayer[3];//These are alternative Global hit coverage plots
 
-  std::string m_title;
-
   MDTNoisyTubes* m_masked_tubes;
 
   ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
@@ -160,7 +158,6 @@ class MdtRawDataMonAlg: public AthMonitorAlgorithm {
   StatusCode GetTimingInfo();//here
   void initDeadChannels(const MuonGM::MdtReadoutElement* mydetEl);
 
-  ToolHandleArray<IDQFilterTool> m_DQFilterTools;
   bool m_atlas_ready;
 
   SG::ReadHandleKey<Trk::SegmentCollection> m_segm_type{this,"Eff_segm_type","MuonSegments","muon segments"};
@@ -182,9 +179,7 @@ class MdtRawDataMonAlg: public AthMonitorAlgorithm {
 
   // to book or not bookMDTTDCplots -->   /Chambers/tmp/ directory
   bool m_doChamberHists;
-  bool m_isOnline;
   bool m_maskNoisyTubes;
-  bool m_chamber_2D; //DEV to be put back //Set this to true/false in the Job Options in order to see/not see chamber by chamber 2d adc vs tdc plots.  
 
   SG::ReadHandleKey<Muon::MdtPrepDataContainer> m_key_mdt{this,"MdtPrepDataContainer","MDT_DriftCircles","MDT PRDs"};
   SG::ReadHandleKey<Muon::RpcPrepDataContainer> m_key_rpc{this,"RpcPrepDataContainer","RPC_Measurements","RPC PRDs"};
@@ -194,7 +189,6 @@ class MdtRawDataMonAlg: public AthMonitorAlgorithm {
 
   //Define configurable adccut and TGC/RPC keys
   float m_ADCCut;
-  float m_ADCCut_Bkgrd;
 
   //Chamber by Chamber Plots
   std::vector< MDTChamber* >* m_hist_hash_list;
@@ -207,30 +201,22 @@ class MdtRawDataMonAlg: public AthMonitorAlgorithm {
   bool m_do_mdtchamberstatphislice;
   bool m_do_mdtChamberHits;
   bool m_do_mdttdccut_sector;
-  bool m_do_mdttdc;
-  bool m_do_mdttdccut_ML1;
-  bool m_do_mdttdccut_ML2;
-  bool m_do_mdtadc_onSegm_ML1;
-  bool m_do_mdtadc_onSegm_ML2;
-  bool m_do_mdttdccut_RPCtrig_ML1;
-  bool m_do_mdttdccut_TGCtrig_ML1;
-  bool m_do_mdttdccut_RPCtrig_ML2;
-  bool m_do_mdttdccut_TGCtrig_ML2;
-  bool m_do_mdtadc;
-  bool m_do_mdttdcadc;
-  bool m_do_mdtmultil;
-  bool m_do_mdtlayer;
-  bool m_do_mdttube;
-  bool m_do_mdttube_masked;
-  bool m_do_mdttube_fornoise;
-  bool m_do_mdttube_bkgrd;
-  bool m_do_mdtmezz;
-  bool m_do_mdt_effEntries;
-  bool m_do_mdt_effCounts;
-  bool m_do_mdt_effPerTube;
-  bool m_do_mdt_DRvsDT;
-  bool m_do_mdt_DRvsDRerr;
-  bool m_do_mdt_DRvsSegD;
+  //  bool m_do_mdttdc;
+  //  bool m_do_mdttdccut_ML1;
+  //  bool m_do_mdttdccut_ML2;
+  //  bool m_do_mdtadc_onSegm_ML1;
+  //  bool m_do_mdtadc_onSegm_ML2;
+  //  bool m_do_mdtadc;
+  //  bool m_do_mdttdcadc;
+  //  bool m_do_mdtlayer;
+  //  bool m_do_mdttube;
+  //  bool m_do_mdtmezz;
+  //  bool m_do_mdt_effEntries;
+  //  bool m_do_mdt_effCounts;
+  //  bool m_do_mdt_effPerTube;
+  //  bool m_do_mdt_DRvsDT;
+  //  bool m_do_mdt_DRvsDRerr;
+  //  bool m_do_mdt_DRvsSegD;
   //
 
   // NEW
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MdtRawDataMonitoring/python/MDTMonitorAlgorithm.py b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MdtRawDataMonitoring/python/MDTMonitorAlgorithm.py
index 179b37958b6e..4c47f9330efa 100644
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MdtRawDataMonitoring/python/MDTMonitorAlgorithm.py
+++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MdtRawDataMonitoring/python/MDTMonitorAlgorithm.py
@@ -43,39 +43,13 @@ def MdtMonitoringConfig(inputFlags):
     #MdtRawDataMonAlg.DoMdtEsd = True
     mdtMonAlg = helper.addAlgorithm(CompFactory.MdtRawDataMonAlg,'MdtMonAlg')
     mdtMonAlg.DoMdtEsd = True
-
-    # You can actually make multiple instances of the same algorithm and give 
-    # them different configurations
-    ######anotherExampleMonAlg = helper.addAlgorithm(ExampleMonitorAlgorithm,'AnotherExampleMonAlg')
-
-    # # If for some really obscure reason you need to instantiate an algorithm
-    # # yourself, the AddAlgorithm method will still configure the base 
-    # # properties and add the algorithm to the monitoring sequence.
-    # helper.AddAlgorithm(myExistingAlg)
-
-
-    ### STEP 3 ###
-    # Edit properties of a algorithm
-    #####exampleMonAlg.TriggerChain = ''
-
-    ### STEP 4 ###
-    # Add some tools. N.B. Do not use your own trigger decion tool. Use the
-    # standard one that is included with AthMonitorAlgorithm.
-
-    # # First, add a tool that's set up by a different configuration function. 
-    # # In this case, CaloNoiseToolCfg returns its own component accumulator, 
-    # # which must be merged with the one from this function.
-    # from CaloTools.CaloNoiseToolConfig import CaloNoiseToolCfg
-    # caloNoiseAcc, caloNoiseTool = CaloNoiseToolCfg(inputFlags)
-    # result.merge(caloNoiseAcc)
-    # exampleMonAlg.CaloNoiseTool = caloNoiseTool
-
-    # # Then, add a tool that doesn't have its own configuration function. In
-    # # this example, no accumulator is returned, so no merge is necessary.
-    # from MyDomainPackage.MyDomainPackageConf import MyDomainTool
-    # exampleMonAlg.MyDomainTool = MyDomainTool()
-
-    # Add a generic monitoring tool (a "group" in old language). The returned 
+    mdtMonAlg.DoChamberHist=True
+    mdtMonAlg.maskNoisyTubes = True
+    mdtMonAlg.ADCCut = 80.
+    mdtMonAlg.do_mdtChamberHits=True
+    mdtMonAlg.do_mdttdccut_sector=True
+    mdtMonAlg.do_mdtchamberstatphislice=True
+    # Add a gezneric monitoring tool (a "group" in old language). The returned 
     # object here is the standard GenericMonitoringTool.
     mdtGroup = helper.addGroup(mdtMonAlg,'MdtMonitor','Muon/MuonRawDataMonitoring/MDT/')
 
diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MdtRawDataMonitoring/src/MdtRawDataMonAlg.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MdtRawDataMonitoring/src/MdtRawDataMonAlg.cxx
index b0e3fde3bf7e..2a0743498eed 100755
--- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MdtRawDataMonitoring/src/MdtRawDataMonAlg.cxx
+++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/MdtRawDataMonitoring/src/MdtRawDataMonAlg.cxx
@@ -123,7 +123,6 @@ MdtRawDataMonAlg::MdtRawDataMonAlg( const std::string& name, ISvcLocator* pSvcLo
  :AthMonitorAlgorithm(name,pSvcLocator),
  m_masked_tubes(NULL),
  m_muonSelectionTool("CP::MuonSelectionTool/MuonSelectionTool"),
- m_DQFilterTools(this),
  m_atlas_ready(0),
  m_hist_hash_list(0),
  m_BMGpresent(false),
@@ -131,47 +130,34 @@ MdtRawDataMonAlg::MdtRawDataMonAlg( const std::string& name, ISvcLocator* pSvcLo
 {
   //  Declare the properties
   declareProperty("DoMdtEsd",                m_doMdtESD=false);
-  declareProperty("DoChamber2DHist",         m_chamber_2D=true);
   declareProperty("DoChamberHist",           m_doChamberHists=true);
-  declareProperty("DoOnlineMonitoring",      m_isOnline=false);
   declareProperty("maskNoisyTubes",          m_maskNoisyTubes=true);
   declareProperty("ADCCut",                  m_ADCCut=50.);
-  declareProperty("ADCCutForBackground",     m_ADCCut_Bkgrd=80.);
   declareProperty("Eff_nHits",               m_nb_hits=5.);
   declareProperty("Eff_chi2Cut",             m_chi2_cut=10.);
-  declareProperty("AtlasFilterTool",         m_DQFilterTools);
-  declareProperty("Title",                   m_title);
+
   //Global Histogram controls
   declareProperty("do_mdtChamberHits",       m_do_mdtChamberHits = true);
   declareProperty("do_mdttdccut_sector",     m_do_mdttdccut_sector = true);
-  declareProperty("do_mdtchamberstatphislice", m_do_mdtchamberstatphislice = true);
+  declareProperty("do_mdtchamberstatphislice", m_do_mdtchamberstatphislice = true);//
   //Chamber wise histogram control
-  declareProperty("do_mdttdc",               m_do_mdttdc = true);
-  declareProperty("do_mdttdccut_ML1",        m_do_mdttdccut_ML1 = true);
-  declareProperty("do_mdttdccut_ML2",        m_do_mdttdccut_ML2 = true);
-  declareProperty("do_mdtadc_onSegm_ML1",        m_do_mdtadc_onSegm_ML1 = true);
-  declareProperty("do_mdtadc_onSegm_ML2",        m_do_mdtadc_onSegm_ML2 = true);
-  declareProperty("do_mdttdccut_RPCtrig_ML1", m_do_mdttdccut_RPCtrig_ML1 = true);
-  declareProperty("do_mdttdccut_TGCtrig_ML1", m_do_mdttdccut_TGCtrig_ML1 = true);
-  declareProperty("do_mdttdccut_RPCtrig_ML2", m_do_mdttdccut_RPCtrig_ML2 = true);
-  declareProperty("do_mdttdccut_TGCtrig_ML2", m_do_mdttdccut_TGCtrig_ML2 = true);
-  declareProperty("do_mdtadc",               m_do_mdtadc = true);
-  declareProperty("do_mdttdcadc",            m_do_mdttdcadc = true);
-  declareProperty("do_mdtmultil",            m_do_mdtmultil = true);
-  declareProperty("do_mdtlayer",             m_do_mdtlayer = true);
-  declareProperty("do_mdttube",              m_do_mdttube = true);
-  declareProperty("do_mdttube_masked",       m_do_mdttube_masked = true);
-  declareProperty("do_mdttube_fornoise",     m_do_mdttube_fornoise = true);
-  declareProperty("do_mdttube_bkgrd",        m_do_mdttube_bkgrd = true);
-  declareProperty("do_mdtmezz",              m_do_mdtmezz = true);
-  declareProperty("do_mdt_effEntries",       m_do_mdt_effEntries = true);
-  declareProperty("do_mdt_effCounts",        m_do_mdt_effCounts = true);
-  declareProperty("do_mdt_effPerTube",       m_do_mdt_effPerTube = false);
-  declareProperty("do_mdt_DRvsDT",           m_do_mdt_DRvsDT = true);
-  declareProperty("do_mdt_DRvsDRerr",        m_do_mdt_DRvsDRerr = false);
-  declareProperty("do_mdt_DRvsSegD",         m_do_mdt_DRvsSegD = true);
-  //declareProperty("nHits_NoiseThreshold",    m_HighOccThreshold = 16000.);
- declareProperty("nHits_NoiseThreshold",    m_HighOccThreshold = 400.);//DEV to-be-fixed
+  //  declareProperty("do_mdttdc",               m_do_mdttdc = true);
+  //  declareProperty("do_mdttdccut_ML1",        m_do_mdttdccut_ML1 = true);
+  //  declareProperty("do_mdttdccut_ML2",        m_do_mdttdccut_ML2 = true);
+  //  declareProperty("do_mdtadc_onSegm_ML1",        m_do_mdtadc_onSegm_ML1 = true);
+  //  declareProperty("do_mdtadc_onSegm_ML2",        m_do_mdtadc_onSegm_ML2 = true);
+  //  declareProperty("do_mdtadc",               m_do_mdtadc = true);
+  //  declareProperty("do_mdttdcadc",            m_do_mdttdcadc = true);
+  //  declareProperty("do_mdtlayer",             m_do_mdtlayer = true);
+  //  declareProperty("do_mdttube",              m_do_mdttube = true);
+  //  declareProperty("do_mdtmezz",              m_do_mdtmezz = true);
+  //  declareProperty("do_mdt_effEntries",       m_do_mdt_effEntries = true);
+  //  declareProperty("do_mdt_effCounts",        m_do_mdt_effCounts = true);
+  //  declareProperty("do_mdt_effPerTube",       m_do_mdt_effPerTube = false);
+  //  declareProperty("do_mdt_DRvsDT",           m_do_mdt_DRvsDT = true);
+  //  declareProperty("do_mdt_DRvsDRerr",        m_do_mdt_DRvsDRerr = false);
+  //  declareProperty("do_mdt_DRvsSegD",         m_do_mdt_DRvsSegD = true);
+  declareProperty("nHits_NoiseThreshold",    m_HighOccThreshold = 16000.);
 }
 
 MdtRawDataMonAlg::~MdtRawDataMonAlg()
@@ -199,15 +185,12 @@ StatusCode MdtRawDataMonAlg::initialize()
   //If Online ensure that lowStat histograms are made at the runLevel and that _lowStat suffix is suppressed
 
   //If online monitoring turn off chamber by chamber hists
-  if(m_isOnline) m_doChamberHists = false;
 
   // MuonDetectorManager from the conditions store
   ATH_CHECK(m_DetectorManagerKey.initialize());
 
   ATH_CHECK(m_idHelperSvc.retrieve());
   
-  ATH_CHECK(m_DQFilterTools.retrieve());
-
   ATH_CHECK(m_muonSelectionTool.retrieve());
 
   if(m_maskNoisyTubes) m_masked_tubes = new MDTNoisyTubes();
@@ -441,8 +424,9 @@ StatusCode MdtRawDataMonAlg::fillHistograms(const EventContext& ctx) const
             isHit_above_ADCCut = true;
 	    std::string phi=hardware_name.substr( hardware_name.length() - 2); 
 	    auto hit_in_chamber = Monitored::Scalar<std::string>("hits_phi_"+phi,hardware_name); 
+	    if(m_do_mdtchamberstatphislice)    fill("MdtMonitor",hit_in_chamber);    
 	    auto hit_in_chamber_allphi = Monitored::Scalar<std::string>("hits_allphi",hardware_name); 
-	    fill("MdtMonitor",hit_in_chamber,hit_in_chamber_allphi);                                                                                   
+	    fill("MdtMonitor",hit_in_chamber_allphi);                                                                                   
           }
           fillMDTOverviewVects(*mdtCollection, isNoiseBurstCandidate, overviewPlots);
 	  //=======================================================================
@@ -834,9 +818,15 @@ StatusCode MdtRawDataMonAlg::fillMDTSummaryHistograms( const MDTSummaryHistogram
 	  for (int icrate = 0; icrate < 4; ++icrate) {
 	    auto& thisVects = vects[iregion][ilayer][stationPhi][crate_region][icrate];
 	    auto sector = Monitored::Collection("sector",thisVects.sector);
+
+	    fill("MdtMonitor", lb_mon, sector);
+
 	    auto stationEta = Monitored::Collection("stEta_"+region[iregion]+"_"+layer[ilayer]+"_phi"+std::to_string(stationPhi+1), thisVects.stationEta); 
 	    
-	    fill("MdtMonitor", lb_mon, sector);
+	    if(m_do_mdtChamberHits){	    
+	      fill(MDT_regionGroup, stationEta);
+	    }
+
 	    
 	    auto adc_mon =  Monitored::Collection("adc_mon", thisVects.adc_mon); 
 	    auto tdc_mon =  Monitored::Collection("tdc_mon", thisVects.tdc_mon); 
@@ -852,7 +842,8 @@ StatusCode MdtRawDataMonAlg::fillMDTSummaryHistograms( const MDTSummaryHistogram
 	    
 	    auto adc_mon_adccut =  Monitored::Collection("adc_mon_adccut", thisVects.adc_mon_adccut);
 	    auto tdc_mon_adccut =  Monitored::Collection("tdc_mon_adccut", thisVects.tdc_mon_adccut);
-	    fill(MDT_regionGroup, stationEta, tdc_mon_adccut, adc_mon_adccut);
+	    //	    fill(MDT_regionGroup, stationEta, tdc_mon_adccut, adc_mon_adccut);
+	    fill(MDT_regionGroup, tdc_mon_adccut, adc_mon_adccut);
 	    
 	    std::string varx = iregion < 2 ? "x_mon_barrel" : "x_mon_endcap";
 	    std::string vary = iregion < 2 ? "y_mon_barrel" : "y_mon_endcap";
@@ -1316,10 +1307,12 @@ StatusCode MdtRawDataMonAlg::fillMDTSegmentHistograms( const MDTSegmentHistogram
 	auto adc_segs_overall_mon =  Monitored::Collection("adc_segs_overall_mon", thisVects.adc_segs_mon); 
 	std::string tdc_var="tdc_segs_"+region[iregion]+"_"+layer[ilayer]+"_phi"+std::to_string(stationPhi+1);
 	auto tdc_segs_mon =  Monitored::Collection(tdc_var, thisVects.tdc_segs_mon); 
+	if(m_do_mdttdccut_sector) fill(MDT_regionGroup, tdc_segs_mon);
+
 	auto tdc_segs_overall_mon =  Monitored::Collection("tdc_segs_overall_mon", thisVects.tdc_segs_mon); 
 	auto tdc_segs_region_mon =  Monitored::Collection("tdc_segs_region_mon", thisVects.tdc_segs_mon); 
     
-	fill(MDT_regionGroup, adc_segs_mon, tdc_segs_mon, tdc_segs_region_mon);
+	fill(MDT_regionGroup, adc_segs_mon, tdc_segs_region_mon);
 
 	std::string varx = iregion < 2 ? "x_segs_mon_barrel" : "x_segs_mon_endcap";
 	std::string vary = iregion < 2 ? "y_segs_mon_barrel" : "y_segs_mon_endcap";
-- 
GitLab