Can compile with or without aliroot.
[u/mrichter/AliRoot.git] / HLT / comp / AliL3ModelTrack.h
index e39925b7acf3c8d1e45a136f0348cefc692fce41..2eba6ef89fbc3d572f81850be03e1ec2577479d7 100644 (file)
@@ -2,26 +2,30 @@
 #define AliL3Model_Track
 
 #include "AliL3Track.h"
+#include "AliL3Models.h"
+#include "AliL3Defs.h"
 
-
-struct ClusterComp {
-  Bool_t fEmpty;
-  Float_t fDTime;
-  Float_t fDPad;
-  Float_t fDCharge;
-  Float_t fDShape;
-};
-
+class AliL3Transform;
 
 class AliL3ModelTrack : public AliL3Track {
 
  private:
   
   Short_t fClusterCharge; //Average cluster charge
-  ClusterComp *fClusters; //!
+  AliL3ClusterModel *fClusters; //!
+  AliL3TrackModel *fTrackModel; //!
+  AliL3Transform *fTransform; //!
   Short_t fNClusters;
-  Int_t fOverlap;
-
+  Int_t *fOverlap; //!
+  Float_t fXYResidualQ; //Quantization steps.
+  Float_t fZResidualQ;
+  Float_t fXYResolution;
+  Float_t fZResolution;
+  Float_t fXYWidthQ;
+  Float_t fZWidthQ;
+  Int_t fSlice;
+  Int_t fPatch;
+  
   //Crossing points with padrows
   Float_t *fPad; //!
   Float_t *fTime; //!
@@ -31,16 +35,35 @@ class AliL3ModelTrack : public AliL3Track {
   virtual ~AliL3ModelTrack();
   
   void Init(Int_t slice,Int_t patch);
-  void SetCluster(Float_t dpad,Float_t dtime,Float_t charge,Float_t sigmaY2,Float_t sigmaZ2);
+  void SetCluster(Int_t row,Float_t dpad,Float_t dtime,Float_t charge,Float_t sigmaY2,Float_t sigmaZ2);
+  void FillModel();
+  void FillTrack();
+  void Print();
   
-  void SetPadHit(Int_t row,Float_t f) {fPad[row]=f;}
-  void SetTimeHit(Int_t row,Float_t f) {fTime[row]=f;}
-  void SetOverlap(Int_t i) {fOverlap=i;}
+  void SetPadHit(Int_t row,Float_t f);
+  void SetTimeHit(Int_t row,Float_t f);
+  void SetOverlap(Int_t row,Int_t id);
+  void SetXYResolution(Float_t f) {fXYResolution=f;}
+  void SetZResolution(Float_t f) {fZResolution=f;}
+  
+  AliL3ClusterModel *GetClusters() {return fClusters;}
+  AliL3TrackModel *GetModel() {return fTrackModel;}
+  AliL3ClusterModel *GetClusterModel(Int_t row);
+  Int_t GetOverlap(Int_t row);
+  Float_t GetPadHit(Int_t row);
+  Float_t GetTimeHit(Int_t row);
+  Bool_t GetPad(Int_t row,Float_t &pad);
+  Bool_t GetTime(Int_t row,Float_t &time);
+  Bool_t GetClusterCharge(Int_t row,Int_t &charge);
+  Bool_t GetXYWidth(Int_t row,Float_t &width);
+  Bool_t GetZWidth(Int_t row,Float_t &width);
+  Bool_t GetPadResidual(Int_t row,Float_t &res);
+  Bool_t GetTimeResidual(Int_t row,Float_t &res);
+  Int_t GetNClusters() {return fNClusters;}
+  
+  Double_t GetParSigmaY2(Int_t row);
+  Double_t GetParSigmaZ2(Int_t row);
   
-  Int_t GetOverlap() {return fOverlap;}
-  Float_t GetPadHit(Int_t row) {return fPad[row];}
-  Float_t GetTimeHit(Int_t row) {return fTime[row];}
-
   ClassDef(AliL3ModelTrack,1)
 
 };