|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef TRIGINDETPATTRECOTOOLS_TRIGTRACKSEEDGENERATOR_H
6 #define TRIGINDETPATTRECOTOOLS_TRIGTRACKSEEDGENERATOR_H
38 return p1->m_pSP->z()<
p2->m_pSP->z();
44 return p1->m_pSP->r()<
p2->m_pSP->r();
50 return p1->m_pSP->r()>
p2->m_pSP->r();
56 return z <
p->m_pSP->z();
62 return p->m_pSP->z() <
z;
68 return r <
p->m_pSP->r();
74 return r <
p->m_pSP->r();
80 return p->m_pSP->r() <
r;
86 return p->m_pSP->r() <
r;
92 std::vector<const INDEXED_SP*>
d;
100 if(nPhiSlices == 2) {
109 for(
int phiIdx=0;phiIdx<nPhiSlices;phiIdx++) {
120 for(
int i=0;
i<3;
i++) {
129 for(
int i=0;
i<3;
i++) {
148 for(
int i=0;
i<3;
i++) {
156 if((*it).empty())
continue;
161 if((*it).empty())
continue;
169 if((*it).empty())
continue;
177 if((*it).empty())
continue;
208 m_layers[layerId].addSpacePoint(phiIdx,
p);
213 if((*it).m_nSP==0)
continue;
221 if((*it).m_nSP==0)
continue;
222 (*it).sortSpacePoints(layerGeometry[layerId].
m_type==0);
229 if((*it).m_nSP==0)
continue;
230 (*it).sortSpacePoints(layerGeometry[layerId].
m_type==0, layerGeometry[layerId].m_refCoord > 0);
242 InternalSoA() :
m_spi(0),
m_spo(0),
m_r(0),
m_u(0),
m_v(0),
m_t(0),
m_ti(0),
m_to(0),
m_tCov(0),
m_sorted_sp(0),
280 m_r =
new double[spSize];
281 m_u =
new double[spSize];
282 m_v =
new double[spSize];
283 m_t =
new double[spSize];
284 m_ti =
new double[spSize];
285 m_to =
new double[spSize];
286 m_tCov =
new double[spSize];
308 typedef std::pair<std::vector<const INDEXED_SP*>::const_iterator, std::vector<const INDEXED_SP*>::const_iterator>
SP_RANGE;
323 void getSeeds(std::vector<TrigInDetTriplet>&);
358 #endif // not TRIGINDETPATTRECOTOOLS_TRIGTRACKSEEDGENERATOR_H
JetConstituentVector::iterator iterator
std::vector< L_PHI_SECTOR > m_layers
std::vector< std::vector< const INDEXED_SP * > > m_phiSlices
std::vector< TrigInDetTriplet > m_triplets
bool operator()(float r, const INDEXED_SP *const &p) const
bool validateLayerPairNew(int, int, float, float)
TrigTrackSeedGenerator(const TrigTrackSeedGenerator &)=delete
const LPhiSector & operator=(const LPhiSector &ps)
class TrigTrackSeedGenerator TRIG_TRACK_SEED_GENERATOR
void createTripletsNew(const TrigSiSpacePointBase *, int, int, std::vector< TrigInDetTriplet > &, const IRoiDescriptor *)
std::pair< std::vector< const INDEXED_SP * >::const_iterator, std::vector< const INDEXED_SP * >::const_iterator > SP_RANGE
struct InternalSoA INTERNAL_SOA
bool operator()(const INDEXED_SP *const &p, float z) const
bool operator()(const INDEXED_SP *const &p, float r) const
bool operator()(float z, const INDEXED_SP *const &p) const
void sortSpacePoints(bool isBarrel, bool isPositive)
std::vector< INDEXED_SP > m_spStorage
const TrigSiSpacePointBase * m_pSP
void sortSpacePoints(const std::vector< TrigInDetSiLayer > &layerGeometry)
TrigTrackSeedGenerator(const TrigCombinatorialSettings &)
bool getSpacepointRange(int, const std::vector< const INDEXED_SP * > &, SP_RANGE &)
IndexedSP(const IndexedSP &isp)
const TrigCombinatorialSettings & m_settings
int processSpacepointRange(int, const INDEXED_SP *, bool, const SP_RANGE &, const IRoiDescriptor *)
struct LPhi_Storage L_PHI_STORAGE
void loadSpacePoints(const std::vector< TrigSiSpacePointBase > &)
const TrigSiSpacePointBase ** m_spi
void sortSpacePoints(bool isBarrel)
std::vector< int > m_outerMarkers
bool operator()(const INDEXED_SP *const &p, float r) const
void set(const TrigSiSpacePointBase *p, int idx)
void addSpacePoint(int phiIndex, const INDEXED_SP *p)
const TrigSiSpacePointBase ** m_sorted_sp
bool operator()(const INDEXED_SP *p1, const INDEXED_SP *p2)
bool operator()(float r, const INDEXED_SP *const &p) const
double m_maxDeltaRadiusConf
int processSpacepointRangeZv(const INDEXED_SP *, bool, const SP_RANGE &, bool, const float &, const float &)
Describes the API of the Region of Ineterest geometry.
const TrigSiSpacePointBase ** m_spo
~TrigTrackSeedGenerator()
std::vector< int > m_threeIndices[3]
LPhiSector(int nPhiSlices)
void getSeeds(std::vector< TrigInDetTriplet > &)
struct IndexedSP INDEXED_SP
bool operator()(const INDEXED_SP *p1, const INDEXED_SP *p2)
struct LPhiSector L_PHI_SECTOR
bool operator()(const INDEXED_SP *p1, const INDEXED_SP *p2)
void createTriplets(const TrigSiSpacePointBase *, int, int, std::vector< TrigInDetTriplet > &, const IRoiDescriptor *)
std::vector< float > m_maxTau
LPhi_Storage(int nPhiSectors, int nLayers)
std::vector< std::vector< const INDEXED_SP * > > m_phiThreeSlices
void createSeeds(const IRoiDescriptor *)
void resize(const int spSize)
std::vector< int > m_innerMarkers
unsigned int phiIndex(float phi, float binsize)
calculate phi index for a given phi
void addSpacePoint(int phiIdx, int layerId, const INDEXED_SP *p)
IndexedSP(const TrigSiSpacePointBase *p, int idx)
void createConfirmedTriplets(const TrigSiSpacePointBase *, int, int, std::vector< TrigInDetTriplet > &, const IRoiDescriptor *)
LPhiSector(const LPhiSector &ps)
void storeTriplets(std::vector< TrigInDetTriplet > &)
void sortSpacePoints2(const std::vector< TrigInDetSiLayer > &layerGeometry)
std::vector< float > m_minTau
TrigTrackSeedGenerator & operator=(const TrigTrackSeedGenerator &)=delete