30 std::vector<int> result;
33 for (
auto pairs : sectorRows){
35 for (
auto tubeId : tubesToTest){
37 if (testTube == tube)
continue;
39 if (
Compare(tube, testTube, tolerance) ==
true){
40 result.push_back(tubeId);
52 std::vector<int> testRows;
53 std::vector<int> testSectors;
54 std::vector<std::pair<int, int> > result;
56 for (
int testRow = row-1; testRow < row+2 && testRow < 29 ; testRow++){
57 if (testRow > -1) testRows.push_back(testRow);
60 int offset = (sector < 3 ? 0:3);
62 for (
int testSector = sector-1; testSector < 3 +
offset; testSector++){
63 if (testSector > (offset - 1)) testSectors.push_back(testSector);
66 for (
auto testSector : testSectors){
67 for (
auto testRow : testRows) {
68 result.push_back(std::make_pair(testSector, testRow));
81 return distance < tolerance;
86 double tolerance0 = 1.2;
87 double tolerance1 = 1.3;
88 double tolerance2 = 1.5;
89 double tolerance = 1.5;
92 if (tube2->
IsSkew() == kTRUE && tube1->
IsSkew() == kTRUE)
93 tolerance = tolerance1;
95 tolerance = tolerance0;
98 tolerance = tolerance2;
100 tolerance = tolerance1;
vector< int > GetRowInSector(int sector, int row)
double GetTolerance(PndSttTube *tube1, PndSttTube *tube2)
bool Compare(PndSttTube *tube1, PndSttTube *tube2, double tolerance)
PndSttTube * GetTube(int tubeId)
std::vector< int > FindNeighbors(PndSttTube *tube)
Double_t GetDistance(PndSttTube *tube)
static PndSttTubeMap * Instance()
static PndSttTubeIdMap * Instance()
std::vector< std::pair< int, int > > GetListOfSectorRowsToCompare(PndSttTube *tube)
virtual ~PndSttNeighborhoodCreator()
PndSttNeighborhoodCreator()