|
ATLAS Offline Software
|
Go to the documentation of this file.
33 double halflength(ccbo->halflengthZ());
36 const double epsilon = 0.15;
38 double distanceToFirstEndPlane, distanceToSecondEndPlane;
42 if (
common()->muonChamberProjectionHelper()
45 distanceToFirstEndPlane, distanceToSecondEndPlane,
radius )) {
46 if (fabs(distanceToFirstEndPlane-distanceToSecondEndPlane)>0.1*epsilon)
47 std::cout <<
"PRDHandle_MDT: Warning tube is not centered in chamber! We should translate the prd object appropriately (todo)."<<std::endl;
48 halflength =
std::max(distanceToFirstEndPlane,distanceToSecondEndPlane)+epsilon;
50 std::cout <<
"PRDHandle_MDT: Couldn't retrieve data for projections to chamber end planes."<<std::endl;
56 halflength += 56.0 + epsilon;
63 shape_detailed = shape_simple;
68 VP1Msg::message(
"Warning: MDT has additional elements in rdoList: NOT IMPLEMENTED");
84 return QStringList(
"Null PRD");
87 return QStringList(
"Null PRD");
89 std::ostringstream
os;
92 os <<
"MdtPrepData with Identifier ["<<
id.get_compact() ;
98 std::string
status(
"Status: ");
118 status+=
"Before Spectrum";
QString driftCircleStatus() const
const Muon::MdtPrepData * m_driftcircle
Amg::Transform3D getTransform_CLHEP() const
PRDHandle_MDT(PRDCollHandle_MDT *, const Muon::MdtPrepData *)
PRDCollHandleBase * collHandle() const
GeoPVConstLink parentMuonChamberPV() const
QStringList clicked() const
@ MdtStatusAfterSpectrum
The tube produced a hit that is inconsistent with the drift time spectrum, the drift time is larger t...
const std::vector< Identifier > & rdoList() const
return the List of rdo identifiers (pointers)
int adc() const
Returns the ADC (typically range is 0 to 250)
PRDSysCommonData * common() const
@ MdtStatusDriftTime
The tube produced a vaild measurement.
@ MdtStatusMasked
A hit during a previous bunch crossing occured which rendered the tube dead for this bunch crossing.
HitsSoNodeManager * nodeManager() const
int getPhiIndex() const
a la AMDB
@ MdtStatusBeforeSpectrum
The tube produced a hit that is inconsistent with the drift time spectrum, the drift time is smaller ...
const MuonStation * parentMuonStation() const
Eigen::Affine3d Transform3D
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
virtual const Amg::Vector3D & globalPosition() const
Returns the global position of the CENTER of the drift tube (i.e.
Identifier identify() const
return the identifier
std::string print_to_string(Identifier id, const IdContext *context=0) const
or provide the printout in string form
int tdc() const
Returns the TDC (typically range is 0 to 2500).
virtual const SurfaceBounds & bounds() const =0
Surface Bounds method.
std::string to_string(const DetectorType &type)
const Amg::Vector2D & localPosition() const
return the local position reference
Class to represent measurements from the Monitored Drift Tubes.
Eigen::Matrix< double, 3, 1 > Vector3D
static const MdtIdHelper * mdtIDHelper()
static void message(const QString &, IVP1System *sys=0)
void buildShapes(SoNode *&shape_simple, SoNode *&shape_detailed)
int getEtaIndex() const
a la AMDB
virtual const Trk::Surface & surface() const override final
Return surface associated with this detector element.
SoNode * getShapeNode_DriftTube(double halfLength, double radius)
MdtDriftCircleStatus status() const
Returns the status of the measurement.
virtual const MuonGM::MdtReadoutElement * detectorElement() const override
Returns the detector element corresponding to this PRD.
static Amg::Vector3D & applyTransformToVector(const Amg::Transform3D &m, Amg::Vector3D &v)