ATLAS Offline Software
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
FillAlignTRTHits Class Reference

#include <FillAlignTRTHits.h>

Inheritance diagram for FillAlignTRTHits:
Collaboration diagram for FillAlignTRTHits:

Public Member Functions

 FillAlignTRTHits (const std::string &type, const std::string &name, const IInterface *parent)
 
virtual ~FillAlignTRTHits ()
 
virtual StatusCode initialize ()
 
virtual StatusCode finalize ()
 
virtual bool fill (const Trk::Track *aTrack, TRT::TrackInfo *output, const xAOD::EventInfo &eventInfo, const xAOD::VertexContainer &vertices)
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

const AtlasDetectorIDm_DetID
 
const TRT_IDm_TRTID
 
ToolHandle< ITRT_DriftFunctionToolm_driftFunctionTool {this, "TRTDriftFunctionTool", "TRT_DriftFunctionTool", "Drift function tool name"}
 
ToolHandle< Trk::IUpdatorm_updator {this, "UpdatorTool" , "Trk::KalmanUpdator/TrkKalmanUpdator", "Measurement updator to calculate unbiased track states"}
 
ToolHandle< ITRT_CalDbToolm_trtcaldbTool {this, "TRTCalDbTool", "CalDbTool", "Access to the folder of the calibration constants"}
 
ServiceHandle< ITRT_StrawNeighbourSvcm_neighbourSvc {this, "NeighbourSvc", "NeighbourSvc", ""}
 
ToolHandle< ITRT_StrawStatusSummaryToolm_TRTStrawSummaryTool {this, "TRTStrawSummaryTool", "InDetTRTStrawStatusSummaryTool", ""}
 
Gaudi::Property< std::string > m_ntupleName {this, "NtupleName" , "basic.root", "Changes the name of the ntuple Output"}
 
float m_maxDistance
 
float m_maxTimeResidual
 
int m_minTimebinsOverThreshold
 
float m_maxTrackChisquarePerDof
 
unsigned int m_numOfHitsTotal
 
unsigned int m_numOfHitsAccepted
 
unsigned int m_numOfProcessedTracks
 
float m_DoMCCosmicTimeShift
 
TFile * m_f
 
TNtuple * m_ntuple
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Definition at line 51 of file FillAlignTRTHits.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ FillAlignTRTHits()

FillAlignTRTHits::FillAlignTRTHits ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Definition at line 38 of file FillAlignTRTHits.cxx.

38  :
40  m_DetID(nullptr), m_TRTID(nullptr),
41  m_maxDistance(2.8),
42  m_maxTimeResidual(150),
49  m_f(nullptr), m_ntuple(nullptr)
50 {
51  declareInterface<IFillAlignTrkInfo>(this);
52  declareProperty("maxDistance",m_maxDistance) ;
53  declareProperty("maxTimeResidual",m_maxTimeResidual) ;
54  declareProperty("minTimebinsOverThreshold",m_minTimebinsOverThreshold) ;
55  declareProperty("maxTrackChisquarePerDof",m_maxTrackChisquarePerDof) ;
56  declareProperty("DoMCCosmicTimeShift",m_DoMCCosmicTimeShift);
57 }

◆ ~FillAlignTRTHits()

virtual FillAlignTRTHits::~FillAlignTRTHits ( )
inlinevirtual

Definition at line 56 of file FillAlignTRTHits.h.

56 {}

Member Function Documentation

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ fill()

bool FillAlignTRTHits::fill ( const Trk::Track aTrack,
TRT::TrackInfo output,
const xAOD::EventInfo eventInfo,
const xAOD::VertexContainer vertices 
)
virtual

INCLUDE TO HAVE UNBIAS RESIDUAL!!

END INCLUDE TO HAVE UNBIAS RESIDUAL!!

Implements IFillAlignTrkInfo.

Definition at line 85 of file FillAlignTRTHits.cxx.

