1b446896 |
1 | #ifndef ALIHBTREADERTPC_H |
2 | #define ALIHBTREADERTPC_H |
3 | |
4 | #include "AliHBTReader.h" |
5 | |
6 | |
7 | //This reader reads tracks AliTPCtracks.root |
8 | // particles form tpc_good_tracks |
9 | //I am aware that this file is temporary however we do not have any other PID |
10 | //Piotr.Skowronski@cern.ch |
11 | //more info: http://alisoft.cern.ch/people/skowron/analyzer/index.html |
12 | |
13 | #include <TString.h> |
14 | class TFile; |
15 | |
16 | class AliHBTReaderTPC: public AliHBTReader |
17 | { |
18 | public: |
19 | AliHBTReaderTPC(const Char_t* trackfilename = "AliTPCtracks.root", |
20 | const Char_t* clusterfilename = "AliTPCclusters.root", |
21 | const Char_t* goodtracksfilename = "good_tracks_tpc", |
22 | const Char_t* galicefilename = ""); |
23 | |
24 | virtual ~AliHBTReaderTPC(); |
25 | |
26 | Int_t Read(AliHBTRun* particles, AliHBTRun *tracks);//reads tracks and particles and puts them in runs |
27 | |
28 | AliHBTEvent* GetParticleEvent(Int_t);//returns pointer to event with particles |
29 | AliHBTEvent* GetTrackEvent(Int_t);//returns pointer to event with particles |
30 | Int_t GetNumberOfPartEvents();//returns number of particle events |
31 | Int_t GetNumberOfTrackEvents();//returns number of track events |
32 | |
33 | protected: |
34 | //in the future this class is will read global tracking |
35 | |
36 | |
37 | Int_t OpenFiles();//opens files to be read |
38 | void CloseFiles();//close files |
39 | |
40 | AliHBTRun* fParticles; //!simulated particles |
41 | AliHBTRun* fTracks; //!reconstructed tracks (particles) |
42 | |
43 | TString fTrackFileName;//name of the file with tracks |
44 | TString fClusterFileName;//name of the file with clusters |
45 | TString fGAliceFileName;//name of the file with galice.root |
46 | TString fGoodTPCTracksFileName;//name of text file with good tracks |
47 | |
48 | TFile *fTracksFile;//file with tracks |
49 | TFile *fClustersFile;//file with clusters |
50 | |
51 | Bool_t fIsRead;//flag indicating if the data are already read |
52 | |
53 | |
54 | private: |
55 | public: |
56 | ClassDef(AliHBTReaderTPC,1) |
57 | }; |
58 | |
59 | |
60 | struct GoodTrack //data of good tracks produced by AliTPCComparison.C |
61 | { |
62 | Int_t lab; |
63 | Int_t code; |
64 | Float_t px,py,pz; |
65 | Float_t x,y,z; |
66 | }; |
67 | |
68 | class AliGoodTracks |
69 | { |
70 | //this class is for internal use only |
71 | friend class AliHBTReaderTPC; |
72 | |
73 | private: |
74 | AliGoodTracks(const TString& infilename = TString("good_tracks_tpc")); |
75 | ~AliGoodTracks(); |
76 | |
77 | const GoodTrack& GetTrack(Int_t event, Int_t n) const; |
78 | |
79 | Int_t fNevents; //Number of events |
80 | Int_t* fGoodInEvent; //Numbers of good track in event |
81 | struct GoodTrack **fData; |
82 | }; |
83 | |
84 | |
85 | #endif |