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

#include <InDetCosmicTrackSelectorTool.h>

Inheritance diagram for InDet::InDetCosmicTrackSelectorTool:
Collaboration diagram for InDet::InDetCosmicTrackSelectorTool:

Public Member Functions

virtual StatusCode initialize () override
 
 InDetCosmicTrackSelectorTool (const std::string &t, const std::string &n, const IInterface *p)
 
 ~InDetCosmicTrackSelectorTool ()
 
virtual bool decision (const Trk::Track &track, const Trk::Vertex *vertex) const override
 
virtual bool decision (const Trk::TrackParticleBase &track, const Trk::Vertex *vertex) const override
 
virtual bool decision (const xAOD::TrackParticle &, const xAOD::Vertex *) const override
 
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

bool decision (const Trk::TrackParameters *track, const Trk::Vertex *vertex, const Trk::ParticleHypothesis) const
 
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...
 

Static Private Member Functions

static int getNSiHits (const Trk::Track *track, bool top)
 

Private Attributes

DoubleProperty m_maxZ0 {this, "maxZ0", 150., "Maximum z0 of tracks"}
 
DoubleProperty m_maxD0 {this, "maxD0", 2.5, "Maximum d0 of tracks"}
 
DoubleProperty m_minPt {this, "minPt", 0., "Minimum pT of tracks"}
 
IntegerProperty m_numberOfPixelHits {this, "numberOfPixelHits", 0, "Minimum number of Pixel hits"}
 
IntegerProperty m_numberOfSCTHits {this, "numberOfSCTHits", 0, "Minimum number of SCT hits"}
 
IntegerProperty m_numberOfTRTHits {this, "numberOfTRTHits", 15, "Minimum number of TRT hits"}
 
IntegerProperty m_numberOfSiHits {this, "numberOfSiliconHits", 8, "Minimum number of Silicon hits"}
 
IntegerProperty m_numberOfSiHitsTop {this, "numberOfSiliconHitsTop", -1}
 
IntegerProperty m_numberOfSiHitsBottom {this, "numberOfSiliconHitsBottom", -1}
 
ToolHandle< Trk::ITrackSummaryToolm_trackSumTool {this, "TrackSummaryTool", ""}
 
bool m_trackSumToolAvailable = false
 
SG::ReadCondHandleKey< AtlasFieldCacheCondObjm_fieldCacheCondObjInputKey {this, "AtlasFieldCacheCondObj", "fieldCondObj", "Name of the Magnetic Field conditions object key"}
 
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 30 of file InDetCosmicTrackSelectorTool.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

◆ InDetCosmicTrackSelectorTool()

InDet::InDetCosmicTrackSelectorTool::InDetCosmicTrackSelectorTool ( const std::string &  t,
const std::string &  n,
const IInterface *  p 
)

Definition at line 23 of file InDetCosmicTrackSelectorTool.cxx.

24  : AthAlgTool(t,n,p)
25  {
26  declareInterface<ITrackSelectorTool>(this);
27  }

◆ ~InDetCosmicTrackSelectorTool()

InDet::InDetCosmicTrackSelectorTool::~InDetCosmicTrackSelectorTool ( )
default

Member Function Documentation

◆ decision() [1/4]

bool InDet::InDetCosmicTrackSelectorTool::decision ( const Trk::Track track,
const Trk::Vertex vertex 
) const
overridevirtual

Implements Trk::ITrackSelectorTool.

Definition at line 53 of file InDetCosmicTrackSelectorTool.cxx.