86  {
87 
89  float rtrackunbias = 0;
90  float drrtrackunbias = 0;
91  float drrtrack = 0;
92  float ttrackunbias = 0;
93  (*output)[TRT::Track::numberOfPixelHits] = 0;
94  (*output)[TRT::Track::numberOfSCTHits] = 0;
95  (*output)[TRT::Track::numberOfTRTHits] = 0;
96  // loop over the TrackStateonSurfaces
97 
98  const Trk::TrackParameters *unbiasedTrkParameters(nullptr);
99  const Trk::TrackStateOnSurface* HitOnTrackToRemove(nullptr);
100 
101  double timecor = 0.;
102  const Trk::Track* pTrack = aTrack ;
103  const Trk::Perigee* mesp = pTrack->perigeeParameters();
104  float lbn = -1;
105  float nvrt_rec = -1;
106  double phi = 10;
107  double theta = 100;
108  double pt = 0;
109  double qoverp = 0;
110  double d0 = 0;
111 
112  if(mesp){
113  phi = mesp->parameters()[Trk::phi0];
114  theta = mesp->parameters()[Trk::theta];
115  if(fabs(theta)==0) theta=1e-24;
116  float ptinv = std::abs(mesp->parameters()[Trk::qOverP]) / sin(theta);
117  qoverp = mesp->parameters()[Trk::qOverP];
118  if (ptinv != 0) {
119  pt = 1. / ptinv;
120  } else {
121  pt = 1e24;
122  }
123  d0 = mesp->parameters()[Trk::d0];
124  }
125 
126  timecor = m_DoMCCosmicTimeShift ;
127 
128  lbn = (float)eventInfo.lumiBlock();
129  //Number of Prim vertex:
130  nvrt_rec = 0;
131  int countVertices(0);
132  for (const xAOD::Vertex* vx : vertices) {
133  if (vx->vertexType() == xAOD::VxType::PriVtx) {
134  if ( vx-> nTrackParticles() >= 3) countVertices++;
135  }
136  }
137  nvrt_rec = countVertices;
138 
139  auto tsos = aTrack->trackStateOnSurfaces()->begin();
140  auto tsosEnd = aTrack->trackStateOnSurfaces()->end();
141 
142  const Trk::MeasurementBase* mesb = nullptr;
143  const Trk::RIO_OnTrack* rotp = nullptr;
144  const InDet::TRT_DriftCircle* dcp = nullptr;
145  const Trk::TrackParameters* tparp = nullptr;
146  const Trk::TrackParameters* mparp = nullptr;
147  const InDet::TRT_DriftCircleOnTrack* trtcirc = nullptr;
148  const TRTCond::RtRelation* rtrelation = nullptr;
149 
150 
151  for (; tsos != tsosEnd; ++tsos) {
152  mesb = (*tsos)->measurementOnTrack();
153  rotp = dynamic_cast<const Trk::RIO_OnTrack*>(mesb);
154  if(rotp != nullptr) {
155  Identifier ident = rotp->identify();
156  if (m_DetID->is_sct(ident)) {
157  (*output)[TRT::Track::numberOfSCTHits]++;
158  } else if (m_DetID->is_trt(ident)) {
159  (*output)[TRT::Track::numberOfTRTHits]++;
161  trtcirc = dynamic_cast<const InDet::TRT_DriftCircleOnTrack*>(rotp);
162  if (trtcirc != nullptr) {
163  dcp = trtcirc->prepRawData();
164  tparp = ((*tsos)->trackParameters());
165  mparp = (tparp);
166 
167  if (tparp == nullptr) {
168  if (msgLvl(MSG::DEBUG)) msg() << "strange: trk parameters not available" << endmsg;
169  }
170  if (dcp == nullptr) {
171  msg(MSG::ERROR) << "strange: prepRawData not available" << endmsg;
172  }
173 
174  if (mparp && dcp) {
175  TRT::HitInfo* newhit = new TRT::HitInfo();
176  output->push_back(newhit); // do we make sure this one is deleted properly
177 
178  (*newhit)[TRT::Hit::ident] = ident.get_identifier32().get_compact();
179  (*newhit)[TRT::Hit::detector] = m_TRTID->barrel_ec(ident);
183  (*newhit)[TRT::Hit::straw] = m_TRTID->straw(ident);
184  (*newhit)[TRT::Hit::side] = static_cast<int>(trtcirc->side());
185 
186  // Local wire specific
188  float errsq=Amg::error(rotp->localCovariance(),Trk::driftRadius);
189  if(errsq<0) errsq=1.0;
190  (*newhit)[TRT::Hit::errorSignedDriftRadius] = sqrt(errsq) ;
191  bool isvalid = false;
192 
193 
194  (*newhit)[TRT::Hit::driftTime] = dcp->driftTime(isvalid) - timecor;
195  (*newhit)[TRT::Hit::driftTimeStatus] = isvalid ;
196  // this is the integer drift time, but multiplied by the scale.
197  // to calculate the residual in the drift time, I need to have the t0 as well.
198  // I'd also like to store the drift velocity
199  if (!isvalid) (*newhit)[TRT::Hit::driftTime] = -1.0;
200 
201  (*newhit)[TRT::Hit::t0] = m_trtcaldbTool->getT0(ident) ;
202 
203  (*newhit)[TRT::Hit::TimeoverThreshold] = dcp->timeOverThreshold() ;
204  //CORRECT FOR TUBEHITS!!!:
205  rtrelation = m_trtcaldbTool->getRtRelation(ident) ;
206  // added High Level Threshold information
207  (*newhit)[TRT::Hit::HTLevel] = dcp->highLevel();
208  // Extract the correction in the db for the ToT:
209  float tot = (*newhit)[TRT::Hit::TimeoverThreshold];
210  float ToTCorrection = m_driftFunctionTool->driftTimeToTCorrection(tot, ident);
211 
212  // Extract the correction for HT:
213  float HTCorrection = 0;
214  if ((*newhit)[TRT::Hit::HTLevel]){
215  HTCorrection = m_driftFunctionTool->driftTimeHTCorrection(ident);
216  }
217 
218  (*newhit)[TRT::Hit::positionOnWire] = tparp->parameters()[Trk::locZ];
219 
220  (*newhit)[TRT::Hit::trackDriftRadius] = tparp->parameters()[Trk::driftRadius];
221  errsq=Amg::error(*(mparp->covariance()),Trk::locZ);
222  if(errsq<0) errsq=1.0;
223  (*newhit)[TRT::Hit::errorPositionOnWire] = sqrt(errsq);
224  errsq=Amg::error(*(mparp->covariance()),Trk::driftRadius);
225  if(errsq<0) errsq=1.0;
226  (*newhit)[TRT::Hit::errorTrackDriftRadius] = sqrt(errsq);
227  // calculate the 'trktime' and the 'trkdriftvelocity'
228  if( rtrelation ) {
229  (*newhit)[TRT::Hit::trackDriftTime] = rtrelation->drifttime(std::abs( (*newhit)[TRT::Hit::trackDriftRadius] )) ;
230  (*newhit)[TRT::Hit::driftVelocity] = rtrelation->drdt( (*newhit)[TRT::Hit::trackDriftTime] ) ;
231  }
232 
233  (*newhit)[TRT::Hit::trackT0]= timecor ;
234 
235  int chip = 0;
236  int board = -1;
237  m_neighbourSvc->getChip(ident,chip);
238  if(abs(m_TRTID->barrel_ec(ident))<2){
239  board = m_neighbourSvc->chipToBoardBarrel(chip, m_TRTID->layer_or_wheel(ident));
240  } else if (chip<12) {
241  board = 0;
242  } else {
243  chip = chip-20;
244  board = 1;
245  }
246 
247  // Prepare for Xe-Ar mixed conditions:
248  int isArgonStraw = 0;
249  if (!m_TRTStrawSummaryTool.empty()) {
250  if (m_TRTStrawSummaryTool->getStatusHT(ident, Gaudi::Hive::currentContext()) != TRTCond::StrawStatus::Good) {
251  isArgonStraw = 1;
252  }
253  }
254 
255 
256  float h_trkDistance = (*newhit)[TRT::Hit::trackDriftRadius];
257 
258  float h_driftTime = (*newhit)[TRT::Hit::driftTime] - (*newhit)[TRT::Hit::t0];
259  float h_trkDriftTime = (*newhit)[TRT::Hit::trackDriftTime];
260  float h_timeResidual = h_driftTime - h_trkDriftTime;
261 
262  float h_trkVariance = (*newhit)[TRT::Hit::errorTrackDriftRadius] * (*newhit)[TRT::Hit::errorTrackDriftRadius];
263 
264  bool h_hasValidDriftTime = (*newhit)[TRT::Hit::driftTimeStatus] ;
265 
266  float h_timeOverThreshold = (*newhit)[TRT::Hit::TimeoverThreshold] ;
267 
268  float h_residual = (*newhit)[TRT::Hit::signedDriftRadius] - (*newhit)[TRT::Hit::trackDriftRadius] ;
269  float h_residualVariance = h_trkVariance + ((*newhit)[TRT::Hit::errorSignedDriftRadius] * (*newhit)[TRT::Hit::errorSignedDriftRadius]);
270  float d = h_residualVariance;
271  if(d==0) d=1.0e-24;
272  float h_chiSquare = h_residual*h_residual/d ;
273  int dof = (*output)[TRT::Track::degreesOfFreedom]-1;
274  if(dof<1) dof=1;
275  bool hitsel=false;
276  if( std::abs( h_trkDistance ) < m_maxDistance &&
277  std::abs( h_timeResidual ) < m_maxTimeResidual &&
278  h_trkVariance > 0 &&
279  h_hasValidDriftTime &&
280  h_timeOverThreshold/3.125 >= m_minTimebinsOverThreshold &&
281  ((*output)[TRT::Track::chiSquare] - h_chiSquare) / (float)dof < m_maxTrackChisquarePerDof ){
282  hitsel = true;
283  }
284 
286  rtrackunbias = 0;
287  drrtrackunbias = 0;
288  errsq = Amg::error(*(mparp->covariance()),Trk::driftRadius);
289  drrtrack = sqrt(errsq);
290  ttrackunbias = 0;
291 
292  if (m_updator){
293  tparp = ((*tsos)->trackParameters());
294  HitOnTrackToRemove = *tsos;
295 
296  if(HitOnTrackToRemove){
297  unbiasedTrkParameters = m_updator->removeFromState(*(HitOnTrackToRemove->trackParameters()),
298  HitOnTrackToRemove->measurementOnTrack()->localParameters(),
299  HitOnTrackToRemove->measurementOnTrack()->localCovariance()).release();
300  ATH_MSG_DEBUG ("TrackParameters 1: " << *(HitOnTrackToRemove->trackParameters()));
301  }
302  else if (msgLvl(MSG::DEBUG)) {
303  msg() << "TrackParameters 1: nullptr" << endmsg;
304  }
305 
306  if(unbiasedTrkParameters){
307  const Trk::TrackParameters *unmparp = (unbiasedTrkParameters);
308  rtrackunbias = unbiasedTrkParameters->parameters()[Trk::driftRadius];
309  errsq=Amg::error(*(unmparp->covariance()),Trk::driftRadius);
310  if(errsq<0) errsq=1.;
311  drrtrackunbias = sqrt(errsq);
312 
313  if( rtrelation ) ttrackunbias = rtrelation->drifttime(std::abs( rtrackunbias ));
314  ATH_MSG_DEBUG("Unbiased TrackParameters 2: " << *unbiasedTrkParameters );
315  ATH_MSG_DEBUG("Radius : " << (*newhit)[TRT::Hit::trackDriftRadius] );
316  ATH_MSG_DEBUG("Radius 2: " << rtrackunbias );
317  }
318 
319  }
321  float const ntvar[40]={
324  lbn,
325  nvrt_rec,
327 
328  (float)(*newhit)[TRT::Hit::detector],
329  (float)(*newhit)[TRT::Hit::layer],
330  (float)(*newhit)[TRT::Hit::phiModule],
331  (float)(*newhit)[TRT::Hit::strawLayer],
332  (float)(*newhit)[TRT::Hit::straw],
333  (float)board,
334  (float)chip,
336  (*newhit)[TRT::Hit::phiModule],
337  (*newhit)[TRT::Hit::layer],
338  (*newhit)[TRT::Hit::strawLayer],
339  (*newhit)[TRT::Hit::straw]).get_identifier32().get_compact() ,
340  (float)tparp->position().x(),
341  (float)tparp->position().y(),
342  (float)tparp->position().z(),
343  (float)(rotp->detectorElement()->center(ident)).x(),
344  (float)(rotp->detectorElement()->center(ident)).y(),
345  (float)(rotp->detectorElement()->center(ident)).z(),
346 
347  (*newhit)[TRT::Hit::signedDriftRadius],
349  (*newhit)[TRT::Hit::driftTime],
350  (*newhit)[TRT::Hit::trackDriftRadius],
351  drrtrack,
352  rtrackunbias,
353  drrtrackunbias,
354  (*newhit)[TRT::Hit::trackDriftTime],
355  ttrackunbias,
356  m_trtcaldbTool->getT0(ident),
357  (float)timecor,
358  (float)phi ,
359  (float)theta,
360  (float)pt ,
361  (float)qoverp ,
362  (float)d0 ,
363  (*newhit)[TRT::Hit::TimeoverThreshold],
364  (*newhit)[TRT::Hit::HTLevel],
365  ToTCorrection,
366  HTCorrection,
367  (float)isArgonStraw
368  };
369 
370  if (hitsel) {
372  m_ntuple->Fill(ntvar);
373  }
374 
375  }
376  } else {
377  msg(MSG::ERROR) << "TRT drift RIO cast failed - no hit stored" << endmsg;
378  }
379 
380 
381  } // identified TRT hit
382  else if (m_DetID->is_pixel(ident)) (*output)[TRT::Track::numberOfPixelHits]++;
383  } // non-zero ROTpointer
384  } // end loop on Surfaces
385  if (msgLvl(MSG::VERBOSE)) msg() << "Track has " << (*output)[TRT::Track::numberOfTRTHits] << " TRT hits --> of which "
386  << output->size() << " hits had FULL info available" << endmsg;
387 
388 
389 
390  delete unbiasedTrkParameters;
391 
392 
393  return true;
394 }

