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