13#ifndef SiSpacePointsSeedMaker_HeavyIon_H
14#define SiSpacePointsSeedMaker_HeavyIon_H
25#include "GaudiKernel/ITHistSvc.h"
55 public extends<AthAlgTool, ISiSpacePointsSeedMaker>
68 (
const std::string&,
const std::string&,
const IInterface*);
71 virtual StatusCode
finalize()
override;
78 virtual void newEvent (
const EventContext& ctx,
EventData& data,
int iteration)
const override;
80 const std::vector<IdentifierHash>& vPixel,
const std::vector<IdentifierHash>&vSCT)
const override;
82 const std::vector<IdentifierHash>& vPixel,
const std::vector<IdentifierHash>&vSCT,
92 virtual void find2Sp(
EventData& data,
const std::list<Trk::Vertex>& lv)
const override;
95 virtual void find3Sp(
const EventContext& ctx,
EventData& data,
const std::list<Trk::Vertex>& lv)
const override;
99 virtual void find3Sp(
const EventContext& ctx,
EventData& data,
const std::list<Trk::Vertex>& lv,
const double* zVertex)
const override;
103 virtual void findVSp(
const EventContext& ctx,
EventData& data,
const std::list<Trk::Vertex>& lv)
const override;
122 virtual MsgStream&
dump(
EventData& data, MsgStream& out)
const override;
153 BooleanProperty
m_pixel{
this,
"usePixel",
true};
154 BooleanProperty
m_sct{
this,
"useSCT",
true};
167 FloatProperty
m_drmax{
this,
"maxdRadius", 270.};
168 FloatProperty
m_zmin{
this,
"minZ", -250.};
169 FloatProperty
m_zmax{
this,
"maxZ", +250.};
175 FloatProperty
m_diver{
this,
"maxdImpact", 10.};
179 BooleanProperty
m_writeNtuple {
this,
"WriteNtuple",
false,
"Flag to write Validation Ntuples"};
186 FloatProperty
m_ptmax{
this,
"pTmax", std::numeric_limits<float>::max()};
293 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
294 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
295 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
296 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
300 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
301 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
302 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
303 std::vector<InDet::SiSpacePointForSeed*>::iterator*,
321 if (!d || !prd_to_track_map.
isUsed(*d))
return false;
322 d =
sp->clusterList().second;
323 if (!d || prd_to_track_map.
isUsed(*d))
return true;
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
BooleanProperty m_useOverlap
BooleanProperty m_useVertexPosition
float m_d0 ATLAS_THREAD_SAFE
void initializeEventData(EventData &data) const
UnsignedIntegerProperty m_maxNumberVertices
virtual void newRegion(const EventContext &ctx, EventData &data, const std::vector< IdentifierHash > &vPixel, const std::vector< IdentifierHash > &vSCT) const override
virtual StatusCode finalize() override
void newOneSeed(EventData &data, const Trk::SpacePoint *&, const Trk::SpacePoint *&, const Trk::SpacePoint *&, const float &, const float &) const
void fillLists(EventData &data) const
int m_rfzv_i[SizeRFZV][SizeIV]
SG::ReadHandleKey< Trk::PRDtoTrackMap > m_prdToTrackMap
static MsgStream & dumpEvent(EventData &data, MsgStream &out)
virtual StatusCode initialize() override
virtual bool getWriteNtupleBoolProperty() const override
bool isUsed(const Trk::SpacePoint *sp, const Trk::PRDtoTrackMap &prd_to_track_map) const
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
void buildBeamFrameWork(const EventContext &ctx, EventData &data) const
IntegerProperty m_maxsize
virtual void newEvent(const EventContext &ctx, EventData &data, int iteration) const override
SG::ReadHandleKey< SpacePointOverlapCollection > m_spacepointsOverlap
void production2Sp(EventData &data) const
virtual const SiSpacePointsSeed * next(const EventContext &ctx, EventData &data) const override
virtual ~SiSpacePointsSeedMaker_HeavyIon()=default
IntegerProperty m_maxsizeSP
static void erase(EventData &data)
void production3Sp(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
int m_rfz_ib[SizeRFZ][SizeI]
BooleanProperty m_writeNtuple
static void fillSeeds(EventData &data)
void findNext(EventData &data) const
static void convertToBeamFrameWork(EventData &data, const Trk::SpacePoint *const &, std::array< float, 3 > &)
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
int m_rfz_it[SizeRFZ][SizeI]
SG::ReadHandleKey< SpacePointContainer > m_spacepointsSCT
virtual void findVSp(const EventContext &ctx, EventData &data, const std::list< Trk::Vertex > &lv) const override
ServiceHandle< ITHistSvc > m_thistSvc
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
IntegerProperty m_maxOneSize
SiSpacePointsSeedMaker_HeavyIon()=delete
static SiSpacePointForSeed * newSpacePoint(EventData &data, const Trk::SpacePoint *const &)
SiSpacePointsSeedMaker_HeavyIon & operator=(const SiSpacePointsSeedMaker_HeavyIon &)=delete
SiSpacePointsSeedMaker_HeavyIon(const SiSpacePointsSeedMaker_HeavyIon &)=delete
FloatProperty m_fieldScale
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.
bool isUsed(const PrepRawData &prd) const
does this PRD belong to at least one track?