◆ finalize()

StatusCode FillAlignTRTHits::finalize ( )
virtual

Definition at line 75 of file FillAlignTRTHits.cxx.

75  {
76  m_f->Write();
77  m_f->Close();
78  std::cout << "CALIBSTAT TRKS: " << m_numOfProcessedTracks << std::endl;
79  std::cout << "CALIBSTAT HTOT: " << m_numOfHitsTotal << std::endl;
80  std::cout << "CALIBSTAT HACC: " << m_numOfHitsAccepted << std::endl;
81  return StatusCode::SUCCESS;
82 }

◆ initialize()

StatusCode FillAlignTRTHits::initialize ( )
virtual

Definition at line 59 of file FillAlignTRTHits.cxx.

59  {
60  ATH_CHECK ( detStore()->retrieve(m_DetID, "AtlasID") );
61  ATH_CHECK ( detStore()->retrieve(m_TRTID, "TRT_ID") );
62 
63  ATH_CHECK ( m_trtcaldbTool.retrieve() );
64  ATH_CHECK ( m_neighbourSvc.retrieve() );
65  ATH_CHECK ( m_driftFunctionTool.retrieve() );
66  ATH_CHECK ( m_updator.retrieve() );
67  ATH_CHECK ( m_TRTStrawSummaryTool.retrieve() );
68 
69  m_f = new TFile(m_ntupleName.value().c_str(),"RECREATE");
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;
72 }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ interfaceID()