54  {
55 
56  // decision based on the track parameters
57  if(!decision(track.perigeeParameters(), vertex, track.info().particleHypothesis()))
58  return false;
59 
60  // number of hits, silicon hits, b-layer
61  // first ask track for summary
62  std::unique_ptr<Trk::TrackSummary> summaryUniquePtr;
63  const Trk::TrackSummary * summary = track.trackSummary();
64  if (summary == nullptr && m_trackSumToolAvailable) {
65  summaryUniquePtr = m_trackSumTool->summary(Gaudi::Hive::currentContext(), track);
66  summary = summaryUniquePtr.get();
67  }
68 
69  if (nullptr==summary) {
70  ATH_MSG_DEBUG( "Track preselection: cannot create a track summary. This track will not pass." );
71  return false;
72  }
73 
74  int nPixHits = summary->get(Trk::numberOfPixelHits);
78  int nSiHitsTop = getNSiHits(&track,true);
79  int nSiHitsBottom = getNSiHits(&track,false);
80 
81  if(nPixHits<m_numberOfPixelHits) {
82  ATH_MSG_DEBUG("Track rejected because of numberOfPixelHits "<<nPixHits<<"<"<<m_numberOfPixelHits);
83  return false;
84  }
85 
87  ATH_MSG_DEBUG("Track rejected because of numberOfSCTHits "<<nSCTHits<<"<"<<m_numberOfSCTHits);
88  return false;
89  }
90 
92  ATH_MSG_DEBUG("Track rejected because of numberOfTRTHits "<<nTRTHits<<"<"<<m_numberOfTRTHits);
93  return false;
94  }
95 
97  ATH_MSG_DEBUG("Track rejected because of numberOfSiHits "<<nSiHits<<"<"<<m_numberOfSiHits);
98  return false;
99  }
100 
101  if(nSiHitsTop<m_numberOfSiHitsTop) {
102  ATH_MSG_DEBUG("Track rejected because of nSiHitsTop "<<nSiHitsTop<<"<"<<m_numberOfSiHitsTop);
103  return false;
104  }
105 
106  if(nSiHitsBottom<m_numberOfSiHitsBottom) {
107  ATH_MSG_DEBUG("Track rejected because of numberOfSiHitsBottom "<<nSiHitsBottom<<"<"<<m_numberOfSiHitsBottom);
108  return false;
109  }
110 
111  // all ok
112  return true;
113  }

◆ decision() [2/4]

bool InDet::InDetCosmicTrackSelectorTool::decision ( const Trk::TrackParameters track,
const Trk::Vertex vertex,
const Trk::ParticleHypothesis   
) const
private

Definition at line 175 of file InDetCosmicTrackSelectorTool.cxx.

176  {
177  // checking pointer first
178  if(nullptr==track) {
179  ATH_MSG_DEBUG( "Track preselection: Zero pointer to parameterbase* received (most likely a track without perigee). This track will not pass." );
180  return false;
181  }
182 
183  // getting the perigee parameters of the track
184  const Trk::Perigee * perigee(nullptr);
185  perigee = dynamic_cast<const Trk::Perigee *>(track);
186 
187  if(!perigee || !perigee->covariance()) {
188  ATH_MSG_DEBUG( "Track preselection: cannot make a measured perigee. This track will not pass." );
189  return false;
190  }
191 
192  Amg::VectorX trackParameters = perigee->parameters();
193 
194  // d0 and z0 cuts
195  double d0 = trackParameters[Trk::d0];
196  if(fabs(d0) > fabs(m_maxD0)) {
197  ATH_MSG_DEBUG("Track rejected because of d0 "<<fabs(d0)<<">"<<m_maxD0);
198  return false;
199  }
200 
201  double z0 = trackParameters[Trk::z0];
202  if(fabs(z0) > fabs(m_maxZ0)) {
203  ATH_MSG_DEBUG("Track rejected because of z0 "<<fabs(z0)<<">"<<m_maxZ0);
204  return false;
205  }
206 
207  // only check pt if mag. field is on
208  const EventContext& ctx = Gaudi::Hive::currentContext();
210  const AtlasFieldCacheCondObj* fieldCondObj{*readHandle};
211  if (fieldCondObj == nullptr) {
212  ATH_MSG_ERROR("execute: Failed to retrieve AtlasFieldCacheCondObj with key " << m_fieldCacheCondObjInputKey.key());
213  return false;
214  }
215  MagField::AtlasFieldCache fieldCache;
216  fieldCondObj->getInitializedCache (fieldCache);
217 
218  if (fieldCache.solenoidOn()){//B field
219  if (trackParameters[Trk::qOverP] == 0.) {
220  ATH_MSG_DEBUG("Track rejected because of qOverP == 0.");
221  return false;
222  }
223 
224  double pt = fabs(1./trackParameters[Trk::qOverP])*sin(trackParameters[Trk::theta]);
225  if (pt < m_minPt) {
226  ATH_MSG_DEBUG("Track rejected because of pt " << pt << " < " << m_minPt);
227  return false;
228  }
229  }
230  return true;
231  }

◆ decision() [3/4]

bool InDet::InDetCosmicTrackSelectorTool::decision ( const Trk::TrackParticleBase track,
const Trk::Vertex vertex 
) const
overridevirtual

Implements Trk::ITrackSelectorTool.

Definition at line 116 of file InDetCosmicTrackSelectorTool.cxx.

