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