|
ATLAS Offline Software
|
Go to the documentation of this file.
17 #ifndef TRT_TrackSegmentsMaker_ECcosmics_H
18 #define TRT_TrackSegmentsMaker_ECcosmics_H
21 #include "GaudiKernel/ToolHandle.h"
44 class TRT_DetectorManager;
50 class IRIO_OnTrackCreator;
80 (
const std::string&,
const std::string&,
const IInterface*);
89 virtual std::unique_ptr<InDet::ITRT_TrackSegmentsMaker::IEventData>
newEvent(
const EventContext& ctx)
const override;
90 virtual std::unique_ptr<InDet::ITRT_TrackSegmentsMaker::IEventData>
newRegion(
const EventContext& ctx,
const std::vector<IdentifierHash>&)
const override;
97 virtual void find(
const EventContext &ctx,
112 virtual MsgStream&
dump (MsgStream &
out)
const override;
113 virtual std::ostream&
dump (std::ostream&
out)
const override;
126 std::vector<std::vector<const InDet::TRT_DriftCircle*> *>
::iterator sit,sitE;
129 for(;sit!=sitE;++sit){
140 std::list<const InDet::TRT_DriftCircle*>
m_sectors[2][20][16];
142 std::vector<std::vector<const InDet::TRT_DriftCircle*> *>
m_seeds;
172 {
this,
"PRDtoTrackMap",
""};
207 void create_segment(std::vector<const InDet::TRT_DriftCircle*> *seed,
222 static double phidiff(
double a,
double b);
227 std::list<const InDet::TRT_DriftCircle*> & container,
228 double phiLimit,
double dzLimit)
const;
246 #endif // TRT_TrackSegmentsMaker_ECcosmics_H
JetConstituentVector::iterator iterator
Property holding a SG store/key/clid from which a ReadHandle is made.
TF1 * m_fitf_ztanphi_approx
approx function to fit tan(phi) vs.
Base for a helper class to pass mutable storage to tools.
void setFitFunctions(TRT_TrackSegmentsMaker_ECcosmics::EventData &event_data) const
std::list< const InDet::TRT_DriftCircle * > m_goodHits
List containing potenitally good hits.
TF1 * perform_fit(int count, TRT_TrackSegmentsMaker_ECcosmics::EventData &event_data) const
Perform the fit and return a function that provides the fitted phi information.
bool find_seed(int endcap, int zslice, int sector, TRT_TrackSegmentsMaker_ECcosmics::EventData &event_data) const
Find seed in the given sector/zslice/endcap.
bool accepted(const std::list< const InDet::TRT_DriftCircle * >::iterator compareIt, std::list< const InDet::TRT_DriftCircle * > &container, double phiLimit, double dzLimit) const
is the hit accepted?
A PRD is mapped onto all contributing particles.
bool is_suspicious(const InDet::TRT_DriftCircle *dc, std::vector< const InDet::TRT_DriftCircle * > *seed) const
checks if a hit that matches the segment looks suspicious (i.e.
double m_scaleTubeNoise
Scalefactor for uncertainty of tube hits flagged as noise.
virtual Trk::TrackSegment * next(InDet::ITRT_TrackSegmentsMaker::IEventData &event_data) const override
double m_scaleFactorDrift
Scalefactor for uncertainty of drifttime hits
std::list< Trk::TrackSegment * >::iterator m_segiterator
Iterator over found segments.
ToolHandle< Trk::IRIO_OnTrackCreator > m_riomakerD
RI0_onTrack creator with drift information.
virtual void find(const EventContext &ctx, InDet::ITRT_TrackSegmentsMaker::IEventData &event_data, InDet::TRT_DetElementLink_xk::TRT_DetElemUsedMap &used) const override
TF1 * m_fitf_zphi
analytic function to fit phi vs.
double m_cutToTTight
Hard cut on ToT (preselection)
std::list< const InDet::TRT_DriftCircle * > m_sectors[2][20][16]
Divide into two endcaps and each endcap into 16 sectors in phi and 20 in z.
static double phidiff(double a, double b)
provide the proper subtraction of two phi values
virtual std::unique_ptr< InDet::ITRT_TrackSegmentsMaker::IEventData > newEvent(const EventContext &ctx) const override
bool m_useDriftTime
Shall the drifttime be used or only tube hits?
int m_minDCSeed
Minimum number of driftcircles to form a seed
::StatusCode StatusCode
StatusCode definition for legacy code.
virtual StatusCode finalize() override
void endEvent(InDet::ITRT_TrackSegmentsMaker::IEventData &event_data) const override
double m_cutToTLoose
Loose cut on ToT (preselection)
ToolHandle< Trk::IRIO_OnTrackCreator > m_riomakerN
RI0_onTrack creator without drift information.
std::vector< std::vector< const InDet::TRT_DriftCircle * > * > m_seeds
Vector of seeds.
void create_segment(std::vector< const InDet::TRT_DriftCircle * > *seed, TRT_TrackSegmentsMaker_ECcosmics::EventData &event_data) const
Create segment out of a seed.
virtual ~TRT_TrackSegmentsMaker_ECcosmics()
int evaluate_seed(int endcap, int zslice, int sector, const double *p, TRT_TrackSegmentsMaker_ECcosmics::EventData &event_data) const
Evaluate how many dc match this seed.
virtual std::unique_ptr< InDet::ITRT_TrackSegmentsMaker::IEventData > newRegion(const EventContext &ctx, const std::vector< IdentifierHash > &) const override
Ensure that the ATLAS eigen extensions are properly loaded.
std::list< const InDet::TRT_DriftCircle * > m_noiseHits
List containing potentially noise hits.
int m_hitLimit
Maximum number of good hits (i.e.
TF1 * m_fitf_ztanphi
analytic function to fit tan(phi) vs.
double m_scaleTube
Scalefactor for uncertainty of tube hits
SG::ReadHandleKey< Trk::PRDtoTrackMap > m_prdToTrackMap
bool m_phaseMode
Switch to destinguish between phase calculation and full reco.
TRT_TrackSegmentsMaker_ECcosmics(const std::string &, const std::string &, const IInterface *)
Constructor with parameters.
virtual StatusCode initialize() override
TF1 * m_fitf_zphi_approx
anpprox function to fit phi vs.
double m_cutToTUpper
Upper cut on ToT (preselection)
double m_a_steigung[1000]
std::array< std::vector< std::vector< Used_t > >, 3 > TRT_DetElemUsedMap
std::list< Trk::TrackSegment * > m_segments
List of found segments.
virtual MsgStream & dump(MsgStream &out) const override
SG::ReadHandleKey< InDet::TRT_DriftCircleContainer > m_trtname
TRTs container.
static std::mutex s_fitMutex
void retrieveHits(TRT_TrackSegmentsMaker_ECcosmics::EventData &event_data) const
sort hits into good/noise lists