117  {
118  if(!decision(&(track.definingParameters()), vertex, Trk::pion))
119  return false;
120 
121  const Trk::TrackSummary * summary = track.trackSummary();
122  if (nullptr==summary ) {
123  ATH_MSG_DEBUG( "TrackParticleBase does not have a Track Summary. Rejected." );
124  return false;
125  }
126  const Trk::Track * otrack= track.originalTrack();
127 
128  if(otrack==nullptr){
129  ATH_MSG_DEBUG( "TrackParticleBase does not contain the original cosmic track. Rejected." );
130  return false;
131  }
132 
133  int nPixHits = summary->get(Trk::numberOfPixelHits);
137  int nSiHitsTop = getNSiHits(otrack,true);
138  int nSiHitsBottom = getNSiHits(otrack,false);
139 
140  if(nPixHits<m_numberOfPixelHits) {
141  ATH_MSG_DEBUG("Track rejected because of numberOfPixelHits "<<nPixHits<<"<"<<m_numberOfPixelHits);
142  return false;
143  }
144 
146  ATH_MSG_DEBUG("Track rejected because of numberOfSCTHits "<<nSCTHits<<"<"<<m_numberOfSCTHits);
147  return false;
148  }
149 
151  ATH_MSG_DEBUG("Track rejected because of numberOfTRTHits "<<nTRTHits<<"<"<<m_numberOfTRTHits);
152  return false;
153  }
154 
156  ATH_MSG_DEBUG("Track rejected because of numberOfSiHits "<<nSiHits<<"<"<<m_numberOfSiHits);
157  return false;
158  }
159 
160  if(nSiHitsTop<m_numberOfSiHitsTop) {
161  ATH_MSG_DEBUG("Track rejected because of nSiHitsTop "<<nSiHitsTop<<"<"<<m_numberOfSiHitsTop);
162  return false;
163  }
164 
165  if(nSiHitsBottom<m_numberOfSiHitsBottom) {
166  ATH_MSG_DEBUG("Track rejected because of numberOfSiHitsBottom "<<nSiHitsBottom<<"<"<<m_numberOfSiHitsBottom);
167  return false;
168  }
169 
170  // all ok
171  return true;
172  }

◆ decision() [4/4]

virtual bool InDet::InDetCosmicTrackSelectorTool::decision ( const xAOD::TrackParticle ,
const xAOD::Vertex  
) const
inlineoverridevirtual

Implements Trk::ITrackSelectorTool.

Definition at line 45 of file InDetCosmicTrackSelectorTool.h.

45  {
46  ATH_MSG_WARNING("xAOD::TrackParticle selection not implemented yet");
47  return false;
48  }

◆ 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

◆ getNSiHits()

int InDet::InDetCosmicTrackSelectorTool::getNSiHits ( const Trk::Track track,
bool  top 
)
staticprivate

Definition at line 234 of file InDetCosmicTrackSelectorTool.cxx.

235  {
236  int nsilicon = 0;
237 
238  //loop over all measurements on Track
239  DataVector<const Trk::MeasurementBase>::const_iterator it = track->measurementsOnTrack()->begin();
240  DataVector<const Trk::MeasurementBase>::const_iterator itEnd = track->measurementsOnTrack()->end();
241  for ( ; it!=itEnd; ++it) {
242  const Trk::RIO_OnTrack *rot = dynamic_cast<const Trk::RIO_OnTrack *>(*it);
243  if (!rot)
244  continue;
245  const InDet::SiClusterOnTrack *siclus = dynamic_cast<const InDet::SiClusterOnTrack *>(rot);
246  if(!siclus)
247  continue;
248 
249  if(top && siclus->globalPosition().y()<0)
250  continue;
251  if(!top && siclus->globalPosition().y()>0)
252  continue;
253 
254  const SCT_ClusterOnTrack *sctclus = dynamic_cast<const SCT_ClusterOnTrack *>(siclus);
255  if(!sctclus)
256  //Pixel hit
257  nsilicon += 2;
258  else
259  nsilicon += 1;
260  }
261  return nsilicon;
262  }

◆ initialize()

StatusCode InDet::InDetCosmicTrackSelectorTool::initialize ( )
overridevirtual

Definition at line 34 of file InDetCosmicTrackSelectorTool.cxx.

35  {
37  if (!m_trackSumTool.empty()) {
38  if(m_trackSumTool.retrieve().isFailure())
39  {
40  msg(MSG::ERROR)<<" Unable to retrieve "<<m_trackSumTool<<endmsg;
41  return StatusCode::FAILURE;
42  }
44  }
45 
46  // Read handle for AtlasFieldCacheCondObj
48 
49  return StatusCode::SUCCESS;
50  }

