ATLAS Offline Software
Loading...
Searching...
No Matches
TruthTrackBuilder.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
6// TruthTrackBuilder.h, (c) ATLAS Detector software
8
9#ifndef TRK_TRUTHTRACKTOOLS_TRUTHTRACKBUILDER_H
10#define TRK_TRUTHTRACKTOOLS_TRUTHTRACKBUILDER_H 1
11
12// Gaudi
14#include "GaudiKernel/ToolHandle.h"
15#include "GaudiKernel/IPartPropSvc.h"
16// Trk includes
22
23class AtlasDetectorID;
24
25namespace HepPDT{
26 class ParticleDataTable;
27}
28
29namespace Trk {
30
31 class Track;
32
40
41 class TruthTrackBuilder : public AthAlgTool, virtual public ITruthTrackBuilder {
42
43 public:
44 //** Constructor with parameters */
45 TruthTrackBuilder( const std::string& t, const std::string& n, const IInterface* p );
46
47 // Athena algtool's Hooks
48 StatusCode initialize();
49 StatusCode finalize();
50
52 Track* createTrack(const PRD_TruthTrajectory& prdTraj, SegmentCollection* segs = 0 ) const;
53
54 private:
55 ToolHandle<ITrackFitter> m_trackFitter{this, "TrackFitter", ""};
56 ToolHandle<IExtrapolator> m_extrapolator{this, "ExtrapolationTool", ""};
57 ToolHandle< IRIO_OnTrackCreator > m_rotcreator{this, "RotCreatorTool", ""};
58 ToolHandle< IRIO_OnTrackCreator > m_rotcreatorbroad{this, "BroadRotCreatorTool", ""};
59
62 const HepPDT::ParticleDataTable* m_particleDataTable;
63
64 Gaudi::Property<size_t> m_minNdof{this, "MinDegreesOfFreedom", 6};
65 Gaudi::Property<bool> m_onlyPrimaries{this, "OnlyPrimaries", false};
66 Gaudi::Property<unsigned int> m_minSiHits{this, "MinSiHits", 7};
67 Gaudi::Property<unsigned int> m_minSiHitsForward{this, "MinSiHitsForward", 7};
68 Gaudi::Property<float> m_forwardBoundary{this, "ForwardBoundary", 2.5};
69
70 Gaudi::Property<int> m_matEffects {this, "MatEffects", 3,
71 "Type of material interaction in extrapolation (Default Pion)"};
72 };
73
74} // end of namespace
75
76#endif // TRK_TRUTHTRACKTOOLS_TRUTHTRACKBUILDER_H
77
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
The interface for the truth track finder.
ToolHandle< IRIO_OnTrackCreator > m_rotcreator
Gaudi::Property< unsigned int > m_minSiHits
min number of Si hits for refit
Gaudi::Property< float > m_forwardBoundary
Boundary eta value defining the forward region.
Gaudi::Property< unsigned int > m_minSiHitsForward
min number of Si hits for refit in forward region (ITk specific)
const AtlasDetectorID * m_DetID
TruthTrackBuilder(const std::string &t, const std::string &n, const IInterface *p)
Constructor.
Track * createTrack(const PRD_TruthTrajectory &prdTraj, SegmentCollection *segs=0) const
return a map of GenParticles to PRDs for further processing
ServiceHandle< IPartPropSvc > m_particlePropSvc
Pointer to the particle properties svc *‍/.
Gaudi::Property< size_t > m_minNdof
checks min degrees of freedom if bigger -1
Gaudi::Property< bool > m_onlyPrimaries
restrict track creation to primaries
const HepPDT::ParticleDataTable * m_particleDataTable
ParticleDataTable needed to get connection pdg_code <-> charge *‍/.
ToolHandle< ITrackFitter > m_trackFitter
fits the PRDs
Gaudi::Property< int > m_matEffects
ToolHandle< IRIO_OnTrackCreator > m_rotcreatorbroad
ToolHandle< IExtrapolator > m_extrapolator
extrapolator
Ensure that the ATLAS eigen extensions are properly loaded.
DataVector< Trk::Segment > SegmentCollection
simple definitiion of a PRD_TruhtTrajectory