19 declareInterface<IMuonSegmentHitSummaryTool>(
this);
21 "Cut on distance from tube end used for holes, negative value means in the tube");
32 return StatusCode::SUCCESS;
44 ATH_MSG_ERROR(
"Null pointer to the read MuonDetectorManager conditions object");
49 double shortestTube {FLT_MAX};
51 bool transformIsSet =
false;
62 if ((!
m_idHelperSvc->isCsc(chid) && stIdx == StIndex::EI) || stIdx == StIndex::BO)
64 else if (stIdx == StIndex::BM)
66 else if (stIdx == StIndex::EM)
82 int layIndex = 4 * (ml - 1) + (lay - 1);
97 if (!transformIsSet) {
101 dxdy = std::abs(ldir.y()) > 0.001 ? ldir.x() / ldir.y() : 1000.;
102 transformIsSet =
true;
104 if (!mdtShortest || tubeLen < shortestTube) {
106 shortestTube = tubeLen;
109 const bool first_layer = (
m_idHelperSvc->mdtIdHelper().multilayer(
id) == 1);
135 const bool isStereo =
m_idHelperSvc->mmIdHelper().isStereo(
id);
148 int layIndex = 4 * (ml - 1) + (lay - 1);
152 if (transformIsSet) {
159 double ytube = (gToAMDB * detEl->
center(
id)).y();
160 double xint = dxdy * (ytube - lpos.y()) + lpos.x();
169 for (std::pair<const Identifier, EtaPhiHitCount>& it : hitCounts.
hitCountsPerLayer) {
174 if (counts.netaHits != 0) {
182 int currentEnclosedHoles = 0;
183 bool firstLayerWithHits =
false;
186 hitCounts.
nmdtHoles += lit.second.nholes;
187 if (lit.second.nhits == 0) {
188 ++currentEnclosedHoles;
194 currentEnclosedHoles = 0;
195 firstLayerWithHits =
true;
201 if (0.5 * shortestTube - std::abs(posAlongTube) < 100.) hitCounts.
closeToChamberEdge =
true;
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_WARNING(x)
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
double getActiveTubeLength(const int tubeLayer, const int tube) const
virtual const Amg::Vector3D & center(const Identifier &) const override final
Return the center of the surface associated with this identifier In the case of silicon it returns th...
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
const MdtReadoutElement * getMdtReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
virtual Amg::Transform3D GlobalToAmdbLRSTransform() const
This class represents the corrected MDT measurements, where the corrections include the effects of wi...
virtual const Trk::StraightLineSurface & associatedSurface() const override final
Returns the surface on which this measurement was taken.
virtual const MdtPrepData * prepRawData() const override final
Returns the PrepRawData used to create this corrected measurement.
int adc() const
Returns the ADC (typically range is 0 to 250)
virtual const MuonGM::MdtReadoutElement * detectorElement() const override
Returns the detector element corresponding to this PRD.
This is the common muon segment quality object.
const std::vector< Identifier > & channelsWithoutHit() const
vector of identifiers of channels crossed by the segment but without hit
This is the common class for 3D segments used in the muon spectrometer.
const Amg::Vector3D & globalDirection() const
global direction
virtual const Amg::Vector3D & globalPosition() const override final
global position
int numberDoF() const
returns the number of degrees of freedom of the overall track or vertex fit as integer
double chiSquared() const
returns the of the overall track fit
This class is the pure abstract base class for all fittable tracking measurements.
const FitQuality * fitQuality() const
return the FitQuality object, returns NULL if no FitQuality is defined
const std::vector< const Trk::MeasurementBase * > & containedMeasurements() const
returns the vector of Trk::MeasurementBase objects
Eigen::Affine3d Transform3D
Eigen::Matrix< double, 3, 1 > Vector3D
StIndex
enum to classify the different station layers in the muon spectrometer
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.