◆ 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()

static const InterfaceID& Trk::ITrackSelectorTool::interfaceID ( )
inlinestaticinherited

Definition at line 38 of file ITrackSelectorTool.h.

39  {
40  return IID_ITrackSelectorTool;
41  }

◆ 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_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_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_fieldCacheCondObjInputKey

SG::ReadCondHandleKey<AtlasFieldCacheCondObj> InDet::InDetCosmicTrackSelectorTool::m_fieldCacheCondObjInputKey {this, "AtlasFieldCacheCondObj", "fieldCondObj", "Name of the Magnetic Field conditions object key"}
private

Definition at line 72 of file InDetCosmicTrackSelectorTool.h.

◆ m_maxD0

DoubleProperty InDet::InDetCosmicTrackSelectorTool::m_maxD0 {this, "maxD0", 2.5, "Maximum d0 of tracks"}
private

Definition at line 55 of file InDetCosmicTrackSelectorTool.h.

◆ m_maxZ0

DoubleProperty InDet::InDetCosmicTrackSelectorTool::m_maxZ0 {this, "maxZ0", 150., "Maximum z0 of tracks"}
private

Definition at line 54 of file InDetCosmicTrackSelectorTool.h.

◆ m_minPt

DoubleProperty InDet::InDetCosmicTrackSelectorTool::m_minPt {this, "minPt", 0., "Minimum pT of tracks"}
private

Definition at line 56 of file InDetCosmicTrackSelectorTool.h.

◆ m_numberOfPixelHits

IntegerProperty InDet::InDetCosmicTrackSelectorTool::m_numberOfPixelHits {this, "numberOfPixelHits", 0, "Minimum number of Pixel hits"}
private

Definition at line 57 of file InDetCosmicTrackSelectorTool.h.

◆ m_numberOfSCTHits

IntegerProperty InDet::InDetCosmicTrackSelectorTool::m_numberOfSCTHits {this, "numberOfSCTHits", 0, "Minimum number of SCT hits"}
private

Definition at line 59 of file InDetCosmicTrackSelectorTool.h.

◆ m_numberOfSiHits

IntegerProperty InDet::InDetCosmicTrackSelectorTool::m_numberOfSiHits {this, "numberOfSiliconHits", 8, "Minimum number of Silicon hits"}
private

Definition at line 63 of file InDetCosmicTrackSelectorTool.h.

◆ m_numberOfSiHitsBottom

IntegerProperty InDet::InDetCosmicTrackSelectorTool::m_numberOfSiHitsBottom {this, "numberOfSiliconHitsBottom", -1}
private

Definition at line 66 of file InDetCosmicTrackSelectorTool.h.

◆ m_numberOfSiHitsTop

IntegerProperty InDet::InDetCosmicTrackSelectorTool::m_numberOfSiHitsTop {this, "numberOfSiliconHitsTop", -1}
private

Definition at line 65 of file InDetCosmicTrackSelectorTool.h.

◆ m_numberOfTRTHits

IntegerProperty InDet::InDetCosmicTrackSelectorTool::m_numberOfTRTHits {this, "numberOfTRTHits", 15, "Minimum number of TRT hits"}
private

Definition at line 61 of file InDetCosmicTrackSelectorTool.h.

◆ m_trackSumTool

ToolHandle<Trk::ITrackSummaryTool> InDet::InDetCosmicTrackSelectorTool::m_trackSumTool {this, "TrackSummaryTool", ""}
private

Definition at line 68 of file InDetCosmicTrackSelectorTool.h.

◆ m_trackSumToolAvailable

bool InDet::InDetCosmicTrackSelectorTool::m_trackSumToolAvailable = false
private

