ATLAS Offline Software
Loading...
Searching...
No Matches
SiSpacePointsSeedMaker_LowMomentum.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_LowMomentum
10// Version 1.0 3/10/2004 I.Gavrilenko
12
13#ifndef SiSpacePointsSeedMaker_LowMomentum_H
14#define SiSpacePointsSeedMaker_LowMomentum_H
15
18
25
27// MagField cache
31
32#include <list>
33#include <vector>
34
35class MsgStream;
36
37namespace InDet {
38
39 using EventData = SiSpacePointsSeedMakerEventData;
40
51
53 public extends<AthAlgTool, ISiSpacePointsSeedMaker>
54 {
56 // Public methods:
58
59 public:
60
64
66 (const std::string&,const std::string&,const IInterface*);
68 virtual StatusCode initialize() override;
69 virtual StatusCode finalize() override;
71
75
76 virtual void newEvent (const EventContext& ctx, EventData& data, int iteration) const override;
77 virtual void newRegion(const EventContext& ctx, EventData& data,
78 const std::vector<IdentifierHash>& vPixel, const std::vector<IdentifierHash>& vSCT) const override;
79 virtual void newRegion(const EventContext& ctx, EventData& data,
80 const std::vector<IdentifierHash>& vPixel, const std::vector<IdentifierHash>& vSCT,
81 const IRoiDescriptor& iRD) const override;
83
87
88
90 virtual void find2Sp(EventData& data, const std::list<Trk::Vertex>& lv) const override;
91
93 virtual void find3Sp(const EventContext& ctx, EventData& data, const std::list<Trk::Vertex>& lv) const override;
94
97 virtual void find3Sp(const EventContext& ctx, EventData& data, const std::list<Trk::Vertex>& lv, const double* zVertex) const override;
98
101 virtual void findVSp(const EventContext& ctx, EventData& data, const std::list<Trk::Vertex>& lv) const override;
103
108
109 virtual const SiSpacePointsSeed* next(const EventContext& ctx, EventData& data) const override;
111
112 virtual void writeNtuple(const SiSpacePointsSeed* seed, const Trk::Track* track, int seedType, long eventNumber) const override;
113
114 virtual bool getWriteNtupleBoolProperty() const override;
115
119
120 virtual MsgStream& dump(EventData& data, MsgStream& out) const override;
122
123 private:
129
131 // Private data and methods
133
135
136 SG::ReadHandleKey<SpacePointContainer> m_spacepointsSCT{this, "SpacePointsSCTName", "SCT_SpacePoints", "SCT space points container"};
137 SG::ReadHandleKey<SpacePointContainer> m_spacepointsPixel{this, "SpacePointsPixelName", "PixelSpacePoints", "Pixel space points container"};
138 SG::ReadHandleKey<SpacePointOverlapCollection> m_spacepointsOverlap{this, "SpacePointsOverlapName", "OverlapSpacePoints"};
139 SG::ReadHandleKey<Trk::PRDtoTrackMap> m_prdToTrackMap{this,"PRDtoTrackMap","","option PRD-to-track association"};
140 SG::ReadCondHandleKey<InDet::BeamSpotData> m_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" };
141 // Read handle for conditions object to get the field cache
142 SG::ReadCondHandleKey<AtlasFieldCacheCondObj> m_fieldCondObjInputKey {this, "AtlasFieldCacheCondObj", "fieldCondObj",
143 "Name of the Magnetic Field conditions object key"};
144
145
147
148 BooleanProperty m_pixel{this, "usePixel", true};
149 BooleanProperty m_sct{this, "useSCT", true};
150 BooleanProperty m_useOverlap{this, "useOverlapSpCollection", false};
151 IntegerProperty m_maxsize{this, "maxSize", 2000};
152 IntegerProperty m_maxsizeSP{this, "maxSizeSP", 1500};
153 IntegerProperty m_maxOneSize{this, "maxSeedsForSpacePoint", 5};
154 FloatProperty m_r1min{this, "minRadius1", 0.};
155 FloatProperty m_r1max{this, "maxRadius1", 600.};
156 FloatProperty m_r2min{this, "minRadius2", 0.};
157 FloatProperty m_r2max{this, "maxRadius2", 600.};
158 FloatProperty m_r3min{this, "minRadius3", 0.};
159 FloatProperty m_drmin{this, "mindRadius", 10.};
160 FloatProperty m_drmax{this, "maxdRadius", 200.};
161 FloatProperty m_zmin{this, "minZ", -250.};
162 FloatProperty m_zmax{this, "maxZ", +250.};
163 FloatProperty m_r_rmax{this, "radMax", 200.};
164 FloatProperty m_r_rstep{this, "radStep", 2.};
165 FloatProperty m_dzver{this, "maxdZver", 5.};
166 FloatProperty m_dzdrver{this, "maxdZdRver", 0.02};
167 FloatProperty m_diver{this, "maxdImpact", 7.};
168 FloatProperty m_ptmax{this, "pTmax", 500.};
170
172
173 FloatProperty m_etamax{this, "etaMax", 2.7};
174 FloatProperty m_ptmin{this, "pTmin", 100.};
175 FloatProperty m_fieldScale{this, "fieldScale", 1.};
177
179
180 bool m_initialized{false};
182 int m_fNmax{0};
183 int m_r_size{0};
188 float m_dzdrmin{0.};
189 float m_dzdrmax{0.};
190 float m_r3max{0.};
191 float m_iptmin{0.};
192 float m_iptmax{1.f/400.f};
193 float m_sF{0.};
195
197 // Private methods
200
205
206 MsgStream& dumpConditions(EventData& data, MsgStream& out) const;
207 static MsgStream& dumpEvent(EventData& data, MsgStream& out) ;
208
209 void buildFrameWork();
210 void buildBeamFrameWork(EventData& data) const;
211
213 (EventData& data, const Trk::SpacePoint*const&) ;
214 static void newSeed
215 (EventData& data,
216 const Trk::SpacePoint*&,const Trk::SpacePoint*&,
217 const float&) ;
218 static void newSeed
219 (EventData& data,
220 const Trk::SpacePoint*&,const Trk::SpacePoint*&,
221 const Trk::SpacePoint*&,const float&) ;
222
223 void newOneSeed
224 (EventData& data,
225 const Trk::SpacePoint*&,const Trk::SpacePoint*&,
226 const Trk::SpacePoint*&,const float&,const float&) const;
227 static void fillSeeds(EventData& data) ;
228
229 void fillLists(EventData& data) const;
230 static void erase(EventData& data) ;
231 static void production2Sp(EventData& data) ;
232 void production3Sp(const EventContext& ctx, EventData& data) const;
233 void production3Sp
234 (EventData& data,
235 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
236 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
237 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
238 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
239 int,int,int&,float) const;
240
241 static bool newVertices(EventData& data, const std::list<Trk::Vertex>&) ;
242 void findNext(const EventContext& ctx, EventData& data) const;
243 bool isZCompatible(EventData& data, float&,float&,float&) const;
244 static void convertToBeamFrameWork(EventData& data, const Trk::SpacePoint*const&,float*) ;
245 bool isUsed(const Trk::SpacePoint*, const Trk::PRDtoTrackMap &prd_to_track_map) const;
246
248 };
249
250} // end of name space
251
252namespace InDet {
253
254 inline
256 {
257 const Trk::PrepRawData* d = sp->clusterList().first;
258 if (!d || !prd_to_track_map.isUsed(*d)) return false;
259
260 d = sp->clusterList().second;
261 if (!d || prd_to_track_map.isUsed(*d)) return true;
262
263 return false;
264 }
265}
266
267#endif // SiSpacePointsSeedMaker_LowMomentum_H
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
static Double_t sp
Describes the API of the Region of Ineterest geometry.
MsgStream & dumpConditions(EventData &data, MsgStream &out) const
SG::ReadHandleKey< SpacePointOverlapCollection > m_spacepointsOverlap
virtual ~SiSpacePointsSeedMaker_LowMomentum()=default
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
static MsgStream & dumpEvent(EventData &data, MsgStream &out)
static SiSpacePointForSeed * newSpacePoint(EventData &data, const Trk::SpacePoint *const &)
SG::ReadHandleKey< SpacePointContainer > m_spacepointsSCT
SG::ReadHandleKey< SpacePointContainer > m_spacepointsPixel
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCondObjInputKey
virtual const SiSpacePointsSeed * next(const EventContext &ctx, EventData &data) const override
virtual void newRegion(const EventContext &ctx, EventData &data, const std::vector< IdentifierHash > &vPixel, const std::vector< IdentifierHash > &vSCT) const override
SiSpacePointsSeedMaker_LowMomentum & operator=(const SiSpacePointsSeedMaker_LowMomentum &)=delete
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,...
void production3Sp(const EventContext &ctx, EventData &data) const
virtual void find2Sp(EventData &data, const std::list< Trk::Vertex > &lv) const override
with two space points with or without vertex constraint
SiSpacePointsSeedMaker_LowMomentum(const std::string &, const std::string &, const IInterface *)
static void convertToBeamFrameWork(EventData &data, const Trk::SpacePoint *const &, float *)
virtual void newEvent(const EventContext &ctx, EventData &data, int iteration) 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
static bool newVertices(EventData &data, const std::list< Trk::Vertex > &)
void findNext(const EventContext &ctx, EventData &data) const
bool isUsed(const Trk::SpacePoint *, const Trk::PRDtoTrackMap &prd_to_track_map) const
SG::ReadHandleKey< Trk::PRDtoTrackMap > m_prdToTrackMap
void newOneSeed(EventData &data, const Trk::SpacePoint *&, const Trk::SpacePoint *&, const Trk::SpacePoint *&, const float &, const float &) const
static void newSeed(EventData &data, const Trk::SpacePoint *&, const Trk::SpacePoint *&, const float &)
bool isZCompatible(EventData &data, float &, float &, float &) const
SiSpacePointsSeedMaker_LowMomentum(const SiSpacePointsSeedMaker_LowMomentum &)=delete
virtual void writeNtuple(const SiSpacePointsSeed *seed, const Trk::Track *track, int seedType, long eventNumber) const override
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