ATLAS Offline Software
Loading...
Searching...
No Matches
SiSpacePointsSeedMaker_BeamGas.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_BeamGas
10// Version 1.0 3/10/2004 I.Gavrilenko
12
13#ifndef SiSpacePointsSeedMaker_BeamGas_H
14#define SiSpacePointsSeedMaker_BeamGas_H
15
18
25
26#include "GaudiKernel/ServiceHandle.h"
27
28#include <iosfwd>
29#include <list>
30#include <vector>
32// MagField cache
36
37class MsgStream;
38
39namespace InDet {
40
41 using EventData = SiSpacePointsSeedMakerEventData;
42
53
55 public extends<AthAlgTool,ISiSpacePointsSeedMaker>
56 {
58 // Public methods:
60
61 public:
62
66
68 (const std::string&, const std::string&, const IInterface*);
70 virtual StatusCode initialize() override;
71 virtual StatusCode finalize() override;
73
77
78 virtual void newEvent (const EventContext& ctx, EventData& data, int iteration) const override;
79 virtual void newRegion(const EventContext& ctx, EventData& data,
80 const std::vector<IdentifierHash>& vPixel, const std::vector<IdentifierHash>& vSCT) const override;
81 virtual void newRegion(const EventContext& ctx, EventData& data,
82 const std::vector<IdentifierHash>& vPixel, const std::vector<IdentifierHash>& vSCT,
83 const IRoiDescriptor& iRD) const override;
85
87 // @name Methods to initilize different strategies of seeds production
89
90
92 virtual void find2Sp(EventData& data, const std::list<Trk::Vertex>& lv) const override;
93
95 virtual void find3Sp(const EventContext& ctx, EventData& data, const std::list<Trk::Vertex>& lv) const override;
96
99 virtual void find3Sp(const EventContext& ctx, EventData& data, const std::list<Trk::Vertex>& lv, const double* zVertex) const override;
100
103 virtual void findVSp(const EventContext& ctx, EventData& data, const std::list<Trk::Vertex>& lv) const override;
105
110
111 virtual const SiSpacePointsSeed* next(const EventContext& ctx, EventData& data) const override;
113
114 virtual void writeNtuple(const SiSpacePointsSeed* seed, const Trk::Track* track, int seedType, long EventNumber) const override;
115
116 virtual bool getWriteNtupleBoolProperty() const override;
117
121
122 virtual MsgStream& dump(EventData& data, MsgStream& out) const override;
124
125 private:
131
133 // Private data and methods
135
137
138 SG::ReadHandleKey<SpacePointContainer> m_spacepointsSCT{this, "SpacePointsSCTName", "SCT_SpacePoints", "SCT space points container"};
139 SG::ReadHandleKey<SpacePointContainer> m_spacepointsPixel{this, "SpacePointsPixelName", "PixelSpacePoints", "Pixel space points container"};
140 SG::ReadHandleKey<SpacePointOverlapCollection> m_spacepointsOverlap{this, "SpacePointsOverlapName", "OverlapSpacePoints"};
141 SG::ReadHandleKey<Trk::PRDtoTrackMap> m_prdToTrackMap{this,"PRDtoTrackMap","","option PRD-to-track association"};
142 SG::ReadCondHandleKey<InDet::BeamSpotData> m_beamSpotKey{this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot"};
144
146
147 SG::ReadCondHandleKey<AtlasFieldCacheCondObj> m_fieldCondObjInputKey {this, "AtlasFieldCacheCondObj", "fieldCondObj",
148 "Name of the Magnetic Field conditions object key"};
149
151
152 BooleanProperty m_pixel{this, "usePixel", true};
153 BooleanProperty m_sct{this, "useSCT""useSCT", true};
154 BooleanProperty m_useOverlap{this, "useOverlapSpCollection", true};
155 IntegerProperty m_maxsize{this, "maxSize", 20000};
156 IntegerProperty m_maxsizeSP{this, "maxSizeSP", 1500};
157 IntegerProperty m_maxOneSize{this, "maxSeedsForSpacePoint", 5};
158 FloatProperty m_drmax{this, "maxdRadius", 270.};
159 FloatProperty m_zmin{this, "minZ", -5000.};
160 FloatProperty m_zmax{this, "maxZ", +5000.};
161 FloatProperty m_r_rmax{this, "radMax", 600.};
162 FloatProperty m_r_rstep{this, "radStep", 2.};
163 FloatProperty m_r1min{this, "minRadius1", 0.};
164 FloatProperty m_r1max{this, "maxRadius1", 450.};
165 FloatProperty m_r2min{this, "minRadius2", 0.};
166 FloatProperty m_r2max{this, "maxRadius2", 600.};
167 FloatProperty m_r3min{this, "minRadius3", 0.};
168 FloatProperty m_r3max{this, "maxRadius3", 600.};
169 FloatProperty m_drmin{this, "mindRadius", 10.};
170 FloatProperty m_diver{this, "maxdImpact", 10.};
171 FloatProperty m_diverpps{this, "maxdImpactPPS", 1.7};
173
175
176 FloatProperty m_ptmin{this, "pTmin", 1000.};
177 FloatProperty m_etamax{this, "etaMax", 5.3};
178 FloatProperty m_fieldScale{this, "fieldScale", 1.};
180
182
183 bool m_initialized{false};
185 int m_r_size{0};
186 int m_fNmax{0};
191 float m_dzdrmax{0.};
192 float m_dzdrmin{0.};
193 float m_COF{0.};
194 float m_ipt{0.};
195 float m_ipt2{0.};
196 float m_sF{0.};
198
200 // Private methods
202
204
209
210 MsgStream& dumpConditions(EventData& data, MsgStream& out) const;
211 static MsgStream& dumpEvent(EventData& data, MsgStream& out) ;
212
213 void buildFrameWork();
214 void buildBeamFrameWork(EventData& data) const;
215
217 (EventData& data, const Trk::SpacePoint*const&) ;
218 static void newSeed
219 (EventData& data,
220 const Trk::SpacePoint*&,const Trk::SpacePoint*&,
221 const float&) ;
222 static void newSeed
223 (EventData& data,
224 const Trk::SpacePoint*&,const Trk::SpacePoint*&,
225 const Trk::SpacePoint*&,const float&) ;
226
227 void newOneSeed
228 (EventData& data,
229 const Trk::SpacePoint*&,const Trk::SpacePoint*&,
230 const Trk::SpacePoint*&,const float&,const float&) const;
231 static void fillSeeds(EventData& data) ;
232
233 void fillLists(EventData& data) const;
234 static void erase(EventData& data) ;
235 static void production2Sp(EventData& data) ;
236 void production3Sp(EventData& data) const;
237 void production3Sp
238 (EventData& data,
239 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
240 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
241 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
242 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
243 int,int,int&) const;
244
245 void findNext(EventData& data) const;
246 bool isZCompatible(float&) const;
247 static void convertToBeamFrameWork(EventData& data, const Trk::SpacePoint*const& sp, float* r) ;
248 bool isUsed(const Trk::SpacePoint* sp, const Trk::PRDtoTrackMap &prd_to_track_map) const;
249
251 };
252
253} // end of name space
254
255namespace InDet {
256
257 inline
259 {
260 const Trk::PrepRawData* d = sp->clusterList().first;
261 if (!d || !prd_to_track_map.isUsed(*d)) return false;
262
263 d = sp->clusterList().second;
264 if (!d || prd_to_track_map.isUsed(*d)) return true;
265
266 return false;
267 }
268}
269
270#endif // SiSpacePointsSeedMaker_BeamGas_H
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
static Double_t sp
Describes the API of the Region of Ineterest geometry.
static void convertToBeamFrameWork(EventData &data, const Trk::SpacePoint *const &sp, float *r)
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
virtual void newRegion(const EventContext &ctx, EventData &data, const std::vector< IdentifierHash > &vPixel, const std::vector< IdentifierHash > &vSCT) const override
virtual void find2Sp(EventData &data, const std::list< Trk::Vertex > &lv) const override
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCondObjInputKey
virtual void newEvent(const EventContext &ctx, EventData &data, int iteration) const override
virtual void writeNtuple(const SiSpacePointsSeed *seed, const Trk::Track *track, int seedType, long EventNumber) 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
SiSpacePointsSeedMaker_BeamGas & operator=(const SiSpacePointsSeedMaker_BeamGas &)=delete
static SiSpacePointForSeed * newSpacePoint(EventData &data, const Trk::SpacePoint *const &)
static MsgStream & dumpEvent(EventData &data, MsgStream &out)
SG::ReadHandleKey< SpacePointContainer > m_spacepointsSCT
void newOneSeed(EventData &data, const Trk::SpacePoint *&, const Trk::SpacePoint *&, const Trk::SpacePoint *&, const float &, const float &) const
SiSpacePointsSeedMaker_BeamGas(const SiSpacePointsSeedMaker_BeamGas &)=delete
SG::ReadHandleKey< Trk::PRDtoTrackMap > m_prdToTrackMap
SG::ReadHandleKey< SpacePointContainer > m_spacepointsPixel
MsgStream & dumpConditions(EventData &data, MsgStream &out) const
virtual const SiSpacePointsSeed * next(const EventContext &ctx, EventData &data) const override
bool isUsed(const Trk::SpacePoint *sp, const Trk::PRDtoTrackMap &prd_to_track_map) const
SG::ReadHandleKey< SpacePointOverlapCollection > m_spacepointsOverlap
static void newSeed(EventData &data, const Trk::SpacePoint *&, const Trk::SpacePoint *&, const float &)
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_BeamGas()=default
SiSpacePointsSeedMaker_BeamGas(const std::string &, const std::string &, const IInterface *)
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?
int r
Definition globals.cxx:22
Primary Vertex Finder.
-event-from-file