|
ATLAS Offline Software
|
Go to the documentation of this file.
40 m_DetID(nullptr), m_TRTID(nullptr),
42 m_maxTimeResidual(150),
43 m_minTimebinsOverThreshold(2),
44 m_maxTrackChisquarePerDof(10),
46 m_numOfHitsAccepted(0),
47 m_numOfProcessedTracks(0),
48 m_DoMCCosmicTimeShift(0),
49 m_f(nullptr), m_ntuple(nullptr)
51 declareInterface<IFillAlignTrkInfo>(
this);
70 m_ntuple =
new TNtuple(
"ntuple",
"TRT calibration ntuple",
"run:evt:lbn:nvx:trk:det:lay:mod:stl:stw:brd:chp:sid:locx:locy:locz:x:y:z:r:dr:t:rtrack:drrtrack:rtrackunbias:drrtrackunbias:ttrack:ttrackunbias:t0:ephase:phi:theta:pt:qoverp:d0:ToT:HT:ToTCorrection:HTCorrection:isArgonStraw");
71 return StatusCode::SUCCESS;
81 return StatusCode::SUCCESS;
89 float rtrackunbias = 0;
90 float drrtrackunbias = 0;
92 float ttrackunbias = 0;
131 int countVertices(0);
134 if ( vx-> nTrackParticles() >= 3) countVertices++;
137 nvrt_rec = countVertices;
151 for (; tsos != tsosEnd; ++tsos) {
152 mesb = (*tsos)->measurementOnTrack();
154 if(rotp !=
nullptr) {
162 if (trtcirc !=
nullptr) {
164 tparp = ((*tsos)->trackParameters());
167 if (tparp ==
nullptr) {
170 if (dcp ==
nullptr) {
171 msg(MSG::ERROR) <<
"strange: prepRawData not available" <<
endmsg;
176 output->push_back(newhit);
189 if(errsq<0) errsq=1.0;
191 bool isvalid =
false;
213 float HTCorrection = 0;
222 if(errsq<0) errsq=1.0;
225 if(errsq<0) errsq=1.0;
240 }
else if (chip<12) {
248 int isArgonStraw = 0;
260 float h_timeResidual = h_driftTime - h_trkDriftTime;
270 float d = h_residualVariance;
272 float h_chiSquare = h_residual*h_residual/
d ;
279 h_hasValidDriftTime &&
289 drrtrack = sqrt(errsq);
293 tparp = ((*tsos)->trackParameters());
294 HitOnTrackToRemove = *tsos;
296 if(HitOnTrackToRemove){
303 msg() <<
"TrackParameters 1: nullptr" <<
endmsg;
306 if(unbiasedTrkParameters){
310 if(errsq<0) errsq=1.;
311 drrtrackunbias = sqrt(errsq);
313 if( rtrelation ) ttrackunbias = rtrelation->
drifttime(std::abs( rtrackunbias ));
314 ATH_MSG_DEBUG(
"Unbiased TrackParameters 2: " << *unbiasedTrkParameters );
321 float const ntvar[40]={
377 msg(MSG::ERROR) <<
"TRT drift RIO cast failed - no hit stored" <<
endmsg;
386 <<
output->size() <<
" hits had FULL info available" <<
endmsg;
390 delete unbiasedTrkParameters;
Trk::DriftCircleSide side() const
returns the side on which the drift radius is.
def retrieve(aClass, aKey=None)
bool is_pixel(Identifier id) const
const TrackParameters * trackParameters() const
return ptr to trackparameters const overload
virtual const TRT_DriftCircle * prepRawData() const override final
returns the PrepRawData - is a TRT_DriftCircle in this scope
float m_DoMCCosmicTimeShift
Scalar phi() const
phi method
unsigned int m_numOfProcessedTracks
bool is_sct(Identifier id) const
const Amg::Vector3D & position() const
Access method for the position.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
const Trk::TrackStates * trackStateOnSurfaces() const
return a pointer to a const DataVector of const TrackStateOnSurfaces.
abstract base class for rt-relations
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
double timeOverThreshold() const
returns Time over threshold in ns
Scalar theta() const
theta method
This is an Identifier helper class for the TRT subdetector. This class is a factory for creating comp...
value_type get_compact() const
Get the compact id.
unsigned int m_numOfHitsAccepted
bool msgLvl(const MSG::Level lvl) const
const MeasurementBase * measurementOnTrack() const
returns MeasurementBase const overload
const AtlasDetectorID * m_DetID
bool is_trt(Identifier id) const
ToolHandle< ITRT_CalDbTool > m_trtcaldbTool
ServiceHandle< ITRT_StrawNeighbourSvc > m_neighbourSvc
virtual bool fill(const Trk::Track *aTrack, TRT::TrackInfo *output, const xAOD::EventInfo &eventInfo, const xAOD::VertexContainer &vertices)
FillAlignTRTHits(const std::string &type, const std::string &name, const IInterface *parent)
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
ToolHandle< ITRT_DriftFunctionTool > m_driftFunctionTool
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
int straw(const Identifier &id) const
float m_maxTrackChisquarePerDof
double driftTime(bool &valid) const
returns the raw driftTime, the passed boolean indicates if the drift time is valid or not.
virtual StatusCode finalize()
virtual float drifttime(float radius) const =0
drifttime for given radius
::StatusCode StatusCode
StatusCode definition for legacy code.
ToolHandle< ITRT_StrawStatusSummaryTool > m_TRTStrawSummaryTool
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
int straw_layer(const Identifier &id) const
virtual StatusCode initialize()
int layer_or_wheel(const Identifier &id) const
uint32_t lumiBlock() const
The current event's luminosity block number.
const Amg::MatrixX & localCovariance() const
Interface method to get the localError.
unsigned int m_numOfHitsTotal
const Perigee * perigeeParameters() const
return Perigee.
represents the track state (measurement, material, fit parameters and quality) at a surface.
double error(const Amg::MatrixX &mat, int index)
return diagonal error of the matrix caller should ensure the matrix is symmetric and the index is in ...
int phi_module(const Identifier &id) const
Class describing the basic event information.
const LocalParameters & localParameters() const
Interface method to get the LocalParameters.
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
Gaudi::Property< std::string > m_ntupleName
Class describing a Vertex.
bool highLevel() const
returns true if the high level threshold was passed
ToolHandle< Trk::IUpdator > m_updator
Identifier identify() const
return the identifier -extends MeasurementBase
virtual float drdt(float driftime) const =0
driftvelocity for given drifttime
int m_minTimebinsOverThreshold
virtual const TrkDetElementBase * detectorElement() const =0
returns the detector element, assoicated with the PRD of this class
virtual const Amg::Vector3D & center() const =0
Return the center of the element.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
Identifier straw_id(int barrel_ec, int phi_module, int layer_or_wheel, int straw_layer, int straw) const
Three ways of getting id for a single straw: