]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/Cal/AliTRDCalPID.h
Be sure to load mapping when needed
[u/mrichter/AliRoot.git] / TRD / Cal / AliTRDCalPID.h
1 #ifndef ALITRDCALPID_H
2 #define ALITRDCALPID_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 ///////////////////////////////////////////////////////////////////////////////
9 //                                                                           //
10 // Authors:                                                                  //
11 //                                                                           //
12 //  Alex Bercuci <A.Bercuci@gsi.de>                                          //
13 //  Alex Wilk <wilka@uni-muenster.de>                                        //
14 //  Prashant Shukla <shukla@pi0.physi.uni-heidelberg.de>                     //
15 //                                                                           //
16 ///////////////////////////////////////////////////////////////////////////////
17
18 #include <TNamed.h>
19
20 #include "AliPID.h"
21
22 class AliTRDCalPID : public TNamed
23 {
24 public:
25   enum {
26     kNMom      = 11,
27     kNSlicesLQ = 2,
28     kNSlicesNN = 8
29   };
30
31   AliTRDCalPID();
32   AliTRDCalPID(const Text_t *name, const Text_t *title);
33   virtual         ~AliTRDCalPID();
34
35   virtual Bool_t   LoadReferences(Char_t *refFile) = 0;
36   static  Double_t GetMomentum(Int_t ip) { 
37     return (ip<0 || ip>=kNMom) ? -1.0 : fgTrackMomentum[ip]; }
38   static  Double_t GetMomentumBinning(Int_t ip) { 
39     return (ip<0 || ip>=kNMom+1) ? -1.0 : fgTrackMomentumBinning[ip]; }
40   virtual TObject *GetModel(Int_t ip, Int_t iType, Int_t iPlane) const = 0;
41   //virtual static Int_t GetModelID(Int_t mom, Int_t spec, Int_t plane) = 0;
42   virtual Double_t GetProbability(Int_t spec, Float_t mom
43                                 , const Float_t * const dedx
44                                 , Float_t length, Int_t plane) const = 0;
45   static  Color_t  GetPartColor(Int_t i)                    { return fgPartColor[i]; }
46   static  Int_t    GetPartIndex(Int_t pdg);
47   static  const Char_t  *GetPartName(Int_t i)               { return fPartName[i];   }
48   static  const Char_t  *GetPartSymb(Int_t i)               { return fPartSymb[i];   }
49
50   void     SetPartName(Int_t i, const Char_t *name) { fPartName[i] = name;   }
51   void     SetPartSymb(Int_t i, const Char_t *symb) { fPartSymb[i] = symb;   }
52
53 protected:
54   virtual void     Init() = 0;
55
56   static const Char_t   *fPartName[AliPID::kSPECIES];     //! Names of particle species
57   static const Char_t   *fPartSymb[AliPID::kSPECIES];     //! Symbols of particle species
58   static       Color_t   fgPartColor[AliPID::kSPECIES];   //! Colors of particle species
59   static       Float_t   fgTrackMomentum[kNMom];          //  Track momenta for which response functions are available
60   static       Float_t   fgTrackMomentumBinning[kNMom+1]; //  Defines the start and the endpoints of the momentum bins
61   TObjArray             *fModel;                          //  Model for probability estimate
62
63  private:
64
65   AliTRDCalPID(const AliTRDCalPID& pd);
66   AliTRDCalPID    &operator=(const AliTRDCalPID &c);
67
68   ClassDef(AliTRDCalPID, 4)                               //  Base class for TRD PID methods
69
70 };
71 #endif