Definition at line 69 of file InDetCosmicTrackSelectorTool.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:
Trk::numberOfPixelHits
@ numberOfPixelHits
number of pixel layers on track with absence of hits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:57
Amg::VectorX
Eigen::Matrix< double, Eigen::Dynamic, 1 > VectorX
Dynamic Vector - dynamic allocation.
Definition: EventPrimitives.h:30
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
AtlasFieldCacheCondObj
Definition: AtlasFieldCacheCondObj.h:19
InDet::InDetCosmicTrackSelectorTool::m_numberOfSCTHits
IntegerProperty m_numberOfSCTHits
Definition: InDetCosmicTrackSelectorTool.h:60
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
skel.it
it
Definition: skel.GENtoEVGEN.py:396
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
Trk::z0
@ z0
Definition: ParamDefs.h:64
Trk::RIO_OnTrack
Definition: RIO_OnTrack.h:70
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
InDet::InDetCosmicTrackSelectorTool::m_trackSumToolAvailable
bool m_trackSumToolAvailable
Definition: InDetCosmicTrackSelectorTool.h:69
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
InDet::InDetCosmicTrackSelectorTool::m_maxZ0
DoubleProperty m_maxZ0
Definition: InDetCosmicTrackSelectorTool.h:54
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
InDet::InDetCosmicTrackSelectorTool::m_numberOfSiHitsBottom
IntegerProperty m_numberOfSiHitsBottom
Definition: InDetCosmicTrackSelectorTool.h:66
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
InDet::SiClusterOnTrack::globalPosition
virtual const Amg::Vector3D & globalPosition() const override
returns global position (gathered through Surface constraint)
Definition: SiClusterOnTrack.h:115
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
InDet::InDetCosmicTrackSelectorTool::getNSiHits
static int getNSiHits(const Trk::Track *track, bool top)
Definition: InDetCosmicTrackSelectorTool.cxx:234
InDet::InDetCosmicTrackSelectorTool::m_numberOfSiHits
IntegerProperty m_numberOfSiHits
Definition: InDetCosmicTrackSelectorTool.h:64
IDTPM::nSCTHits
float nSCTHits(const U &p)
Definition: TrackParametersHelper.h:393
beamspotman.n
n
Definition: beamspotman.py:731
IDTPM::nTRTHits
float nTRTHits(const U &p)
Definition: TrackParametersHelper.h:446
Trk::theta
@ theta
Definition: ParamDefs.h:66
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
Trk::numberOfSCTHits
@ numberOfSCTHits
number of SCT holes
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:71
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
Trk::pion
@ pion
Definition: ParticleHypothesis.h:29
TRT::Track::d0
@ d0
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:62
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
TRT::Track::z0
@ z0
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:63
InDet::InDetCosmicTrackSelectorTool::m_minPt
DoubleProperty m_minPt
Definition: InDetCosmicTrackSelectorTool.h:56
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
MagField::AtlasFieldCache::solenoidOn
bool solenoidOn() const
status of the magnets
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
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
Trk::numberOfTRTHits
@ numberOfTRTHits
number of TRT outliers
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:79
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
InDet::InDetCosmicTrackSelectorTool::m_fieldCacheCondObjInputKey
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCacheCondObjInputKey
Definition: InDetCosmicTrackSelectorTool.h:72
Trk::TrackSummary
A summary of the information contained by a track.
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:287
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
Trk::d0
@ d0
Definition: ParamDefs.h:63
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
InDet::InDetCosmicTrackSelectorTool::m_maxD0
DoubleProperty m_maxD0
Definition: InDetCosmicTrackSelectorTool.h:55
InDet::InDetCosmicTrackSelectorTool::m_trackSumTool
ToolHandle< Trk::ITrackSummaryTool > m_trackSumTool
Definition: InDetCosmicTrackSelectorTool.h:68
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
a
TList * a
Definition: liststreamerinfos.cxx:10
h
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
MagField::AtlasFieldCache
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
Definition: AtlasFieldCache.h:43
Trk::qOverP
@ qOverP
perigee
Definition: ParamDefs.h:67
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
InDet::InDetCosmicTrackSelectorTool::m_numberOfPixelHits
IntegerProperty m_numberOfPixelHits
Definition: InDetCosmicTrackSelectorTool.h:58
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
top
@ top
Definition: TruthClasses.h:64
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
IDTPM::nSiHits
float nSiHits(const U &p)
Definition: TrackParametersHelper.h:427
fitman.k
k
Definition: fitman.py:528
InDet::SiClusterOnTrack
Definition: SiClusterOnTrack.h:39
InDet::InDetCosmicTrackSelectorTool::decision
virtual bool decision(const Trk::Track &track, const Trk::Vertex *vertex) const override
Definition: InDetCosmicTrackSelectorTool.cxx:53
InDet::InDetCosmicTrackSelectorTool::m_numberOfSiHitsTop
IntegerProperty m_numberOfSiHitsTop
Definition: InDetCosmicTrackSelectorTool.h:65
InDet::InDetCosmicTrackSelectorTool::m_numberOfTRTHits
IntegerProperty m_numberOfTRTHits
Definition: InDetCosmicTrackSelectorTool.h:62
SCT_Monitoring::summary
@ summary
Definition: SCT_MonitoringNumbers.h:65