ATLAS Offline Software
Loading...
Searching...
No Matches
SiSpacePointsSeedMaker_HeavyIon.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_HeavyIon
10// Version 1.0 3/10/2004 I.Gavrilenko
12
13#ifndef SiSpacePointsSeedMaker_HeavyIon_H
14#define SiSpacePointsSeedMaker_HeavyIon_H
15
18
24
26// MagField cache
30
31#include <iosfwd>
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
99 // with variable number space points with or without vertex constraint
100 // Variable means (2,3,4,....) any number space points
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:
133
135 // Private data and methods
137
139
140 SG::ReadHandleKey<SpacePointContainer> m_spacepointsSCT{this, "SpacePointsSCTName", "SCT_SpacePoints", "SCT space points container"};
141 SG::ReadHandleKey<SpacePointContainer> m_spacepointsPixel{this, "SpacePointsPixelName", "PixelSpacePoints", "Pixel space points container"};
142 SG::ReadHandleKey<SpacePointOverlapCollection> m_spacepointsOverlap{this, "SpacePointsOverlapName", "OverlapSpacePoints"};
143 SG::ReadCondHandleKey<InDet::BeamSpotData> m_beamSpotKey{this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot"};
144 // Read handle for conditions object to get the field cache
145 SG::ReadCondHandleKey<AtlasFieldCacheCondObj> m_fieldCondObjInputKey {this, "AtlasFieldCacheCondObj", "fieldCondObj",
146 "Name of the Magnetic Field conditions object key"};
147
148
150
151 BooleanProperty m_pixel{this, "usePixel", true};
152 BooleanProperty m_sct{this, "useSCT", true};
153 BooleanProperty m_useOverlap{this, "useOverlapSpCollection", false};
154 IntegerProperty m_maxsize{this, "maxSize", 20000};
155 IntegerProperty m_maxsizeSP{this, "maxSizeSP", 4000};
156 IntegerProperty m_maxOneSize{this, "maxSeedsForSpacePoint", 6};
157 UnsignedIntegerProperty m_maxNumberVertices{this, "maxNumberVertices", 1};
158 FloatProperty m_r1minv{this, "minVRadius1", 0.};
159 FloatProperty m_r1maxv{this, "maxVRadius1", 60.};
160 FloatProperty m_r2minv{this, "minVRadius2", 70.};
161 FloatProperty m_r2maxv{this, "maxVRadius2", 200.};
162 FloatProperty m_drmin{this, "mindRadius", 10.};
163 FloatProperty m_drmax{this, "maxdRadius", 270.};
164 FloatProperty m_zmin{this, "minZ", -250.};
165 FloatProperty m_zmax{this, "maxZ", +250.};
166 FloatProperty m_r_rmax{this, "radMax", 600.};
167 FloatProperty m_r_rstep{this, "radStep", 2.};
168 FloatProperty m_dzver{this, "maxdZver", 5.};
169 FloatProperty m_dzdrver{this, "maxdZdRver", 0.02};
170 FloatProperty m_diver{this, "maxdImpact", 10.};
171 FloatProperty m_diverpps{this, "maxdImpactPPS", 1.7};
172 FloatProperty m_diversss{this, "maxdImpactSSS", 1000.};
174
176
177 FloatProperty m_etamax{this, "etaMax", 2.7};
178 FloatProperty m_ptmin{this, "pTmin", 500.};
179 FloatProperty m_fieldScale{this, "fieldScale", 1.};
181
183
184 float m_drminv{20.};
186
187 // @name Data members, which are updated only in initialize
189 bool m_initialized{false};
191 int m_r_size{0};
192 int m_fNmax{0};
193 int m_fvNmax{0};
200 float m_dzdrmin{0.};
201 float m_dzdrmax{0.};
202 float m_ipt{0.};
203 float m_ipt2{0.};
204 float m_COF{0.};
205 float m_sF{0.};
206 float m_sFv{0.};
208
210 // Private methods
213
218
219 MsgStream& dumpConditions(EventData& data, MsgStream& out) const;
220 static MsgStream& dumpEvent(EventData& data, MsgStream& out) ;
221
222 void buildFrameWork();
223 void buildBeamFrameWork(const EventContext& ctx, EventData& data) const;
224
226 (EventData& data, const Trk::SpacePoint*const&) ;
227 static void newSeed
228 (EventData& data,
229 const Trk::SpacePoint*&,const Trk::SpacePoint*&,
230 const float&) ;
231 static void newSeed
232 (EventData& data,
233 const Trk::SpacePoint*&,const Trk::SpacePoint*&,
234 const Trk::SpacePoint*&,const float&) ;
235
236 void newOneSeed
237 (EventData& data,
238 const Trk::SpacePoint*&,const Trk::SpacePoint*&,
239 const Trk::SpacePoint*&,const float&,const float&) const;
240 static void fillSeeds(EventData& data) ;
241
242 void fillLists(EventData& data) const;
243 static void erase(EventData& data) ;
244 void production2Sp(EventData& data) const;
245 void production3Sp(EventData& data) const;
246 void production3Sp
247 (EventData& data,
248 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
249 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
250 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
251 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
252 int,int,int&) const;
254 (EventData& data,
255 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
256 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
257 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
258 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
259 int,int,int&) const;
260
261 bool newVertices(EventData& data, const std::list<Trk::Vertex>&) const;
262 void findNext(EventData& data) const;
263 bool isZCompatible(EventData& data, float&,float&,float&) const;
264 static float dZVertexMin(EventData& data, float&) ;
265 static void convertToBeamFrameWork(EventData& data, const Trk::SpacePoint*const&,float*) ;
266
268 };
269
270} // end of name space
271
272#endif // SiSpacePointsSeedMaker_HeavyIon_H
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
Describes the API of the Region of Ineterest geometry.
virtual void writeNtuple(const SiSpacePointsSeed *seed, const Trk::Track *track, int seedType, long eventNumber) const override
virtual void newRegion(const EventContext &ctx, EventData &data, const std::vector< IdentifierHash > &vPixel, const std::vector< IdentifierHash > &vSCT) const override
void newOneSeed(EventData &data, const Trk::SpacePoint *&, const Trk::SpacePoint *&, const Trk::SpacePoint *&, const float &, const float &) const
static MsgStream & dumpEvent(EventData &data, MsgStream &out)
SiSpacePointsSeedMaker_HeavyIon(const std::string &, const std::string &, const IInterface *)
bool newVertices(EventData &data, const std::list< Trk::Vertex > &) const
bool isZCompatible(EventData &data, float &, float &, float &) const
static void convertToBeamFrameWork(EventData &data, const Trk::SpacePoint *const &, float *)
void buildBeamFrameWork(const EventContext &ctx, EventData &data) const
virtual void newEvent(const EventContext &ctx, EventData &data, int iteration) const override
SG::ReadHandleKey< SpacePointOverlapCollection > m_spacepointsOverlap
virtual const SiSpacePointsSeed * next(const EventContext &ctx, EventData &data) const override
virtual ~SiSpacePointsSeedMaker_HeavyIon()=default
virtual void find2Sp(EventData &data, const std::list< Trk::Vertex > &lv) const override
with two space points with or without vertex constraint
static void newSeed(EventData &data, const Trk::SpacePoint *&, const Trk::SpacePoint *&, const float &)
static float dZVertexMin(EventData &data, float &)
MsgStream & dumpConditions(EventData &data, MsgStream &out) const
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
SG::ReadHandleKey< SpacePointContainer > m_spacepointsSCT
virtual void findVSp(const EventContext &ctx, EventData &data, const std::list< Trk::Vertex > &lv) const override
SG::ReadHandleKey< SpacePointContainer > m_spacepointsPixel
void production3SpNoVertex(EventData &data, std::vector< InDet::SiSpacePointForSeed * >::iterator *, std::vector< InDet::SiSpacePointForSeed * >::iterator *, std::vector< InDet::SiSpacePointForSeed * >::iterator *, std::vector< InDet::SiSpacePointForSeed * >::iterator *, int, int, int &) const
static SiSpacePointForSeed * newSpacePoint(EventData &data, const Trk::SpacePoint *const &)
SiSpacePointsSeedMaker_HeavyIon & operator=(const SiSpacePointsSeedMaker_HeavyIon &)=delete
SiSpacePointsSeedMaker_HeavyIon(const SiSpacePointsSeedMaker_HeavyIon &)=delete
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCondObjInputKey
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
SiSpacePointsSeedMakerEventData EventData
Property holding a SG store/key/clid from which a ReadHandle is made.
Primary Vertex Finder.
-event-from-file