ATLAS Offline Software
Loading...
Searching...
No Matches
ScoreBasedSolverCutsImpl.cxx File Reference
#include "src/ScoreBasedSolverCutsImpl.h"
#include "Acts/AmbiguityResolution/ScoreBasedAmbiguityResolution.hpp"
#include "Acts/Definitions/Units.hpp"
#include "Acts/EventData/VectorMultiTrajectory.hpp"
#include "Acts/EventData/VectorTrackContainer.hpp"
#include "Acts/Utilities/HashedString.hpp"
#include "ActsEvent/TrackContainer.h"
#include "ActsEvent/TrackSummaryContainer.h"
Include dependency graph for ScoreBasedSolverCutsImpl.cxx:

Go to the source code of this file.

Namespaces

namespace  ActsTrk
 The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout geometry to cache the final transformations of the sensor surfaces associated to one particular detector technology (Pixel, Sct, etc.).
namespace  ActsTrk::ScoreBasedSolverCutsImpl

Functions

unsigned int remapLayer (unsigned int iVolume, unsigned int iLayer)
trackContainer_t ActsTrk::ScoreBasedSolverCutsImpl::addSummaryInformation (const ActsTrk::TrackContainer &trackContainer)
 Adds summary information to the track container.
void ActsTrk::ScoreBasedSolverCutsImpl::doubleHolesScore (const trackProxy_t &track, double &score)
 Filter for tracks based on double holes.
void ActsTrk::ScoreBasedSolverCutsImpl::innermostPixelLayerHitsScore (const trackProxy_t &track, double &score)
 Score modifier for tracks based on innermost pixel layer hits.
void ActsTrk::ScoreBasedSolverCutsImpl::ContribPixelLayersScore (const trackProxy_t &track, double &score)
 Score modifier for tracks based on number of contributing pixel layers.
void ActsTrk::ScoreBasedSolverCutsImpl::nSCTPixelHitsScore (const trackProxy_t &track, double &score)
 Score modifier for tracks based on number of SCT and pixel hits.
bool ActsTrk::ScoreBasedSolverCutsImpl::etaDependentCuts (const trackProxy_t &track)
 Filter for tracks based on eta dependent cuts.

Function Documentation

◆ remapLayer()

unsigned int remapLayer ( unsigned int iVolume,
unsigned int iLayer )

Definition at line 16 of file ScoreBasedSolverCutsImpl.cxx.

16 {
17
18 // Barrel region inner + outer
19 if ((iVolume == 9) || (iVolume == 16)) {
20 return iVolume * 100 + iLayer;
21 }
22
23 unsigned int outerEndsCapVolumes[6] = {13, 14, 15, 18, 19, 20};
24
25 // endcap outer
26 if (std::find(std::begin(outerEndsCapVolumes), std::end(outerEndsCapVolumes),
27 iVolume) != std::end(outerEndsCapVolumes)) {
28 return iVolume * 100;
29 }
30
31 unsigned int innerEndsCapVolumes[2] = {8, 10};
32
33 // TODO : check if the bins a re correct.
34 unsigned int layerIDBins[4] = {0, 30, 40, 60};
35
36 // endcap inner
37 // TODO : replace this logic with one that depend on radius.
38 if (std::find(std::begin(innerEndsCapVolumes), std::end(innerEndsCapVolumes),
39 iVolume) != std::end(innerEndsCapVolumes)) {
40 auto it = std::upper_bound(std::begin(layerIDBins), std::end(layerIDBins),
41 iLayer);
42
43 // Handle edge cases
44 if (it == std::begin(layerIDBins)) {
45 // iLayer is less than the first bin (0)
46 return iVolume * 100; // Use the first bin (0)
47 }
48 if (it == std::end(layerIDBins)) {
49 // iLayer is greater than the last bin (100)
50 return iVolume * 100 + (std::size(layerIDBins) - 1); // Use the last bin
51 }
52
53 // iLayer is within the range of layerIDBins
54 std::size_t layerIDBin = std::distance(std::begin(layerIDBins), it) - 1;
55 return iVolume * 100 + layerIDBin;
56 }
57 return 0;
58}