]>
Commit | Line | Data |
---|---|---|
1 | #ifndef ALITRDPID_H | |
2 | #define ALITRDPID_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 | // The TRD particle identification base class // | |
10 | // // | |
11 | // Its main purposes are: // | |
12 | // - Provide I/O framework for all neccessary files // | |
13 | // - Assignment of a e/pi propability to a given track // | |
14 | // // | |
15 | /////////////////////////////////////////////////////////////////////////////// | |
16 | ||
17 | #include <TNamed.h> | |
18 | ||
19 | class TObjArray; | |
20 | class TFile; | |
21 | ||
22 | class AliTRDgeometry; | |
23 | class AliTRDtrack; | |
24 | ||
25 | class AliTRDpid : public TNamed { | |
26 | ||
27 | public: | |
28 | ||
29 | AliTRDpid(); | |
30 | AliTRDpid(const char* name, const char* title); | |
31 | AliTRDpid(const AliTRDpid &p); | |
32 | virtual ~AliTRDpid(); | |
33 | AliTRDpid &operator=(const AliTRDpid &p); | |
34 | ||
35 | virtual void Copy(TObject &p); | |
36 | virtual Bool_t Init(); | |
37 | virtual Bool_t AssignLikelihood(); | |
38 | virtual Bool_t AssignLikelihood(TObjArray *tarray); | |
39 | virtual Bool_t AssignLikelihood(AliTRDtrack *t) = 0; | |
40 | virtual Bool_t FillSpectra(); | |
41 | virtual Bool_t FillSpectra(TObjArray *tarray); | |
42 | virtual Bool_t FillSpectra(const AliTRDtrack *t) = 0; | |
43 | virtual Bool_t Open(const Char_t *name, Int_t event = 0); | |
44 | virtual Bool_t Open(const Char_t *namekine | |
45 | , const Char_t *namecluster | |
46 | , const Char_t *nametracks, Int_t event = 0); | |
47 | virtual Int_t MCpid(const AliTRDtrack *t); | |
48 | virtual Int_t MCpid(const AliTRDtrack *t, Int_t *pdg, Int_t *nFound, Int_t *indices); | |
49 | virtual Bool_t ReadCluster(const Char_t *name); | |
50 | virtual Bool_t ReadTracks(const Char_t *name); | |
51 | virtual Bool_t ReadKine(const Char_t *name, Int_t event); | |
52 | virtual Bool_t SumCharge(const AliTRDtrack *t, Float_t *charge, Int_t *nCluster); | |
53 | ||
54 | virtual Int_t GetIndex(const AliTRDtrack *t) = 0; | |
55 | ||
56 | void SetGeometry(AliTRDgeometry *geo) { fGeometry = geo; }; | |
57 | void SetTrackArray(TObjArray *tarray) { fTrackArray = tarray; }; | |
58 | void SetClusterArray(TObjArray *carray) { fClusterArray = carray; }; | |
59 | ||
60 | void SetPIDratioMin(Float_t min) { fPIDratioMin = min; }; | |
61 | void SetPIDpurePoints(Bool_t pure) { fPIDpurePoints = pure; }; | |
62 | void SetPIDindexMin(Int_t min) { fPIDindexMin = min; }; | |
63 | void SetPIDindexMax(Int_t max) { fPIDindexMax = max; }; | |
64 | ||
65 | void SetThreePadOnly(Bool_t only) { fThreePadOnly = only; }; | |
66 | void SetEvent(Int_t event) { fEvent = event; }; | |
67 | ||
68 | TObjArray *GetTrackArray() const { return fTrackArray; }; | |
69 | TObjArray *GetClusterArray() const { return fClusterArray; }; | |
70 | ||
71 | Float_t GetPIDratioMin() const { return fPIDratioMin; }; | |
72 | Bool_t GetPIDpurePoints() const { return fPIDpurePoints; }; | |
73 | Float_t GetPIDindexMin() const { return fPIDindexMin; }; | |
74 | Float_t GetPIDindexMax() const { return fPIDindexMax; }; | |
75 | ||
76 | Bool_t GetThreePadOnly() const { return fThreePadOnly; }; | |
77 | ||
78 | protected: | |
79 | ||
80 | enum { | |
81 | kNpid = 2, // Number of pid types (pion + electron) | |
82 | kElectron = 0, // Electron pid | |
83 | kPion = 1 // Pion pid | |
84 | }; | |
85 | ||
86 | Float_t fPIDratioMin; // Minimum fraction of cluster from one particle | |
87 | Bool_t fPIDpurePoints; // Require pure (nono overlapping) cluster | |
88 | Int_t fPIDindexMin; // Lower index MC particles to be considered | |
89 | Int_t fPIDindexMax; // Upper index MC particles to be considered | |
90 | ||
91 | Bool_t fThreePadOnly; // Use only three pad cluster in the charge sum | |
92 | ||
93 | Int_t fEvent; // Event number | |
94 | ||
95 | TObjArray *fTrackArray; //! Array containing the tracks | |
96 | TObjArray *fClusterArray; //! Array containing the cluster | |
97 | AliTRDgeometry *fGeometry; //! The TRD geometry | |
98 | TFile *fFileKine; //! The kine input file | |
99 | ||
100 | ClassDef(AliTRDpid,1) // Assigns the e/pi propability to the tracks | |
101 | ||
102 | }; | |
103 | #endif |