  | 
  
    ATLAS Offline Software
    
   | 
 
 
 
 
#include <TrigTrackSeedGenerator.h>
 | 
| bool  | validateLayerPairNew (int, int, float, float) | 
|   | 
| bool  | getSpacepointRange (int, const std::vector< const INDEXED_SP * > &, SP_RANGE &) | 
|   | 
| int  | processSpacepointRange (int, const INDEXED_SP *, bool, const SP_RANGE &, const IRoiDescriptor *) | 
|   | 
| int  | processSpacepointRangeZv (const INDEXED_SP *, bool, const SP_RANGE &, bool, const float &, const float &) | 
|   | 
| void  | createTriplets (const TrigSiSpacePointBase *, int, int, std::vector< TrigInDetTriplet > &, const IRoiDescriptor *) | 
|   | 
| void  | createTripletsNew (const TrigSiSpacePointBase *, int, int, std::vector< TrigInDetTriplet > &, const IRoiDescriptor *) | 
|   | 
| void  | createConfirmedTriplets (const TrigSiSpacePointBase *, int, int, std::vector< TrigInDetTriplet > &, const IRoiDescriptor *) | 
|   | 
| void  | storeTriplets (std::vector< TrigInDetTriplet > &) | 
|   | 
Definition at line 310 of file TrigTrackSeedGenerator.h.
 
◆ TrigTrackSeedGenerator() [1/2]
◆ ~TrigTrackSeedGenerator()
      
        
          | TrigTrackSeedGenerator::~TrigTrackSeedGenerator  | 
          ( | 
           | ) | 
           | 
        
      
 
 
◆ TrigTrackSeedGenerator() [2/2]
◆ createConfirmedTriplets()
prefer std::fabs here for explicit double precision
Definition at line 1030 of file TrigTrackSeedGenerator.cxx.
 1037     ProtoSeed(
const ProtoSeed& 
ps) : m_sp(
ps.m_sp), m_curv(
ps.m_curv), m_Q(
ps.m_Q), m_confirmed(
ps.m_confirmed) {};
 
 1043   if(nInner==0 || nOuter==0) 
return;
 
 1049   int nSP = nInner + nOuter;
 
 1051   const double pS_r = pS->
r();
 
 1052   const double pS_x = pS->
x();
 
 1053   const double pS_y = pS->
y();
 
 1054   const double pS_dr = pS->
dr();
 
 1055   const double pS_dz = pS->
dz();
 
 1056   const double cosA = pS_x/pS_r;
 
 1057   const double sinA = pS_y/pS_r;
 
 1058   const double covZ = pS_dz*pS_dz;
 
 1059   const double covR = pS_dr*pS_dr;
 
 1060   const bool isPixel = pS->
isPixel();
 
 1072     const double dx = pSP->
x() - pS_x;
 
 1073     const double dy = pSP->
y() - pS_y;
 
 1074     const double R2inv = 1.0/(
dx*
dx+
dy*
dy);
 
 1075     const double Rinv = std::sqrt(R2inv);
 
 1076     const double xn = 
dx*cosA + 
dy*sinA;
 
 1077     const double yn =-
dx*sinA + 
dy*cosA;
 
 1078     const double dz = pSP->
z() - pS->
z(); 
 
 1079     const double t = Rinv*dz;
 
 1089     const double covZP = pSP->
dz()*pSP->
dz();
 
 1090     const double covRP = pSP->
