]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDpidESD.h
Changes in order to modify also ITSonly tracks
[u/mrichter/AliRoot.git] / TRD / AliTRDpidESD.h
index 27920459fc110c0a1a746402f4d9d6ea4cfe49ab..9fd25f375d3b467b142b2f2fd4edd9b591d0d963 100644 (file)
@@ -3,25 +3,62 @@
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
-//-------------------------------------------------------
-//                    TRD PID class
-// A very naive design... And the implementation is even poorer... 
-// Should be made better by the detector experts...
-//-------------------------------------------------------
-#include <Rtypes.h>
-
-class AliESD;
-
-class AliTRDpidESD {
-public:
-  AliTRDpidESD(Double_t *param);
-  Int_t MakePID(AliESD *event);
-  static Double_t Bethe(Double_t bg);
+/* $Id$ */
+
+////////////////////////////////////////////////////////////////////////////
+//                                                                        //
+// Assigns the PID probabilities based on TRD information to the ESDs     //
+//                                                                        //
+// Authors :                                                              //
+//   Prashant Shukla <shukla@pi0.physi.uni-heidelberg.de> (orig. version) //
+//   Alex Bercuci (a.bercuci@gsi.de)                                      //
+//                                                                        //
+////////////////////////////////////////////////////////////////////////////
+
+//#include <Rtypes.h>
+
+#include <TObject.h>
+
+class AliESDEvent;
+class AliESDtrack;
+class AliExternalTrackParam;
+
+class AliTRDpidESD : public TObject {
+
+ public:
+
+  AliTRDpidESD();
+  AliTRDpidESD(const AliTRDpidESD &p);
+  virtual ~AliTRDpidESD();
+  AliTRDpidESD &operator=(const AliTRDpidESD &p);
+
+  virtual void    Copy(TObject &p) const;
+  static  Bool_t  CheckTrack(AliESDtrack * const t);
+          Int_t   MakePID(AliESDEvent * const event);
+
+          void    SetCheckTrackStatus(Bool_t status = kTRUE) { fgCheckTrackStatus = status; };
+          void    SetCheckKinkStatus(Bool_t status = kTRUE)  { fgCheckKinkStatus  = status; };
+          void    SetMinPlane(Int_t plane)                   { fgMinPlane         = plane;  };
+
+         Bool_t  GetCheckTrackStatus() const                { return fgCheckTrackStatus;   };      
+         Bool_t  GetCheckKinkStatus() const                 { return fgCheckKinkStatus;    };      
+          Int_t   GetMinPlane() const                        { return fgMinPlane;           };
+
 private:
-  Double_t fMIP;          // dEdx for MIP
-  Double_t fRes;          // relative dEdx resolution
-  Double_t fRange;        // one particle type PID range (in sigmas)
-  ClassDef(AliTRDpidESD,1)   // TRD PID class
+
+          Bool_t  RecalculateTrackSegmentKine(AliESDtrack * const t
+                                            , Int_t plan
+                                            , Float_t &mom
+                                            , Float_t &length);
+
+  static  Bool_t  fgCheckTrackStatus;           //  Enable check on ESD track status
+  static  Bool_t  fgCheckKinkStatus;            //  Enable check on ESD kink track
+  static  Int_t   fgMinPlane;                   //  Minimum number of planes
+
+  AliExternalTrackParam *fTrack;                //! Memory holder for Track segment calculations
+       
+  ClassDef(AliTRDpidESD,2)                      //  TRD PID class
+
 };
 
 #endif