00001 #ifndef TKRTRACK_H
00002 #define TKRTRACK_H
00003
00004 #include "TObject.h"
00005 #include "TObjArray.h"
00006
00007
00008
00009
00010
00012
00013 could be a charged particle track or a photon that is
00014 reconstructed due to it's conversion into an
00015 electron-positron pair.
00016
00017 A track contains two lists:
00018
00019 1.) A list of TkrLocator objects which contain the position and angle of the
00020 track at different interesting positions (e.g.: initial point, exit point
00021 of the tracker).
00022
00023 2.) A list of TkrHit objects which point to the TkrSiCluster objects that are associated with this track.
00024
00025 */
00026
00027 class TkrTrack : public TObject
00028 {
00029 public:
00030
00032 typedef enum {
00033 NONE = -1,
00034 GAMMA = 0,
00035 ELECTRON,
00036 POSITRON,
00037 HADRON,
00038 OTHER
00039 } ParticleType;
00040
00041 private:
00043 TObjArray *m_hits;
00044
00046 TObjArray *m_locator;
00047
00049 UShort_t m_id;
00050
00052 ParticleType m_type;
00053
00055 ParticleType m_motherId;
00056
00058 Float_t m_residual;
00059
00061 Float_t m_chi2;
00062
00064 Float_t m_quality;
00065
00067 UInt_t m_firstLayer;
00068
00070 Float_t m_energyInput;
00071
00073 Float_t m_energyDetermined;
00074
00075 public:
00076
00078 TkrTrack();
00079 TkrTrack(UShort_t id);
00080
00082 virtual ~TkrTrack();
00083
00085
00086 void Clean();
00087
00089
00091 void Create();
00092
00094
00095 TObjArray *getHits() { return m_hits; };
00096
00098
00099 TObjArray *getLocator() { return m_locator; };
00100
00102 UShort_t getId() { return m_id; };
00103 void setId(UShort_t id) { m_id = id; };
00104
00106 ParticleType getTrackType() { return m_type; };
00107 void setTrackType(ParticleType type) { m_type = type; };
00108
00110 ParticleType getMother() { return m_motherId; };
00111 void setMother(ParticleType mom) { m_motherId = mom; };
00112
00114 Float_t getResidual() { return m_residual; };
00115 void setResidual(Float_t resid) { m_residual = resid; };
00116
00118 Float_t getChi2() { return m_chi2; };
00119 void setChi2(Float_t chi) { m_chi2 = chi; };
00120
00122 Float_t getQuality() { return m_quality; };
00123 void setQuality(Float_t q) { m_quality = q; };
00124
00126 UInt_t getFirstLayer() { return m_firstLayer; };
00127 void setFirstLayer(UInt_t first) { m_firstLayer = first; };
00128
00130 UInt_t getNumClusters() { return m_hits->GetEntries(); };
00131
00133 Float_t getEnergyInput() { return m_energyInput; };
00134 void setEnergyInput(Float_t ene) { m_energyInput = ene; };
00135
00137 Float_t getEnergyDet() { return m_energyDetermined; };
00138 void setEnergyDet(Float_t ene) { m_energyDetermined = ene; };
00139
00140 ClassDef(TkrTrack,1)
00141 };
00142 #endif