|
ATLAS Offline Software
|
Go to the documentation of this file.
13 #ifndef ITkSiSpacePointsSeedMaker_H
14 #define ITkSiSpacePointsSeedMaker_H
27 #include "GaudiKernel/ITHistSvc.h"
58 return((*s1).radius() < (*s2).radius());
77 public extends<AthAlgTool, InDet::ISiSpacePointsSeedMaker>
90 (
const std::string&,
const std::string&,
const IInterface*);
102 const std::vector<IdentifierHash>& vPixel,
const std::vector<IdentifierHash>& vStrip)
const override;
104 const std::vector<IdentifierHash>& vPixel,
const std::vector<IdentifierHash>& vStrip,
117 virtual void find3Sp(
const EventContext& ctx,
EventData&
data,
const std::list<Trk::Vertex>& lv)
const override;
121 virtual void find3Sp(
const EventContext& ctx,
EventData&
data,
const std::list<Trk::Vertex>& lv,
const double* zVertex)
const override;
125 virtual void findVSp(
const EventContext& ctx,
EventData&
data,
const std::list<Trk::Vertex>& lv)
const override;
173 "Name of the Magnetic Field conditions object key"};
178 BooleanProperty
m_pixel{
this,
"usePixel",
true};
179 BooleanProperty
m_strip{
this,
"useStrip",
true};
189 FloatProperty
m_drmin{
this,
"mindRadius", 5.};
190 FloatProperty
m_drmax{
this,
"maxdRadius", 300.};
191 FloatProperty
m_zmin{
this,
"minZ", -250.};
192 FloatProperty
m_zmax{this ,
"maxZ", +250.};
201 FloatProperty
m_maxScore{
this,
"maximumAcceptedSeedScore", 100.};
212 BooleanProperty
m_isLRT{
this,
"isLRT",
false};
230 FloatProperty
m_umax{
this,
"minSeedsQuality", 0.};
256 Gaudi::Property<bool>
m_writeNtuple {
this,
"WriteNtuple",
false,
"Flag to write Validation Ntuples"};
343 std::array<int, arraySizePhiZ>& nNeighbourCellsTop,
346 int maxPhiBin,
bool isSSS);
439 const int numberBottomCells,
const int numberTopCells,
int& nseed)
const;
447 const int numberBottomCells,
const int numberTopCells,
int& nseed)
const;
456 const int ,
const int ,
int& )
const;
489 void sort(std::vector<InDet::FloatInt>&
s,
int start,
int size)
const;
506 (
const std::pair<float,SiSpacePointForSeed*>& i1,
507 const std::pair<float,SiSpacePointForSeed*>& i2)
509 return i1.first < i2.first;
522 if (!
d || !prd_to_track_map.
isUsed(*
d))
return false;
525 if (!
d || prd_to_track_map.
isUsed(*
d))
return true;
545 #endif // ITkSiSpacePointsSeedMaker_H
const std::pair< const PrepRawData *, const PrepRawData * > & clusterList() const
return the pair of cluster pointers by reference
JetConstituentVector::iterator iterator
static MsgStream & dumpEvent(EventData &data, MsgStream &out)
virtual void writeNtuple(const InDet::SiSpacePointsSeed *seed, const Trk::Track *track, int seedType, long eventNumber) const override
int m_nBinsR
number of bins in the radial coordinate
char data[hepevt_bytes_allocation_ATLAS]
static void buildConnectionMaps(std::array< int, arraySizePhiZ > &nNeighbourCellsBottom, std::array< int, arraySizePhiZ > &nNeighbourCellsTop, std::array< std::array< int, arraySizeNeighbourBins >, arraySizePhiZ > &neighbourCellsBottom, std::array< std::array< int, arraySizeNeighbourBins >, arraySizePhiZ > &neighbourCellsTop, int maxPhiBin, bool isSSS)
TString m_treeFolder ATLAS_THREAD_SAFE
std::array< int, arraySizePhiZ > m_nNeighbourCellsBottomSSS
std::array< std::array< int, arraySizeNeighbourBins >, arraySizePhiZ > m_neighbourCellsBottomSSS
@ arraySizeZV
array size in z for vertexing
virtual void find2Sp(EventData &data, const std::list< Trk::Vertex > &lv) const override
with two space points with or without vertex constraint
@ arraySizeZ
capacity of the 1D z arrays
virtual bool getWriteNtupleBoolProperty() const override
FloatProperty m_seedScoreBonusSSS
IntegerProperty m_maxsizeSP
BooleanProperty m_alwaysKeepConfirmedStripSeeds
void sort(std::vector< InDet::FloatInt > &s, int start, int size) const
SiSpacePointsSeedMaker()=delete
SG::ReadHandleKey< SpacePointContainer > m_spacepointsPixel
SG::ReadHandleKey< Trk::PRDtoTrackMap > m_prdToTrackMap
std::array< int, arraySizePhiZ > m_nNeighbourCellsTopPPP
number of neighbouring phi-z bins to consider when looking for "top SP" candidates for each phi-z bin
virtual void newRegion(const EventContext &ctx, EventData &data, const std::vector< IdentifierHash > &vPixel, const std::vector< IdentifierHash > &vStrip) 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
FloatProperty m_seedScoreBonusPPP
void newOneSeedWithCurvaturesComparisonSeedConfirmation(EventData &data, SiSpacePointForSeed *&SPb, SiSpacePointForSeed *&SP0, float Zob) const
float m_inverseBinSizePhiPPP
cache the inverse bin size in phi which we use - needed to evaluate phi bin locations
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCondObjInputKey
BooleanProperty m_checketa
FloatProperty m_dImpactCutSlopeUnconfirmedSSS
@ arraySizeNeighbourBinsVertex
static float azimuthalStep(const float pTmin, const float maxd0, const float Rmin, const float Rmax)
Determine the expected azimuthal trajectory displacement in phi in presence of the magnetic field for...
static void newSeed(EventData &data, SiSpacePointForSeed *&, SiSpacePointForSeed *&, float)
FloatProperty m_dImpactCutSlopeUnconfirmedPPP
static void stripInform(EventData &data, const Trk::SpacePoint *sp, float *r)
void newOneSeedWithCurvaturesComparison(EventData &data, SiSpacePointForSeed *&, SiSpacePointForSeed *&, float) const
virtual const InDet::SiSpacePointsSeed * next(const EventContext &ctx, EventData &data) const override
std::string m_treeName ATLAS_THREAD_SAFE
void findNext(EventData &data) const
IntegerProperty m_maxOneSizePPP
static void pixInform(const Trk::SpacePoint *sp, float *r)
FloatProperty m_seedScoreBonusConfirmationSeed
bool isUsed(const Trk::SpacePoint *, const Trk::PRDtoTrackMap &prd_to_track_map) const
IntegerProperty m_maxOneSize
@ arraySizePhiZV
array size in phi-Z 2D for the vertexing
void newOneSeedWithCurvaturesComparisonPPP(EventData &data, SiSpacePointForSeed *&SPb, SiSpacePointForSeed *&SP0, float Zob) const
void newOneSeedQ(EventData &data, SiSpacePointForSeed *&, SiSpacePointForSeed *&, SiSpacePointForSeed *&, float, float) const
::StatusCode StatusCode
StatusCode definition for legacy code.
Describes the API of the Region of Ineterest geometry.
SiSpacePointForSeed * newSpacePoint(EventData &data, const Trk::SpacePoint *const &sp) const
Create a SiSpacePointForSeed from the space point.
FloatProperty m_maxdImpactSSS
SiSpacePointsSeedMaker & operator=(const SiSpacePointsSeedMaker &)=delete
int m_maxPhiBinPPP
number of bins in phi
BooleanProperty m_useSeedConfirmation
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,...
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
bool isZCompatible(EventData &data, float Zv, float R, float T) const
static void erase(EventData &data)
MsgStream & dumpConditions(EventData &data, MsgStream &out) const
void production3SpSSS(EventData &data, std::array< std::vector< SiSpacePointForSeed * >::iterator, arraySizeNeighbourBins > &iter_bottomCands, std::array< std::vector< SiSpacePointForSeed * >::iterator, arraySizeNeighbourBins > &iter_endBottomCands, std::array< std::vector< SiSpacePointForSeed * >::iterator, arraySizeNeighbourBins > &iter_topCands, std::array< std::vector< SiSpacePointForSeed * >::iterator, arraySizeNeighbourBins > &iter_endTopCands, const int numberBottomCells, const int numberTopCells, int &nseed) const
: Seed production from space points.
@ arraySizePhiV
array size in phi for vertexing
SG::ReadHandleKey< SpacePointContainer > m_spacepointsStrip
bool isUsed(const PrepRawData &prd) const
does this PRD belong to at least one track?
ServiceHandle< ITHistSvc > m_thistSvc
Flag to write validation ntuples. Turned off by default.
float m_inverseBinSizePhiSSS
Gaudi::Property< bool > m_writeNtuple
Size
enum for array sizes Note that this stores the maximum capacities, the actual binnings do not always ...
IntegerProperty m_maxOneSizeSSS
FloatProperty m_maxdImpact
SG::ReadHandleKey< SpacePointOverlapCollection > m_spacepointsOverlap
virtual ~SiSpacePointsSeedMaker()=default
static void buildConnectionMapsVertex(std::array< int, arraySizePhiZV > &nNeighbourCells, std::array< std::array< int, arraySizeNeighbourBinsVertex >, arraySizePhiZV > &neighbourCells, int maxPhiBin)
Build maps for radius-azimuthal-Z sorted collections for Z Similar logic to the above,...
SiSpacePointsSeedMaker(const SiSpacePointsSeedMaker &)=delete
@ arraySizePhi
capacity of the 1D phi arrays
std::array< int, arraySizePhiZV > m_nNeighboursVertexPhiZ
float m_inverseBinSizePhiVertex
std::array< int, arraySizePhiZ > m_nNeighbourCellsBottomPPP
arrays associating bins to each other for SP formation
static void convertToBeamFrameWork(EventData &data, const Trk::SpacePoint *const &, float *)
std::array< std::array< int, arraySizeNeighbourBins >, arraySizePhiZ > m_neighbourCellsTopPPP
mapping of neighbour cells in the 2D phi-z binning to consider for the "top SP" search for central SP...
std::array< std::array< int, arraySizeNeighbourBins >, arraySizePhiZ > m_neighbourCellsTopSSS
std::array< int, arraySizePhiZ > m_nNeighbourCellsTopSSS
virtual void newEvent(const EventContext &ctx, EventData &data, int iteration) const override
float m_seedScoreThresholdSSSConfirmationSeed
max (score is assigned negative sign) score for SSS seeds with confirmation seed requirement.
IntegerProperty m_maxsize
void production3SpTrigger(EventData &, std::array< std::vector< SiSpacePointForSeed * >::iterator, arraySizeNeighbourBins > &, std::array< std::vector< SiSpacePointForSeed * >::iterator, arraySizeNeighbourBins > &, std::array< std::vector< SiSpacePointForSeed * >::iterator, arraySizeNeighbourBins > &, std::array< std::vector< SiSpacePointForSeed * >::iterator, arraySizeNeighbourBins > &, const int, const int, int &) const
as above, but for the trigger
void production3SpPPP(EventData &data, std::array< std::vector< SiSpacePointForSeed * >::iterator, arraySizeNeighbourBins > &iter_bottomCands, std::array< std::vector< SiSpacePointForSeed * >::iterator, arraySizeNeighbourBins > &iter_endBottomCands, std::array< std::vector< SiSpacePointForSeed * >::iterator, arraySizeNeighbourBins > &iter_topCands, std::array< std::vector< SiSpacePointForSeed * >::iterator, arraySizeNeighbourBins > &iter_endTopCands, const int numberBottomCells, const int numberTopCells, int &nseed) const
std::array< std::array< int, arraySizeNeighbourBinsVertex >, arraySizePhiZV > m_neighboursVertexPhiZ
void newOneSeed(EventData &data, SiSpacePointForSeed *&, SiSpacePointForSeed *&, SiSpacePointForSeed *&, float, float) const
virtual StatusCode finalize() override
float m_seedScoreThresholdPPPConfirmationSeed
Seed score thresholds defined based on the modifiers defined as configurables above.
void production2Sp(EventData &data) const
bool operator()(SiSpacePointForSeed *s1, SiSpacePointForSeed *s2)
static void fillSeeds(EventData &data)
void production3Sp(EventData &data) const
bool isConfirmedSeed(const SiSpacePointForSeed *bottomSP, const SiSpacePointForSeed *topSP, float quality) const
Helper method to determine if a seed is 'confirmed' - this means that a second seed exists with compa...
bool newVertices(EventData &data, const std::list< Trk::Vertex > &) const
std::array< std::array< int, arraySizeNeighbourBins >, arraySizePhiZ > m_neighbourCellsBottomPPP
mapping of neighbour cells in the 2D phi-z binning to consider for the "bottom SP" search for central...
BooleanProperty m_alwaysKeepConfirmedPixelSeeds
virtual StatusCode initialize() override
BooleanProperty m_useOverlap
void initializeEventData(EventData &data, const EventContext &ctx) const
BooleanProperty m_optimisePhiBinning
BooleanProperty m_fastTracking
void fillLists(EventData &data) const
@ arraySizePhiZ
capacity for the 2D phi-z arrays
void buildBeamFrameWork(EventData &data) const
void newOneSeedWithCurvaturesComparisonSSS(EventData &data, SiSpacePointForSeed *&SPb, SiSpacePointForSeed *&SP0, float Zob) const
This creates all possible seeds with the passed central and bottom SP, using all top SP candidates wh...
@ arraySizeNeighbourBins
array size to store neighbouring phi-z-regions in the seed finding
virtual MsgStream & dump(EventData &data, MsgStream &out) const override