New values and cuts
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnValuePID.h
1 #ifndef ALIRSNVALUEPID_H
2 #define ALIRSNVALUEPID_H
3
4 #include "AliPID.h"
5 #include "AliRsnValue.h"
6
7 class AliVTrack;
8 class AliPIDResponse;
9
10 class AliRsnValuePID : public AliRsnValue {
11
12 public:
13
14    enum EValuePID {
15       kITSsignal,
16       kITSnsigma,
17       kTPCsignal,
18       kTPCnsigma,
19       kTOFsignal,
20       kTOFnsigma,
21       kTOFtime,
22       kTOFsigma,
23       kValues
24    };
25
26    AliRsnValuePID();
27    AliRsnValuePID(const char *name, EValuePID type, AliPID::EParticleType species, Int_t nbins = 0, Double_t min = 0.0, Double_t max = 0.0);
28    AliRsnValuePID(const char *name, EValuePID type, AliPID::EParticleType species, Double_t min, Double_t max, Double_t step);
29    AliRsnValuePID(const char *name, EValuePID type, AliPID::EParticleType species, Int_t nbins, Double_t *array);
30    AliRsnValuePID(const AliRsnValuePID& copy);
31    AliRsnValuePID& operator=(const AliRsnValuePID& copy);
32
33    virtual ~AliRsnValuePID() { }
34    
35    void            SetValuePID(EValuePID type) {fValuePID = type;}
36    EValuePID       GetValuePID()               {return fValuePID;}
37    
38    virtual Bool_t  Eval(TObject *object, Bool_t useMC = kFALSE);
39    virtual void    Print(Option_t *option = "") const;
40
41 protected:
42
43    void   InitializePID();
44    Bool_t TOFComputations(AliVTrack *track);
45
46    AliPID::EParticleType  fSpecies;                    //  particle species
47    EValuePID              fValuePID;                   //  output object
48    AliPIDResponse        *fPID;                        //  PID response object
49    Double_t               fTOFtimes[AliPID::kSPECIES]; //! TOF times
50    Double_t               fTOFsigma[AliPID::kSPECIES]; //! TOF sigma
51
52    ClassDef(AliRsnValuePID,1)                          //   AliRsnValuePID class
53
54 };
55
56 #endif