|
CbmRoot
|
#include <CaTripletConstructor.h>
Public Member Functions | |
| TripletConstructor (const ca::Framework &framework, const ca::Parameters< fvec > &pars, WindowData &wData, const fscal mass, const ca::TrackingMode &mode) | |
| ---— Constructors and destructor ---— | |
| TripletConstructor (const TripletConstructor &)=delete | |
| Copy constructor. | |
| TripletConstructor (TripletConstructor &&)=delete | |
| Move constructor. | |
| TripletConstructor & | operator= (const TripletConstructor &)=delete |
| Copy assignment operator. | |
| TripletConstructor & | operator= (TripletConstructor &&)=delete |
| Move assignment operator. | |
| ~TripletConstructor ()=default | |
| Destructor. | |
| void | CreateTripletsForHit (Vector< ca::Triplet > &tripletsOut, int istal, int istam, int istar, ca::HitIndex_t ihl) |
| ---— FUNCTIONAL PART ---— | |
Private Types | |
| typedef std::pair< Vector< TrackParamV >, Vector< ca::HitIndex_t > > | Doublet_t |
| typedef std::tuple< Vector< TrackParamV >, Vector< ca::HitIndex_t >, Vector< ca::HitIndex_t > > | Triplet_t |
Private Member Functions | |
| bool | InitStations (int istal, int istam, int istar) |
| void | FindDoublets (kf::TrackKalmanFilter< fvec > &fit) |
| Find the doublets. Reformat data in the portion of doublets. | |
| void | FindTripletHits () |
| void | FindTriplets () |
| Find triplets on station. | |
| void | SelectTriplets (Vector< ca::Triplet > &tripletsOut) |
| Select good triplets. | |
| void | CollectHits (Vector< ca::HitIndex_t > &collectedHits, kf::TrackKalmanFilter< fvec > &fit, const int iSta, const double chi2Cut, const McMatch &mc, const int maxNhits) |
Private Attributes | |
| const ca::Framework & | fFramework |
| Reference to the Framework object. | |
| const Parameters< fvec > & | fParameters |
| Object of Framework parameters class. | |
| const cbm::algo::kf::Setup< fvec > & | fSetup |
| Reference to the setup. | |
| const cbm::algo::kf::Field< fvec > & | fField |
| Reference to field. | |
| WindowData & | frWData |
| fscal | fDefaultMass {constants::phys::MuonMass} |
| mass of the propagated particle [GeV/c2] | |
| ca::TrackingMode | fTrackingMode |
| bool | fIsTargetField {false} |
| is the magnetic field present at the target | |
| int | fNfieldStations {0} |
| int | fIstaL {-1} |
| left station index | |
| int | fIstaM {-1} |
| middle station index | |
| int | fIstaR {-1} |
| right station index | |
| const kf::ActiveLayer< fvec > * | fStaL {nullptr} |
| left station | |
| const kf::ActiveLayer< fvec > * | fStaM {nullptr} |
| mid station | |
| const kf::ActiveLayer< fvec > * | fStaR {nullptr} |
| right station | |
| std::array< int, 2 > | fFldStaTL {} |
| indices of two stations for field approximation between the t. and l. hit | |
| std::array< int, 3 > | fFldStaLR {} |
| indices of three stations for field approximation between the l. and r. hits | |
| ca::HitIndex_t | fIhitL |
| index of the left hit in fAlgo->fWindowHits | |
| kf::FieldRegion< fvec > | fFldL |
| Triplet_t | fTripletData |
| Doublet_t | fDoubletData |
Static Private Attributes | |
| static constexpr bool | fDebugDublets = false |
| static constexpr bool | fDebugTriplets = false |
| static constexpr bool | fDebugCollectHits = false |
Construction of triplets for the CA tracker
Definition at line 29 of file CaTripletConstructor.h.
|
private |
Definition at line 58 of file CaTripletConstructor.h.
|
private |
Definition at line 59 of file CaTripletConstructor.h.
| cbm::algo::ca::TripletConstructor::TripletConstructor | ( | const ca::Framework & | framework, |
| const ca::Parameters< fvec > & | pars, | ||
| WindowData & | wData, | ||
| const fscal | mass, | ||
| const ca::TrackingMode & | mode ) |
---— Constructors and destructor ---—
Constructor
| nThreads | Number of threads for multi-threaded mode |
Definition at line 22 of file CaTripletConstructor.cxx.
References fDefaultMass, fField, fFramework, fIsTargetField, fNfieldStations, fParameters, frWData, fSetup, and fTrackingMode.
Referenced by operator=(), operator=(), TripletConstructor(), and TripletConstructor().
|
delete |
Copy constructor.
References TripletConstructor().
|
delete |
Move constructor.
References TripletConstructor().
|
default |
Destructor.
|
private |
Collect hits on a station
Definition at line 655 of file CaTripletConstructor.cxx.
References cbm::algo::kf::TrackParamBase< T >::ChiSq(), cbm::algo::ca::GridArea::DoLoopOverEntireGrid(), cbm::algo::ca::Hit::dX2(), cbm::algo::ca::Hit::dXY(), cbm::algo::ca::Hit::dY2(), cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::ExtrapolateLineDxy(), cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::ExtrapolateLineXdX2(), cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::ExtrapolateLineYdY2(), cbm::algo::kf::utils::fabs(), fDebugCollectHits, fFramework, fParameters, frWData, fSetup, cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::GetChi2XChi2U(), cbm::algo::ca::GridArea::GetNextObjectId(), cbm::algo::ca::Hit::Id(), cbm::algo::ca::McMatch::IsEmpty(), cbm::algo::kf::ActiveLayer< F >::IsTimeMeasured(), cbm::algo::kf::fvec::One(), cbm::algo::ca::Vector< T >::push_back(), cbm::algo::ca::Hit::RangeT(), cbm::algo::ca::Hit::RangeX(), cbm::algo::ca::Hit::RangeY(), cbm::algo::ca::Vector< T >::reserve(), sqrt(), cbm::algo::ca::Hit::T(), cbm::algo::ca::Hit::ToString(), cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::Tr(), cbm::algo::ca::Hit::X(), x, cbm::algo::ca::Hit::Y(), y, and cbm::algo::ca::Hit::Z().
Referenced by CreateTripletsForHit(), and FindTripletHits().
| void cbm::algo::ca::TripletConstructor::CreateTripletsForHit | ( | Vector< ca::Triplet > & | tripletsOut, |
| int | istal, | ||
| int | istam, | ||
| int | istar, | ||
| ca::HitIndex_t | ihl ) |
---— FUNCTIONAL PART ---—
Get the field approximation. Add the target to parameters estimation. Propagaete to the middle station of a triplet.
Find the doublets. Reformat data into portions of doublets.
Definition at line 87 of file CaTripletConstructor.cxx.
References CollectHits(), cbm::algo::ca::constants::phys::ElectronMass, cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::ExtrapolateLineInField(), fDefaultMass, fDoubletData, fField, fFldL, fFldStaLR, fFldStaTL, fFramework, fIhitL, cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::FilterExtrapolatedXY(), FindDoublets(), FindTripletHits(), FindTriplets(), fIstaL, fIstaM, fIstaR, fParameters, frWData, fSetup, fStaL, fStaM, cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::GetMeasurementModelAtZline(), InitStations(), cbm::algo::ca::McMatch::IsEmpty(), cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::Linearization(), cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::MultipleScattering(), SelectTriplets(), cbm::algo::kf::FieldRegion< T >::Set(), cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::SetParticleMass(), cbm::algo::ca::constants::phys::SpeedOfLightInv, and cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::Tr().
Referenced by cbm::algo::ca::TrackFinderWindow::ConstructTriplets().
|
private |
Find the doublets. Reformat data in the portion of doublets.
Definition at line 198 of file CaTripletConstructor.cxx.
References cbm::algo::ca::Hit::dT2(), cbm::algo::ca::Hit::dX2(), cbm::algo::ca::Hit::dXY(), cbm::algo::ca::Hit::dY2(), cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::ExtrapolateNoField(), fDoubletData, fFramework, fIhitL, cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::FilterTime(), cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::FilterXY(), fIstaM, fIsTargetField, fParameters, frWData, fSetup, fStaL, fStaM, fTrackingMode, cbm::algo::kf::TrackParamBase< T >::GetQp(), cbm::algo::ca::Hit::Id(), cbm::algo::ca::kMcbm, cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::Linearization(), cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::MultipleScattering(), cbm::algo::kf::fvec::One(), cbm::algo::ca::Hit::RangeT(), cbm::algo::ca::Hit::RangeX(), cbm::algo::ca::Hit::RangeY(), cbm::algo::ca::Vector< T >::shrink(), sqrt(), cbm::algo::ca::Hit::T(), cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::Tr(), tracks, cbm::algo::ca::Hit::X(), cbm::algo::ca::Hit::Y(), and cbm::algo::ca::Hit::Z().
Referenced by CreateTripletsForHit().
|
private |
Add the middle hits to parameters estimation. Propagate to right station. Find the triplets (right hit). Reformat data in the portion of triplets.
Add the middle hits to parameters estimation. Propagate to right station. Find the triplets(right hit). Reformat data in the portion of triplets.
Definition at line 291 of file CaTripletConstructor.cxx.
References CollectHits(), cbm::algo::ca::constants::phys::ElectronMass, cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::Extrapolate(), fDebugDublets, fDefaultMass, fDoubletData, fFldL, fFramework, fIhitL, fIstaL, fIstaM, fIstaR, fParameters, frWData, fStaR, fTrackingMode, fTripletData, cbm::algo::ca::McMatch::IsEmpty(), cbm::algo::ca::kSts, cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::Linearization(), cbm::algo::ca::Vector< T >::push_back(), cbm::algo::ca::Vector< T >::reserve(), cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::SetParticleMass(), cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::SetTrack(), cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::Tr(), cbm::algo::ca::Hit::X(), cbm::algo::ca::Hit::Y(), and cbm::algo::ca::Hit::Z().
Referenced by CreateTripletsForHit().
|
private |
Find triplets on station.
Refit Triplets
Definition at line 419 of file CaTripletConstructor.cxx.
References cbm::algo::ca::_fvecalignment, cbm::algo::ca::Hit::dT2(), cbm::algo::kf::MeasurementXy< DataT >::Dx2(), cbm::algo::ca::Hit::dX2(), cbm::algo::kf::MeasurementXy< DataT >::Dxy(), cbm::algo::ca::Hit::dXY(), cbm::algo::kf::MeasurementXy< DataT >::Dy2(), cbm::algo::ca::Hit::dY2(), cbm::algo::ca::constants::phys::ElectronMass, cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::EnergyLossCorrection(), cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::Extrapolate(), fDebugTriplets, fDefaultMass, fField, fFramework, fIhitL, cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::FilterExtrapolatedXY(), cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::FilterTime(), cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::FilterXY(), fIstaL, fIstaM, fIstaR, fParameters, frWData, fSetup, fStaL, fStaM, fStaR, fTripletData, cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::GetMeasurementModelAtZline(), cbm::algo::kf::kDownstream, cbm::algo::kf::kUpstream, cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::MultipleScattering(), cbm::algo::kf::fvec::One(), cbm::algo::kf::LinearizationQp< T >::qp, cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::SetLinearization(), cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::SetParticleMass(), cbm::algo::kf::defs::SpeedOfLightInv, cbm::algo::ca::Hit::T(), cbm::algo::kf::TrackKalmanFilter< DataT, Settings >::Tr(), tracks, cbm::algo::ca::Hit::X(), x, cbm::algo::ca::Hit::Y(), y, and cbm::algo::ca::Hit::Z().
Referenced by CreateTripletsForHit().
|
private |
Definition at line 46 of file CaTripletConstructor.cxx.
References fFldStaLR, fFldStaTL, fIstaL, fIstaM, fIstaR, fNfieldStations, fSetup, fStaL, fStaM, and fStaR.
Referenced by CreateTripletsForHit().
|
delete |
Copy assignment operator.
References TripletConstructor().
|
delete |
Move assignment operator.
References TripletConstructor().
|
private |
Select good triplets.
Selects good triplets and saves them into tripletsOut. Finds neighbouring triplets at the next station.
Definition at line 600 of file CaTripletConstructor.cxx.
References CBMCA_DEBUG_ASSERT, cbm::algo::ca::Vector< T >::emplace_back(), fIhitL, fIstaL, fIstaM, fIstaR, frWData, fStaL, fStaM, fStaR, fTripletData, cbm::algo::ca::Vector< T >::reserve(), and tracks.
Referenced by CreateTripletsForHit().
|
staticconstexprprivate |
Definition at line 116 of file CaTripletConstructor.h.
Referenced by CollectHits().
|
staticconstexprprivate |
Definition at line 114 of file CaTripletConstructor.h.
Referenced by FindTripletHits().
|
staticconstexprprivate |
Definition at line 115 of file CaTripletConstructor.h.
Referenced by FindTriplets().
|
private |
mass of the propagated particle [GeV/c2]
Definition at line 85 of file CaTripletConstructor.h.
Referenced by CreateTripletsForHit(), FindTripletHits(), FindTriplets(), and TripletConstructor().
|
private |
Definition at line 111 of file CaTripletConstructor.h.
Referenced by CreateTripletsForHit(), FindDoublets(), and FindTripletHits().
|
private |
Reference to field.
Definition at line 83 of file CaTripletConstructor.h.
Referenced by CreateTripletsForHit(), FindTriplets(), and TripletConstructor().
|
private |
Definition at line 105 of file CaTripletConstructor.h.
Referenced by CreateTripletsForHit(), and FindTripletHits().
|
private |
indices of three stations for field approximation between the l. and r. hits
Definition at line 102 of file CaTripletConstructor.h.
Referenced by CreateTripletsForHit(), and InitStations().
|
private |
indices of two stations for field approximation between the t. and l. hit
Definition at line 101 of file CaTripletConstructor.h.
Referenced by CreateTripletsForHit(), and InitStations().
|
private |
Reference to the Framework object.
Definition at line 80 of file CaTripletConstructor.h.
Referenced by CollectHits(), CreateTripletsForHit(), FindDoublets(), FindTripletHits(), FindTriplets(), and TripletConstructor().
|
private |
index of the left hit in fAlgo->fWindowHits
Definition at line 104 of file CaTripletConstructor.h.
Referenced by CreateTripletsForHit(), FindDoublets(), FindTripletHits(), FindTriplets(), and SelectTriplets().
|
private |
left station index
Definition at line 93 of file CaTripletConstructor.h.
Referenced by CreateTripletsForHit(), FindTripletHits(), FindTriplets(), InitStations(), and SelectTriplets().
|
private |
middle station index
Definition at line 94 of file CaTripletConstructor.h.
Referenced by CreateTripletsForHit(), FindDoublets(), FindTripletHits(), FindTriplets(), InitStations(), and SelectTriplets().
|
private |
right station index
Definition at line 95 of file CaTripletConstructor.h.
Referenced by CreateTripletsForHit(), FindTripletHits(), FindTriplets(), InitStations(), and SelectTriplets().
|
private |
is the magnetic field present at the target
Definition at line 88 of file CaTripletConstructor.h.
Referenced by FindDoublets(), and TripletConstructor().
|
private |
Definition at line 91 of file CaTripletConstructor.h.
Referenced by InitStations(), and TripletConstructor().
|
private |
Object of Framework parameters class.
Definition at line 81 of file CaTripletConstructor.h.
Referenced by CollectHits(), CreateTripletsForHit(), FindDoublets(), FindTripletHits(), FindTriplets(), and TripletConstructor().
|
private |
Definition at line 84 of file CaTripletConstructor.h.
Referenced by CollectHits(), CreateTripletsForHit(), FindDoublets(), FindTripletHits(), FindTriplets(), SelectTriplets(), and TripletConstructor().
|
private |
Reference to the setup.
Definition at line 82 of file CaTripletConstructor.h.
Referenced by CollectHits(), CreateTripletsForHit(), FindDoublets(), FindTriplets(), InitStations(), and TripletConstructor().
|
private |
left station
Definition at line 97 of file CaTripletConstructor.h.
Referenced by CreateTripletsForHit(), FindDoublets(), FindTriplets(), InitStations(), and SelectTriplets().
|
private |
mid station
Definition at line 98 of file CaTripletConstructor.h.
Referenced by CreateTripletsForHit(), FindDoublets(), FindTriplets(), InitStations(), and SelectTriplets().
|
private |
right station
Definition at line 99 of file CaTripletConstructor.h.
Referenced by FindTripletHits(), FindTriplets(), InitStations(), and SelectTriplets().
|
private |
Definition at line 86 of file CaTripletConstructor.h.
Referenced by FindDoublets(), FindTripletHits(), and TripletConstructor().
|
private |
Definition at line 108 of file CaTripletConstructor.h.
Referenced by FindTripletHits(), FindTriplets(), and SelectTriplets().