|
CbmRoot
|
A factory for geometry tracking KF-setup in CBM. More...
#include <CbmKfTrackingGeoSetupFactory.h>
Public Member Functions | |
| TrackingGeoSetupFactory (bool requireHitPresence=false) | |
| Constructor (RAII) | |
| Setup< double > | Create (FloatTag< double >, EFieldMode fldMode) const override |
| Method to create a setup with double-precision floating point type. | |
| Setup< float > | Create (FloatTag< float >, EFieldMode fldMode) const override |
| Method to create a setup with single-precision floating point type. | |
| Setup< fvec > | Create (FloatTag< algo::kf::fvec >, EFieldMode fldMode) const override |
| Method to create a setup with vectorized floating point type. | |
| bool | IsInGeometry (algo::ca::EDetectorID detID) const |
| Checks, if a tracking detector is in geometry. | |
| bool | HasHits (algo::ca::EDetectorID detID) const |
| Checks, if a tracking detector has hits. | |
| const algo::kf::FieldFn_t & | GetFieldFunction () const override |
| Access to field function. | |
Private Types | |
| template<typename T> | |
| using | DetectorIDArray_t = cbm::core::EnumArray<algo::ca::EDetectorID, T> |
Private Member Functions | |
| void | CheckDetectorPresence (bool requireHitPresence) |
| Check detector presence. | |
| void | SetMaterialCacheFile (const TString &filename, size_t geoHash) |
| Sets the material budget cache file name. | |
| std::string | MaterialCacheFile () const |
| Gets the material budget cache-file. | |
Private Attributes | |
| algo::kf::SetupBuilder | fBuilder {} |
| KF-setup builder. | |
| DetectorIDArray_t< bool > | fvbDetInGeometry {{false}} |
| Is detector subsystem in geometry? | |
| DetectorIDArray_t< bool > | fvbDetHasHits {{false}} |
| Does detector subsystem have hits? | |
Static Private Attributes | |
| static constexpr DetectorIDArray_t< const char * > | kDetHitBrName |
| Hit branch names vs. EDetectorID. | |
| static constexpr double | kMatCreatorPitch {0.1} |
| Material budget map minimal bin size [cm]. | |
| static constexpr int | kMatCreatorMaxNbins {100} |
| Max number of bins in the material budget map in x(y) axis. | |
| static constexpr int | kMatCreatorNrays {3} |
| Number of rays per dimension for the material budget. | |
| static constexpr bool | kMatCreatorSafeMode {true} |
| Safe mode of the material map creation. | |
| static constexpr double | kTargFieldInitStep {2.5} |
| Step between nodes in the target field initialization [cm]. | |
| static constexpr double | kTargMaterialOffset {1} |
| Offset between target upper limit and its material zMax [cm]. | |
A factory for geometry tracking KF-setup in CBM.
Definition at line 25 of file CbmKfTrackingGeoSetupFactory.h.
|
private |
Definition at line 68 of file CbmKfTrackingGeoSetupFactory.h.
| TrackingGeoSetupFactory::TrackingGeoSetupFactory | ( | bool | requireHitPresence = false | ) |
Constructor (RAII)
| requireHitPresence | Requires hits to be in data-sample to infer the subsystem presence |
| std::runtime_error,if | the internal fields cannot be properly initialized |
Definition at line 41 of file CbmKfTrackingGeoSetupFactory.cxx.
References CheckDetectorPresence(), fBuilder, fvbDetInGeometry, cbm::RecoSetupManager::GetSetup(), cbm::kf::Target::Instance(), cbm::RecoSetupManager::Instance(), CbmSetup::Instance(), kMatCreatorNrays, kMatCreatorSafeMode, MaterialCacheFile(), cbm::algo::kf::defs::MinField, and cbm::kf::tools::SetOriginalCbmField().
|
private |
Check detector presence.
| requireHitPresence | Requires hits to be in data-sample to infer the subsystem presence |
Definition at line 124 of file CbmKfTrackingGeoSetupFactory.cxx.
References fvbDetHasHits, fvbDetInGeometry, CbmSetup::Instance(), CbmSetup::IsActive(), kDetHitBrName, cbm::algo::ca::ToCbmModuleId(), and cbm::util::ToString().
Referenced by TrackingGeoSetupFactory().
|
inlineoverridevirtual |
Method to create a setup with vectorized floating point type.
| floatTag | Floating point tag |
| fldMode | Field mode |
Implements cbm::algo::kf::ISetupFactory.
Definition at line 51 of file CbmKfTrackingGeoSetupFactory.h.
References fBuilder.
|
inlineoverridevirtual |
Method to create a setup with double-precision floating point type.
| floatTag | Floating point tag |
| fldMode | Field mode |
Implements cbm::algo::kf::ISetupFactory.
Definition at line 35 of file CbmKfTrackingGeoSetupFactory.h.
References fBuilder.
|
inlineoverridevirtual |
Method to create a setup with single-precision floating point type.
| floatTag | Floating point tag |
| fldMode | Field mode |
Implements cbm::algo::kf::ISetupFactory.
Definition at line 43 of file CbmKfTrackingGeoSetupFactory.h.
References fBuilder.
|
inlineoverridevirtual |
Access to field function.
Implements cbm::algo::kf::ISetupFactory.
Definition at line 63 of file CbmKfTrackingGeoSetupFactory.h.
References fBuilder.
|
inline |
Checks, if a tracking detector has hits.
Definition at line 60 of file CbmKfTrackingGeoSetupFactory.h.
References fvbDetHasHits.
|
inline |
Checks, if a tracking detector is in geometry.
Definition at line 57 of file CbmKfTrackingGeoSetupFactory.h.
References fvbDetInGeometry.
|
private |
Gets the material budget cache-file.
Definition at line 151 of file CbmKfTrackingGeoSetupFactory.cxx.
References CbmSetup::GetProvider(), CbmGeoSetupProvider::GetSetup(), CbmGeoSetup::GetTag(), and CbmSetup::Instance().
Referenced by TrackingGeoSetupFactory().
|
inlineprivate |
Sets the material budget cache file name.
| filename | Material budget cache file name |
| geoHash | A hash of the geometry |
If provided, the instance will try to read the material budget maps from the file. If the file does not exist,or the geometry hash was changed since the last time (reference hash differs from the one read from the file), a warning will be produced, the material budget maps will be recreated on the fly and they will be stored again to the file (meaning a new cache file will be generated over the existing one).
Definition at line 97 of file CbmKfTrackingGeoSetupFactory.h.
References fBuilder.
|
private |
KF-setup builder.
Definition at line 81 of file CbmKfTrackingGeoSetupFactory.h.
Referenced by Create(), Create(), Create(), GetFieldFunction(), SetMaterialCacheFile(), and TrackingGeoSetupFactory().
|
private |
Does detector subsystem have hits?
Definition at line 83 of file CbmKfTrackingGeoSetupFactory.h.
Referenced by CheckDetectorPresence(), and HasHits().
|
private |
Is detector subsystem in geometry?
Definition at line 82 of file CbmKfTrackingGeoSetupFactory.h.
Referenced by CheckDetectorPresence(), IsInGeometry(), and TrackingGeoSetupFactory().
|
staticconstexprprivate |
Hit branch names vs. EDetectorID.
Definition at line 70 of file CbmKfTrackingGeoSetupFactory.h.
Referenced by CheckDetectorPresence().
|
staticconstexprprivate |
Max number of bins in the material budget map in x(y) axis.
Definition at line 75 of file CbmKfTrackingGeoSetupFactory.h.
|
staticconstexprprivate |
Number of rays per dimension for the material budget.
Definition at line 76 of file CbmKfTrackingGeoSetupFactory.h.
Referenced by TrackingGeoSetupFactory().
|
staticconstexprprivate |
Material budget map minimal bin size [cm].
Definition at line 74 of file CbmKfTrackingGeoSetupFactory.h.
|
staticconstexprprivate |
Safe mode of the material map creation.
Definition at line 77 of file CbmKfTrackingGeoSetupFactory.h.
Referenced by TrackingGeoSetupFactory().
|
staticconstexprprivate |
Step between nodes in the target field initialization [cm].
Definition at line 78 of file CbmKfTrackingGeoSetupFactory.h.
|
staticconstexprprivate |
Offset between target upper limit and its material zMax [cm].
Definition at line 79 of file CbmKfTrackingGeoSetupFactory.h.