diff --git a/MuonSpectrometer/MuonValidation/MuonPRDTest/src/RPCDigitVariables.cxx b/MuonSpectrometer/MuonValidation/MuonPRDTest/src/RPCDigitVariables.cxx index c1ce34f3be37337d359aeb6b0839d986411bcb3e..3e07bb98dce25b15eb85f10ff33416f7892b6552 100644 --- a/MuonSpectrometer/MuonValidation/MuonPRDTest/src/RPCDigitVariables.cxx +++ b/MuonSpectrometer/MuonValidation/MuonPRDTest/src/RPCDigitVariables.cxx @@ -34,6 +34,7 @@ StatusCode RpcDigitVariables::fillVariables(const MuonGM::MuonDetectorManager* M Identifier Id = digit->identify(); std::string stName = m_RpcIdHelper->stationNameString(m_RpcIdHelper->stationName(Id)); + int stationIndex = m_RpcIdHelper->stationName(Id); int stationEta = m_RpcIdHelper->stationEta(Id); int stationPhi = m_RpcIdHelper->stationPhi(Id); int doubletR = m_RpcIdHelper->doubletR(Id); @@ -42,33 +43,43 @@ StatusCode RpcDigitVariables::fillVariables(const MuonGM::MuonDetectorManager* M int gas_gap = m_RpcIdHelper->gasGap(Id); bool measuresPhi = m_RpcIdHelper->measuresPhi(Id); int strip = m_RpcIdHelper->strip(Id); - int channel = m_RpcIdHelper->channel(Id); ATH_MSG_DEBUG( "RPC Digit Offline id: Station Name [" << stName << " ]" << " Station Eta [" << stationEta << "]" << " Station Phi [" << stationPhi << "]" << " GasGap [" << gas_gap << "]" - << " Strip [" << strip << "]" - << " ChNr [" << channel << "]"); + << " Strip [" << strip << "]"); const MuonGM::RpcReadoutElement* rdoEl = MuonDetMgr->getRpcReadoutElement(Id); if (!rdoEl) return StatusCode::FAILURE; + int stripNumber = 0; + bool stripPosition = 0; Amg::Vector3D gpos(0.,0.,0.); Amg::Vector2D lpos(0.,0.); - - rdoEl->stripPosition(Id,lpos); - rdoEl->surface(Id).globalToLocal(gpos, gpos, lpos); - + double localX; + double localY; + + if ( !rdoEl->stripPosition(Id,lpos) ) { + ATH_MSG_WARNING("RPCDigitVariables: failed to associate a valid local position for strip n. " << strip + << "; associated positions will be set to 0.0."); + } else { + localX = lpos.x(); + localY = lpos.y(); + } + + rdoEl->surface(Id).localToGlobal(lpos, gpos, gpos); + stripNumber = rdoEl->stripNumber(lpos,Id); + stripPosition = rdoEl->stripPosition(Id,lpos); + m_RPC_dig_globalPosX.push_back( gpos.x() ); m_RPC_dig_globalPosY.push_back( gpos.y() ); m_RPC_dig_globalPosZ.push_back( gpos.z() ); - m_RPC_dig_localPosX.push_back( lpos.x() ); - m_RPC_dig_localPosY.push_back( lpos.y() ); - - stripNumber = rdoEl->stripNumber(lpos,Id); - + m_RPC_dig_localPosX.push_back(localX); + m_RPC_dig_localPosY.push_back(localY); + m_RPC_dig_stationName.push_back(stName); + m_RPC_dig_stationIndex.push_back(stationIndex); m_RPC_dig_time.push_back(digit->time()); m_RPC_dig_stationEta.push_back(stationEta); m_RPC_dig_stationPhi.push_back(stationPhi); @@ -78,7 +89,7 @@ StatusCode RpcDigitVariables::fillVariables(const MuonGM::MuonDetectorManager* M m_RPC_dig_doubletPhi.push_back(doubletPhi); m_RPC_dig_strip.push_back(strip); m_RPC_dig_stripNumber.push_back(stripNumber); - m_RPC_dig_channel.push_back(channel); + m_RPC_dig_stripPosition.push_back(stripPosition); m_RPC_dig_measuresPhi.push_back(measuresPhi); m_RPC_nDigits++; @@ -95,6 +106,7 @@ StatusCode RpcDigitVariables::clearVariables() m_RPC_nDigits = 0; m_RPC_dig_time.clear(); m_RPC_dig_stationName.clear(); + m_RPC_dig_stationIndex.clear(); m_RPC_dig_stationEta.clear(); m_RPC_dig_stationPhi.clear(); m_RPC_dig_gas_gap.clear(); @@ -102,8 +114,8 @@ StatusCode RpcDigitVariables::clearVariables() m_RPC_dig_doubletZ.clear(); m_RPC_dig_doubletPhi.clear(); m_RPC_dig_strip.clear(); - m_RPC_dig_channel.clear(); m_RPC_dig_stripNumber.clear(); + m_RPC_dig_stripPosition.clear(); m_RPC_dig_measuresPhi.clear(); m_RPC_dig_localPosX.clear(); @@ -124,6 +136,7 @@ StatusCode RpcDigitVariables::initializeVariables() m_tree->Branch("Digits_RPC", &m_RPC_nDigits, "Digits_RPC_n/i"); m_tree->Branch("Digits_RPC_time", &m_RPC_dig_time); m_tree->Branch("Digits_RPC_stationName", &m_RPC_dig_stationName); + m_tree->Branch("Digits_RPC_stationIndex", &m_RPC_dig_stationIndex); m_tree->Branch("Digits_RPC_stationEta", &m_RPC_dig_stationEta); m_tree->Branch("Digits_RPC_stationPhi", &m_RPC_dig_stationPhi); m_tree->Branch("Digits_RPC_gas_gap", &m_RPC_dig_gas_gap); @@ -131,8 +144,8 @@ StatusCode RpcDigitVariables::initializeVariables() m_tree->Branch("Digits_RPC_doubletZ", &m_RPC_dig_doubletZ); m_tree->Branch("Digits_RPC_doubletPhi", &m_RPC_dig_doubletPhi); m_tree->Branch("Digits_RPC_strip", &m_RPC_dig_strip); - m_tree->Branch("Digits_RPC_channel", &m_RPC_dig_channel); m_tree->Branch("Digits_RPC_stripNumber", &m_RPC_dig_stripNumber); + m_tree->Branch("Digits_RPC_stripPosition", &m_RPC_dig_stripPosition); m_tree->Branch("Digits_RPC_measuresPhi", &m_RPC_dig_measuresPhi); m_tree->Branch("Digits_RPC_localPosX", &m_RPC_dig_localPosX); diff --git a/MuonSpectrometer/MuonValidation/MuonPRDTest/src/RPCDigitVariables.h b/MuonSpectrometer/MuonValidation/MuonPRDTest/src/RPCDigitVariables.h index 3fa6879332ef478e8d3054d56807939a79392f5e..09215c913767e4dd1a0fe55a5378347a8dba3ac9 100644 --- a/MuonSpectrometer/MuonValidation/MuonPRDTest/src/RPCDigitVariables.h +++ b/MuonSpectrometer/MuonValidation/MuonPRDTest/src/RPCDigitVariables.h @@ -45,6 +45,7 @@ class RpcDigitVariables : public ValAlgVariables int m_RPC_nDigits; std::vector<std::string> m_RPC_dig_stationName; + std::vector<int> m_RPC_dig_stationIndex; // stationIndex = 1 for BIS std::vector<double> m_RPC_dig_time; std::vector<int> m_RPC_dig_stationEta; std::vector<int> m_RPC_dig_stationPhi; @@ -53,8 +54,8 @@ class RpcDigitVariables : public ValAlgVariables std::vector<int> m_RPC_dig_doubletZ; std::vector<int> m_RPC_dig_doubletPhi; std::vector<int> m_RPC_dig_strip; - std::vector<int> m_RPC_dig_channel; std::vector<int> m_RPC_dig_stripNumber; + std::vector<bool> m_RPC_dig_stripPosition; std::vector<bool> m_RPC_dig_measuresPhi; std::vector< double > m_RPC_dig_localPosX;