Skip to content
Snippets Groups Projects
Commit 0af798b7 authored by Walter Lampl's avatar Walter Lampl
Browse files

Merge branch 'dev_master' into 'master'

add dynamic variables for monitoring L2StandAloneMuon

See merge request atlas/athena!20025
parents 90b7d488 5dd67c5f
No related branches found
No related tags found
No related merge requests found
...@@ -28,6 +28,7 @@ namespace TrigL2MuonSA { ...@@ -28,6 +28,7 @@ namespace TrigL2MuonSA {
double z; double z;
int charge; int charge;
double time; double time;
float resolution;
// //
double Residual; double Residual;
int isOutlier; int isOutlier;
......
...@@ -210,12 +210,13 @@ StatusCode TrigL2MuonSA::CscDataPreparator::prepareData(const TrigRoiDescriptor* ...@@ -210,12 +210,13 @@ StatusCode TrigL2MuonSA::CscDataPreparator::prepareData(const TrigRoiDescriptor*
cscHit.StripId = (cscHit.StationName << 18) cscHit.StripId = (cscHit.StationName << 18)
| ((cscHit.StationEta + 2) << 16) | (cscHit.StationPhi << 12) | ((cscHit.StationEta + 2) << 16) | (cscHit.StationPhi << 12)
| (cscHit.WireLayer << 9) | (cscHit.MeasuresPhi << 8) | (cscHit.Strip); | (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.phi = prepData.globalPosition().phi();
cscHit.r = prepData.globalPosition().perp(); cscHit.r = prepData.globalPosition().perp();
cscHit.z = prepData.globalPosition().z(); cscHit.z = prepData.globalPosition().z();
cscHit.charge = prepData.charge(); cscHit.charge = prepData.charge();
cscHit.time = prepData.time(); 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.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; cscHit.isOutlier = 0;
/*if( fabs(cscHit.Residual) > rWidth ) { /*if( fabs(cscHit.Residual) > rWidth ) {
......
...@@ -1146,15 +1146,20 @@ bool MuFastSteering::storeMuonSA(const LVL1::RecMuonRoI* roi, ...@@ -1146,15 +1146,20 @@ bool MuFastSteering::storeMuonSA(const LVL1::RecMuonRoI* roi,
muonSA->setCscHitsCapacity( m_esd_csc_size ); muonSA->setCscHitsCapacity( m_esd_csc_size );
// MDT hits // MDT hits
std::vector<std::string> mdtId;
for (unsigned int i_hit=0; i_hit<mdtHits.size(); i_hit++) { for (unsigned int i_hit=0; i_hit<mdtHits.size(); i_hit++) {
if ( mdtHits[i_hit].isOutlier==0 || mdtHits[i_hit].isOutlier==1 ) { 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, 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].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); 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 //CSC hits
std::vector<float> cscResol;
for(unsigned int i_hit=0; i_hit<cscHits.size(); i_hit++) { for(unsigned int i_hit=0; i_hit<cscHits.size(); i_hit++) {
if ( 1/*cscHits[i_hit].MeasuresPhi==0*/ ){ if ( 1/*cscHits[i_hit].MeasuresPhi==0*/ ){
if ( cscHits[i_hit].isOutlier==0 || cscHits[i_hit].isOutlier==1 ) { if ( cscHits[i_hit].isOutlier==0 || cscHits[i_hit].isOutlier==1 ) {
...@@ -1163,6 +1168,7 @@ bool MuFastSteering::storeMuonSA(const LVL1::RecMuonRoI* roi, ...@@ -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].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].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); 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: " ATH_MSG_DEBUG("CSC Hits stored in xAOD: "
<< "OL=" << cscHits[i_hit].isOutlier << "," << "OL=" << cscHits[i_hit].isOutlier << ","
<< "Ch=" << cscHits[i_hit].Chamber << "," << "Ch=" << cscHits[i_hit].Chamber << ","
...@@ -1183,6 +1189,8 @@ bool MuFastSteering::storeMuonSA(const LVL1::RecMuonRoI* roi, ...@@ -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 // RPC hits
float sumbeta[8]={0}; float sumbeta[8]={0};
......
...@@ -133,6 +133,11 @@ RemoveEgammaIsoVariables = ".-"+identifier.join(UnusedEgammaIsoVariables) ...@@ -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 # temporary functionality to discover version of EDM
#################### ####################
...@@ -286,7 +291,7 @@ TriggerHLTList = [ ...@@ -286,7 +291,7 @@ TriggerHLTList = [
#muons #muons
#L2 Muons #L2 Muons
('xAOD::L2StandAloneMuonContainer#HLT_MuonL2SAInfo', 'BS ESD AODFULL AODSLIM', 'Muon'), ('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::L2CombinedMuonContainer#HLT_MuonL2CBInfo', 'BS ESD AODFULL AODSLIM', 'Muon'), #fp
('xAOD::L2CombinedMuonAuxContainer#HLT_MuonL2CBInfoAux.', '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 ('xAOD::L2IsoMuonContainer#HLT_MuonL2ISInfo', 'BS ESD AODFULL', 'Muon'), #fp
...@@ -294,7 +299,7 @@ TriggerHLTList = [ ...@@ -294,7 +299,7 @@ TriggerHLTList = [
#MuonEFInfo #MuonEFInfo
('xAOD::MuonContainer#HLT_MuonEFInfo', 'BS ESD AODFULL AODSLIM AODVERYSLIM', 'Muon'), ('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::TrackParticleContainer#HLT_MuonEFInfo_CombTrackParticles', 'BS ESD AODFULL AODSLIM', 'Muon'),#fp
('xAOD::TrackParticleAuxContainer#HLT_MuonEFInfo_CombTrackParticlesAux'+RemoveIDVariables, '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 ('xAOD::TrackParticleContainer#HLT_MuonEFInfo_ExtrapTrackParticles', 'BS ESD AODFULL AODSLIM', 'Muon'),#fp
...@@ -1674,7 +1679,7 @@ def getTriggerEDMSlimList(key): ...@@ -1674,7 +1679,7 @@ def getTriggerEDMSlimList(key):
for k,v in _edmList.items(): for k,v in _edmList.items():
newnames = [] newnames = []
for el in v: for el in v:
if 'Aux' in el: if 'Aux' in el and '.-' in el:
newnames+=[el.split('.')[0]+'.-'] newnames+=[el.split('.')[0]+'.-']
else: else:
newnames+=[el] newnames+=[el]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment