PandaRoot
RecoTrackStateProvider.h
Go to the documentation of this file.
1 // ******************************************************
2 // DecayTreeFitter Package
3 // We thank the original author Wouter Hulsbergen
4 // (BaBar, LHCb) for providing the sources.
5 // http://arxiv.org/abs/physics/0503191v1 (2005)
6 // Adaptation & Development for PANDA: Ralf Kliemt (2015)
7 // ******************************************************
8 #ifndef DECAYTREEFITTER_RECOTRACKSTATEPROVIDER_H
9 #define DECAYTREEFITTER_RECOTRACKSTATEPROVIDER_H 1
10 
11 //#include "TrackInterfaces/ITrackStateProvider.h"
12 //#include "TrackKernel/TrackTraj.h"
13 // FIXME Make a Panda state provider...
14 #include "RhoCalculationTools.h"
15 //#include "LineTool.h"
16 #include "State.h"
17 #include "Rtypes.h"
18 #include "RhoCandidate.h"
19 #include "TVectorD.h"
20 #include "TMatrixDSym.h"
21 
22 namespace DecayTreeFitter {
23 // wrapper around ITrackStateProviderTool
25  public:
26  RecoTrackStateProvider(double ztolerance) : m_ztolerance(ztolerance){};
27 
28  RecoTrackStateProvider() : m_ztolerance(0){};
29 
31 
32  void state(DecayTreeFitter::State &aState, RhoCandidate *track) const { return state(aState, track, track->Pos().x(), track->Pos().y(), track->Pos().z()); };
33 
34  double ToleranceZ() const { return m_ztolerance; };
35  void SetToleranceZ(double z) { m_ztolerance = z; };
36 
37  void state(DecayTreeFitter::State &aState, RhoCandidate *track, double vx, double vy, double vz) const
38  {
39  TVectorD statevec = aState.stateVector();
40  TMatrixDSym statecov = aState.covariance();
41  double newz = RhoCalculationTools::StateFromTrajectory(statevec, statecov, track, vx, vy, vz, m_ztolerance);
42  aState.setState(statevec);
43  aState.setZ(newz);
44  aState.setCovariance(statecov);
45  };
46 
47  void P6FromTrack(TVectorD &p6, TMatrixDSym &cov6, RhoCandidate *track, double z) const { RhoCalculationTools::P6FromTrajectory(p6, cov6, track, z, m_ztolerance); };
48 
49  private:
50  double m_ztolerance;
51  bool m_usetraj;
52  ClassDef(RecoTrackStateProvider, 1)
53 };
54 } // namespace DecayTreeFitter
55 
56 #endif
void state(DecayTreeFitter::State &aState, RhoCandidate *track, double vx, double vy, double vz) const
const TVectorD & stateVector() const
Definition: State.h:161
static Bool_t P6FromTrajectory(TVectorD &mom6, TMatrixDSym &cov6, RhoCandidate *cand, double z, double ztolerance)
TVector3 Pos() const
Definition: RhoCandidate.h:176
void state(DecayTreeFitter::State &aState, RhoCandidate *track) const
void P6FromTrack(TVectorD &p6, TMatrixDSym &cov6, RhoCandidate *track, double z) const
void setCovariance(const TMatrixDSym &value)
Definition: State.h:140
void setZ(double value)
Definition: State.h:144
static Double_t StateFromTrajectory(TVectorD &state, TMatrixDSym &cov, RhoCandidate *track, double vx, double vy, double vz, double ztolerance)
const TMatrixDSym & covariance() const
Definition: State.h:164
void setState(const TVectorD &state)
Definition: State.h:128