const InterfaceID & IFillAlignTrkInfo::interfaceID ( )
inlinestaticinherited

Definition at line 44 of file IFillAlignTrkInfo.h.

45 {
46  return IID_IFillAlignTrkInfo;
47 }

◆ msg() [1/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ renounce()

std::enable_if_t<std::is_void_v<std::result_of_t<decltype(&T::renounce)(T)> > && !std::is_base_of_v<SG::VarHandleKeyArray, T> && std::is_base_of_v<Gaudi::DataHandle, T>, void> AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ m_DetID

const AtlasDetectorID* FillAlignTRTHits::m_DetID
private

Definition at line 66 of file FillAlignTRTHits.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_DoMCCosmicTimeShift

float FillAlignTRTHits::m_DoMCCosmicTimeShift
private

Definition at line 84 of file FillAlignTRTHits.h.

◆ m_driftFunctionTool

ToolHandle< ITRT_DriftFunctionTool > FillAlignTRTHits::m_driftFunctionTool {this, "TRTDriftFunctionTool", "TRT_DriftFunctionTool", "Drift function tool name"}
private

Definition at line 69 of file FillAlignTRTHits.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_f

TFile* FillAlignTRTHits::m_f
private

Definition at line 86 of file FillAlignTRTHits.h.

◆ m_maxDistance

float FillAlignTRTHits::m_maxDistance
private

Definition at line 77 of file FillAlignTRTHits.h.

◆ m_maxTimeResidual

float FillAlignTRTHits::m_maxTimeResidual
private

Definition at line 78 of file FillAlignTRTHits.h.

◆ m_maxTrackChisquarePerDof

float FillAlignTRTHits::m_maxTrackChisquarePerDof
private

Definition at line 80 of file FillAlignTRTHits.h.

◆ m_minTimebinsOverThreshold

int FillAlignTRTHits::m_minTimebinsOverThreshold
private

Definition at line 79 of file FillAlignTRTHits.h.

◆ m_neighbourSvc

ServiceHandle<ITRT_StrawNeighbourSvc> FillAlignTRTHits::m_neighbourSvc {this, "NeighbourSvc", "NeighbourSvc", ""}
private

Definition at line 72 of file FillAlignTRTHits.h.

◆ m_ntuple

TNtuple* FillAlignTRTHits::m_ntuple
private

Definition at line 87 of file FillAlignTRTHits.h.

◆ m_ntupleName

Gaudi::Property<std::string> FillAlignTRTHits::m_ntupleName {this, "NtupleName" , "basic.root", "Changes the name of the ntuple Output"}
private

Definition at line 75 of file FillAlignTRTHits.h.

◆ m_numOfHitsAccepted

unsigned int FillAlignTRTHits::m_numOfHitsAccepted
private

Definition at line 82 of file FillAlignTRTHits.h.

◆ m_numOfHitsTotal

unsigned int FillAlignTRTHits::m_numOfHitsTotal
private

Definition at line 81 of file FillAlignTRTHits.h.

◆ m_numOfProcessedTracks

unsigned int FillAlignTRTHits::m_numOfProcessedTracks
private

Definition at line 83 of file FillAlignTRTHits.h.

◆ m_trtcaldbTool

ToolHandle<ITRT_CalDbTool> FillAlignTRTHits::m_trtcaldbTool {this, "TRTCalDbTool", "CalDbTool", "Access to the folder of the calibration constants"}
private

Definition at line 71 of file FillAlignTRTHits.h.

◆ m_TRTID

const TRT_ID* FillAlignTRTHits::m_TRTID
private

Definition at line 67 of file FillAlignTRTHits.h.

◆ m_TRTStrawSummaryTool

ToolHandle<ITRT_StrawStatusSummaryTool> FillAlignTRTHits::m_TRTStrawSummaryTool {this, "TRTStrawSummaryTool", "InDetTRTStrawStatusSummaryTool", ""}
private

Definition at line 73 of file FillAlignTRTHits.h.

◆ m_updator

ToolHandle<Trk::IUpdator> FillAlignTRTHits::m_updator {this, "UpdatorTool" , "Trk::KalmanUpdator/TrkKalmanUpdator", "Measurement updator to calculate unbiased track states"}
private

Definition at line 70 of file FillAlignTRTHits.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
InDet::TRT_DriftCircleOnTrack::side
Trk::DriftCircleSide side() const
returns the side on which the drift radius is.
Definition: TRT_DriftCircleOnTrack.cxx:147
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
AtlasDetectorID::is_pixel
bool is_pixel(Identifier id) const
Definition: AtlasDetectorID.h:760
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
FillAlignTRTHits::m_ntuple
TNtuple * m_ntuple
Definition: FillAlignTRTHits.h:87
FillAlignTRTHits::m_f
TFile * m_f
Definition: FillAlignTRTHits.h:86
TRT::Hit::straw
@ straw
Definition: HitInfo.h:82
InDet::TRT_DriftCircleOnTrack::prepRawData
virtual const TRT_DriftCircle * prepRawData() const override final
returns the PrepRawData - is a TRT_DriftCircle in this scope
Definition: TRT_DriftCircleOnTrack.h:202
FillAlignTRTHits::m_DoMCCosmicTimeShift
float m_DoMCCosmicTimeShift
Definition: FillAlignTRTHits.h:84
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
TRT::Hit::trackT0
@ trackT0
Definition: HitInfo.h:52
TRT::Hit::positionOnWire
@ positionOnWire
Definition: HitInfo.h:46
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
TRT::Hit::driftTimeStatus
@ driftTimeStatus
Definition: HitInfo.h:84
TRT::Track::chiSquare
@ chiSquare
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:67
TRT::Track::numberOfSCTHits
@ numberOfSCTHits
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:77
FillAlignTRTHits::m_numOfProcessedTracks
unsigned int m_numOfProcessedTracks
Definition: FillAlignTRTHits.h:83
AtlasDetectorID::is_sct
bool is_sct(Identifier id) const
Definition: AtlasDetectorID.h:770
Trk::ParametersBase::position
const Amg::Vector3D & position() const
Access method for the position.
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
hist_file_dump.d
d
Definition: hist_file_dump.py:137
Trk::Track::trackStateOnSurfaces
const Trk::TrackStates * trackStateOnSurfaces() const
return a pointer to a const DataVector of const TrackStateOnSurfaces.
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
InDet::TRT_DriftCircle::timeOverThreshold
double timeOverThreshold() const
returns Time over threshold in ns
theta
Scalar theta() const
theta method
Definition: AmgMatrixBasePlugin.h:75
TRT::Track::event
@ event
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:74
TRT::Hit::strawLayer
@ strawLayer
Definition: HitInfo.h:81
TRT::Hit::signedDriftRadius
@ signedDriftRadius
Definition: HitInfo.h:40
test_pyathena.pt
pt
Definition: test_pyathena.py:11
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
Identifier::get_compact
value_type get_compact() const
Get the compact id.
FillAlignTRTHits::m_numOfHitsAccepted
unsigned int m_numOfHitsAccepted
Definition: FillAlignTRTHits.h:82
AthCommonMsg< AlgTool >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
Trk::RIO_OnTrack
Definition: RIO_OnTrack.h:70
FillAlignTRTHits::m_DetID
const AtlasDetectorID * m_DetID
Definition: FillAlignTRTHits.h:66
AtlasDetectorID::is_trt
bool is_trt(Identifier id) const
Definition: AtlasDetectorID.h:782
FillAlignTRTHits::m_trtcaldbTool
ToolHandle< ITRT_CalDbTool > m_trtcaldbTool
Definition: FillAlignTRTHits.h:71
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
FillAlignTRTHits::m_neighbourSvc
ServiceHandle< ITRT_StrawNeighbourSvc > m_neighbourSvc
Definition: FillAlignTRTHits.h:72
InDet::TRT_DriftCircleOnTrack
Definition: TRT_DriftCircleOnTrack.h:53
x
#define x
TRT::Track::run
@ run
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:73
InDet::TRT_DriftCircle
Definition: TRT_DriftCircle.h:32
AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
FillAlignTRTHits::m_driftFunctionTool
ToolHandle< ITRT_DriftFunctionTool > m_driftFunctionTool
Definition: FillAlignTRTHits.h:69
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
FillAlignTRTHits::m_TRTID
const TRT_ID * m_TRTID
Definition: FillAlignTRTHits.h:67
TRT::Hit::detector
@ detector
Definition: HitInfo.h:78
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
TRT::Hit::side
@ side
Definition: HitInfo.h:83
TRT::Hit::TimeoverThreshold
@ TimeoverThreshold
Definition: HitInfo.h:44
TRTCond::RtRelation
Definition: RtRelation.h:27
TRT::Hit::driftVelocity
@ driftVelocity
Definition: HitInfo.h:50
TRT_ID::straw
int straw(const Identifier &id) const
Definition: TRT_ID.h:902
FillAlignTRTHits::m_maxTrackChisquarePerDof
float m_maxTrackChisquarePerDof
Definition: FillAlignTRTHits.h:80
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
InDet::TRT_DriftCircle::driftTime
double driftTime(bool &valid) const
returns the raw driftTime, the passed boolean indicates if the drift time is valid or not.
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
TRT::Hit::driftTime
@ driftTime
Definition: HitInfo.h:43
Trk::locZ
@ locZ
local cylindrical
Definition: ParamDefs.h:42
z
#define z
TRTCond::RtRelation::drifttime
virtual float drifttime(float radius) const =0
drifttime for given radius
Trk::theta
@ theta
Definition: ParamDefs.h:66
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
Trk::driftRadius
@ driftRadius
trt, straws
Definition: ParamDefs.h:53
FillAlignTRTHits::m_TRTStrawSummaryTool
ToolHandle< ITRT_StrawStatusSummaryTool > m_TRTStrawSummaryTool
Definition: FillAlignTRTHits.h:73
xAOD::VxType::PriVtx
@ PriVtx
Primary vertex.
Definition: TrackingPrimitives.h:571
TRT::Hit::HTLevel
@ HTLevel
Definition: HitInfo.h:45
TRT::Track::d0
@ d0
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:62
TRT::Hit::trackDriftRadius
@ trackDriftRadius
Definition: HitInfo.h:48
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
Trk::ParametersBase
Definition: ParametersBase.h:55
TRT_ID::barrel_ec
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Definition: TRT_ID.h:866
TRT_ID::straw_layer
int straw_layer(const Identifier &id) const
Definition: TRT_ID.h:893
TRT_ID::layer_or_wheel
int layer_or_wheel(const Identifier &id) const
Definition: TRT_ID.h:884
xAOD::EventInfo_v1::lumiBlock
uint32_t lumiBlock() const
The current event's luminosity block number.
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
Trk::MeasurementBase::localCovariance
const Amg::MatrixX & localCovariance() const
Interface method to get the localError.
Definition: MeasurementBase.h:138
TRTCond::StrawStatus::Good
@ Good
Definition: StrawStatus.h:18
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
merge.output
output
Definition: merge.py:17
FillAlignTRTHits::m_numOfHitsTotal
unsigned int m_numOfHitsTotal
Definition: FillAlignTRTHits.h:81
Trk::MeasurementBase
Definition: MeasurementBase.h:58
Trk::Track::perigeeParameters
const Perigee * perigeeParameters() const
return Perigee.
Definition: Tracking/TrkEvent/TrkTrack/src/Track.cxx:163
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
Trk::TrackStateOnSurface
represents the track state (measurement, material, fit parameters and quality) at a surface.
Definition: TrackStateOnSurface.h:71
FillAlignTRTHits::m_maxDistance
float m_maxDistance
Definition: FillAlignTRTHits.h:77
python.EventInfoMgtInit.release
release
Definition: EventInfoMgtInit.py:24
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
Trk::d0
@ d0
Definition: ParamDefs.h:63
TRT::Track::degreesOfFreedom
@ degreesOfFreedom
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:79
Amg::error
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 ...
Definition: EventPrimitivesHelpers.h:40
TRT::Hit::errorPositionOnWire
@ errorPositionOnWire
Definition: HitInfo.h:47
TRT::Hit::ident
@ ident
Definition: HitInfo.h:77
TRT::HitInfo
Definition: HitInfo.h:100
TRT_ID::phi_module
int phi_module(const Identifier &id) const
Definition: TRT_ID.h:875
Trk::MeasurementBase::localParameters
const LocalParameters & localParameters() const
Interface method to get the LocalParameters.
Definition: MeasurementBase.h:132
TRT::Hit::errorTrackDriftRadius
@ errorTrackDriftRadius
Definition: HitInfo.h:49
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
FillAlignTRTHits::m_ntupleName
Gaudi::Property< std::string > m_ntupleName
Definition: FillAlignTRTHits.h:75
TRT::Track::numberOfTRTHits
@ numberOfTRTHits
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:78
a
TList * a
Definition: liststreamerinfos.cxx:10
y
#define y
h
TRT::Hit::phiModule
@ phiModule
Definition: HitInfo.h:80
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
InDet::TRT_DriftCircle::highLevel
bool highLevel() const
returns true if the high level threshold was passed
TRT::Hit::t0
@ t0
Definition: HitInfo.h:42
FillAlignTRTHits::m_updator
ToolHandle< Trk::IUpdator > m_updator
Definition: FillAlignTRTHits.h:70
FillAlignTRTHits::m_maxTimeResidual
float m_maxTimeResidual
Definition: FillAlignTRTHits.h:78
TRT::Track::trackNumber
@ trackNumber
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:75
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
Trk::RIO_OnTrack::identify
Identifier identify() const
return the identifier -extends MeasurementBase
Definition: RIO_OnTrack.h:152
DEBUG
#define DEBUG
Definition: page_access.h:11
TRT::Hit::trackDriftTime
@ trackDriftTime
Definition: HitInfo.h:51
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
Trk::qOverP
@ qOverP
perigee
Definition: ParamDefs.h:67
TRT::Track::numberOfPixelHits
@ numberOfPixelHits
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:76
TRTCond::RtRelation::drdt
virtual float drdt(float driftime) const =0
driftvelocity for given drifttime
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
FillAlignTRTHits::m_minTimebinsOverThreshold
int m_minTimebinsOverThreshold
Definition: FillAlignTRTHits.h:79
Trk::RIO_OnTrack::detectorElement
virtual const TrkDetElementBase * detectorElement() const =0
returns the detector element, assoicated with the PRD of this class
python.Constants.VERBOSE
int VERBOSE
Definition: Control/AthenaCommon/python/Constants.py:14
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
TRT::Hit::errorSignedDriftRadius
@ errorSignedDriftRadius
Definition: HitInfo.h:41
Trk::TrkDetElementBase::center
virtual const Amg::Vector3D & center() const =0
Return the center of the element.
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
readCCLHist.float
float
Definition: readCCLHist.py:83
Trk::phi0
@ phi0
Definition: ParamDefs.h:65
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
fitman.k
k
Definition: fitman.py:528
TRT_ID::straw_id
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:
Definition: TRT_ID.h:581
Identifier
Definition: IdentifierFieldParser.cxx:14