From 5dd67c5faa5e4ce64d7721939aa056b551f05e78 Mon Sep 17 00:00:00 2001 From: "Yohei Yamaguchi (TIT)" <yoyamagu@lxatut26.cern.ch> Date: Wed, 19 Dec 2018 03:52:00 +0100 Subject: [PATCH] add dynamic variables for monitoring L2SA --- .../TrigL2MuonSA/TrigL2MuonSA/CscData.h | 1 + .../TrigL2MuonSA/src/CscDataPreparator.cxx | 3 ++- .../TrigL2MuonSA/src/MuFastSteering.cxx | 8 ++++++++ .../TriggerCommon/TrigEDMConfig/python/TriggerEDM.py | 11 ++++++++--- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/CscData.h b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/CscData.h index ec860123c0a2..839b38c447e4 100644 --- a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/CscData.h +++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/CscData.h @@ -28,6 +28,7 @@ namespace TrigL2MuonSA { double z; int charge; double time; + float resolution; // double Residual; int isOutlier; diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/CscDataPreparator.cxx b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/CscDataPreparator.cxx index e0f853c2127f..1dcf43f220d7 100644 --- a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/CscDataPreparator.cxx +++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/CscDataPreparator.cxx @@ -210,12 +210,13 @@ StatusCode TrigL2MuonSA::CscDataPreparator::prepareData(const TrigRoiDescriptor* cscHit.StripId = (cscHit.StationName << 18) | ((cscHit.StationEta + 2) << 16) | (cscHit.StationPhi << 12) | (cscHit.WireLayer << 9) | (cscHit.MeasuresPhi << 8) | (cscHit.Strip); - cscHit.eta = sqrt( prepData.localCovariance()(0,0) ); + cscHit.eta = prepData.globalPosition().eta(); cscHit.phi = prepData.globalPosition().phi(); cscHit.r = prepData.globalPosition().perp(); cscHit.z = prepData.globalPosition().z(); cscHit.charge = prepData.charge(); cscHit.time = prepData.time(); + cscHit.resolution = sqrt( prepData.localCovariance()(0,0) ); cscHit.Residual = ( cscHit.MeasuresPhi==0 ) ? calc_residual( aw, bw, cscHit.z, cscHit.r ) : calc_residual_phi( aw,bw,phiw, cscHit.phi, cscHit.z); cscHit.isOutlier = 0; /*if( fabs(cscHit.Residual) > rWidth ) { diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastSteering.cxx b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastSteering.cxx index 1408a4556889..fc773f9d09de 100644 --- a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastSteering.cxx +++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastSteering.cxx @@ -1146,15 +1146,20 @@ bool MuFastSteering::storeMuonSA(const LVL1::RecMuonRoI* roi, muonSA->setCscHitsCapacity( m_esd_csc_size ); // MDT hits + std::vector<std::string> mdtId; for (unsigned int i_hit=0; i_hit<mdtHits.size(); i_hit++) { if ( mdtHits[i_hit].isOutlier==0 || mdtHits[i_hit].isOutlier==1 ) { muonSA->setMdtHit(mdtHits[i_hit].OnlineId, mdtHits[i_hit].isOutlier, mdtHits[i_hit].Chamber, mdtHits[i_hit].R, mdtHits[i_hit].Z, mdtHits[i_hit].cPhi0, mdtHits[i_hit].Residual, mdtHits[i_hit].DriftTime, mdtHits[i_hit].DriftSpace, mdtHits[i_hit].DriftSigma); + mdtId.push_back(mdtHits[i_hit].Id.getString()); } } + SG::AuxElement::Accessor< std::vector<std::string> > accessor_mdthitid( "mdtHitId" ); + accessor_mdthitid( *muonSA ) = mdtId; //CSC hits + std::vector<float> cscResol; for(unsigned int i_hit=0; i_hit<cscHits.size(); i_hit++) { if ( 1/*cscHits[i_hit].MeasuresPhi==0*/ ){ if ( cscHits[i_hit].isOutlier==0 || cscHits[i_hit].isOutlier==1 ) { @@ -1163,6 +1168,7 @@ bool MuFastSteering::storeMuonSA(const LVL1::RecMuonRoI* roi, cscHits[i_hit].ChamberLayer, cscHits[i_hit].WireLayer, cscHits[i_hit].MeasuresPhi, cscHits[i_hit].Strip, cscHits[i_hit].eta, cscHits[i_hit].phi, cscHits[i_hit].r, cscHits[i_hit].z, cscHits[i_hit].charge, cscHits[i_hit].time, cscHits[i_hit].Residual); + cscResol.push_back(cscHits[i_hit].resolution); ATH_MSG_DEBUG("CSC Hits stored in xAOD: " << "OL=" << cscHits[i_hit].isOutlier << "," << "Ch=" << cscHits[i_hit].Chamber << "," @@ -1183,6 +1189,8 @@ bool MuFastSteering::storeMuonSA(const LVL1::RecMuonRoI* roi, } } } + SG::AuxElement::Accessor< std::vector<float> > accessor_cschitresol( "cscHitResolution" ); + accessor_cschitresol( *muonSA ) = cscResol; // RPC hits float sumbeta[8]={0}; diff --git a/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDM.py b/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDM.py index ecad149c6ccf..1860061ee184 100644 --- a/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDM.py +++ b/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDM.py @@ -133,6 +133,11 @@ RemoveEgammaIsoVariables = ".-"+identifier.join(UnusedEgammaIsoVariables) ##################### ##################### +# Add Dynamic Var +identifierAdd = "." +l2saVariableToAdd = ['mdtHitId','cscHitResolution'] +addL2saVars = "." + identifierAdd.join(l2saVariableToAdd) + # temporary functionality to discover version of EDM #################### @@ -286,7 +291,7 @@ TriggerHLTList = [ #muons #L2 Muons ('xAOD::L2StandAloneMuonContainer#HLT_MuonL2SAInfo', 'BS ESD AODFULL AODSLIM', 'Muon'), - ('xAOD::L2StandAloneMuonAuxContainer#HLT_MuonL2SAInfoAux.', 'BS ESD AODFULL AODSLIM', 'Muon'), + ('xAOD::L2StandAloneMuonAuxContainer#HLT_MuonL2SAInfoAux' + addL2saVars, 'BS ESD AODFULL AODSLIM', 'Muon'), ('xAOD::L2CombinedMuonContainer#HLT_MuonL2CBInfo', 'BS ESD AODFULL AODSLIM', 'Muon'), #fp ('xAOD::L2CombinedMuonAuxContainer#HLT_MuonL2CBInfoAux.', 'BS ESD AODFULL AODSLIM', 'Muon'), #fp ('xAOD::L2IsoMuonContainer#HLT_MuonL2ISInfo', 'BS ESD AODFULL', 'Muon'), #fp @@ -294,7 +299,7 @@ TriggerHLTList = [ #MuonEFInfo ('xAOD::MuonContainer#HLT_MuonEFInfo', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Muon'), - ('xAOD::MuonAuxContainer#HLT_MuonEFInfoAux.', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Muon'), + ('xAOD::MuonAuxContainer#HLT_MuonEFInfoAux'+RemoveMuonVariables, 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Muon'), ('xAOD::TrackParticleContainer#HLT_MuonEFInfo_CombTrackParticles', 'BS ESD AODFULL AODSLIM', 'Muon'),#fp ('xAOD::TrackParticleAuxContainer#HLT_MuonEFInfo_CombTrackParticlesAux'+RemoveIDVariables, 'BS ESD AODFULL AODSLIM','Muon'),#fp ('xAOD::TrackParticleContainer#HLT_MuonEFInfo_ExtrapTrackParticles', 'BS ESD AODFULL AODSLIM', 'Muon'),#fp @@ -1674,7 +1679,7 @@ def getTriggerEDMSlimList(key): for k,v in _edmList.items(): newnames = [] for el in v: - if 'Aux' in el: + if 'Aux' in el and '.-' in el: newnames+=[el.split('.')[0]+'.-'] else: newnames+=[el] -- GitLab