ATLAS Offline Software
Loading...
Searching...
No Matches
SiSpacePointsSeedMaker_Cosmic.h
Go to the documentation of this file.
1// -*- C++ -*-
2
3/*
4 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
5*/
6
8// Header file for class SiSpacePointsSeedMaker_Cosmic
10// Version 1.0 3/10/2004 I.Gavrilenko
12
13#ifndef SiSpacePointsSeedMaker_Cosmic_H
14#define SiSpacePointsSeedMaker_Cosmic_H
15
18
24
25#include <iosfwd>
26#include <list>
27#include <vector>
29// MagField cache
33
34class MsgStream;
35
36namespace InDet {
37
38 using EventData = SiSpacePointsSeedMakerEventData;
39
50
52 public extends<AthAlgTool, ISiSpacePointsSeedMaker>
53 {
55 // Public methods:
57
58 public:
59
63
65 (const std::string&, const std::string&, const IInterface*);
66 virtual ~SiSpacePointsSeedMaker_Cosmic() = default;
67 virtual StatusCode initialize() override;
68 virtual StatusCode finalize() override;
70
74
75 virtual void newEvent (const EventContext& ctx, EventData& data, int iteration) const override;
76 virtual void newRegion(const EventContext& ctx, EventData& data,
77 const std::vector<IdentifierHash>& vPixel, const std::vector<IdentifierHash>& vSCT) const override;
78 virtual void newRegion(const EventContext& ctx, EventData& data,
79 const std::vector<IdentifierHash>& vPixel, const std::vector<IdentifierHash>& vSCT,
80 const IRoiDescriptor& iRD) const override;
82
86
87
89 virtual void find2Sp(EventData& data, const std::list<Trk::Vertex>& lv) const override;
90
92 virtual void find3Sp(const EventContext& ctx, EventData& data, const std::list<Trk::Vertex>& lv) const override;
93
96 virtual void find3Sp(const EventContext& ctx, EventData& data, const std::list<Trk::Vertex>& lv, const double* zVertex) const override;
97
100 virtual void findVSp(const EventContext& ctx, EventData& data, const std::list<Trk::Vertex>& lv) const override;
102
107
108 virtual const SiSpacePointsSeed* next(const EventContext& ctx, EventData& data) const override;
110
111 virtual void writeNtuple(const SiSpacePointsSeed* seed, const Trk::Track* track, int seedType, long eventNumber) const override;
112
113 virtual bool getWriteNtupleBoolProperty() const override;
114
118
119 virtual MsgStream& dump(EventData& data, MsgStream& out) const override;
121
122 private:
128
130 // Private data and methods
132
134
135 SG::ReadHandleKey<SpacePointContainer> m_spacepointsSCT{this, "SpacePointsSCTName", "SCT_SpacePoints"};
136 SG::ReadHandleKey<SpacePointContainer> m_spacepointsPixel{this, "SpacePointsPixelName", "PixelSpacePoints"};
137 SG::ReadHandleKey<SpacePointOverlapCollection> m_spacepointsOverlap{this, "SpacePointsOverlapName", "OverlapSpacePoints"};
138 SG::ReadHandleKey<Trk::PRDtoTrackMap>m_prdToTrackMap{this,"PRDtoTrackMap","","option PRD-to-track association"};
139 // Read handle for conditions object to get the field cache
140 SG::ReadCondHandleKey<AtlasFieldCacheCondObj> m_fieldCondObjInputKey {this, "AtlasFieldCacheCondObj", "fieldCondObj",
141 "Name of the Magnetic Field conditions object key"};
142
143
145
146 BooleanProperty m_pixel{this, "usePixel", true};
147 BooleanProperty m_sct{this, "useSCT", true};
148 BooleanProperty m_useOverlap{this, "useOverlapSpCollection", false};
149 IntegerProperty m_maxsize{this, "maxSize", 100};
150 IntegerProperty m_maxsizeSP{this, "maxSizeSP", 1500};
151 FloatProperty m_drmin{this, "mindRadius", 5.};
152 FloatProperty m_drmax{this, "maxdRadius", 1000.};
153 FloatProperty m_r_rmax{this, "radMax", 600.};
154 FloatProperty m_r_rstep{this, "radStep", 5.};
156
158
159 FloatProperty m_ptmin{this, "pTmin", 500.};
160 FloatProperty m_etamax{this, "etaMax", 2.3};
161 FloatProperty m_fieldScale{this, "fieldScale", 1.};
163
165
166 bool m_initialized{false};
168 int m_r_size{};
169 int m_fNmax{};
174 float m_dzdrmin{};
175 float m_dzdrmax{};
176 float m_sF{};
178
180 // Private methods
183
188
189 MsgStream& dumpConditions(MsgStream& out) const;
190 static MsgStream& dumpEvent(EventData& data, MsgStream& out) ;
191
192 void buildFrameWork();
193
195 (EventData& data, const Trk::SpacePoint*const&) ;
197 (EventData& data, const Trk::SpacePoint*const&, std::span<float const, 4>) ;
198 void newSeed
199 (EventData& data,
200 const Trk::SpacePoint*&,const Trk::SpacePoint*&,
201 const float&) const;
202 void newSeed
203 (EventData& data,
204 const Trk::SpacePoint*&,const Trk::SpacePoint*&,
205 const Trk::SpacePoint*&,const float&) const;
206 void fillLists(EventData& data) const;
207 static void erase(EventData& data) ;
208 static void production2Sp(EventData& data) ;
209 void production3Sp(const EventContext& ctx, EventData& data) const;
210 void production3Sp
211 (EventData& data,
212 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
213 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
214 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
215 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
216 int,int,float,float) const;
217
220 (EventData& data,
221 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
222 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
223 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
224 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
225 int,int,float) const;
226
227 bool isUsed(const Trk::SpacePoint*, const Trk::PRDtoTrackMap &prd_to_track_map) const;
228
230 };
231
232} // end of name space
233
234
235namespace InDet {
236
237 inline
239 const Trk::PrepRawData* d = sp->clusterList().first;
240 if (!d || !prd_to_track_map.isUsed(*d)) return false;
241
242 d = sp->clusterList().second;
243 if (!d || prd_to_track_map.isUsed(*d)) return true;
244
245 return false;
246
247 }
248}
249
250#endif // SiSpacePointsSeedMaker_Cosmic_H
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
static Double_t sp
Describes the API of the Region of Ineterest geometry.
void production3Sp(const EventContext &ctx, EventData &data) const
virtual void newEvent(const EventContext &ctx, EventData &data, int iteration) const override
SiSpacePointsSeedMaker_Cosmic & operator=(const SiSpacePointsSeedMaker_Cosmic &)=delete
SiSpacePointsSeedMaker_Cosmic(const std::string &, const std::string &, const IInterface *)
SG::ReadHandleKey< Trk::PRDtoTrackMap > m_prdToTrackMap
virtual void findVSp(const EventContext &ctx, EventData &data, const std::list< Trk::Vertex > &lv) const override
with variable number space points with or without vertex constraint Variable means (2,...
virtual ~SiSpacePointsSeedMaker_Cosmic()=default
SiSpacePointsSeedMaker_Cosmic(const SiSpacePointsSeedMaker_Cosmic &)=delete
SG::ReadHandleKey< SpacePointContainer > m_spacepointsPixel
void newSeed(EventData &data, const Trk::SpacePoint *&, const Trk::SpacePoint *&, const float &) const
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCondObjInputKey
static SiSpacePointForSeed * newSpacePoint(EventData &data, const Trk::SpacePoint *const &)
virtual void writeNtuple(const SiSpacePointsSeed *seed, const Trk::Track *track, int seedType, long eventNumber) const override
virtual const SiSpacePointsSeed * next(const EventContext &ctx, EventData &data) const override
static MsgStream & dumpEvent(EventData &data, MsgStream &out)
virtual void find2Sp(EventData &data, const std::list< Trk::Vertex > &lv) const override
with two space points with or without vertex constraint
bool isUsed(const Trk::SpacePoint *, const Trk::PRDtoTrackMap &prd_to_track_map) const
SG::ReadHandleKey< SpacePointContainer > m_spacepointsSCT
virtual void newRegion(const EventContext &ctx, EventData &data, const std::vector< IdentifierHash > &vPixel, const std::vector< IdentifierHash > &vSCT) const override
virtual void find3Sp(const EventContext &ctx, EventData &data, const std::list< Trk::Vertex > &lv) const override
with three space points with or without vertex constraint
SG::ReadHandleKey< SpacePointOverlapCollection > m_spacepointsOverlap
SiSpacePointsSeedMakerEventData EventData
Property holding a SG store/key/clid from which a ReadHandle is made.
bool isUsed(const PrepRawData &prd) const
does this PRD belong to at least one track?
Primary Vertex Finder.
-event-from-file