|
ATLAS Offline Software
|
Go to the documentation of this file.
13 #ifndef SiSpacePointsSeedMaker_ATLxk_H
14 #define SiSpacePointsSeedMaker_ATLxk_H
25 #include "GaudiKernel/ITHistSvc.h"
60 public extends<AthAlgTool, ISiSpacePointsSeedMaker>
84 const std::vector<IdentifierHash>& vPixel,
const std::vector<IdentifierHash>& vSCT)
const override;
86 const std::vector<IdentifierHash>& vPixel,
const std::vector<IdentifierHash>& vSCT,
99 virtual void find3Sp(
const EventContext& ctx,
EventData&
data,
const std::list<Trk::Vertex>& lv)
const override;
103 virtual void find3Sp(
const EventContext& ctx,
EventData&
data,
const std::list<Trk::Vertex>& lv,
const double* zVertex)
const override;
107 virtual void findVSp(
const EventContext& ctx,
EventData&
data,
const std::list<Trk::Vertex>& lv)
const override;
170 "Name of the Magnetic Field conditions object key"};
175 BooleanProperty
m_pixel{
this,
"usePixel",
true};
176 BooleanProperty
m_sct{
this,
"useSCT",
true};
199 FloatProperty
m_drmax{
this,
"maxdRadius", 270.};
200 FloatProperty
m_zmin{
this,
"minZ", -250.};
201 FloatProperty
m_zmax{
this,
"maxZ", +250.};
211 FloatProperty
m_drmin{
this,
"mindRadius", 5.};
240 FloatProperty
m_maxScore{
this,
"maximumAcceptedSeedScore", 100.};
255 static constexpr
float m_COF{134*.05f*9};
426 const int numberBottomCells,
const int numberTopCells,
int& nseed,
const int zbin = -1)
const;
435 const int numberBottomCells,
const int numberTopCells,
int& nseed)
const;
480 Gaudi::Property<bool>
m_writeNtuple {
this,
"WriteNtuple",
false,
"Flag to write Validation Ntuples"};
526 (
const std::pair<float,InDet::SiSpacePointForSeed*>& i1,
527 const std::pair<float,InDet::SiSpacePointForSeed*>& i2)
529 return i1.first < i2.first;
539 if (!
d || !prd_to_track_map.
isUsed(*
d))
return false;
541 if (!
d || prd_to_track_map.
isUsed(*
d))
return true;
546 #endif // SiSpacePointsSeedMaker_ATLxk_H
const std::pair< const PrepRawData *, const PrepRawData * > & clusterList() const
return the pair of cluster pointers by reference
JetConstituentVector::iterator iterator
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_ATLxk(const SiSpacePointsSeedMaker_ATLxk &)=delete
virtual MsgStream & dump(EventData &data, MsgStream &out) const override
Dumps relevant information into the MsgStream.
float m_ipt2
inverse square of 90% of the pt min cut
float m_seedScoreThresholdSSSConfirmationSeed
max (score is assigned negative sign) score for SSS seeds with confirmation seed requirement.
char data[hepevt_bytes_allocation_ATLAS]
void newOneSeedWithCurvaturesComparison(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...
SG::ReadHandleKey< SpacePointContainer > m_spacepointsPixel
float m_inverseBinSizePhiVertex
as above but for vertex
static void convertToBeamFrameWork(EventData &data, const Trk::SpacePoint *const &sp, std::array< float, 3 > &r)
This method popualtes the r array with the space point's coordinates relative to the beam spot.
@ arraySizePhiZ
capacity for the 2D phi-z arrays
ServiceHandle< ITHistSvc > m_thistSvc
static void newSeed(EventData &data, SiSpacePointForSeed *&p1, SiSpacePointForSeed *&p2, float z)
FloatProperty m_seedScoreBonusPPP
Scoring modifiers applied when ranking seeds.
bool isZCompatible(EventData &data, const float Zv, const float R, const float T) const
float m_seedScoreThresholdPPPConfirmationSeed
Seed score thresholds defined based on the modifiers defined as configurables above.
SG::ReadHandleKey< SpacePointOverlapCollection > m_spacepointsOverlap
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
virtual void newEvent(const EventContext &ctx, EventData &data, int iteration) const override
Initialize tool for new event.
Gaudi::Property< bool > m_writeNtuple
Flag to write validation ntuples. Turned off by default.
std::array< std::array< int, arraySizeNeighbourBinsVertex >, arraySizePhiZV > m_neighboursVertexPhiZ
@ arraySizeNeighbourBins
array size to store neighbouring phi-z-regions in the seed finding
float m_ipt
inverse of 90% of the ptmin cut
IntegerProperty m_maxsizeSP
FloatProperty m_maxdImpactSSS
std::array< std::array< int, arraySizeNeighbourBins >, arraySizePhiZ > m_neighbourCellsTop
mapping of neighbour cells in the 2D phi-z binning to consider for the "top SP" search for central SP...
void fillSeeds(EventData &data) const
fills the seeds from the mapOneSeeds_Pro member into the l_seeds_Pro member of the data object,...
void buildBeamFrameWork(EventData &data) const
Initiate beam frame work for seed generator.
FloatProperty m_maxdImpactDecays
@ arraySizePhiV
array size in phi for vertexing
bool isConfirmedSeed(const InDet::SiSpacePointForSeed *bottomSP, const InDet::SiSpacePointForSeed *topSP, float quality) const
Helper method to determine if a seed is 'confirmed' - this means that a second seed exists with compa...
void production2Sp(EventData &data) const
void buildFrameWork()
prepare several data members with cached cut values, conversion factors, binnings,...
float m_inverseBinSizePhi
cache the inverse bin size in phi which we use - needed to evaluate phi bin locations
virtual void newRegion(const EventContext &ctx, SiSpacePointsSeedMakerEventData &data, const std::vector< IdentifierHash > &vPixel, const std::vector< IdentifierHash > &vSCT, const IRoiDescriptor &iRD) const override
virtual ~SiSpacePointsSeedMaker_ATLxk()=default
void newOneSeed(EventData &data, SiSpacePointForSeed *&p1, SiSpacePointForSeed *&p2, SiSpacePointForSeed *&p3, float z, float quality) const
This inserts a seed into the set of saved seeds.
void initializeEventData(EventData &data) const
float m_dzdrmax0
implicitly store eta cut
SiSpacePointsSeedMaker_ATLxk()=delete
static void erase(EventData &data)
@ arraySizeZ
capacity of the 1D z arrays
int m_maxPhiBin
number of bins in phi
void production3Sp(EventData &data) const
Top-level method for 3-SP seed production.
void findNext(EventData &data) const
This method is called within next() when we are out of vertices.
@ arraySizeZV
array size in z for vertexing
::StatusCode StatusCode
StatusCode definition for legacy code.
virtual void newRegion(const EventContext &ctx, EventData &data, const std::vector< IdentifierHash > &vPixel, const std::vector< IdentifierHash > &vSCT) const override
Initialize tool for new region.
Describes the API of the Region of Ineterest geometry.
static constexpr float m_COF
appears to be an approximated term related to multiple-scattering of particles traversing the ID duri...
std::string m_treeName ATLAS_THREAD_SAFE
FloatProperty m_maxScore
Maximum score to accept.
MsgStream & dumpConditions(EventData &data, MsgStream &out) const
Dumps conditions information into the MsgStream.
BooleanProperty m_optimisePhiBinning
This flag will make the buildFrameWork method determine an optimal phi binning of the search regions ...
SiSpacePointsSeedMaker_ATLxk & operator=(const SiSpacePointsSeedMaker_ATLxk &)=delete
bool isUsed(const PrepRawData &prd) const
does this PRD belong to at least one track?
BooleanProperty m_useOverlap
BooleanProperty m_alwaysKeepConfirmedStripSeeds
virtual const SiSpacePointsSeed * next(const EventContext &ctx, EventData &data) const override
This method will update the data.seedOutput member to be the next seed pointed at by the data....
void fillLists(EventData &data) const
this method populates the data object's "histograms" (implemented as nested vectors).
FloatProperty m_dImpactCutSlopeUnconfirmedPPP
@ arraySizePhiZV
array size in phi-Z 2D for the vertexing
FloatProperty m_seedScoreBonusSSS
static MsgStream & dumpEvent(EventData &data, MsgStream &out)
Dumps event information into the MsgStream.
FloatProperty m_maxdImpact
@ arraySizePhi
capacity of the 1D phi arrays
int m_nBinsR
number of bins in the radial coordinate
FloatProperty m_seedScoreBonusConfirmationSeed
BooleanProperty m_checketa
std::array< int, arraySizePhiZ > m_nNeighbourCellsTop
number of neighbouring phi-z bins to consider when looking for "top SP" candidates for each phi-z bin
IntegerProperty m_maxsize
static constexpr float m_radiusCutIBL
We detect IBL hits via the seed radial location.
virtual void writeNtuple(const SiSpacePointsSeed *seed, const Trk::Track *track, int seedType, long eventNumber) const override
This method is called by the SiSPSeededTrackFinder algorithm to fill ntuples for seeds seen by the al...
bool newVertices(EventData &data, const std::list< Trk::Vertex > &lV) const
This method updates the EventData based on the passed list of vertices.
std::array< int, arraySizePhiZ > m_nNeighbourCellsBottom
arrays associating bins to each other for SP formation
SiSpacePointForSeed * newSpacePoint(EventData &data, const Trk::SpacePoint *const &sp) const
Create a SiSpacePointForSeed from the space point.
IntegerProperty m_maxOneSizeSSS
maximum number of seeds to keep per central space point.
int m_maxBinPhiVertex
number of bins in phi for vertices
virtual bool getWriteNtupleBoolProperty() const override
float m_dzdrmin0
conversion factors and cached cut values
SG::ReadHandleKey< Trk::PRDtoTrackMap > m_prdToTrackMap
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...
std::array< std::array< int, arraySizeNeighbourBins >, arraySizePhiZ > m_neighbourCellsBottom
mapping of neighbour cells in the 2D phi-z binning to consider for the "bottom SP" search for central...
virtual StatusCode finalize() override
Finalize.
void production3SpTrigger(EventData &data, std::array< std::vector< InDet::SiSpacePointForSeed * >::iterator, arraySizeNeighbourBins > &rb, std::array< std::vector< InDet::SiSpacePointForSeed * >::iterator, arraySizeNeighbourBins > &rbe, std::array< std::vector< InDet::SiSpacePointForSeed * >::iterator, arraySizeNeighbourBins > &rt, std::array< std::vector< InDet::SiSpacePointForSeed * >::iterator, arraySizeNeighbourBins > &rte, const int numberBottomCells, const int numberTopCells, int &nseed) const
as above, but for the trigger
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,...
std::array< int, arraySizePhiZV > m_nNeighboursVertexPhiZ
BooleanProperty m_alwaysKeepConfirmedPixelSeeds
This flag will lead to all confirmed seeds (seeds where a second compatible seed with a different top...
IntegerProperty m_maxOneSizePPP
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCondObjInputKey
Read handle for conditions object to get the field cache.
virtual void find2Sp(EventData &data, const std::list< Trk::Vertex > &lv) const override
With two space points with or without vertex constraint.
@ arraySizeNeighbourBinsVertex
virtual StatusCode initialize() override
Initialisation.
FloatProperty m_fieldScale
SG::ReadHandleKey< SpacePointContainer > m_spacepointsSCT
Size
enum for array sizes Note that this stores the maximum capacities, the actual binnings do not always ...
bool isUsed(const Trk::SpacePoint *sp, const Trk::PRDtoTrackMap &prd_to_track_map) const
FloatProperty m_dImpactCutSlopeUnconfirmedSSS
these flags allow to dynamically tighten the d0 cut on non-confirmed seeds based on the penalty score...
TString m_treeFolder ATLAS_THREAD_SAFE