NAIA
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
TrTrack.h
Go to the documentation of this file.
1 
7 #ifndef NAIA_TRTRACK_H
8 #define NAIA_TRTRACK_H
9 
10 // gbatch headers
11 #ifdef ENABLE_PRODUCTION_CODE
12 #include "root.h"
13 #endif
14 
16 #include "Containers/Utils.h"
17 
18 #include <array>
19 #include <map>
20 #include <vector>
21 
22 namespace NAIA {
23 
27 template <class T> using TrackChargeVariable = std::map<TrTrack::ChargeRecoType, T>;
33 template <class T> using TrackFitVariable = std::map<TrTrack::Fit, std::map<TrTrack::Span, T>>;
37 template <class T> using TrackFitOnlyVariable = std::map<TrTrack::Fit, T>;
41 template <class T> using TrackSideVariable = std::map<TrTrack::Side, T>;
45 template <class T> using TrackFitPosVariable = std::map<TrTrack::FitPositionHeight, T>;
49 template <class T> using TrackDistanceVariable = std::map<TrTrack::DistanceFromTrack, T>;
50 
58 class TrTrackBaseData : public TObject {
59  friend class TrdKBaseData;
60  friend class TrTrackPlusData;
61 
62 public:
63  // clang-format off
64  // fit-related
67 
68  // charge-related
73  // clang-format on
74 
75 #ifdef ENABLE_PRODUCTION_CODE
76  void Fill(TrTrackR *trackPtr);
77  void FillElectronVars(TrTrackR *trackPtr, bool refitKalman = false);
78 
79  void SetBeta(double beta) { _beta = beta; }
80  void SetMC(bool isMC) { _isMC = isMC; }
81 
82  TrTrack::Span _GetBestSpan(TrTrack::Fit fit = TrTrack::Fit::Choutko) const;
83  bool _FitIDExists(TrTrack::Fit fit, TrTrack::Span span) const;
84 #endif
85 
90  void Clear();
91 
96  void Dump() const;
97 
112 
120 
127  bool FitIDExists(TrTrack::Fit fit, TrTrack::Span span) const;
128 
129 private:
130  bool _isMC = false;
131  float _beta = 1.0f;
133 
134  ClassDef(TrTrackBaseData, 1)
135 };
136 
144 class TrTrackPlusData : public TObject {
145 public:
146  // hit-related
149 
150  // fit-related
151  float Theta = 0;
152  float Phi = 0;
153  // clang-format off
162 
163  // charge-related
174  // clang-format on
175 
176 #ifdef ENABLE_PRODUCTION_CODE
177  void Fill(TrTrackR *trackPtr);
178  void FillElectronVars(TrTrackR *trackPtr, float zEcalCOG, bool refitKalman = false);
179 #endif
180 
185  void Clear();
186 
191  void Dump() const;
192 
207 
222 
223  const TrTrackBaseData *trkBase = nullptr;
224 
225 private:
227 
228  ClassDef(TrTrackPlusData, 1)
229 };
230 
239 class TrTrackBase : public OnDemandContainer<TrTrackBase>, public TrTrackBaseData {
240 public:
241  static const std::string BranchName;
242 
244 };
245 
254 class TrTrackPlus : public OnDemandContainer<TrTrackPlus>, public TrTrackPlusData {
255 public:
256  static const std::string BranchName;
257 
259 };
260 
261 } // namespace NAIA
262 #endif
LayerVariable< TrackFitOnlyVariable< float > > PartialRigidity
Rigidity obtained from a fit where the hit on an a given layer &#39;i&#39; is not considered. This variable is provided only for negative rigidity events and for positive events is prescaled with a factor 1/100. See TrTrack::Fit and TrTrack::Span for available fits and spans.
Definition: TrTrack.h:158
std::map< TrTrack::Fit, std::map< TrTrack::Span, T >> TrackFitVariable
Definition: TrTrack.h:33
LayerVariable< TrackDistanceVariable< TrackSideVariable< unsigned int > > > NClusters
Total number of tracker clusters for each layer, within a given distance from the track...
Definition: TrTrack.h:169
TrackFitPosVariable< TrackFitVariable< TrackSideVariable< float > > > TrTrackFitPos
Track X and Y position at different heights in AMS and for each available fit and span...
Definition: TrTrack.h:161
TrackFitVariable< int > _fit_ID
Definition: TrTrack.h:132
LayerVariable< TrackSideVariable< float > > LayerEdep
Track hit (X and Y-side) energy deposition for each layer.
Definition: TrTrack.h:168
std::map< TrTrack::DistanceFromTrack, T > TrackDistanceVariable
Definition: TrTrack.h:49
LayerVariable< TrackFitOnlyVariable< float > > PartialInvRigErr
Inverse rigidity error obtained from a fit where a given layer &#39;i&#39; was excluded. This variable is pro...
Definition: TrTrack.h:159
OnDemandContainer container class description.
LayerVariable< TrackSideVariable< float > > TrTrackHitPos
X and Y position of hit on each layer, if available.
Definition: TrTrack.h:147
LayerVariable< float > ClusterSignalRatio
Ratio between cluster amplitude and its neighbouring 10 strips, for each layer.
Definition: TrTrack.h:173
std::map< TrTrack::FitPositionHeight, T > TrackFitPosVariable
Definition: TrTrack.h:45
std::map< TrTrack::ChargeRecoType, T > TrackChargeVariable
Definition: TrTrack.h:27
bool FitIDExists(TrTrack::Fit fit, TrTrack::Span span) const
Check if a given combination of fit and span is available for this track.
Definition: TrTrack.cpp:47
LayerVariable< TrackChargeVariable< float > > LayerChargeXY
Track hit charge (for each single layer, using both sides clusters) for each available reconstruction...
Definition: TrTrack.h:71
LayerVariable< int > LayerChargeStatus
Track hit charge reconstruction status for each layer (this is a bitmask, see TrClusterR::GetQStatus ...
Definition: TrTrack.h:72
TrackChargeVariable< float > InnerChargeRMS
Track charge RMS (inner tracker only) for each charge reconstruction. See TrTrack::ChargeRecoType for...
Definition: TrTrack.h:166
void Dump() const
Dump on screen container content.
Definition: TrTrack.cpp:151
std::map< TrTrack::Fit, T > TrackFitOnlyVariable
Definition: TrTrack.h:37
Container class for base Trd info.
Definition: TrdK.h:53
LayerVariable< float > TrackFeetDistance
Track distance to the inner tracker supporting feet for each layer.
Definition: TrTrack.h:148
LayerVariable< TrackDistanceVariable< TrackSideVariable< float > > > ClustersEdep
Total energy deposition of tracker clusters for each layer, within a given distance from the track...
Definition: TrTrack.h:170
float Phi
phi of track direction in AMS coordinate system
Definition: TrTrack.h:152
LayerVariable< TrackFitOnlyVariable< TrackSideVariable< float > > > PartialTrChiSq
Normalized chi-square obtained from a fit where a given layer &#39;i&#39; was excluded. This variable is prov...
Definition: TrTrack.h:160
LayerVariable< TrackSideVariable< float > > MaxClusterDistance
Distance from the track of the cluster with the highest energy deposition for each layer...
Definition: TrTrack.h:172
std::map< unsigned int, T > LayerVariable
Definition: Utils.h:54
Container class for base TrTrack info.
Definition: TrTrack.h:58
TrackFitVariable< TrackSideVariable< float > > TrChiSq
Normalized track chi-square (X and Y) for each available fit and span. See TrTrack::Fit and TrTrack::...
Definition: TrTrack.h:66
std::map< TrTrack::Side, T > TrackSideVariable
Definition: TrTrack.h:41
TrTrack::Span GetBestSpan(TrTrack::Fit fit=TrTrack::Fit::Choutko) const
Get the best Span available for this track.
Definition: TrTrack.cpp:51
TrackChargeVariable< float > UnbiasedCharge
&quot;Unbiased&quot; tracker charge for each charge reconstruction. It is a simple truncated mean between the h...
Definition: TrTrack.h:164
Mixin class to add &quot;read-on-demand&quot; behavior to an existing container class.
float GetGeomCorrectedRigidity(TrTrack::Fit fit, TrTrack::Span span, TrTrack::TrGeometry trGeom=TrTrack::TrGeometry::Default) const
Get the Rigidity variable after applying the geometry volume correction.
Definition: TrTrack.cpp:39
TrackChargeVariable< float > InnerCharge
Track charge (inner tracker only) for each available reconstruction. See TrTrack::ChargeRecoType for ...
Definition: TrTrack.h:70
LayerVariable< TrackSideVariable< float > > MaxClusterEdep
Max cluster energy deposit for each layer, for each side.
Definition: TrTrack.h:171
void Clear()
Clear container content.
Definition: TrTrack.cpp:60
TrackChargeVariable< float > ChargeRMS
Track charge RMS (including external layers) for each charge reconstruction. See TrTrack::ChargeRecoT...
Definition: TrTrack.h:165
Container class for additional TrTrack info.
Definition: TrTrack.h:144
LayerVariable< TrackChargeVariable< TrackSideVariable< float > > > LayerCharge
Track hit charge (X and Y-side) for each layer, for each charge reconstruction. See TrTrack::ChargeRe...
Definition: TrTrack.h:167
TrackFitVariable< float > InvRigErr
Error on the deflection ( = 1 / rigidity) estimation, for each available fit and span. See TrTrack::Fit and TrTrack::Span for available fits and spans.
Definition: TrTrack.h:156
Accessor class for additional TrTrack info.
Definition: TrTrack.h:254
float Theta
theta of track direction in AMS coordinate system
Definition: TrTrack.h:151
Accessor class for base TrTrack info.
Definition: TrTrack.h:239
static const std::string BranchName
Definition: TrTrack.h:256
float GetGeomCorrectedRigidityTOI(TrTrack::Fit fit, TrTrack::Span span, TrTrack::TrGeometry trGeom=TrTrack::TrGeometry::Default) const
Get the RigidityTOI variable after applying the geometry volume correction.
Definition: TrTrack.cpp:43
TrackFitVariable< int > _fit_ID
needed to get basic info without computing twice
Definition: TrTrack.h:226
float GetGeomCorrectedRigidityCorr(TrTrack::Fit fit, TrTrack::Span span, TrTrack::TrGeometry trGeom=TrTrack::TrGeometry::Default) const
Get the RigidityCorr variable after applying the geometry volume correction.
Definition: TrTrack.cpp:35
TrackFitVariable< float > Rigidity
Track rigidity for each available fit and span. See TrTrack::Fit and TrTrack::Span for available fits...
Definition: TrTrack.h:154
static const std::string BranchName
Definition: TrTrack.h:241
TrackFitVariable< float > RigidityTOI
Track rigidity at Top-Of-Instrument for each available fit and span (only available for Kalman fit)...
Definition: TrTrack.h:155
TrackChargeVariable< float > Charge
Track charge (including external layers) for each available reconstruction. See TrTrack::ChargeRecoTy...
Definition: TrTrack.h:69
const TrTrackBaseData * trkBase
Definition: TrTrack.h:223
TrackFitVariable< float > RigidityCorr
Track rigidity, corrected for time-dependent rigidity scale shifts, for each available fit and span...
Definition: TrTrack.h:65
void Dump() const
Dump on screen container content.
Definition: TrTrack.cpp:104
standard track fit
Definition: Utils.h:174
LayerVariable< TrackFitVariable< TrackSideVariable< float > > > TrTrackResidual
Track X and Y residuals in each layer for each available fit and span. See TrTrack::Fit and TrTrack::...
Definition: TrTrack.h:157
void Clear()
Clear container content.
Definition: TrTrack.cpp:73