SND@LHC Software
Loading...
Searching...
No Matches
sndRecoTrack.h
Go to the documentation of this file.
1#pragma once
2
3#include "TObject.h"
4#include "TVector3.h"
5#include "Track.h"
6
7class sndRecoTrack : public TObject {
8 public :
10 /* Constructor from genfit::Track object */
13
14 TVector3 getStart() {return start;}
15 TVector3 getStop() {return stop;}
16 TVector3 getTrackMom() {return fTrackMom;}
17 std::vector<TVector3 > getTrackPoints() {return fTrackPoints;}
18 std::vector<int> getRawMeasDetIDs() {return fRawMeasDetID;}
19 std::vector<std::vector<float>> getRawMeasTimes() {return fRawMeasTimes;}
20 int getTrackType() { return fTrackType; }
21 bool getTrackFlag() { return fFlag; }
22 float getChi2() { return chi2; }
23 int getNdf() { return Ndf; }
24 float getChi2Ndf() { return chi2/(Ndf+1E-10); }
25
26 void setRawMeasTimes(std::vector<std::vector<float>> l) { fRawMeasTimes = l; }
27 void setTrackType(int t) { fTrackType = t; }
28
29 /* extrapolateToPlaneAtZ assumes a plane in the physics coordinate
30 system is perpendicular to z-axis, which is not true for
31 TI18 geometry since detector planes are tilted! */
32 TVector3 extrapolateToPlaneAtZ(float z);
33 std::pair<int, float> TrackDirection();
34 std::pair<float, float> Velocity();
35 std::tuple<float, float, float> trackDir();
36 std::vector<float> getCorrTimes();
37 float getSlopeXZ() {return fTrackMom.X()/fTrackMom.Z();}
38 float getSlopeYZ() {return fTrackMom.Y()/fTrackMom.Z();}
39 float getAngleXZ() {return atan(fTrackMom.X()/fTrackMom.Z());}
40 float getAngleYZ() {return atan(fTrackMom.Y()/fTrackMom.Z());}
41
42 private :
43 std::vector<TVector3 > fTrackPoints;
44 std::vector<int> fRawMeasDetID;
45 std::vector<std::vector<float>> fRawMeasTimes;
46 TVector3 fTrackMom;
47 int fTrackType; // to be done as enum
48 TVector3 start, stop;
49 // selected fit status items
50 bool fFlag; // True if track fit converged
51 float chi2;
52 int Ndf;
53
55};
Collection of TrackPoint objects, AbsTrackRep objects and FitStatus objects.
Definition Track.h:71
std::vector< TVector3 > fTrackPoints
int getTrackType()
float getAngleYZ()
std::vector< TVector3 > getTrackPoints()
float getChi2Ndf()
float getAngleXZ()
bool getTrackFlag()
float getChi2()
TVector3 start
std::vector< float > getCorrTimes()
ClassDef(sndRecoTrack, 4)
std::vector< int > fRawMeasDetID
TVector3 getStart()
TVector3 extrapolateToPlaneAtZ(float z)
TVector3 getStop()
TVector3 stop
std::vector< int > getRawMeasDetIDs()
std::vector< std::vector< float > > fRawMeasTimes
TVector3 fTrackMom
std::tuple< float, float, float > trackDir()
std::pair< int, float > TrackDirection()
TVector3 getTrackMom()
void setRawMeasTimes(std::vector< std::vector< float > > l)
void setTrackType(int t)
std::vector< std::vector< float > > getRawMeasTimes()
float getSlopeYZ()
float getSlopeXZ()
std::pair< float, float > Velocity()