ATLAS Offline Software
Loading...
Searching...
No Matches
SiSpacePointsSeedMaker_Trigger.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_Trigger
10// Version 1.0 3/10/2004 I.Gavrilenko
12
13#ifndef SiSpacePointsSeedMaker_Trigger_H
14#define SiSpacePointsSeedMaker_Trigger_H
15
18
24
26// MagField cache
30
31#include <list>
32#include <vector>
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
64 SiSpacePointsSeedMaker_Trigger(const std::string&, const std::string&, const IInterface*);
66 virtual StatusCode initialize() override;
67 virtual StatusCode finalize() override;
69
73
74 virtual void newEvent (const EventContext& ctx, EventData& data, int iteration) const override;
75 virtual void newRegion(const EventContext& ctx, EventData& data,
76 const std::vector<IdentifierHash>& vPixel, const std::vector<IdentifierHash>& vSCT) const override;
77 virtual void newRegion(const EventContext& ctx, EventData& data,
78 const std::vector<IdentifierHash>& vPixel, const std::vector<IdentifierHash>& vSCT,
79 const IRoiDescriptor& iRD) const override;
81
85
86
88 virtual void find2Sp(EventData& data, const std::list<Trk::Vertex>& lv) const override;
89
91 virtual void find3Sp(const EventContext& ctx, EventData& data, const std::list<Trk::Vertex>& lv) const override;
92
95 virtual void find3Sp(const EventContext& ctx, EventData& data, const std::list<Trk::Vertex>& lv, const double* zVertex) const override;
96
99 virtual void findVSp(const EventContext& ctx, EventData& data, const std::list<Trk::Vertex>& lv) const override;
101
106
107 virtual const SiSpacePointsSeed* next(const EventContext& ctx, EventData& data) const override;
109
110 virtual void writeNtuple(const SiSpacePointsSeed* seed, const Trk::Track* track, int seedType, long eventNumber) const override;
111
112 virtual bool getWriteNtupleBoolProperty() const override;
113
117
118 virtual MsgStream& dump(EventData& data, MsgStream& out) const override;
120
121 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::ReadCondHandleKey<InDet::BeamSpotData> m_beamSpotKey{this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot"};
142 // Read handle for conditions object to get the field cache
143 SG::ReadCondHandleKey<AtlasFieldCacheCondObj> m_fieldCondObjInputKey {this, "AtlasFieldCacheCondObj", "fieldCondObj",
144 "Name of the Magnetic Field conditions object key"};
145
146
148
149 BooleanProperty m_pixel{this, "usePixel", true};
150 BooleanProperty m_sct{this, "useSCT", true};
151 BooleanProperty m_useOverlap{this, "useOverlapSpCollection", true};
152 IntegerProperty m_maxsize{this, "maxSize", 20000};
153 IntegerProperty m_maxsizeSP{this, "maxSizeSP", 1500};
154 IntegerProperty m_maxOneSize{this, "maxSeedsForSpacePoint", 3};
155 UnsignedIntegerProperty m_maxNumberVertices{this, "maxNumberVertices", 99};
156 FloatProperty m_r1min{this, "minRadius1", 0.};
157 FloatProperty m_r1minv{this, "minVRadius1", 0.};
158 FloatProperty m_r1max{this, "maxRadius1", 600.};
159 FloatProperty m_r1maxv{this, "maxVRadius1", 60.};
160 FloatProperty m_r2min{this, "minRadius2", 0.};
161 FloatProperty m_r2minv{this, "minVRadius2", 70.};
162 FloatProperty m_r2max{this, "maxRadius2", 600.};
163 FloatProperty m_r2maxv{this, "maxVRadius2", 200.};
164 FloatProperty m_r3min{this, "minRadius3", 0.};
165 FloatProperty m_drmin{this, "mindRadius", 10.};
166 FloatProperty m_drmax{this, "maxdRadius", 270.};
167 FloatProperty m_zmin{this, "minZ", -250.};
168 FloatProperty m_zmax{this, "maxZ", +250.};
169 FloatProperty m_r_rmax{this, "radMax", 600.};
170 FloatProperty m_r_rstep{this, "radStep", 2.};
171 FloatProperty m_dzver{this, "maxdZver", 5.};
172 FloatProperty m_dzdrver{this, "maxdZdRver", 0.02};
173 FloatProperty m_diver{this, "maxdImpact", 10.};
174 FloatProperty m_diverpps{this, "maxdImpactPPS", 1.7};
175 FloatProperty m_diversss{this, "maxdImpactSSS", 1000.};
177
179
180 FloatProperty m_etamax{this, "etaMax", 2.7};
181 FloatProperty m_ptmin{this, "pTmin", 500.};
183
185
186 float m_drminv{20.};
188
190
191 bool m_initialized{false};
193 int m_r_size{0};
194 int m_fNmax{0};
195 int m_fvNmax{0};
202 float m_dzdrmin{0.};
203 float m_dzdrmax{0.};
204 float m_r3max{0.};
205 float m_ipt{0.};
206 float m_ipt2{0.};
207 float m_COF{0.};
208 float m_sF{0.};
209 float m_sFv{0.};
211
213 // Private methods
216
221
222 MsgStream& dumpConditions(EventData& data, MsgStream& out) const;
223 static MsgStream& dumpEvent(EventData& data, MsgStream& out) ;
224
225 void buildFrameWork();
226 void buildBeamFrameWork(EventData& data) const;
227
229 (EventData& data, const Trk::SpacePoint*const&) ;
230 static void newSeed
231 (EventData& data,
232 const Trk::SpacePoint*&,const Trk::SpacePoint*&,
233 const float&) ;
234
235 void newOneSeed
236 (EventData& data,
237 const Trk::SpacePoint*&,const Trk::SpacePoint*&,
238 const Trk::SpacePoint*&,const float&,const float&) const;
239 static void fillSeeds(EventData& data) ;
240
241 void fillLists(EventData& data) const;
242 static void erase(EventData& data) ;
243 void production2Sp(EventData& data) const;
244 void production3Sp(EventData& data) const;
245 void production3Sp
246 (EventData& data,
247 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
248 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
249 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
250 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
251 int,int,int&) const;
253 (EventData& data,
254 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
255 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
256 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
257 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
258 int,int,int&) const;
259
260 bool newVertices(EventData& data, const std::list<Trk::Vertex>&) const;
261 void findNext(EventData& data) const;
262 bool isZCompatible(EventData& data, float&, float&, float&) const;
263 static void convertToBeamFrameWork(EventData& data, const Trk::SpacePoint*const&, float*) ;
264 static float dZVertexMin(EventData& data, float&) ;
265
267 };
268
269} // end of name space
270
271#endif // SiSpacePointsSeedMaker_Trigger_H
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
Describes the API of the Region of Ineterest geometry.
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
static void newSeed(EventData &data, const Trk::SpacePoint *&, const Trk::SpacePoint *&, const float &)
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::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCondObjInputKey
static void convertToBeamFrameWork(EventData &data, const Trk::SpacePoint *const &, float *)
void production3SpTrigger(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
bool isZCompatible(EventData &data, float &, float &, float &) const
virtual void newRegion(const EventContext &ctx, EventData &data, const std::vector< IdentifierHash > &vPixel, const std::vector< IdentifierHash > &vSCT) const override
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
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,...
SiSpacePointsSeedMaker_Trigger(const SiSpacePointsSeedMaker_Trigger &)=delete
virtual ~SiSpacePointsSeedMaker_Trigger()=default
static float dZVertexMin(EventData &data, float &)
virtual const SiSpacePointsSeed * next(const EventContext &ctx, EventData &data) const override
bool newVertices(EventData &data, const std::list< Trk::Vertex > &) const
SiSpacePointsSeedMaker_Trigger & operator=(const SiSpacePointsSeedMaker_Trigger &)=delete
SG::ReadHandleKey< SpacePointContainer > m_spacepointsSCT
void newOneSeed(EventData &data, const Trk::SpacePoint *&, const Trk::SpacePoint *&, const Trk::SpacePoint *&, const float &, const float &) const
virtual void find2Sp(EventData &data, const std::list< Trk::Vertex > &lv) const override
with two space points with or without vertex constraint
SG::ReadHandleKey< SpacePointContainer > m_spacepointsPixel
SiSpacePointsSeedMaker_Trigger(const std::string &, const std::string &, const IInterface *)
static SiSpacePointForSeed * newSpacePoint(EventData &data, const Trk::SpacePoint *const &)
MsgStream & dumpConditions(EventData &data, MsgStream &out) const
SG::ReadHandleKey< SpacePointOverlapCollection > m_spacepointsOverlap
static MsgStream & dumpEvent(EventData &data, MsgStream &out)
SiSpacePointsSeedMakerEventData EventData
Property holding a SG store/key/clid from which a ReadHandle is made.
Primary Vertex Finder.
-event-from-file