20#include <boost/serialization/array.hpp>
21#include <boost/serialization/utility.hpp>
37 template<
typename DataT>
53 template<
typename DataT>
54 class alignas(constants::misc::Alignment) Parameters {
73 template<typename DataIn>
103 fTargetPos[0] = kfutils::simd::Cast<DataIn, DataT>(other.GetTargetPositionX());
104 fTargetPos[1] = kfutils::simd::Cast<DataIn, DataT>(other.GetTargetPositionY());
105 fTargetPos[2] = kfutils::simd::Cast<DataIn, DataT>(other.GetTargetPositionZ());
121 void Print(
int verbosityLevel = 0)
const;
126 std::string
ToString(
int verbosity = 0,
int indentLevel = 0)
const;
213 assert(iStation < fNstationsActiveTotal && iStation > 0);
219 const std::array<SearchWindow, constants::size::MaxNstations * constants::size::MaxNtrackGroups>&
329 "ca::Parameters::fCAIterations"};
383 std::array<SearchWindow, constants::size::MaxNstations* constants::size::MaxNtrackGroups>
fSearchWindows = {};
414 template<
class Archive>
Compile-time constants definition for the CA tracking algorithm.
Magnetic flux density interpolation along the track vs. z-coordinate (header)
Setup representation for the Kalman-filter framework (header)
A CA Parameters object initialization class.
A container for all external parameters of the CA tracking algorithm.
DataT GetTargetPositionX() const
Gets X component of target position.
bool DevIsUseOfOriginalField() const
Is original field must be used instead of the approximated one.
StationArray_t< int > fvGeoToActiveMap
void serialize(Archive &ar, const unsigned int)
const std::array< SearchWindow, constants::size::MaxNstations *constants::size::MaxNtrackGroups > & GetSearchWindows() const
Provides access to the map of search windows vs. active station global index and tracks group (const)
StationArray_t< int > fvLocalToGeoIdMap
Map of (local, det) to geo indices.
int fGhostSuppression
flag: if true, ghost tracks are suppressed
const auto & GetActiveSetup() const
Gets active setup.
float GetDefaultMass() const
Gets default mass.
const SearchWindow & GetSearchWindow(int iStation, int iTrackGr) const
Gets a search window for a selected station and track group.
StationArray_t< int > fvActiveToGeoMap
Map of active to geo indices.
int GetStationIndexActive(int localIndex, EDetectorID detectorID) const
Calculates global index of station used by track finder.
DataT GetTargetPositionZ() const
Gets Z component of target position.
std::array< float, constants::size::MaxNdetectors > fMisalignmentY
misalignment of the detector systems in Y
bool fDevIsMatchTripletsViaMc
Flag to match triplets using Mc information.
int GetNstationsGeometry(EDetectorID detectorID) const
Gets number of stations, provided by setup geometry for given detector ID.
DataT GetTargetPositionY() const
Gets Y component of target position.
int fRandomSeed
random seed
bool DevIsMatchTripletsViaMc() const
Flag to match triplets using Mc information.
std::array< float, constants::size::MaxNdetectors > fMisalignmentX
misalignment of the detector systems in X
int GetNstationsGeometry() const
Gets total number of stations, provided by setup geometry.
IterationsContainer_t fCAIterations
L1 tracking iterations vector.
bool DevIsIgnoreHitSearchAreas() const
Are the hit search areas ignored.
bool DevIsMatchDoubletsViaMc() const
Flag to match doublets using MC information.
bool fDevIsExtendTracksViaMc
Flag to extend tracks using Mc information.
float GetMisalignmentXsq(EDetectorID detId) const
Gets misalignment of the detector systems in X, squared rms.
std::string ToString(int verbosity=0, int indentLevel=0) const
String representation of the class contents.
~Parameters() noexcept=default
Destructor.
int GetNstationsActive() const
Gets total number of active stations.
std::array< int, constants::size::MaxNdetectors+1 > fvFirstGeoId
First index of the station on the particular detector.
bool DevIsExtendTracksViaMc() const
Flag to extend tracks using Mc information.
kf::Setup< DataT > fGeometrySetup
Geometrical KF-setup (including inactive stations)
const kf::FieldRegion< DataT > & GetVertexFieldRegion() const
Gets kf::FieldRegion object at primary vertex.
const std::array< float, constants::size::MaxNdetectors > GetMisalignmentY() const
Provides access to the misalignment of the detector systems in Y.
float GetMisalignmentYsq(EDetectorID detId) const
Gets misalignment of the detector systems in Y, squared rms.
StationArray_t< std::pair< EDetectorID, int > > fvGeoToLocalIdMap
Map of geo to (local, det) indices.
int GetGhostSuppression() const
Gets ghost suppression flag.
std::array< T, constants::size::MaxNstations > StationArray_t
const StationArray_t< int > & GetGeoToActiveMap() const
Provides access to global indexes of stations used by track finder (const)
const StationArray_t< int > & GetActiveToGeoMap() const
Provides access to the map of active to geo station indices (const)
Parameters & operator=(Parameters &&other)=default
Move assignment operator.
int fNstationsActiveTotal
total number of active tracking stations
void Print(int verbosityLevel=0) const
Prints configuration.
bool fDevIsSuppressOverlapHitsViaMc
Flag to match hits in overlaps using Mc information.
const StationsContainer_t< DataT > & GetStations() const
Provides access to L1Stations container (const)
const std::array< int, constants::size::MaxNdetectors+1 > & GetFirstGeoId() const
Provides access to the first index of the station on each particular detector (const)
unsigned int GetMaxDoubletsPerSinglet() const
Gets upper-bound cut on max number of doublets per one singlet.
std::array< float, constants::size::MaxNdetectors > fMisalignmentT
miscalibration of the detector systems in Time
int GetStationIndexGeometry(int localIndex, EDetectorID detectorID) const
Calculates global index of station among geometry (accounts for inactive stations)
const IterationsContainer_t & GetCAIterations() const
Provides access to L1CAIteration vector (const)
unsigned int GetMaxTripletPerDoublets() const
Gets upper-bound cut on max number of triplets per one doublet.
float GetMisalignmentTsq(EDetectorID detId) const
Gets miscalibration of the detector systems in Time, squared rms.
kf::Setup< DataT > fActiveSetup
Active KF-setup (every layer is an active tracking station)
bool fDevIsParSearchWUsed
const Station< DataT > & GetStation(int iStation) const
Gets reference to the particular station.
bool fDevIsMatchDoubletsViaMc
Flag to match doublets using MC information.
kf::FieldValue< DataT > fVertexFieldValue
Field value object at primary vertex (between target and the first station)
const auto & GetGeometrySetup() const
Gets active setup.
const std::array< float, constants::size::MaxNdetectors > GetMisalignmentT() const
Provides access to the misalignment of the detector systems in Time.
unsigned int fMaxDoubletsPerSinglet
Upper-bound cut on max number of doublets per one singlet.
const StationArray_t< std::pair< EDetectorID, int > > & GetGeoToLocalIdMap() const
Provides access to local indexes of stations (const)
StationsContainer_t< DataT > fStations
Array of stations.
void CheckConsistency() const
Class invariant checker.
bool fDevIsUseOfOriginalField
Force use of original field.
Parameters & operator=(const Parameters &other)=default
Copy assignment operator.
friend class boost::serialization::access
Serialization function.
std::underlying_type_t< EDetectorID > DetectorID_t
const StationArray_t< int > & GetLocalToGeoIdMap() const
Provides access to global indexes of stations among geometry (const)
Parameters(Parameters &&other)=default
Move constructor.
kf::FieldRegion< DataT > fVertexFieldRegion
Field region object at primary vertex (between target and the first station)
const kf::FieldValue< DataT > & GetVertexFieldValue() const
Gets kf::FieldValue object at primary vertex.
unsigned int fMaxTripletPerDoublets
Upper-bound cut on max number of triplets per one doublet.
int GetRandomSeed() const
Gets random seed.
bool DevIsParSearchWUsed() const
const std::array< float, constants::size::MaxNdetectors > GetMisalignmentX() const
Provides access to the misalignment of the detector systems in X.
bool IsActive(EDetectorID detId) const
Checks, if the detector subsystem active.
bool DevIsSuppressOverlapHitsViaMc() const
Flag to match hits in overlaps using Mc information.
bool fDevIsIgnoreHitSearchAreas
Process all hits on the station ignoring hit search area.
Parameters()
Default constructor.
std::pair< EDetectorID, int > GetStationIndexLocal(int geoIndex) const
Gets local index of station.
int GetNcaIterations() const
Provides number of iterations.
std::array< SearchWindow, constants::size::MaxNstations *constants::size::MaxNtrackGroups > fSearchWindows
Map of search windows vs. active station global index and tracks group.
std::array< DataT, 3 > fTargetPos
Target position.
Class L1SearchWindow defines a parameterisation of hits search window for CA tracking algorithm TODO:...
Magnetic field region, corresponding to a hit triplet.
Magnetic flux density vector.
KF-framework representation of the detector setup.
constexpr int Alignment
Default alignment of data (bytes)
constexpr fscal MuonMass
Particle masses etc used for the track fit, fscal precision.
constexpr int MaxNstations
Max number of stations, 2^6 = 64.
constexpr T2 Undef
Undefined values.
TODO: SZh 8.11.2022: add selection of parameterisation.
EDetectorID
Enumeration for the tracking detector subsystems in CBM-CA.
std::array< ca::Station< DataT >, constants::size::MaxNstations > StationsContainer_t
@ Intrpl
Interpolated magnetic field.