17 for(
unsigned int i=0;
i<tracks.size();
i++)
24 tracks.at(
i).setPassedOR(0);
32 for(
unsigned int j=
i+1; j<tracks.size(); j++)
41 tracks.at(j).setPassedOR(0);
48 int nOverlappingHits = 0;
52 if(nOverlappingHits >= NumOfHitPerGrouping)
60 int nNotOverlappingHits=0;
64 if(nNotOverlappingHits <= NumOfHitPerGrouping)
74 return StatusCode::SUCCESS;
120 return nonOverlapHits;
127 float minChi2=100000.;
132 float t_chi2 = RMtracks.at(dup).getChi2ndof();
133 int t_nhitlayers = RMtracks.at(dup).getFPGATrackSimHits().size();
134 for(
auto& hit : RMtracks.at(dup).getFPGATrackSimHits())
142 if(t_nhitlayers>maxHitLayers)
146 RMtracks.at(prevID).setPassedOR(0);
149 maxHitLayers=t_nhitlayers;
152 else if(t_nhitlayers==maxHitLayers)
158 RMtracks.at(prevID).setPassedOR(0);
165 RMtracks.at(dup).setPassedOR(0);
170 RMtracks.at(dup).setPassedOR(0);
228 nMissing = FPGATrackSimMapping->PlaneMap_1st(subregion)->getNCoords();
234 for (
unsigned layer = 0;
layer < FPGATrackSimMapping->PlaneMap_1st(subregion)->getNLogiLayers();
layer++)
241 int ix = FPGATrackSimMapping->PlaneMap_1st(subregion)->getCoordOffset(
layer);
243 if (FPGATrackSimMapping->PlaneMap_1st(subregion)->isSCT(
layer))
245 missing_mask |= 1 << ix;
250 missing_mask |= (1<<ix) | (1<<iy);
256 if (FPGATrackSimMapping->PlaneMap_1st(subregion)->isSCT(
layer)) missStrip =
true;
257 else missPixel =
true;
260 else if (!((wclayers >>
layer) & 1)) {
261 int ix = FPGATrackSimMapping->PlaneMap_1st(subregion)->getCoordOffset(
layer);
263 if (FPGATrackSimMapping->PlaneMap_1st(subregion)->isSCT(
layer))
265 missing_mask |= 1 << ix;
270 missing_mask |= (1<<ix) | (1<<iy);
291 auto pmap = FPGATrackSimMapping->PlaneMap_2nd(subregion);
294 pmap = FPGATrackSimMapping->PlaneMap_1st(subregion);
298 track_cands.resize(combs.size(), temp);
305 for (
size_t icomb = 0; icomb < combs.size(); icomb++)
308 track_cands[icomb].setTrackID(idbase + icomb);
309 track_cands[icomb].setNLayers(pmap->getNLogiLayers());
312 track_cands[icomb].setIdealRadii(SUBREGIONMAP->
getAvgRadii(subregion));
313 track_cands[icomb].setPassedOR(1);
315 std::vector<int>
const & hit_indices = combs[icomb];
318 if (hit_indices[
layer] < 0)
326 if (wcbits & (1 <<
layer ) ) {
331 track_cands[icomb].setFPGATrackSimHit(
layer, newhit);
335 const std::shared_ptr<const FPGATrackSimHit> hit = road.
getHits(
layer)[hit_indices[
layer]];
341 if (
layer == 0)
throw (std::out_of_range(
"makeTrackCandidates: Attempt to access vector at element -1"));
344 track_cands[icomb].setValidCand(
false);
347 track_cands[icomb].setFPGATrackSimHit(
layer, *hit);
352 idbase += combs.size();
378 if (hit.
getR() == 0.0) {
392 if (hit.
getZ() >= 0.) {
400 if (hit.
getZ() >= 0.) {
429 if(volumeID == 10)
offset = 0;
430 if(volumeID == 8)
offset = 4;
431 if(volumeID == 12)
offset = 10;
432 if(volumeID == 0)
offset = 16;
433 if(volumeID == -2)
offset = 21;
434 if(volumeID == 2)
offset = 30;
466 if(volumeID == -999)
return -999;
469 if(layerID == 0)
offset = 21;
470 if(layerID == 1)
offset = 21+15;
471 if(layerID == 2)
offset = 21+15+6;
472 if(layerID == 3)
offset = 21+15+6+23;
473 if(layerID == 4)
offset = 21+15+6+23+6;
474 if(layerID == 5)
offset = 21+15+6+23+6+11;
475 if(layerID == 6)
offset = 21+15+6+23+6+11+8;
476 if(layerID == 7)
offset = 21+15+6+23+6+11+8+8;
477 if(layerID == 8)
offset = 21+15+6+23+6+11+8+8+9;
482 if(layerID == 0)
offset = 116;
483 if(layerID == 1)
offset = 116+15;
484 if(layerID == 2)
offset = 116+15+6;
485 if(layerID == 3)
offset = 116+15+6+23;
486 if(layerID == 4)
offset = 116+15+6+23+6;
487 if(layerID == 5)
offset = 116+15+6+23+6+11;
488 if(layerID == 6)
offset = 116+15+6+23+6+11+8;
489 if(layerID == 7)
offset = 116+15+6+23+6+11+8+8;
490 if(layerID == 8)
offset = 116+15+6+23+6+11+8+8+9;