dr()*pSP->
dr();
 
 1096   for(
int k=0;
k<nOuter;
k++,
idx++) {
 
 1101     const double dx = pSP->
x() - pS_x;
 
 1102     const double dy = pSP->
y() - pS_y;
 
 1103     const double R2inv = 1.0/(
dx*
dx+
dy*
dy);
 
 1104     const double Rinv = std::sqrt(R2inv);
 
 1105     const double xn = 
dx*cosA + 
dy*sinA;
 
 1106     const double yn =-
dx*sinA + 
dy*cosA;
 
 1107     const double dz = -pSP->
z() + pS->
z(); 
 
 1108     const double t = Rinv*dz;
 
 1118     const double covZP = pSP->
dz()*pSP->
dz();
 
 1119     const double covRP = pSP->
dr()*pSP->
dr();
 
 1127   for(
int innIdx=0;innIdx<nInner;innIdx++) {
 
 1131     const double r_inn = 
m_SoA.
m_r[innIdx];
 
 1132     const double t_inn = 
m_SoA.
m_t[innIdx];
 
 1133     const double v_inn = 
m_SoA.
m_v[innIdx];
 
 1134     const double u_inn = 
m_SoA.
m_u[innIdx];
 
 1136     const double dCov = 
m_CovMS*(1+t_inn*t_inn);
 
 1138     std::vector<ProtoSeed> vPro;
 
 1141     for(
int outIdx=nInner;outIdx<nSP;outIdx++) {
 
 1144       const double t_out = 
m_SoA.
m_t[outIdx];
 
 1146       const double dt2 = 
std::pow((t_inn - t_out), 2)*(1.0/9.0);
 
 1149       double covdt = (t_inn*t_out*covR + covZ);
 
 1150       covdt       *= 2*r_inn*
m_SoA.
m_r[outIdx];
 
 1153       if(dt2 > covdt+dCov) 
continue;
 
 1157       const double du = 
m_SoA.
m_u[outIdx] - u_inn;
 
 1158       if(du==0.0) 
continue;
 
 1159       const double A = (
m_SoA.
m_v[outIdx] - v_inn)/du;
 
 1160       const double B = v_inn - 
A*u_inn;
 
 1161       const double R_squ = (1 + 
A*
A)/(
B*
B);
 
 1169       if(dt2 > covdt+
frac*dCov) 
continue;
 
 1173       const double fabs_d0 = std::fabs(pS_r*(
B*pS_r - 
A));
 
 1188     if (isOuterPixel && (bestQ < Q)) 
continue;
 
 1194         const double uc = 2*
B*pS_r - 
A;
 
 1195         const double phi0 = atan2(sinA - uc*cosA, cosA + uc*sinA);
 
 1204       const double Curv  = 
B/std::sqrt(1+
A*
A);
 
 1207       bool isConfirmed = 
false;
 
 1209       for(
auto& 
ps : vPro) {
 
 1210     double diffC = 1 - Curv/
ps.m_curv;
 
 1212       ps.m_confirmed = 
true;
 
 1221       vPro.emplace_back(ProtoSeed(
m_SoA.
m_spo[outIdx-nInner], Curv, Q, isConfirmed));
 
 1225     for(
const auto& 
ps : vPro) {
 
 1226       if(!
ps.m_confirmed) 
continue;
 
 1235               return A.Q() < B.Q();
 
 1238       double QL = 
output.back().Q();
 
 
 
 
◆ createSeeds() [1/2]
Definition at line 119 of file TrigTrackSeedGenerator.cxx.
  137   for(
int layerI=1;layerI<nLayers;layerI++) {
 
  140     if(
S.m_nSP==0) 
continue;
 
  146       for(
auto spm : 
S.m_phiSlices[phiI]) {
 
  148     float zm = spm->m_pSP->z();
 
  149     float rm = spm->m_pSP->r();
 
  157     for(
int layerJ=0;layerJ<nLayers;layerJ++) {
 
  162       if(checkPSS) 
continue;
 
  164       if((!isSct) && (!isPixel2)) {
 
  173       const std::vector<const INDEXED_SP*>& spVec = 
m_pStore->
m_layers[layerJ].m_phiThreeSlices.at(phiI);
 
  175       if(spVec.empty()) 
continue;
 
  193       std::vector<TrigInDetTriplet> tripletVec;
 
 
 
 
◆ createSeeds() [2/2]
Definition at line 209 of file TrigTrackSeedGenerator.cxx.
  213   if(vZv.empty()) 
return;
 
  218   float roiZMinus = -225;
 
  219   float roiZPlus  = 225;
 
  224   for(
int layerI=1;layerI<nLayers;layerI++) {
 
  227     if(
S.m_nSP==0) 
continue;
 
  236     for(
auto spm : 
S.m_phiSlices[phiI]) {
 
  238       float zm = spm->m_pSP->z();
 
  239       float rm = spm->m_pSP->r();
 
  242       float maxTau = 100.0;
 
  249       std::vector<TrigInDetTriplet> tripletVec;
 
  251       for(
const auto zVertex : vZv) {
 
  261         for(
int layerJ=0;layerJ<nLayers;layerJ++) {
 
  266         if(isSct && isPixel2) 
continue;
 
  267         if((!isSct) && (!isPixel2)) 
continue;
 
  275         const std::vector<const INDEXED_SP*>& spVec = 
m_pStore->
m_layers[layerJ].m_phiThreeSlices.at(phiI);
 
  277         if(spVec.empty()) 
continue;
 
 
 
 
◆ createTriplets()
NB: the EDM classes store variuables as floats, therefore the double to float conversion looses precision and as float(M_PI))>M_PI in the 7th decimal place we get problems at the pi boundary prefer std::fabs here for explicit double precision
Definition at line 610 of file TrigTrackSeedGenerator.cxx.
  613   if(nInner==0 || nOuter==0) 
return;
 
  621   int nSP = nInner + nOuter;
 
  623   const double pS_r = pS->
r();
 
  624   const double pS_x = pS->
x();
 
  625   const double pS_y = pS->
y();
 
  626   const double pS_dr = pS->
dr();
 
  627   const double pS_dz = pS->
dz();
 
  628   const double cosA = pS_x/pS_r;
 
  629   const double sinA = pS_y/pS_r;
 
  630   const double covZ = pS_dz*pS_dz;
 
  631   const double covR = pS_dr*pS_dr;
 
  632   const bool isPixel = pS->
isPixel();
 
  640     const double dx = pSP->
x() - pS_x;
 
  641     const double dy = pSP->
y() - pS_y;
 
  642     const double R2inv = 1.0/(
dx*
dx+
dy*
dy);
 
  643     const double Rinv = std::sqrt(R2inv);
 
  644     const double xn = 
dx*cosA + 
dy*sinA;
 
  645     const double yn =-
dx*sinA + 
dy*cosA;
 
  646     const double dz = pSP->
z() - pS->
z(); 
 
  647     const double t = Rinv*dz;
 
  657     const double covZP = pSP->
dz()*pSP->
dz();
 
  658     const double covRP = pSP->
dr()*pSP->
dr();
 
  664   for(
int k=0;
k<nOuter;
k++,
idx++) {
 
  669     const double dx = pSP->
x() - pS_x;
 
  670     const double dy = pSP->
y() - pS_y;
 
  671     const double R2inv = 1.0/(
dx*
dx+
dy*
dy);
 
  672     const double Rinv = std::sqrt(R2inv);
 
  673     const double xn = 
dx*cosA + 
dy*sinA;
 
  674     const double yn =-
dx*sinA + 
dy*cosA;
 
  675     const double dz = -pSP->
z() + pS->
z(); 
 
  676     const double t = Rinv*dz;
 
  686     const double covZP = pSP->
dz()*pSP->
dz();
 
  687     const double covRP = pSP->
dr()*pSP->
dr();
 
  695   for(
int innIdx=0;innIdx<nInner;innIdx++) {
 
  699     const double r_inn = 
m_SoA.
m_r[innIdx];
 
  700     const double t_inn = 
m_SoA.
m_t[innIdx];
 
  701     const double v_inn = 
m_SoA.
m_v[innIdx];
 
  702     const double u_inn = 
m_SoA.
m_u[innIdx];
 
  704     const double dCov = 
m_CovMS*(1+t_inn*t_inn);
 
  707     for(
int outIdx=nInner;outIdx<nSP;outIdx++) {
 
  710       const double t_out = 
m_SoA.
m_t[outIdx];
 
  714       const double dt2 = 
std::pow((t_inn - t_out), 2)*(1.0/9.0);
 
  717       double covdt = (t_inn*t_out*covR + covZ);
 
  721       if(dt2 > covdt+dCov) 
continue;
 
  725       const double du = 
m_SoA.
m_u[outIdx] - u_inn;
 
  726       if(du==0.0) 
continue;
 
  727       const double A = (
m_SoA.
m_v[outIdx] - v_inn)/du;
 
  728       const double B = v_inn - 
A*u_inn;
 
  729       const double R_squ = (1 + 
A*
A)/(
B*
B);
 
  736       if(dt2 > covdt+
frac*dCov) 
continue;
 
  740       const double fabs_d0 = std::fabs(pS_r*(
B*pS_r - 
A));
 
  751         const double uc = 2*
B*pS_r - 
A;
 
  752         const double phi0 = atan2(sinA - uc*cosA, cosA + uc*sinA);
 
  770               return A.Q() > B.Q();
 
  775       if( Q >= (*it).Q()) {
 
 
 
 
◆ createTripletsNew()
prefer std::fabs here for explicit double precision
Definition at line 786 of file TrigTrackSeedGenerator.cxx.
  789   if(nInner==0 || nOuter==0) 
return;
 
  795   int nSP = nInner + nOuter;
 
  833   for(
int k=0;
k<nL;
k++) {
 
  844     double min_el=1000.0;
 
  846     for(
int k=0;
k<nL;
k++) {
 
  847       if(nleft[
k]==0) 
continue;
 
  857     int i_min = 
iter[k_min];
 
  871     if(nleft[k_min]==0) {
 
  878   const double pS_r = pS->
r();
 
  879   const double pS_x = pS->
x();
 
  880   const double pS_y = pS->
y();
 
  882   const double pS_dr = pS->
dr();
 
  883   const double pS_dz = pS->
dz();
 
  884   const double cosA = pS_x/pS_r;
 
  885   const double sinA = pS_y/pS_r;
 
  886   const double covZ = pS_dz*pS_dz;
 
  887   const double covR = pS_dr*pS_dr;
 
  888   const bool isPixel = pS->
isPixel();
 
  896     const double dx = pSP->
x() - pS_x;
 
  897     const double dy = pSP->
y() - pS_y;
 
  898     const double R2inv = 1.0/(
dx*
dx+
dy*
dy);
 
  899     const double Rinv = std::sqrt(R2inv);
 
  900     const double xn = 
dx*cosA + 
dy*sinA;
 
  901     const double yn =-
dx*sinA + 
dy*cosA;
 
  904     const double t = Rinv*dz;
 
  914     const double covZP = pSP->
dz()*pSP->
dz();
 
  915     const double covRP = pSP->
dr()*pSP->
dr();
 
  933     const double r_inn = 
m_SoA.
m_r[iter1];
 
  934     const double t_inn = 
m_SoA.
m_t[iter1];
 
  935     const double v_inn = 
m_SoA.
m_v[iter1];
 
  936     const double u_inn = 
m_SoA.
m_u[iter1];
 
  938     const double dCov = 
m_CovMS*(1+t_inn*t_inn);
 
  940     for(
int iter2=iter1+1;iter2<nSP;iter2++) {
 
  947       const double t_out = 
m_SoA.
m_t[iter2];
 
  949       const double dt2 = 
std::pow((t_inn - t_out), 2)*(1.0/9.0);
 
  951       double covdt = (t_inn*t_out*covR + covZ);
 
  955       if(dt2 > covdt+dCov) 
continue;
 
  959       const double du = 
m_SoA.
m_u[iter2] - u_inn;
 
  960       if(du==0.0) 
continue;
 
  962       const double A = (
m_SoA.
m_v[iter2] - v_inn)/du;
 
  964       const double B = (1-type1)*(v_inn - 
A*u_inn) + type1*(
m_SoA.
m_v[iter2] - 
A*
m_SoA.
m_u[iter2]);
 
  965       const double R_squ = (1 + 
A*
A)/(
B*
B);
 
  972       if(dt2 > covdt+
frac*dCov) 
continue;
 
  975       const double B_pS_r = 
B*pS_r;
 
  976       const double fabs_d0 = std::fabs(pS_r*(B_pS_r - 
A));
 
  983       if (isSCT && isPixel) {
 
  991         double uc = 2*B_pS_r - 
A;
 
  993         const double phi0 = atan2(sinA - uc*cosA, cosA + uc*sinA);
 
 1002       const double Q = fabs_d0*fabs_d0;
 
 1007             return A.Q() > B.Q();
 
 1012         if( Q >= (*it).Q()) {
 
 1022       output.emplace_back(*pSPI, *pS, *pSPO, Q);
 
 
 
 
◆ getSeeds()
◆ getSpacepointRange()
Definition at line 434 of file TrigTrackSeedGenerator.cxx.
  439   float minSpCoord = (
isBarrel) ? (*spVec.begin())->m_pSP->z() : (*spVec.begin())->m_pSP->r();
 
  440   float maxSpCoord = (
isBarrel) ? (*spVec.rbegin())->m_pSP->z() : (*spVec.rbegin())->m_pSP->r();
 
  443     float tmp = minSpCoord;minSpCoord = maxSpCoord;maxSpCoord = 
tmp;
 
  451   std::vector<const INDEXED_SP*>::const_iterator it1 = spVec.end();
 
  452   std::vector<const INDEXED_SP*>::const_iterator it2 = spVec.end();
 
  471   delta.first = it1;delta.second = it2;
 
 
 
 
◆ loadSpacePoints()
Definition at line 52 of file TrigTrackSeedGenerator.cxx.
   67   for(std::vector<TrigSiSpacePointBase>::const_iterator 
it = vSP.begin();
it != vSP.end();++
it) {
 
   68     int layerId = (*it).layer();
 
   73     bool updateTauRange = 
false;
 
   88       updateTauRange = LUT.
getValidRange(cluster_width, minTau, maxTau);
 
   97     else if (phiIdx < 0) {
 
 
 
 
◆ operator=()
◆ processSpacepointRange()
Definition at line 475 of file TrigTrackSeedGenerator.cxx.
  483   float rm = spm->
m_pSP->
r();
 
  484   float zm = spm->
m_pSP->
z();
 
  486   float dZ = refCoord-zm;
 
  487   float dR_i = 
isBarrel ? 1.0/(refCoord-rm) : 1.0;
 
  491   for(std::vector<const INDEXED_SP*>::const_iterator spIt=delta.first; spIt!=delta.second; ++spIt) {
 
  493     float zsp = (*spIt)->m_pSP->z();
 
  494     float rsp = (*spIt)->m_pSP->r();
 
  501       if(isPixel && !(*spIt)->m_pSP->isPixel()) {
 
  510     if (
dr<0 && checkPSS) 
continue;
 
  514     float ftau = std::fabs(tau);
 
  515     if (ftau > 7.41) 
continue;
 
  517     if(isPixel && SeedML > 0) {
 
  522     float z0  = zm - rm*tau;
 
  530       if(
isBarrel && (*spIt)->m_pSP->isPixel()) {
 
  531     if(SeedML == 3 || SeedML == 4) {
 
  532       if(ftau < 
m_minTau[(*spIt)->m_idx] || ftau > 
m_maxTau[(*spIt)->m_idx]) 
continue;
 
  540       if(
isBarrel && (*spIt)->m_pSP->isPixel()) {
 
  541     if(SeedML == 2 || SeedML == 4) {
 
  542       if(ftau < 
m_minTau[(*spIt)->m_idx] || ftau > 
m_maxTau[(*spIt)->m_idx]) 
continue;
 
 
 
 
◆ processSpacepointRangeZv()
Definition at line 555 of file TrigTrackSeedGenerator.cxx.
  559   float rm = spm->
m_pSP->
r();
 
  560   float zm = spm->
m_pSP->
z();
 
  564   for(std::vector<const INDEXED_SP*>::const_iterator spIt=delta.first; spIt!=delta.second; ++spIt) {
 
  566     float rsp = (*spIt)->m_pSP->r(); 
 
  567     float zsp = (*spIt)->m_pSP->z();  
 
  575     if (
dr<0 && checkPSS) 
continue;
 
  579     float ftau = std::fabs(tau);
 
  581     if (ftau > 7.41) 
continue;
 
  584       if(ftau < minTau || ftau > maxTau) 
continue;
 
  588       if((*spIt)->m_pSP->isPixel()) {
 
  589         if(SeedML == 3 || SeedML == 4) {
 
  590       if(ftau < 
m_minTau[(*spIt)->m_idx] || ftau > 
m_maxTau[(*spIt)->m_idx]) 
continue;
 
  596       if((*spIt)->m_pSP->isPixel()) {
 
  597     if(SeedML == 2 || SeedML == 4) {
 
  598       if(ftau < 
m_minTau[(*spIt)->m_idx] || ftau > 
m_maxTau[(*spIt)->m_idx]) 
continue;
 
 
 
 
◆ storeTriplets()
  
  
      
        
          | void TrigTrackSeedGenerator::storeTriplets  | 
          ( | 
          std::vector< TrigInDetTriplet > &  | 
          tripletVec | ) | 
           | 
         
       
   | 
  
private   | 
  
 
 
◆ validateLayerPairNew()
  
  
      
        
          | bool TrigTrackSeedGenerator::validateLayerPairNew  | 
          ( | 
          int  | 
          layerI,  | 
         
        
           | 
           | 
          int  | 
          layerJ,  | 
         
        
           | 
           | 
          float  | 
          rm,  | 
         
        
           | 
           | 
          float  | 
          zm  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
private   | 
  
 
Definition at line 299 of file TrigTrackSeedGenerator.cxx.
  301   const float deltaRefCoord = 5.0;
 
  303   if(layerJ==layerI) 
return false;
 
  315   if((typeI!=0) && (typeJ!=0) && refCoordI*refCoordJ<0.0) 
return false;
 
  348     if(maxB<=rm) 
return false;
 
  355     float zMax = (zm*maxB-rm*refCoordJ)/(maxB-rm);
 
  358       float zMin = (zm*minB-rm*refCoordJ)/(minB-rm);
 
  374         if(minB == rm) 
return false;
 
  375     float zMax = (zm*minB-rm*refCoordJ)/(minB-rm);
 
  378       float zMin = (zm*maxB-rm*refCoordJ)/(maxB-rm);
 
  393     float zMin = (zm*maxB-rm*refCoordJ)/(maxB-rm);
 
  396       float zMax = (zm*minB-rm*refCoordJ)/(minB-rm);
 
  410         if(minB == rm) 
return false;
 
  411     float zMin = (zm*minB-rm*refCoordJ)/(minB-rm);
 
  414       float zMax = (zm*maxB-rm*refCoordJ)/(maxB-rm);
 
  428   if(maxBoundJ<m_minCoord || minBoundJ>
m_maxCoord) 
return false;
 
 
 
 
◆ m_CovMS
  
  
      
        
          | double TrigTrackSeedGenerator::m_CovMS | 
         
       
   | 
  
private   | 
  
 
 
◆ m_dtPreCut
  
  
      
        
          | double TrigTrackSeedGenerator::m_dtPreCut | 
         
       
   | 
  
private   | 
  
 
 
◆ m_innerMarkers
  
  
      
        
          | std::vector<int> TrigTrackSeedGenerator::m_innerMarkers | 
         
       
   | 
  
private   | 
  
 
 
◆ m_maxCoord
  
  
      
        
          | float TrigTrackSeedGenerator::m_maxCoord | 
         
       
   | 
  
private   | 
  
 
 
◆ m_maxDeltaRadius
  
  
      
        
          | double TrigTrackSeedGenerator::m_maxDeltaRadius | 
         
       
   | 
  
private   | 
  
 
 
◆ m_maxDeltaRadiusConf
  
  
      
        
          | double TrigTrackSeedGenerator::m_maxDeltaRadiusConf | 
         
       
   | 
  
private   | 
  
 
 
◆ m_maxTau
  
  
      
        
          | std::vector<float> TrigTrackSeedGenerator::m_maxTau | 
         
       
   | 
  
private   | 
  
 
 
◆ m_minCoord
  
  
      
        
          | float TrigTrackSeedGenerator::m_minCoord | 
         
       
   | 
  
private   | 
  
 
 
◆ m_minDeltaRadius
  
  
      
        
          | double TrigTrackSeedGenerator::m_minDeltaRadius | 
         
       
   | 
  
private   | 
  
 
 
◆ m_minR_squ
  
  
      
        
          | double TrigTrackSeedGenerator::m_minR_squ | 
         
       
   | 
  
private   | 
  
 
 
◆ m_minTau
  
  
      
        
          | std::vector<float> TrigTrackSeedGenerator::m_minTau | 
         
       
   | 
  
private   | 
  
 
 
◆ m_nInner
  
  
      
        
          | int TrigTrackSeedGenerator::m_nInner | 
         
       
   | 
  
private   | 
  
 
 
◆ m_nOuter
  
  
      
        
          | int TrigTrackSeedGenerator::m_nOuter | 
         
       
   | 
  
private   | 
  
 
 
◆ m_outerMarkers
  
  
      
        
          | std::vector<int> TrigTrackSeedGenerator::m_outerMarkers | 
         
       
   | 
  
private   | 
  
 
 
◆ m_phiSliceWidth
  
  
      
        
          | double TrigTrackSeedGenerator::m_phiSliceWidth | 
         
       
   | 
  
private   | 
  
 
 
◆ m_pStore
◆ m_settings
◆ m_SoA
◆ m_spStorage
  
  
      
        
          | std::vector<INDEXED_SP> TrigTrackSeedGenerator::m_spStorage | 
         
       
   | 
  
private   | 
  
 
 
◆ m_triplets
◆ m_zMinus
  
  
      
        
          | float TrigTrackSeedGenerator::m_zMinus | 
         
       
   | 
  
private   | 
  
 
 
◆ m_zMinusEndcap
  
  
      
        
          | float TrigTrackSeedGenerator::m_zMinusEndcap | 
         
       
   | 
  
private   | 
  
 
 
◆ m_zPlus
  
  
      
        
          | float TrigTrackSeedGenerator::m_zPlus | 
         
       
   | 
  
private   | 
  
 
 
◆ m_zPlusEndcap
  
  
      
        
          | float TrigTrackSeedGenerator::m_zPlusEndcap | 
         
       
   | 
  
private   | 
  
 
 
◆ m_zTol
  
  
      
        
          | double TrigTrackSeedGenerator::m_zTol | 
         
       
   | 
  
private   | 
  
 
 
The documentation for this class was generated from the following files:
 
const std::pair< const PrepRawData *, const PrepRawData * > & clusterList() const
return the pair of cluster pointers by reference
 
JetConstituentVector::iterator iterator
 
std::vector< L_PHI_SECTOR > m_layers
 
std::vector< TrigInDetTriplet > m_triplets
 
bool validateLayerPairNew(int, int, float, float)
 
std::vector< TrigSeedML_LUT > m_vLUT
 
float m_tripletD0_PPS_Max
 
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
 
const Amg::Vector2D & widthPhiRZ() const
 
bool containsPhi(const IRoiDescriptor &roi, double phi)
test whether a stub is contained within the roi
 
std::vector< ALFA_RawDataCollection_p1 > t1
 
std::vector< INDEXED_SP > m_spStorage
 
const TrigSiSpacePointBase * m_pSP
 
bool getSpacepointRange(int, const std::vector< const INDEXED_SP * > &, SP_RANGE &)
 
const TrigCombinatorialSettings & m_settings
 
int processSpacepointRange(int, const INDEXED_SP *, bool, const SP_RANGE &, const IRoiDescriptor *)
 
struct LPhi_Storage L_PHI_STORAGE
 
const TrigSiSpacePointBase ** m_spi
 
std::vector< int > m_outerMarkers
 
const TrigSiSpacePointBase ** m_sorted_sp
 
std::vector< TrigInDetSiLayer > m_layerGeometry
 
double m_maxDeltaRadiusConf
 
int processSpacepointRangeZv(const INDEXED_SP *, bool, const SP_RANGE &, bool, const float &, const float &)
 
const TrigSiSpacePointBase ** m_spo
 
virtual double phiMinus() const =0
 
unsigned int m_maxTripletBufferLength
 
virtual double phiPlus() const =0
extreme phi values
 
void createTriplets(const TrigSiSpacePointBase *, int, int, std::vector< TrigInDetTriplet > &, const IRoiDescriptor *)
 
std::vector< float > m_maxTau
 
std::map< std::string, int > dirs
list of directories to be explicitly included, together with corresponding depths of subdirectories
 
void resize(const int spSize)
 
std::vector< int > m_innerMarkers
 
void addSpacePoint(int phiIdx, int layerId, const INDEXED_SP *p)
 
const InDet::SiWidth & width() const
return width class reference
 
virtual double zedPlus() const =0
the zed and eta values at the most forward and most rear ends of the RoI
 
void createConfirmedTriplets(const TrigSiSpacePointBase *, int, int, std::vector< TrigInDetTriplet > &, const IRoiDescriptor *)
 
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
 
float m_doublet_dR_Max_Confirm
 
virtual bool isFullscan() const =0
is this a full detector RoI?
 
virtual double zedMinus() const =0
 
void storeTriplets(std::vector< TrigInDetTriplet > &)
 
bool contains(const IRoiDescriptor &roi, double z0, double dzdr)
see whether a segment is contained within the roi in r-z
 
constexpr int pow(int base, int exp) noexcept
 
float distance(const Amg::Vector3D &p1, const Amg::Vector3D &p2)
calculates the distance between two point in 3D space
 
void sortSpacePoints2(const std::vector< TrigInDetSiLayer > &layerGeometry)
 
std::vector< float > m_minTau
 
bool getValidRange(float fX, float &min, float &max) const