|
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;
79 (
const std::string&,
const std::string&,
const IInterface*);
88 virtual std::unique_ptr<InDet::ITRT_TrackSegmentsMaker::IEventData>
newEvent(
const EventContext& ctx)
const override;
89 virtual std::unique_ptr<InDet::ITRT_TrackSegmentsMaker::IEventData>
newRegion(
const EventContext& ctx,
const std::vector<IdentifierHash>&)
const override;
96 virtual void find(
const EventContext &ctx,
111 virtual MsgStream&
dump (MsgStream &
out)
const override;
112 virtual std::ostream&
dump (std::ostream&
out)
const override;
125 std::vector<std::vector<const InDet::TRT_DriftCircle*> *>
::iterator sit,sitE;
128 for(;sit!=sitE;++sit){
139 std::list<const InDet::TRT_DriftCircle*>
m_sectors[2][20][16];
141 std::vector<std::vector<const InDet::TRT_DriftCircle*> *>
m_seeds;
167 "Switch to destinguish between phase calculation and full reco"};
172 {
this,
"PRDtoTrackMap",
""};
175 {
this,
"RIOonTrackToolYesDr",
176 "InDet::TRT_DriftCircleOnTrackTool/TRT_DriftCircleOnTrackTool",
177 "RI0_onTrack creator with drift information"};
179 {
this,
"RIOonTrackToolNoDr",
180 "InDet::TRT_DriftCircleOnTrackNoDriftTimeTool/TRT_DriftCircleOnTrackNoDriftTimeTool",
181 "RI0_onTrack creator without drift information"};
184 "Shall the drifttime be used or only tube hits?"};
186 "Scalefactor for uncertainty of tube hits"};
188 "Scalefactor for uncertainty of drifttime hits"};
190 "Scalefactor for uncertainty of tube hits flagged as noise"};
192 "Loose cut on ToT (preselection)"};
194 "Hard cut on ToT (preselection)"};
196 "Upper cut on ToT (preselection)"};
198 "Minimum number of driftcircles to form a seed"};
200 "Maximum number of good hits (i.e. after noise cut) in endcap"};
222 void create_segment(std::vector<const InDet::TRT_DriftCircle*> *seed,
237 static double phidiff(
double a,
double b);
242 std::list<const InDet::TRT_DriftCircle*> & container,
243 double phiLimit,
double dzLimit)
const;
261 #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.
DoubleProperty m_cutToTTight
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?
IntegerProperty m_minDCSeed
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.
DoubleProperty m_cutToTLoose
virtual Trk::TrackSegment * next(InDet::ITRT_TrackSegmentsMaker::IEventData &event_data) const override
std::list< Trk::TrackSegment * >::iterator m_segiterator
Iterator over found segments.
ToolHandle< Trk::IRIO_OnTrackCreator > m_riomakerD
DoubleProperty m_scaleFactorDrift
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.
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
BooleanProperty m_phaseMode
virtual std::unique_ptr< InDet::ITRT_TrackSegmentsMaker::IEventData > newEvent(const EventContext &ctx) const override
::StatusCode StatusCode
StatusCode definition for legacy code.
virtual StatusCode finalize() override
void endEvent(InDet::ITRT_TrackSegmentsMaker::IEventData &event_data) const override
ToolHandle< Trk::IRIO_OnTrackCreator > m_riomakerN
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
DoubleProperty m_cutToTUpper
Ensure that the ATLAS eigen extensions are properly loaded.
std::list< const InDet::TRT_DriftCircle * > m_noiseHits
List containing potentially noise hits.
TF1 * m_fitf_ztanphi
analytic function to fit tan(phi) vs.
IntegerProperty m_hitLimit
SG::ReadHandleKey< Trk::PRDtoTrackMap > m_prdToTrackMap
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_a_steigung[1000]
std::array< std::vector< std::vector< Used_t > >, 3 > TRT_DetElemUsedMap
BooleanProperty m_useDriftTime
DoubleProperty m_scaleTubeNoise
std::list< Trk::TrackSegment * > m_segments
List of found segments.
DoubleProperty m_scaleTube
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