11#ifndef SiSpacePointsSeedMakerEventData_h
12#define SiSpacePointsSeedMakerEventData_h
144 std::vector<InDet::SiSpacePointForSeed*>
SP;
145 std::vector<ITk::SiSpacePointForSeed*>
ITkSP;
148 std::vector<float>
Zo;
149 std::vector<float>
Tz;
150 std::vector<float>
R;
151 std::vector<float>
U;
152 std::vector<float>
V;
153 std::vector<float>
X;
154 std::vector<float>
Y;
155 std::vector<float>
Er;
156 std::vector<FloatInt>
Tn;
166 std::vector<std::pair<float,InDet::SiSpacePointForSeed*>>
CmSp;
167 std::vector<std::pair<float,ITk::SiSpacePointForSeed*>>
ITkCmSp;
169 std::vector<std::vector<InDet::SiSpacePointForSeed*>>
r_Sorted;
170 std::vector<std::vector<InDet::SiSpacePointForSeed*>>
rf_Sorted;
171 std::vector<std::vector<InDet::SiSpacePointForSeed*>>
rfz_Sorted;
172 std::vector<std::vector<InDet::SiSpacePointForSeed*>>
rfzv_Sorted;
177 std::vector<InDet::SiSpacePointsSeed>
seeds;
218 template <
typename T>
222 poolList = std::list<T, SG::ArenaPoolSTLAllocator<T>>();
243 SiSpacePointsSeedPoolList::iterator
i_seed;
253 std::vector<InDet::SiSpacePointForSeed*>::iterator
rMin;
254 std::vector<ITk::SiSpacePointForSeed*>::iterator
ITk_rMin;
257 std::multimap<float,InDet::SiSpacePointsSeed*>
mapSeeds;
259 std::multimap<float,InDet::SiSpacePointsSeed*>::iterator
seed;
260 std::multimap<float,InDet::SiSpacePointsSeed*>::iterator
seede;
261 std::multimap<float,InDet::SiSpacePointsSeed*>::iterator
i_seed_map;
262 std::multimap<float,InDet::SiSpacePointsSeed*>::iterator
i_seede_map;
264 std::multimap<float,InDet::SiSpacePointsProSeed*>
seeds_Pro;
265 std::multimap<float,InDet::SiSpacePointsProSeed*>::iterator
seed_Pro;
268 std::multimap<float,ITk::SiSpacePointsProSeed*>
ITkSeeds;
277 size_t currSizeSP =
SP.size();
278 size_t newSizeSP = currSizeSP + increment;
280 size_t currSizeITkSP =
ITkSP.size();
281 size_t newSizeITkSP = currSizeITkSP + increment;
282 ITkSP.resize(newSizeITkSP,
nullptr);
283 X.resize(newSizeITkSP, 0.);
284 Y.resize(newSizeITkSP, 0.);
285 Tn.resize(newSizeITkSP);
286 SP.resize(newSizeSP,
nullptr);
288 SP.resize(newSizeSP,
nullptr);
290 R.resize(newSizeSP, 0.);
291 Tz.resize(newSizeSP, 0.);
292 Er.resize(newSizeSP, 0.);
293 U.resize(newSizeSP, 0.);
294 V.resize(newSizeSP, 0.);
296 Zo.resize(newSizeSP, 0.);
329 r_map.resize(sizeR, 0);
364 seeds.resize(maxsize+5);
STL-style allocator wrapper for ArenaPoolAllocator.
InDet::SiSpacePointsSeedMakerEventData holds event dependent data used by ISiSpacePointsSeedMaker.
std::vector< ITk::SiSpacePointsProSeed > ITkOneSeedsQ
std::multimap< float, InDet::SiSpacePointsSeed * > l_seeds_map
ToolType
enums to specify which SiSpacePointsSeedMaker owns the object.
@ Cosmic
SiSpacePointsSeedMaker_Cosmic.
@ LowMomentum
SiSpacePointsSeedMaker_LowMomentum.
@ ITk
ITk::SiSpacePointsSeedMaker.
@ ATLxk
SiSpacePointsSeedMaker_ATLxk.
@ HeavyIon
SiSpacePointsSeedMaker_HeavyIon.
@ BeamGas
SiSpacePointsSeedMaker_BeamGas.
std::vector< int > rfzv_map
InDet::SiSpacePointsSeed seedOutput
std::vector< std::unique_ptr< InDet::PixelSpacePoint > > v_PixelSpacePointForSeed
void initialize(ToolType type, int maxsizeSP, int maxOneSize, int maxsize, int sizeR, int sizeRF, int sizeRFZ, int sizeRFZV, bool checkEta)
Initialize data members based on ToolType enum.
float ipt2K
1 / (K * 0.9 * pt cut)², allows us to directly apply our pt cut on the (2R)² estimate we obtain from ...
std::vector< int > rf_map
std::vector< ITk::SiSpacePointsProSeed > ITkOneSeeds
SiSpacePointForSeedPoolList::iterator i_spforseed
ITkSiSpacePointsProSeedPoolList::iterator i_ITkSeedEnd
std::vector< const xAOD::SpacePoint * > v_ActsSpacePointForSeed
int nsaz
number of SP in the Phi-Z 2D binning
static void clearPoolList(std::list< T, SG::ArenaPoolSTLAllocator< T > > &poolList)
int r_first
points to the index of the highest occupied radius bin
std::multimap< float, InDet::SiSpacePointsSeed * >::iterator i_seed_map
int nrfz
also number of SP in the phi-Z 2D binning??
std::vector< InDet::SiSpacePointsProSeed > OneSeeds_Pro
std::vector< std::vector< ITk::SiSpacePointForSeed * > > rfz_ITkSorted
int seedPerSpCapacity
capacity for seeds from a single SP in the respective storage vector
float xbeam[4]
x,ax,ay,az - center and x-axis direction
std::vector< ITk::SiSpacePointForSeed * >::iterator ITk_rMin
bool keepAllConfirmedSeeds
Do we keep an unlimited number of confirmed seeds per central SP?
std::list< InDet::SiSpacePointsProSeed, SG::ArenaPoolSTLAllocator< InDet::SiSpacePointsProSeed > > SiSpacePointsProSeedPoolList
ITkSiSpacePointForSeedPoolList::iterator i_ITkSpacePointForSeed
bool checketa
whether to apply eta cuts
std::vector< std::pair< float, ITk::SiSpacePointForSeed * > > ITkCmSp
std::multimap< float, InDet::SiSpacePointsSeed * >::iterator i_seede_map
std::map< std::pair< std::size_t, std::size_t >, std::unique_ptr< InDet::SCT_SpacePoint > > v_StripSpacePointForSeed
std::vector< int > rfz_map
number of SP in each bin of the 2D phi-z map
std::vector< InDet::SiSpacePointsSeed > OneSeeds
std::vector< float > Er
error component on 1/tan(theta)==dz/dr from the position errors on the space-points
float ybeam[4]
y,ax,ay,az - center and y-axis direction
std::vector< float > U
transformed U coordinate (x/(x²+y²)) in frame around central SP
std::multimap< float, InDet::SiSpacePointsSeed * > mapSeeds
std::multimap< float, InDet::SiSpacePointsProSeed * > mapOneSeeds_Pro
int ns
total number of SP that we sorted into our r-binned vector
SiSpacePointForSeedPoolList l_spforseed
list of all space points considered for seed building.
std::list< ITk::SiSpacePointForSeed, SG::ArenaPoolSTLAllocator< ITk::SiSpacePointForSeed > > ITkSiSpacePointForSeedPoolList
float ipt2C
inverse of 90% of the pt cut, squared, multiplied by a magic conversion factor
std::vector< std::pair< float, InDet::SiSpacePointForSeed * > > CmSp
std::set< float > l_vertex
std::vector< ITk::SiSpacePointForSeed > v_PixelSiSpacePointForSeed
bool isvertex
whether or not we contain a non-empty vertex list
std::vector< InDet::SiSpacePointForSeed * >::iterator rMin
std::vector< float > V
transformed V coordinate (y/(x²+y²)) in frame around central SP
std::multimap< float, ITk::SiSpacePointsProSeed * > ITkMapOneSeeds
SiSpacePointsProSeedPoolList::iterator i_seede_Pro
float K
conversion from pT in MeV to twice the circle radius in the transverse plane in mm
std::vector< std::vector< InDet::SiSpacePointForSeed * > > rfz_Sorted
vector of space points in each bin of the 2D phi-z binning
std::multimap< float, InDet::SiSpacePointsProSeed * >::iterator seed_Pro
std::vector< float > Zo
The following are parameters characterising individual space points within a seed (relative to the ce...
std::multimap< float, InDet::SiSpacePointsSeed * >::iterator seede
bool endlist
indicate if we are done with the seed search for an event.
SiSpacePointsSeedPoolList l_seeds
int fNmin
starting phi bin for looping
int mode
operation mode (SP per seed etc)
int nr
this keeps track of the number of occupied radial bins (so it is typically less than the total number...
std::vector< int > rfz_index
2D index in the 2D phi-z map of each SP in the r-sored vector
bool initialized
has the data object been initialized?
std::vector< ITk::SiSpacePointForSeed * > ITkSP
std::vector< InDet::SiSpacePointsSeed > seeds
std::vector< std::vector< InDet::SiSpacePointForSeed * > > rf_Sorted
int iteration
iteration currently being run
std::list< ITk::SiSpacePointsProSeed, SG::ArenaPoolSTLAllocator< ITk::SiSpacePointsProSeed > > ITkSiSpacePointsProSeedPoolList
std::vector< float > R
inverse distance to the central space point
std::vector< std::vector< InDet::SiSpacePointForSeed * > > r_Sorted
vector of space points in each bin of the 1D radial binning
std::vector< int > rfzv_index
int nspoint
number of required SP
std::list< InDet::SiSpacePointForSeed, SG::ArenaPoolSTLAllocator< InDet::SiSpacePointForSeed > > SiSpacePointForSeedPoolList
We want to use a pool block allocator.
int state
state info - 0 seems to mean cuts aren ot configured
SiSpacePointsProSeedPoolList::iterator i_seed_Pro
ITkSiSpacePointForSeedPoolList l_ITkSpacePointForSeed
std::vector< int > r_index
std::vector< std::vector< ITk::SiSpacePointForSeed * > > rfzv_ITkSorted
ITkSiSpacePointsProSeedPoolList::iterator i_ITkSeed
SiSpacePointsProSeedPoolList l_seeds_Pro
std::vector< std::vector< InDet::SiSpacePointForSeed * > > rfzv_Sorted
std::list< InDet::SiSpacePointsSeed, SG::ArenaPoolSTLAllocator< InDet::SiSpacePointsSeed > > SiSpacePointsSeedPoolList
SiSpacePointsSeedPoolList::iterator i_seede
int maxSeedsPerSP
Number of Seeds allowed to be built per central Seed.
std::vector< float > Tz
1/tan(theta) == dz/dr estimate from 2 points
ITkSiSpacePointsProSeedPoolList i_ITkSeeds
std::multimap< float, InDet::SiSpacePointsProSeed * > seeds_Pro
float zbeam[4]
z,ax,ay,az - center and z-axis direction
std::vector< std::vector< ITk::SiSpacePointForSeed * > > r_ITkSorted
std::multimap< float, InDet::SiSpacePointsSeed * >::iterator seed
void resizeSPCont(size_t increment=50, ToolType type=ToolType::ATLxk)
allow to resize the space-point container on-the-fly in case more space is needed.
SiSpacePointsSeedPoolList::iterator i_seed
std::vector< int > rf_index
std::vector< FloatInt > Tn
std::vector< InDet::SiSpacePointForSeed * > SP
space points to consider for the current seed candidate
std::multimap< float, ITk::SiSpacePointsProSeed * > ITkMapOneSeedsQ
std::multimap< float, ITk::SiSpacePointsProSeed * >::iterator ITkSeedIterator
std::multimap< float, InDet::SiSpacePointsSeed * > mapOneSeeds
bool trigger
are we running in trigger mode?
std::multimap< float, ITk::SiSpacePointsProSeed * > ITkSeeds
STL-style allocator wrapper for ArenaPoolAllocator.