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_updatorHandle {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", ""}
 
Trk::IUpdatorm_updator
 updator for unbiased states More...
 
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 40 of file FillAlignTRTHits.cxx.

40  :
42  m_DetID(nullptr), m_TRTID(nullptr),
43  // m_trtcaldbTool("ITRT_CalDbTool", this),
44  // m_neighbourSvc("ITRT_StrawNeighbourSvc", name),
45  // m_TRTStrawSummaryTool("InDetTRTStrawStatusSummaryTool",this),
46  m_updator(nullptr),
47  m_maxDistance(2.8),
48  m_maxTimeResidual(150),
55  m_f(nullptr), m_ntuple(nullptr)
56 {
57  declareInterface<IFillAlignTrkInfo>(this);
58  // declareProperty("TRTCalDbTool",m_trtcaldbTool);
59  // declareProperty("NeighbourSvc",m_neighbourSvc);
60  declareProperty("maxDistance",m_maxDistance) ;
61  declareProperty("maxTimeResidual",m_maxTimeResidual) ;
62  declareProperty("minTimebinsOverThreshold",m_minTimebinsOverThreshold) ;
63  declareProperty("maxTrackChisquarePerDof",m_maxTrackChisquarePerDof) ;
64  declareProperty("DoMCCosmicTimeShift",m_DoMCCosmicTimeShift);
65  // declareProperty("TRTStrawSummaryTool", m_TRTStrawSummaryTool);
66 }

◆ ~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 137 of file FillAlignTRTHits.cxx.

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

◆ finalize()

StatusCode FillAlignTRTHits::finalize ( )
virtual

Definition at line 127 of file FillAlignTRTHits.cxx.

127  {
128  m_f->Write();
129  m_f->Close();
130  std::cout << "CALIBSTAT TRKS: " << m_numOfProcessedTracks << std::endl;
131  std::cout << "CALIBSTAT HTOT: " << m_numOfHitsTotal << std::endl;
132  std::cout << "CALIBSTAT HACC: " << m_numOfHitsAccepted << std::endl;
133  return StatusCode::SUCCESS;
134 }

◆ initialize()

StatusCode FillAlignTRTHits::initialize ( )
virtual

Definition at line 68 of file FillAlignTRTHits.cxx.

68  {
69  msg(MSG::INFO) << "initialize() " << endmsg;
70  if ((detStore()->retrieve(m_DetID,"AtlasID")).isFailure()) {
71  msg(MSG::FATAL) << "Problem retrieving ATLASDetectorID helper" << endmsg;
72  return StatusCode::FAILURE;
73  }
74  if ((detStore()->retrieve(m_TRTID)).isFailure()) {
75  msg(MSG::FATAL) << "Problem retrieving TRTID helper" << endmsg;
76  return StatusCode::FAILURE;
77  }
78 
79  std::cout<< m_trtcaldbTool<< std::endl;
80  if(m_trtcaldbTool.retrieve().isFailure()) {
81  msg(MSG::FATAL) << "Could not get TRT_CalDbTool !" << endmsg;
82  return StatusCode::FAILURE;
83  }
84  if(StatusCode::SUCCESS!=m_neighbourSvc.retrieve() ) {
85  msg(MSG::FATAL) <<"Could not get TRTStrawNeighbourSvc !"<<endmsg;
86  return StatusCode::FAILURE;
87  }
88 
89  // To extract ToT Corrections:
90  // Get DriftFunction tool service
91  //
92  if ( m_driftFunctionTool.retrieve().isFailure() ) {
93  msg(MSG::FATAL) << m_driftFunctionTool.propertyName() << ": Failed to retrieve tool " << m_driftFunctionTool.type() << endmsg;
94  return StatusCode::FAILURE;
95  } else {
96  msg(MSG::INFO) << m_driftFunctionTool.propertyName() << ": Retrieved tool " << m_driftFunctionTool.type() << endmsg;
97  }
98 
99  // use updator to get unbiased states
100  if ( ! m_updatorHandle.empty() ) {
101  StatusCode sc = m_updatorHandle.retrieve();
102  if (sc.isFailure()) {
103  msg(MSG::FATAL) << "Could not retrieve measurement updator tool: "<< m_updatorHandle << endmsg;
104  return sc;
105  }
106  m_updator = &(*m_updatorHandle);
107  } else {
108  ATH_MSG_DEBUG ("No Updator for unbiased track states given, use normal states!");
109  m_updator = nullptr;
110  }
111 
112  // The tool to get the argon status:
113  if (m_TRTStrawSummaryTool.retrieve().isFailure() ) {
114  ATH_MSG_ERROR ("Failed to retrieve StrawStatus Summary " << m_TRTStrawSummaryTool);
115  ATH_MSG_ERROR ("configure as 'None' to avoid its loading.");
116  return StatusCode::FAILURE;
117  } else {
118  msg(MSG::INFO) << "Retrieved tool " << m_TRTStrawSummaryTool << endmsg;
119  }
120 
121  m_f = new TFile(m_ntupleName.value().c_str(),"RECREATE");
122  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");
123  return StatusCode::SUCCESS;
124 }

◆ 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 86 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 88 of file FillAlignTRTHits.h.

◆ m_maxDistance

float FillAlignTRTHits::m_maxDistance
private

Definition at line 79 of file FillAlignTRTHits.h.

◆ m_maxTimeResidual

float FillAlignTRTHits::m_maxTimeResidual
private

Definition at line 80 of file FillAlignTRTHits.h.

◆ m_maxTrackChisquarePerDof

float FillAlignTRTHits::m_maxTrackChisquarePerDof
private

Definition at line 82 of file FillAlignTRTHits.h.

◆ m_minTimebinsOverThreshold

int FillAlignTRTHits::m_minTimebinsOverThreshold
private

Definition at line 81 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 89 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 77 of file FillAlignTRTHits.h.

◆ m_numOfHitsAccepted

unsigned int FillAlignTRTHits::m_numOfHitsAccepted
private

Definition at line 84 of file FillAlignTRTHits.h.

◆ m_numOfHitsTotal

unsigned int FillAlignTRTHits::m_numOfHitsTotal
private

Definition at line 83 of file FillAlignTRTHits.h.

◆ m_numOfProcessedTracks

unsigned int FillAlignTRTHits::m_numOfProcessedTracks
private

Definition at line 85 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

Trk::IUpdator* FillAlignTRTHits::m_updator
private

updator for unbiased states

Definition at line 75 of file FillAlignTRTHits.h.

◆ m_updatorHandle

ToolHandle<Trk::IUpdator> FillAlignTRTHits::m_updatorHandle {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
FillAlignTRTHits::m_ntuple
TNtuple * m_ntuple
Definition: FillAlignTRTHits.h:89
FillAlignTRTHits::m_f
TFile * m_f
Definition: FillAlignTRTHits.h:88
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:86
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
TRT::Hit::trackT0
@ trackT0
Definition: HitInfo.h:52
python.Constants.FATAL
int FATAL
Definition: Control/AthenaCommon/python/Constants.py:19
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:85
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:71
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
FillAlignTRTHits::m_numOfHitsAccepted
unsigned int m_numOfHitsAccepted
Definition: FillAlignTRTHits.h:84
AthCommonMsg< AlgTool >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
FillAlignTRTHits::m_updator
Trk::IUpdator * m_updator
updator for unbiased states
Definition: FillAlignTRTHits.h:75
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
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
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
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:82
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::IUpdator::removeFromState
virtual std::unique_ptr< TrackParameters > removeFromState(const TrackParameters &, const Amg::Vector2D &, const Amg::MatrixX &) const =0
the reverse updating or inverse KalmanFilter removes a measurement from the track state,...
Trk::locZ
@ locZ
local cylindrical
Definition: ParamDefs.h:48
z
#define z
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
TRTCond::RtRelation::drifttime
virtual float drifttime(float radius) const =0
drifttime for given radius
Trk::theta
@ theta
Definition: ParamDefs.h:72
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
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:59
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
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.
LB_AnalMapSplitter.tot
tot
Definition: LB_AnalMapSplitter.py:46
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:83
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:79
python.EventInfoMgtInit.release
release
Definition: EventInfoMgtInit.py:24
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
Trk::d0
@ d0
Definition: ParamDefs.h:69
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:77
TRT::Track::numberOfTRTHits
@ numberOfTRTHits
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:78
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
a
TList * a
Definition: liststreamerinfos.cxx:10
y
#define y
h
TRT::Hit::phiModule
@ phiModule
Definition: HitInfo.h:80
Identifier::get_compact
value_type get_compact(void) const
Get the compact id.
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_maxTimeResidual
float m_maxTimeResidual
Definition: FillAlignTRTHits.h:80
TRT::Track::trackNumber
@ trackNumber
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:75
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
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:73
Trk::RIO_OnTrack::identify
virtual Identifier identify() const final
return the identifier -extends MeasurementBase
Definition: RIO_OnTrack.h:155
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:616
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
FillAlignTRTHits::m_minTimebinsOverThreshold
int m_minTimebinsOverThreshold
Definition: FillAlignTRTHits.h:81
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
FillAlignTRTHits::m_updatorHandle
ToolHandle< Trk::IUpdator > m_updatorHandle
Definition: FillAlignTRTHits.h:70
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:71
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
LB_AnalMapSplitter.lbn
lbn
Definition: LB_AnalMapSplitter.py:28