diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/StgcRawDataMonitoring/python/StgcMonitorAlgorithm.py b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/StgcRawDataMonitoring/python/StgcMonitorAlgorithm.py index 0a9261d91a980f2b135d39dd5efa860c9d7c159b..edc50f76c29ca624faf266a2a8c7cfc6c7e27971 100644 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/StgcRawDataMonitoring/python/StgcMonitorAlgorithm.py +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/StgcRawDataMonitoring/python/StgcMonitorAlgorithm.py @@ -55,30 +55,32 @@ def sTgcMonitoringConfig(inputFlags): for multip in range(1, 3): for gasgap in range(1, 5): title_chargePad_phi_vs_eta = f'Charge (pad): {iside} Multiplet {multip} Gas gap {gasgap}; stationPhi; stationEta; Total charge [fC]' - var_chargePad_phi_vs_eta = f'sector_{iside}_phi_multiplet_{multip}_gasgap_{gasgap}, sector_{iside}_eta_multiplet_{multip}_gasgap_{gasgap};ChargePad_vs_phi_vs_eta_{iside}_multiplet_{multip}_gasgap_{gasgap}' + var_chargePad_phi_vs_eta = f'pad_phi_{iside}_multiplet_{multip}_gasgap_{gasgap}, pad_eta_{iside}_multiplet_{multip}_gasgap_{gasgap};ChargePad_vs_phi_vs_eta_{iside}_multiplet_{multip}_gasgap_{gasgap}' title_chargeStrip_phi_vs_eta = f'Charge (strip): {iside} Multiplet {multip} Gas gap {gasgap}; stationPhi; stationEta; Total charge [fC]' - var_chargeStrip_phi_vs_eta = f'sector_{iside}_phi_multiplet_{multip}_gasgap_{gasgap}, sector_{iside}_eta_multiplet_{multip}_gasgap_{gasgap};ChargeStrip_vs_phi_vs_eta_{iside}_multiplet_{multip}_gasgap_{gasgap}' + var_chargeStrip_phi_vs_eta = f'strip_phi_{iside}_multiplet_{multip}_gasgap_{gasgap}, strip_eta_{iside}_multiplet_{multip}_gasgap_{gasgap};ChargeStrip_vs_phi_vs_eta_{iside}_multiplet_{multip}_gasgap_{gasgap}' title_chargeWire_phi_vs_eta = f'Charge (wire): {iside} Multiplet {multip} Gas gap {gasgap}; stationPhi; stationEta; Total charge [fC]' - var_chargeWire_phi_vs_eta = f'sector_{iside}_phi_multiplet_{multip}_gasgap_{gasgap}, sector_{iside}_eta_multiplet_{multip}_gasgap_{gasgap};ChargeWire_vs_phi_vs_eta_{iside}_multiplet_{multip}_gasgap_{gasgap}' + var_chargeWire_phi_vs_eta = f'wire_phi_{iside}_multiplet_{multip}_gasgap_{gasgap}, wire_eta_{iside}_multiplet_{multip}_gasgap_{gasgap};ChargeWire_vs_phi_vs_eta_{iside}_multiplet_{multip}_gasgap_{gasgap}' if (f'{iside}' == 'ASide'): - stgcSideGroup.defineHistogram(var_chargePad_phi_vs_eta, type = 'TH2F', title = title_chargePad_phi_vs_eta, path = 'Summary', xbins = stationPhiMax, xmin = 1., xmax = float(stationPhiMax + 1), ybins = stationEtaMax, ymin = 1., ymax = float(stationEtaMax + 1), opt = 'kAlwaysCreate', weight = f'charge_pad_{iside}_multiplet_{multip}_gasgap_{gasgap}') - stgcSideGroup.defineHistogram(var_chargeStrip_phi_vs_eta, type = 'TH2F', title = title_chargeStrip_phi_vs_eta, path = 'Summary', xbins = stationPhiMax, xmin = 1., xmax = float(stationPhiMax + 1), ybins = stationEtaMax, ymin = 1., ymax = float(stationEtaMax + 1), opt = 'kAlwaysCreate', weight = f'charge_strip_{iside}_multiplet_{multip}_gasgap_{gasgap}') - stgcSideGroup.defineHistogram(var_chargeWire_phi_vs_eta, type = 'TH2F', title = title_chargeWire_phi_vs_eta, path = 'Summary', xbins = stationPhiMax, xmin = 1., xmax = float(stationPhiMax + 1), ybins = stationEtaMax, ymin = 1., ymax = float(stationEtaMax + 1), opt = 'kAlwaysCreate', weight = f'charge_wire_{iside}_multiplet_{multip}_gasgap_{gasgap}') + stgcSideGroup.defineHistogram(var_chargePad_phi_vs_eta, type = 'TH2F', title = title_chargePad_phi_vs_eta, path = 'Summary', xbins = stationPhiMax, xmin = 1., xmax = float(stationPhiMax + 1), ybins = stationEtaMax, ymin = 1., ymax = float(stationEtaMax + 1), opt = 'kAlwaysCreate', weight = f'pad_charge_{iside}_multiplet_{multip}_gasgap_{gasgap}') + stgcSideGroup.defineHistogram(var_chargeStrip_phi_vs_eta, type = 'TH2F', title = title_chargeStrip_phi_vs_eta, path = 'Summary', xbins = stationPhiMax, xmin = 1., xmax = float(stationPhiMax + 1), ybins = stationEtaMax, ymin = 1., ymax = float(stationEtaMax + 1), opt = 'kAlwaysCreate', weight = f'strip_charge_{iside}_multiplet_{multip}_gasgap_{gasgap}') + stgcSideGroup.defineHistogram(var_chargeWire_phi_vs_eta, type = 'TH2F', title = title_chargeWire_phi_vs_eta, path = 'Summary', xbins = stationPhiMax, xmin = 1., xmax = float(stationPhiMax + 1), ybins = stationEtaMax, ymin = 1., ymax = float(stationEtaMax + 1), opt = 'kAlwaysCreate', weight = f'wire_charge{iside}_multiplet_{multip}_gasgap_{gasgap}') else: - stgcSideGroup.defineHistogram(var_chargePad_phi_vs_eta, type = 'TH2F', title = title_chargePad_phi_vs_eta, path = 'Summary', xbins = stationPhiMax, xmin = 1., xmax = float(stationPhiMax + 1), ybins = stationEtaMax, ymin = -float(stationEtaMax + 1), ymax = -1., opt = 'kAlwaysCreate', weight = f'charge_pad_{iside}_multiplet_{multip}_gasgap_{gasgap}') - stgcSideGroup.defineHistogram(var_chargeStrip_phi_vs_eta, type = 'TH2F', title = title_chargeStrip_phi_vs_eta, path = 'Summary', xbins = stationPhiMax, xmin = 1., xmax = float(stationPhiMax + 1), ybins = stationEtaMax, ymin = -float(stationEtaMax + 1), ymax = -1., opt = 'kAlwaysCreate', weight = f'charge_strip_{iside}_multiplet_{multip}_gasgap_{gasgap}') - stgcSideGroup.defineHistogram(var_chargeWire_phi_vs_eta, type = 'TH2F', title = title_chargeWire_phi_vs_eta, path = 'Summary', xbins = stationPhiMax, xmin = 1., xmax = float(stationPhiMax + 1), ybins = stationEtaMax, ymin = -float(stationEtaMax + 1), ymax = -1., opt = 'kAlwaysCreate', weight = f'charge_wire_{iside}_multiplet_{multip}_gasgap_{gasgap}') + stgcSideGroup.defineHistogram(var_chargePad_phi_vs_eta, type = 'TH2F', title = title_chargePad_phi_vs_eta, path = 'Summary', xbins = stationPhiMax, xmin = 1., xmax = float(stationPhiMax + 1), ybins = stationEtaMax, ymin = -float(stationEtaMax + 1), ymax = -1., opt = 'kAlwaysCreate', weight = f'pad_charge_{iside}_multiplet_{multip}_gasgap_{gasgap}') + stgcSideGroup.defineHistogram(var_chargeStrip_phi_vs_eta, type = 'TH2F', title = title_chargeStrip_phi_vs_eta, path = 'Summary', xbins = stationPhiMax, xmin = 1., xmax = float(stationPhiMax + 1), ybins = stationEtaMax, ymin = -float(stationEtaMax + 1), ymax = -1., opt = 'kAlwaysCreate', weight = f'strip_charge_{iside}_multiplet_{multip}_gasgap_{gasgap}') + stgcSideGroup.defineHistogram(var_chargeWire_phi_vs_eta, type = 'TH2F', title = title_chargeWire_phi_vs_eta, path = 'Summary', xbins = stationPhiMax, xmin = 1., xmax = float(stationPhiMax + 1), ybins = stationEtaMax, ymin = -float(stationEtaMax + 1), ymax = -1., opt = 'kAlwaysCreate', weight = f'wire_charge_{iside}_multiplet_{multip}_gasgap_{gasgap}') for phiStation in range(1, stationPhiMax + 1): title_stationEta_vs_stripNumber_vs_chargeStrip_eachPhi = f'Station eta vs strip number vs charge (strip): {iside} Multiplet {multip} Gas gap {gasgap} stationPhi {phiStation}; stationEta; Strip number; Total charge [fC]' - var_stationEta_vs_stripNumber_vs_chargeStrip_eachPhi = f'sector_{iside}_eta_multiplet_{multip}_gasgap_{gasgap}_stationPhi_{phiStation}, stripNumber_strip_{iside}_multiplet_{multip}_gasgap_{gasgap}_stationPhi_{phiStation};StationEta_vs_stripNumber_vs_chargeStrip_{iside}_multiplet_{multip}_gasgap_{gasgap}_stationPhi_{phiStation}' - + var_stationEta_vs_stripNumber_vs_chargeStrip_eachPhi = f'strip_charge_{iside}_multiplet_{multip}_gasgap_{gasgap}_stationPhi_{phiStation}, strip_number_{iside}_multiplet_{multip}_gasgap_{gasgap}_stationPhi_{phiStation};StationEta_vs_stripNumber_vs_chargeStrip_{iside}_multiplet_{multip}_gasgap_{gasgap}_stationPhi_{phiStation}' + xmax_value = -1. + xmin_value = 1. if (f'{iside}' == 'ASide'): - stgcSideGroup.defineHistogram(var_stationEta_vs_stripNumber_vs_chargeStrip_eachPhi, type = 'TH2F', title = title_stationEta_vs_stripNumber_vs_chargeStrip_eachPhi, path = 'Summary', xbins = stationEtaMax, xmin = 1., xmax = float(stationEtaMax + 1), ybins = 400, ymin = 0., ymax = 400., opt = 'kAlwaysCreate', weight = f'charge_strip_{iside}_multiplet_{multip}_gasgap_{gasgap}_stationPhi_{phiStation}') + xmax_value = float(stationEtaMax + 1) else: - stgcSideGroup.defineHistogram(var_stationEta_vs_stripNumber_vs_chargeStrip_eachPhi, type = 'TH2F', title = title_stationEta_vs_stripNumber_vs_chargeStrip_eachPhi, path = 'Summary', xbins = stationEtaMax, xmin = -float(stationEtaMax + 1), xmax = -1., ybins = 400, ymin = 0., ymax = 400., opt = 'kAlwaysCreate', weight = f'charge_strip_{iside}_multiplet_{multip}_gasgap_{gasgap}_stationPhi_{phiStation}') + xmin_value = -float(stationEtaMax + 1) + stgcSideGroup.defineHistogram(var_stationEta_vs_stripNumber_vs_chargeStrip_eachPhi, type = 'TH2F', title = title_stationEta_vs_stripNumber_vs_chargeStrip_eachPhi, path = 'Summary', xbins = stationEtaMax, xmin = xmin_value, xmax = xmax_value, ybins = 400, ymin = 0., ymax = 400., opt = 'kAlwaysCreate') acc = helper.result() result.merge(acc) diff --git a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/StgcRawDataMonitoring/src/StgcRawDataMonAlg.cxx b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/StgcRawDataMonitoring/src/StgcRawDataMonAlg.cxx index e7f874c5a8dd441ef0539b3221939da330891c18..9d05d2341191f9dc9c955426f0c151c7f293fe2e 100644 --- a/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/StgcRawDataMonitoring/src/StgcRawDataMonAlg.cxx +++ b/MuonSpectrometer/MuonValidation/MuonDQA/MuonRawDataMonitoring/StgcRawDataMonitoring/src/StgcRawDataMonAlg.cxx @@ -117,55 +117,87 @@ void sTgcRawDataMonAlg::fillsTgcOverviewHistograms(const Muon::sTgcPrepData *sTg void sTgcRawDataMonAlg::fillsTgcSummaryHistograms(const Muon::sTgcPrepData *sTgc_object) const { Identifier Id = sTgc_object -> identify(); - if(!Id.is_valid()) return; + if(!Id.is_valid()) { + ATH_MSG_DEBUG("Invalid identifier found in Muon::sTgcPrepData"); + return; + } + int stationPhi = m_idHelperSvc -> stgcIdHelper().stationPhi(Id); int stationEta = m_idHelperSvc -> stgcIdHelper().stationEta(Id); + int iside = (stationEta > 0) ? 1 : 0; int multiplet = m_idHelperSvc -> stgcIdHelper().multilayer(Id); - int gas_gap = m_idHelperSvc -> stgcIdHelper().gasGap(Id); + int gasgap = m_idHelperSvc -> stgcIdHelper().gasGap(Id); + int channel_type = m_idHelperSvc -> stgcIdHelper().channelType(Id); - int charge = sTgc_object -> charge(); - int iside = (stationEta > 0) ? 1 : 0; + std::string stationName = m_idHelperSvc -> stgcIdHelper().stationNameString(m_idHelperSvc -> stgcIdHelper().stationName(Id)); int stationPhiComplete = get_sectorPhi_from_stationPhi_stName(stationPhi, stationName); std::vector<int> strip_charges_vec = sTgc_object -> stripCharges(); std::vector<short unsigned int> strip_numbers_perPhi_vec = sTgc_object -> stripNumbers(); - std::vector<int> charge_vec; - std::vector<int> stationPhi_vec; - std::vector<int> stationEta_vec; - std::vector<int> stationEta_perPhi_vec; - - charge_vec.push_back(charge); - stationPhi_vec.push_back(stationPhiComplete); + std::vector<int> charge, stationPhi_vec, stationEta_vec; + charge.push_back(sTgc_object->charge()); + stationPhi_vec.push_back(stationPhi); stationEta_vec.push_back(stationEta); - stationEta_perPhi_vec.push_back(stationEta); + + std::string monGroupName = "sTgc_sideGroup" + GeometricSectors::sTgc_Side[iside]; + std::string baseName = "_" + GeometricSectors::sTgc_Side[iside] + "_multiplet_" + std::to_string(multiplet) + "_gasgap_" + std::to_string(gasgap); + std::string sPhiName = "_stationPhi_" + std::to_string(stationPhiComplete); + + std::string varName = ""; if (channel_type == 0) { - auto charge_perLayer_pad_ = Monitored::Collection("charge_pad_" + GeometricSectors::sTgc_Side[iside] + "_multiplet_" + std::to_string(multiplet) + "_gasgap_" + std::to_string(gas_gap), charge_vec); - auto stationPhi_ = Monitored::Collection("sector_" + GeometricSectors::sTgc_Side[iside] + "_phi_multiplet_" + std::to_string(multiplet) + "_gasgap_" + std::to_string(gas_gap), stationPhi_vec); - auto stationEta_ = Monitored::Collection("sector_" + GeometricSectors::sTgc_Side[iside] + "_eta_multiplet_" + std::to_string(multiplet) + "_gasgap_" + std::to_string(gas_gap), stationEta_vec); - fill("sTgc_sideGroup" + GeometricSectors::sTgc_Side[iside], charge_perLayer_pad_, stationPhi_, stationEta_); + + varName = "pad_charge"+baseName; + auto charge_perLayer = Monitored::Collection(varName, charge); + + varName = "pad_phi"+baseName; + auto stationPhi = Monitored::Collection(varName, stationPhi_vec); + + varName = "pad_eta"+baseName; + auto stationEta = Monitored::Collection(varName, stationEta_vec); + + fill(monGroupName, charge_perLayer, stationPhi, stationEta); } else if (channel_type == 1) { - auto charge_perLayer_strip_ = Monitored::Collection("charge_strip_" + GeometricSectors::sTgc_Side[iside] + "_multiplet_" + std::to_string(multiplet) + "_gasgap_" + std::to_string(gas_gap), charge_vec); - auto stationPhi_ = Monitored::Collection("sector_" + GeometricSectors::sTgc_Side[iside] + "_phi_multiplet_" + std::to_string(multiplet) + "_gasgap_" + std::to_string(gas_gap), stationPhi_vec); - auto stationEta_ = Monitored::Collection("sector_" + GeometricSectors::sTgc_Side[iside] + "_eta_multiplet_" + std::to_string(multiplet) + "_gasgap_" + std::to_string(gas_gap), stationEta_vec); - auto stationEta_perPhi_ = Monitored::Collection("sector_" + GeometricSectors::sTgc_Side[iside] + "_eta_multiplet_" + std::to_string(multiplet) + "_gasgap_" + std::to_string(gas_gap) + "_stationPhi_" + std::to_string(stationPhiComplete), stationEta_perPhi_vec); - auto stripNumber_perLayer_perPhi_strip_ = Monitored::Collection("stripNumber_strip_" + GeometricSectors::sTgc_Side[iside] + "_multiplet_" + std::to_string(multiplet) + "_gasgap_" + std::to_string(gas_gap) + "_stationPhi_" + std::to_string(stationPhiComplete), strip_numbers_perPhi_vec); - auto charge_perLayer_perPhi_strip_ = Monitored::Collection("charge_strip_" + GeometricSectors::sTgc_Side[iside] + "_multiplet_" + std::to_string(multiplet) + "_gasgap_" + std::to_string(gas_gap) + "_stationPhi_" + std::to_string(stationPhiComplete), charge_vec); - fill("sTgc_sideGroup" + GeometricSectors::sTgc_Side[iside], charge_perLayer_strip_, stationPhi_, stationEta_, stationEta_perPhi_, stripNumber_perLayer_perPhi_strip_, charge_perLayer_perPhi_strip_); + + varName = "strip_charge"+baseName; + auto charge_perLayer = Monitored::Collection(varName, charge); + + varName = "strip_phi"+baseName; + auto stationPhi = Monitored::Collection(varName, stationPhi_vec); + + varName = "strip_eta"+baseName; + auto stationEta = Monitored::Collection(varName, stationEta_vec); + + varName = "strip_eta"+baseName+sPhiName; + auto stationEta_perPhi = Monitored::Collection(varName, stationEta_vec); + + varName = "strip_number"+baseName+sPhiName; + auto stripNumber_perLayer_perPhi = Monitored::Collection(varName, strip_numbers_perPhi_vec); + + varName = "strip_charge"+baseName+sPhiName; + auto charge_perLayer_perPhi = Monitored::Collection(varName, strip_charges_vec); + + fill(monGroupName, charge_perLayer, stationPhi, stationEta, stationEta_perPhi, stripNumber_perLayer_perPhi, charge_perLayer_perPhi); } else if (channel_type == 2) { - auto charge_perLayer_wire_ = Monitored::Collection("charge_wire_" + GeometricSectors::sTgc_Side[iside] + "_multiplet_" + std::to_string(multiplet) + "_gasgap_" + std::to_string(gas_gap), charge_vec); - auto stationPhi_ = Monitored::Collection("sector_" + GeometricSectors::sTgc_Side[iside] + "_phi_multiplet_" + std::to_string(multiplet) + "_gasgap_" + std::to_string(gas_gap), stationPhi_vec); - auto stationEta_ = Monitored::Collection("sector_" + GeometricSectors::sTgc_Side[iside] + "_eta_multiplet_" + std::to_string(multiplet) + "_gasgap_" + std::to_string(gas_gap), stationEta_vec); - fill("sTgc_sideGroup" + GeometricSectors::sTgc_Side[iside], charge_perLayer_wire_, stationPhi_, stationEta_); + varName = "wire_charge"+baseName; + auto charge_perLayer = Monitored::Collection(varName, charge); + + varName = "wire_phi"+baseName; + auto stationPhi = Monitored::Collection(varName, stationPhi_vec); + + varName = "wire_eta"+baseName; + auto stationEta = Monitored::Collection(varName, stationEta_vec); + + fill(monGroupName, charge_perLayer, stationPhi, stationEta); } }