Bug corrected.
[u/mrichter/AliRoot.git] / STEER / AliESDfriendTrack.h
index 69ee70f..b0f3033 100644 (file)
@@ -8,32 +8,86 @@
 //-------------------------------------------------------------------------
 
 #include <TObject.h>
-#include "AliESDtrack.h"
+#include <TClonesArray.h>
+#include <AliExternalTrackParam.h>
 
 class AliTrackPointArray;
-
+class AliKalmanTrack;
+class TObjArrray;
 //_____________________________________________________________________________
 class AliESDfriendTrack : public TObject {
 public:
+  enum {
+    kMaxITScluster=12,
+    kMaxTPCcluster=160,
+    kMaxTRDcluster=180
+  };
   AliESDfriendTrack();
-  AliESDfriendTrack(const AliESDfriendTrack &);
-  AliESDfriendTrack(const AliESDtrack &);
+  AliESDfriendTrack(const AliESDfriendTrack &t);
   virtual ~AliESDfriendTrack();
 
-  Float_t Get1P() const {return f1P;}
-  const Int_t *GetITSindices() const {return fITSindex;}
-  const Int_t *GetTPCindices() const {return fTPCindex;}
-  const Int_t *GetTRDindices() const {return fTRDindex;}
+  void Set1P(Float_t p) {f1P=p;}
+  void SetTrackPointArray(AliTrackPointArray *points) {
+    fPoints=points;
+  }
+  Float_t Get1P() const  {return f1P;}
+  Int_t *GetITSindices() {return fITSindex;}
+  Int_t *GetTPCindices() {return fTPCindex;}
+  Int_t *GetTRDindices() {return fTRDindex;}
   const AliTrackPointArray *GetTrackPointArray() const {return fPoints;}
 
+  void SetITStrack(AliKalmanTrack *t) {fITStrack=t;}
+  void SetTRDtrack(AliKalmanTrack *t) {fTRDtrack=t;}
+  AliKalmanTrack *GetTRDtrack() {return fTRDtrack;}
+  AliKalmanTrack *GetITStrack() {return fITStrack;}
+  void AddCalibObject(TObject * calibObject); 
+  TObject * GetCalibObject(Int_t index);
+  //
+  // parameters backup
+  void SetTPCOut(const AliExternalTrackParam &param);
+  void SetITSOut(const AliExternalTrackParam &param);
+  void SetTRDIn(const AliExternalTrackParam  &param);
+  //
+  
+  const AliExternalTrackParam * GetTPCOut() const {return  fTPCOut;} 
+  const AliExternalTrackParam * GetITSOut() const {return fITSOut;} 
+  const AliExternalTrackParam * GetTRDIn()  const {return fTRDIn;} 
+
+  void SetITSIndices(Int_t* indices, Int_t n);
+  void SetTPCIndices(Int_t* indices, Int_t n);
+  void SetTRDIndices(Int_t* indices, Int_t n);
+
+  Int_t GetMaxITScluster() {return fnMaxITScluster;}
+  Int_t GetMaxTPCcluster() {return fnMaxTPCcluster;}
+  Int_t GetMaxTRDcluster() {return fnMaxTRDcluster;}
+  
+  // bit manipulation for filtering
+  void SetSkipBit(Bool_t skip){SetBit(23,skip);}
+  Bool_t TestSkipBit() {return TestBit(23);}
+
 protected:
-  Float_t f1P;                                  // 1/P (1/(GeV/c))
-  Int_t fITSindex[AliESDtrack::kMaxITScluster]; // indices of the ITS clusters 
-  Int_t fTPCindex[AliESDtrack::kMaxTPCcluster]; // indices of the TPC clusters
-  Int_t fTRDindex[AliESDtrack::kMaxTRDcluster]; // indices of the TRD clusters
+  Float_t f1P;                     // 1/P (1/(GeV/c))
+  Int_t fnMaxITScluster; // Max number of ITS clusters
+  Int_t fnMaxTPCcluster; // Max number of TPC clusters
+  Int_t fnMaxTRDcluster; // Max number of TRD clusters
+  Int_t* fITSindex; //[fnMaxITScluster] indices of the ITS clusters 
+  Int_t* fTPCindex; //[fnMaxTPCcluster] indices of the TPC clusters
+  Int_t* fTRDindex; //[fnMaxTRDcluster] indices of the TRD clusters
+
+  AliTrackPointArray *fPoints;//Array of track space points in the global frame
+  TObjArray      *fCalibContainer; //Array of objects for calibration    
+  AliKalmanTrack *fITStrack; //! pointer to the ITS track (debug purposes) 
+  AliKalmanTrack *fTRDtrack; //! pointer to the TRD track (debug purposes) 
+  //
+  //
+  AliExternalTrackParam * fTPCOut; // tpc outer parameters
+  AliExternalTrackParam * fITSOut; // its outer parameters
+  AliExternalTrackParam * fTRDIn;  // trd inner parameters
+
+private:
+  AliESDfriendTrack &operator=(const AliESDfriendTrack & /* t */) {return *this;}
 
-  AliTrackPointArray *fPoints; // Array of track space points in the global frame
-  ClassDef(AliESDfriendTrack,1) //ESD friend track
+  ClassDef(AliESDfriendTrack,6) //ESD friend track
 };
 
 #endif