|
ATLAS Offline Software
|
Go to the documentation of this file.
6 #include "GaudiKernel/ITHistSvc.h"
43 return StatusCode::SUCCESS;
50 const EventContext& ctx = Gaudi::Hive::currentContext();
54 return StatusCode::FAILURE;
68 ATH_MSG_ERROR(
"Null pointer to the read MuonDetectorManager conditions object");
69 return StatusCode::FAILURE;
76 for(
auto mdtColl : *mdtPrepRawData){
83 ATH_MSG_DEBUG(
"Mdt FixedId "<<fixid.
getIdInt()<<
" prd phi "<<prd->globalPosition().phi()<<
" prd theta "<<prd->globalPosition().theta());
93 for(
auto rpcColl : *rpcPrepRawData) {
99 ATH_MSG_DEBUG(
"Rpc FixedId "<<fixid.
getIdInt()<<
" prd phi "<<prd->globalPosition().phi()<<
" prd theta "<<prd->globalPosition().theta());
109 for (
auto tgcColl : *tgcPrepRawData) {
115 ATH_MSG_DEBUG(
"Tgc FixedId "<<fixid.
getIdInt()<<
" prd phi "<<prd->globalPosition().phi()<<
" prd theta "<<prd->globalPosition().theta());
123 ATH_MSG_INFO(
"Number of Muon StandAlone Tracks : "<<muTrks->size());
126 for (
unsigned int itrk = 0; itrk < muTrks->size(); ++itrk) {
168 return StatusCode::FAILURE;
185 return StatusCode::FAILURE;
194 return StatusCode::FAILURE;
197 unsigned int nMeasurement = 0, nHole = 0;
207 if (!measurement)
continue;
211 ATH_MSG_DEBUG(
"Total recorded hits in the track "<<itrk<<
" #Mesurement "<<nMeasurement<<
" #Hole "<<nHole) ;
219 if (!
m_tree.
fill(ctx))
return StatusCode::FAILURE;
220 return StatusCode::SUCCESS;
226 if (!trackPars)
return;
240 ATH_MSG_DEBUG(
"None of MDT/RPC/TGC Identifier match, something wrong!");
269 else ATH_MSG_WARNING(
"This hit is not measurement o outlier, hit type wrong!");
276 int tdc = prd->
tdc();
282 calibIn.setTrackDirection(trackPars->
momentum().unit());
284 ATH_MSG_DEBUG(
"print "<<calibIn <<
" calibResult : "<<calibResult);
311 ATH_MSG_WARNING(
"getGlobalToStation failed to retrieve detEL byebye" );
337 <<
" detEl wireLocalCenter " <<
" x : "<<wireCenter.x()<<
" y : " << wireCenter.y()<<
" z : "<<wireCenter.z());
344 float residualBiased = -999.;
345 float pullBiased = -999.;
348 if(resPullBiased.has_value()){
349 residualBiased = resPullBiased.value().residual().front();
350 pullBiased = resPullBiased.value().pull().front();
363 ATH_MSG_DEBUG(
"prd hit global position measurement " <<
" x : "<< prd_pos.x()<<
" y : "<< prd_pos.y()<<
" z : "<<prd_pos.z());
364 ATH_MSG_DEBUG(
"MdtDriftCircleOnTrack hit global position measurement " <<
" x : " <<mrot_gPos.x()<<
" y : "<< mrot_gPos.y() <<
" z : "<<mrot_gPos.z());
365 ATH_MSG_DEBUG(
"trackHitPos from trackPars " <<
" x : "<<trkHitPos.x() <<
" y : "<<trkHitPos.y() <<
" z : "<< trkHitPos.z() );
366 ATH_MSG_DEBUG(
"trackHit Local Pos from globaltolocalCoords " <<
" x : "<< trkHitPosLoc.x() <<
" y : "<< trkHitPosLoc.y() <<
" z : "<< trkHitPosLoc.z());
367 ATH_MSG_DEBUG(
"mrod Local Pos from globaltolocalCoords " <<
" x : "<< mrot_pos.x() <<
" y : "<< mrot_pos.y() <<
" z : "<< mrot_pos.z());
369 <<
" Tube "<<fixid.
mdtTube()<<
" MROT drift R " << mrot->
driftRadius() <<
" errDriftRadius " <<
error<<
" drift Time "
371 ATH_MSG_DEBUG(
" driftRadius from driftRadius func "<<
driftRadius<<
" rTrk track fit to wire "<<trackPars->parameters()[
Trk::loc1]<<
" residualBiased " << residualBiased <<
" pullBiased " << pullBiased);
411 const std::vector<const Muon::MuonClusterOnTrack*>& rots = crot->
containedROTs();
412 if (rots.size() > 0) {
413 std::vector<const Muon::MuonClusterOnTrack*>::const_iterator itR = rots.begin(), itR_end = rots.end();
414 for (; itR != itR_end; ++itR) {
461 ATH_MSG_INFO(
"MuonSegmentReader :: Finalize + Matching");
463 return StatusCode::SUCCESS;
void storeMeasurement(const EventContext &ctx, const MuonGM::MuonDetectorManager *MuonDetMgr, unsigned int itrk, const Trk::TrackStateOnSurface *trk_state, const Trk::MeasurementBase *measurement)
VectorBranch< int > & m_trkHit_trackIndex
VectorBranch< int > & m_trkHole_type
const TrackParameters * trackParameters() const
return ptr to trackparameters const overload
VectorBranch< int > & m_rawTgc_bcBitMap
virtual StatusCode execute() override
ThreeVectorBranch m_rawMdt_gPos
ThreeVectorBranch m_trk_perigee
ScalarBranch< int > & m_rawRpc_nRRpc
const FitQuality * fitQuality() const
return a pointer to the fit quality const-overload
@ numberOfMdtHoles
number of MDT measurements missing from the track
double tubeLength(const int tubeLayer, const int tube) const
ScalarBranch< int > & m_trk_nTracks
VectorBranch< int > & m_trk_nTgcPhiHits
virtual const MdtPrepData * prepRawData() const override final
Returns the PrepRawData used to create this corrected measurement.
StatusCode init(OWNER *instance)
Initialize method.
uint64_t eventNumber() const
The current event's event number.
virtual StatusCode initialize() override
VectorBranch< unsigned int > & m_rawRpc_id
ThreeVectorBranch m_rawRpc_gPos
const Amg::Vector3D & position() const
Access method for the position.
ScalarBranch< int > & m_rawTgc_nRTgc
VectorBranch< float > & m_trkHit_rTrk
virtual const Surface & associatedSurface() const override=0
Access to the Surface associated to the Parameters.
virtual const Amg::Vector3D & globalPosition() const override
Returns the global position.
const Trk::TrackStates * trackStateOnSurfaces() const
return a pointer to a const DataVector of const TrackStateOnSurfaces.
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
SG::ReadHandleKey< Muon::MdtPrepDataContainer > m_MdtPrepDataKey
Identifier associatedDetectorElementIdentifier() const
return Identifier of the associated Detector Element
void storeHole(const Trk::TrackStateOnSurface *trk_state, unsigned int itrk)
VectorBranch< unsigned int > & m_rawTgc_id
virtual Amg::Transform3D GlobalToAmdbLRSTransform() const
SG::ReadHandleKey< Muon::TgcPrepDataContainer > m_TgcPrepDataKey
VectorBranch< float > & m_trkHit_resi
VectorBranch< float > & m_trk_qOverP
VectorBranch< int > & m_trkTriggerHit_trackIndex
VectorBranch< float > & m_trkHole_driftRadius
ScalarBranch< int > & m_trkTriggerHit_nHits
size_t size() const
Duplicate of fullSize for backwards compatability.
int mdtMultilayer() const
Mdt specific:
Class to represent calibrated clusters formed from TGC strips.
VectorBranch< float > & m_trkHit_distRO
VectorBranch< float > & m_trkHit_localAngle
PublicToolHandle< Trk::IResidualPullCalculator > m_pullCalculator
VectorBranch< float > & m_rawRpc_time
ScalarBranch< int > & m_lumiBlock
VectorBranch< float > & m_trkHit_tempTime
ThreeVectorBranch m_trkHit_gClosestApproach
@ numberOfOutliersOnTrack
100 times the standard deviation of the chi2 from the surfaces
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > m_DetectorManagerKey
Class to represent calibrated clusters formed from RPC strips.
VectorBranch< int > & m_trk_nMdtHits
VectorBranch< int > & m_trk_nRpcEtaHits
#define ATH_MSG_VERBOSE(x)
VectorBranch< float > & m_trkHit_tubeMeanAdc
uint32_t timeStampNSOffset() const
Nanosecond time offset wrt. the time stamp.
int adc() const
Returns the ADC (typically range is 0 to 250)
VectorBranch< float > & m_trkHit_tubeT0
VectorBranch< int > & m_trkHit_type
ThreeVectorBranch m_rawTgc_gPos
ThreeVectorBranch m_trkHit_pos
ScalarBranch< int > & m_trkHit_nMdtHits
virtual const Amg::Vector3D & globalPosition() const override final
Returns the global Position.
uint32_t runNumber() const
The current event's run number.
double driftTime() const
Returns the value of the drift time used to obtain the drift radius.
VectorBranch< int > & m_trkHit_calibStatus
double distanceFromRO(const Amg::Vector3D &GlobalHitPosition, const Identifier &id) const
@ Outlier
This TSoS contains an outlier, that is, it contains a MeasurementBase/RIO_OnTrack which was not used ...
ThreeVectorBranch m_trkHole_gPos
VectorBranch< float > & m_trk_z0
float time() const
Returns the time.
virtual const TgcPrepData * prepRawData() const
Returns the TgcPrepData - is a TRT_DriftCircle in this scope.
void push_back(const Amg::Vector3D &vec)
interface using the Amg::Vector3D
VectorBranch< int > & m_rawMdt_tdc
VectorBranch< unsigned int > & m_trkHit_id
bool type(const TrackStateOnSurfaceType type) const
Use this method to find out if the TSoS is of a certain type: i.e.
VectorBranch< float > & m_trkHit_slewTime
VectorBranch< float > & m_trkHit_lorTime
uint16_t getBcBitMap() const
Returns the bcBitMap of this PRD bit2 for Previous BC, bit1 for Current BC, bit0 for Next BC.
ScalarBranch< float > & m_pt
const MdtReadoutElement * getMdtReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
@ Hole
A hole on the track - this is defined in the following way.
Class to represent RPC measurements.
VectorBranch< int > & m_trk_nOutliersHits
::StatusCode StatusCode
StatusCode definition for legacy code.
unsigned int getIdInt() const
Eigen::Affine3d Transform3D
ThreeVectorBranch m_trkHit_gPos
CscCalcPed - algorithm that finds the Cathode Strip Chamber pedestals from an RDO.
virtual const Amg::Vector3D & globalPosition() const
Returns the global position of the CENTER of the drift tube (i.e.
VectorBranch< float > & m_trkHit_driftRadius
double localAngle() const
Returns the local angle, as determined by the extrapolation used when creating this Trk::RIO_OnTrack.
ThreeVectorBranch m_trkTriggerHit_gPos
ScalarBranch< int > & m_eventNumber
Detailed track summary for the muon system Give access to hit counts per chamber.
Class to represent and store fit qualities from track reconstruction in terms of and number of degre...
double positionAlongWire() const
Returns the position along the wire, as determined by the extrapolation used when creating this Trk::...
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
double driftRadius() const
Returns the value of the drift radius.
static std::string stationNumberToFixedStationString(const int station)
uint32_t lumiBlock() const
The current event's luminosity block number.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
const Amg::MatrixX & localCovariance() const
Interface method to get the localError.
void push_back(const T &value)
Adds a new element at the end of the vector.
virtual const RpcPrepData * prepRawData() const override final
Returns the RpcPrepData - is a TRT_DriftCircle in this scope.
Identifier identify() const
return the identifier
VectorBranch< float > & m_trk_theta
virtual StatusCode finalize() override
const Perigee * perigeeParameters() const
return Perigee.
ServiceHandle< Muon::IMuonIdHelperSvc > m_MuonIdHelper
VectorBranch< unsigned int > & m_rawMdt_id
VectorBranch< float > & m_trk_chi2
SG::ReadHandleKey< TrackCollection > m_TrkKey
int tdc() const
Returns the TDC (typically range is 0 to 2500).
represents the track state (measurement, material, fit parameters and quality) at a surface.
VectorBranch< int > & m_trk_nRpcPhiHits
VectorBranch< float > & m_trkTriggerHit_time
A summary of the information contained by a track.
SG::ReadHandleKey< xAOD::EventInfo > m_evtKey
VectorBranch< int > & m_trkHit_adc
This class represents the corrected MDT measurements, where the corrections include the effects of wi...
VectorBranch< int > & m_trk_nMdtHoles
StatusCode initialize(bool used=true)
VectorBranch< int > & m_trk_author
Class to represent measurements from the Monitored Drift Tubes.
const std::vector< const MuonClusterOnTrack * > & containedROTs() const
returns the vector of SCT_ClusterOnTrack objects .
Eigen::Matrix< double, 3, 1 > Vector3D
SG::ReadHandleKey< Muon::RpcPrepDataContainer > m_RpcPrepDataKey
ScalarBranch< int > & m_bcId
ScalarBranch< int > & m_runNumber
VectorBranch< float > & m_trk_d0
const Amg::Vector3D & momentum() const
Access method for the momentum.
PublicToolHandle< Muon::MuonEDMPrinterTool > m_printer
VectorBranch< unsigned int > & m_trkHole_id
@ Biased
RP with track state including the hit.
VectorBranch< int > & m_trk_ndof
Amg::Vector3D tubePos(const Identifier &id) const
Returns the global position of the given tube.
VectorBranch< float > & m_trkHit_propTime
ScalarBranch< int > & m_trkHole_nHoles
ToolHandle< IMdtCalibrationTool > m_calibrationTool
pointer to MdtCalibSvc
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
#define ATH_MSG_WARNING(x)
VectorBranch< float > & m_trk_pt
const Trk::TrackSummary * trackSummary() const
Returns a pointer to the const Trk::TrackSummary owned by this const track (could be nullptr)
VectorBranch< float > & m_trkHit_triggerTime
VectorBranch< float > & m_trkHit_tof
Identifier identify() const
return the identifier -extends MeasurementBase
Class to represent TGC measurements.
bool fill(const EventContext &ctx)
Fills the tree per call.
uint32_t timeStamp() const
POSIX time in seconds from 1970. January 1st.
StatusCode write()
Finally write the TTree objects.
double chiSquared() const
returns the of the overall track fit
int mdtTube() const
Mdt specific:
ThreeVectorBranch m_trkHit_closestApproach
VectorBranch< int > & m_trkHit_tdc
virtual const Amg::Vector3D & globalPosition() const override final
Returns the global position.
size_t size() const
Returns the number of actual saved elements.
int numberDoF() const
returns the number of degrees of freedom of the overall track or vertex fit as integer
VectorBranch< int > & m_trkHole_trackIndex
VectorBranch< float > & m_trk_phi
ToolHandle< MuonCalib::IIdToFixedIdTool > m_idToFixedIdTool
int get(const SummaryType &type) const
returns the summary information for the passed SummaryType.
VectorBranch< int > & m_trk_nTgcEtaHits
VectorBranch< float > & m_trkHit_bkgTime
const MuonTrackSummary * muonTrackSummary() const
returns a pointer to the MuonTrackSummary if available
VectorBranch< unsigned int > & m_trkTriggerHit_id
VectorBranch< float > & m_trk_eta
uint32_t bcid() const
The bunch crossing ID of the event.
ScalarBranch< int > & m_rawMdt_nRMdt
VectorBranch< int > & m_rawMdt_adc
VectorBranch< float > & m_trkHit_pull
VectorBranch< float > & m_trkHit_error
ScalarBranch< int > & m_timeStamp
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
VectorBranch< float > & m_trkHit_driftTime
VectorBranch< int > & m_trkTriggerHit_type
int mdtTubeLayer() const
Mdt specific:
@ numberOfMdtHits
number of mdt hits
ThreeVectorBranch m_trkHit_center