51 const int doubletZ_,
const int doubletPhi_,
52 const int gasgap_,
const int measPhi_)
89 std::ostringstream ele_key;
102 this->gasGap == rhs.
gasGap && this->measPhi == rhs.
measPhi) {
122 const std::string mystring_eta = std::to_string(std::abs(
stationEta));
123 const std::string mystring_dPhi =
"DP" + std::to_string(
doubletPhi) +
".";
124 const std::string mystring_gap =
"Ly" + std::to_string(
gasGap - 1) +
".";
125 const std::string mystring_dZ =
"DZ" + std::to_string(
doubletZ);
127 std::string mystring_phi;
128 std::string mystring_side;
129 std::string mystring_PICO;
130 std::string mystring_ETAPHI;
147 if (myphi_part < 10) {
148 mystring_phi =
"0" + std::to_string(myphi_part);
150 mystring_phi = std::to_string(myphi_part);
156 mystring_PICO =
".CO.";
160 mystring_PICO =
".PI.";
165 mystring_PICO =
".CO.";
169 ".NU" + std::to_string(
doubletR) +
".";
173 mystring_ETAPHI =
"ETA.";
175 mystring_ETAPHI =
"PHI.";
178 return mystring_name + mystring_eta + mystring_side + mystring_phi +
179 mystring_PICO + mystring_dPhi + mystring_gap + mystring_dZ +
204 sector = -1 * sector;
206 std::pair<int, int> sec_layer(sector, layer);
223 const int doubletZ_,
const int doubletPhi_,
224 const unsigned gasgap_)
226 doubletR(readoutEl_->getDoubletR()),
255 double eta_etaStrip_1st = glbPos_etaStrip_1st.eta();
259 double eta_etaStrip_last = glbPos_etaStrip_last.eta();
261 if (eta_etaStrip_1st < eta_etaStrip_last) {
274 double phi_phiStrip_1st = glbPos_phiStrip_1st.phi();
278 double phi_phiStrip_last = glbPos_phiStrip_last.phi();
280 if (phi_phiStrip_1st < phi_phiStrip_last) {
298 const double deta1 = std::abs(
minStripEta - track.eta());
299 const double deta2 = std::abs(
maxStripEta - track.eta());
306 result.minTrackGasGapDEta = std::min<double>(deta1, deta2);
307 result.minTrackGasGapDPhi = std::min<double>(dphi1, dphi2);
314 result.minTrackGasGapDEta = 0.0;
317 result.minTrackGasGapDPhi = 0.0;
324 std::sqrt(
result.minTrackGasGapDEta *
result.minTrackGasGapDEta +
340 const double dphi1 = std::abs(
342 const double dphi2 = std::abs(
345 result.minTrackGasGapDEta = std::min<double>(deta1, deta2);
346 result.minTrackGasGapDPhi = std::min<double>(dphi1, dphi2);
354 result.minTrackGasGapDEta = 0.0;
358 result.minTrackGasGapDPhi = 0.0;
365 std::sqrt(
result.minTrackGasGapDEta *
result.minTrackGasGapDEta +
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
An RpcReadoutElement corresponds to a single RPC module; therefore typicaly a barrel muon station con...
int stationEta(const Identifier &id) const
int stationPhi(const Identifier &id) const
int stationName(const Identifier &id) const
const std::string & stationNameString(const int &index) const
Interface for Helper service that creates muon Identifiers and can be used to print Identifiers.
virtual const RpcIdHelper & rpcIdHelper() const =0
access to RpcIdHelper
virtual std::string toString(const Identifier &id) const =0
print all fields to string
Identifier channelID(int stationName, int stationEta, int stationPhi, int doubletR, int doubletZ, int doubletPhi, int gasGap, int measuresPhi, int strip) const
int gasGap(const Identifier &id) const override
get the hashes
Identifier panelID(const Identifier &padID, int gasGap, int measuresPhi) const
Identifier gapID(const Identifier &padID, int gasGap) const
int doubletPhi(const Identifier &id) const
int doubletR(const Identifier &id) const
bool measuresPhi(const Identifier &id) const override
int doubletZ(const Identifier &id) const
const Amg::Vector3D & position() const
Access method for the position.
Eigen::Matrix< double, 3, 1 > Vector3D
PropDirection
PropDirection, enum for direction of the propagation.
ParametersBase< TrackParametersDim, Charged > TrackParameters
double deltaPhi(double phiA, double phiB)
delta Phi in range [-pi,pi[
TrackParticle_v1 TrackParticle
Reference the current persistent version:
ExResult(const Identifier gasgap_id_, const Trk::PropDirection direction_)
const Trk::PropDirection direction
const Identifier gasgap_id
void computeTrackDistanceToGasGap(ExResult &result, const xAOD::TrackParticle &track) const
const MuonGM::RpcReadoutElement * readoutEl
GasGapData(const Muon::IMuonIdHelperSvc &idHelperSvc, const MuonGM::RpcReadoutElement *readoutEl_, const int doubletZ_, const int doubletPhi_, const unsigned gasgap_)
void SetPanelIndex(int index)
bool operator==(const RpcPanel &rhs) const
const MuonGM::RpcReadoutElement * readoutEl
bool operator>(const RpcPanel &rhs) const
std::string stationNameStr
bool operator<(const RpcPanel &rhs) const
void FillRpcId(Identifier id, const RpcIdHelper &rpcIdHelper)
std::string getOnlineConvention() const
std::string getElementStr() const
std::pair< int, int > getSectorLayer() const