]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TRD/AliTRDpid.h
New versions to cope with the new version of tracking V1
[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
6/* $Id$ */
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();
28 virtual Bool_t AssignLQ(TObjArray *tarray);
29 virtual Bool_t AssignLQ(AliTRDtrack *t);
30 virtual Bool_t FillQspectra();
31 virtual Bool_t FillQspectra(const AliTRDtrack *t);
32 virtual Bool_t CreateHistograms(const Int_t nmom
33 , const Float_t minmom
34 , const Float_t maxmom);
35 virtual Float_t LQPion(const Float_t *charge);
36 virtual Float_t LQElectron(const Float_t *charge);
37 virtual Bool_t Open(const Char_t *name, Int_t event = 0);
38 virtual Bool_t Open(const Char_t *namekine
39 , const Char_t *namecluster
40 , const Char_t *nametracks, Int_t event = 0);
41 virtual Int_t Pid(const AliTRDtrack *t);
42 virtual Bool_t ReadCluster(const Char_t *name);
43 virtual Bool_t ReadTracks(const Char_t *name);
44 virtual Bool_t ReadKine(const Char_t *name, Int_t event);
45 virtual Bool_t SumCharge(const AliTRDtrack *t, Float_t *charge);
46
47 inline Int_t GetIndexLQ(const Int_t imom, const Int_t ipid);
48 inline Int_t GetIndexLQ(const Float_t mom, const Int_t ipid);
49 inline Int_t GetIndexQ(const Int_t imom, const Int_t ipla, const Int_t ipid);
50 inline Int_t GetIndexQ(const Float_t mom, const Int_t ipla, const Int_t ipid);
51
52 TObjArray* GetQHist() const { return fQHist; };
53 TObjArray* GetLQHist() const { return fLQHist; };
54
55 void SetGeometry(AliTRDgeometry *geo) { fGeometry = geo; };
56 void SetTrackArray(TObjArray *tarray) { fTrackArray = tarray; };
57 void SetClusterArray(TObjArray *carray) { fClusterArray = carray; };
58
59 protected:
60
61 enum {
62 kNpid = 2, // Number of pid types (pion + electron)
63 kElectron = 0, // Electron pid
64 kPion = 1 // Pion pid
65 };
66
67 Int_t fNMom; // Number of momentum bins
68 Float_t fMinMom; // Lower momentum
69 Float_t fMaxMom; // Upper momentum
70 Float_t fWidMom; // Width of the momentum bins
71 TObjArray *fLQHist; // Array of L-Q histograms
72 TObjArray *fQHist; // Array of Q histograms
73 TObjArray *fTrackArray; //! Array containing the tracks
74 TObjArray *fClusterArray; //! Array containing the cluster
75 AliTRDgeometry *fGeometry; //! The TRD geometry
76
77 ClassDef(AliTRDpid,1) // Assigns e/pi propability to the tracks
78
79};
80#endif