]>
Commit | Line | Data |
---|---|---|
37b3f607 | 1 | #ifndef ALI_MUON_DATA_INTERFACE_H |
2 | #define ALI_MUON_DATA_INTERFACE_H | |
30178c30 | 3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id$ */ | |
7 | // Includes revised 07/05/2004 | |
692de412 | 8 | // |
3455463a | 9 | /// \ingroup evaluation |
692de412 | 10 | /// \class AliMUONDataInterface |
11 | /// \brief An easy to use interface to data in the MUON module | |
48b32e42 | 12 | |
13 | // Author: Artur Szostak | |
14 | // email: artur@alice.phy.uct.ac.za | |
15 | ||
16 | #include <TObject.h> | |
17 | #include <TString.h> | |
48b32e42 | 18 | |
3455463a | 19 | #include "AliMUONRecData.h" |
20 | #include "AliMUONSimData.h" | |
48b32e42 | 21 | |
30178c30 | 22 | class TParticle; |
23 | ||
24 | class AliRunLoader; | |
25 | class AliLoader; | |
26 | class AliMUONRawCluster; | |
27 | class AliMUONLocalTrigger; | |
28 | class AliMUONHit; | |
29 | class AliMUONDigit; | |
554b38a6 | 30 | class AliMUONTrack; |
48b32e42 | 31 | |
48b32e42 | 32 | class AliMUONDataInterface : public TObject |
33 | { | |
554b38a6 | 34 | public: |
35 | ||
36 | AliMUONDataInterface(); | |
37 | ~AliMUONDataInterface(); | |
38 | ||
39 | // Sets all internal pointers to NULL without releasing the current runloader. | |
40 | void Reset(); | |
41 | ||
42 | Bool_t UseCurrentRunLoader(); | |
43 | ||
44 | Int_t NumberOfEvents(TString filename, TString foldername); | |
45 | ||
46 | Int_t NumberOfParticles(TString filename, TString foldername, Int_t event); | |
47 | TParticle* Particle(TString filename, TString foldername, Int_t event, Int_t particle); | |
48 | ||
49 | Int_t NumberOfTracks(TString filename, TString foldername, Int_t event); | |
50 | Int_t NumberOfHits(TString filename, TString foldername, Int_t event, Int_t track); | |
51 | AliMUONHit* Hit(TString filename, TString foldername, Int_t event, Int_t track, Int_t hit); | |
52 | ||
53 | Int_t NumberOfSDigits(TString filename, TString foldername, Int_t event, Int_t chamber, Int_t cathode); | |
54 | AliMUONDigit* SDigit(TString filename, TString foldername, Int_t event, Int_t chamber, Int_t cathode, Int_t sdigit); | |
55 | ||
56 | Int_t NumberOfDigits(TString filename, TString foldername, Int_t event, Int_t chamber, Int_t cathode); | |
57 | AliMUONDigit* Digit(TString filename, TString foldername, Int_t event, Int_t chamber, Int_t cathode, Int_t digit); | |
58 | ||
59 | Int_t NumberOfRawClusters(TString filename, TString foldername, Int_t event, Int_t chamber); | |
60 | AliMUONRawCluster* RawCluster(TString filename, TString foldername, Int_t event, Int_t chamber, Int_t cluster); | |
61 | ||
62 | Int_t NumberOfLocalTriggers(TString filename, TString foldername, Int_t event); | |
63 | AliMUONLocalTrigger* LocalTrigger(TString filename, TString foldername, Int_t event, Int_t trigger); | |
64 | ||
65 | Bool_t SetFile(TString filename = "galice.root", TString foldername = "MUONFolder"); | |
66 | Bool_t GetEvent(Int_t event = 0); | |
67 | ||
68 | Int_t NumberOfEvents(); | |
69 | ||
70 | Int_t NumberOfParticles(); | |
71 | TParticle* Particle(Int_t particle); | |
72 | ||
73 | Int_t NumberOfTracks(); | |
74 | Int_t NumberOfHits(Int_t track); | |
75 | AliMUONHit* Hit(Int_t track, Int_t hit); | |
76 | ||
77 | Int_t NumberOfSDigits(Int_t chamber, Int_t cathode); | |
78 | AliMUONDigit* SDigit(Int_t chamber, Int_t cathode, Int_t sdigit); | |
79 | ||
80 | Int_t NumberOfDigits(Int_t chamber, Int_t cathode); | |
81 | AliMUONDigit* Digit(Int_t chamber, Int_t cathode, Int_t digit); | |
82 | ||
83 | Int_t NumberOfRawClusters(Int_t chamber); | |
84 | AliMUONRawCluster* RawCluster(Int_t chamber, Int_t cluster); | |
85 | ||
86 | Int_t NumberOfLocalTriggers(); | |
87 | AliMUONLocalTrigger* LocalTrigger(Int_t trigger); | |
88 | ||
89 | Int_t NumberOfGlobalTriggers(); | |
90 | AliMUONGlobalTrigger* GlobalTrigger(Int_t trigger); | |
91 | // Returns the name of the currently selected file. | |
92 | ||
93 | Int_t NumberOfRecTracks(); | |
94 | AliMUONTrack* RecTrack(Int_t rectrack); | |
95 | ||
71a2d3aa | 96 | /// Returns the file name from which we are fetching data |
554b38a6 | 97 | TString CurrentFile() const { return fFilename; }; |
98 | ||
71a2d3aa | 99 | /// Returns the name of the currently selected folder. |
554b38a6 | 100 | TString CurrentFolder() const { return fFoldername; }; |
101 | ||
71a2d3aa | 102 | /// Returns the number of the currently selected event. |
554b38a6 | 103 | Int_t CurrentEvent() const { return fEventnumber; }; |
104 | ||
71a2d3aa | 105 | /// Returns the currently selected track. |
554b38a6 | 106 | Int_t CurrentTrack() const { return fTrack; }; |
107 | ||
71a2d3aa | 108 | /// Returns the currently selected cathode in TreeS. |
554b38a6 | 109 | Int_t CurrentSCathode() const { return fSCathode; }; |
110 | ||
71a2d3aa | 111 | /// Returns the currently selected cathode in TreeD. |
554b38a6 | 112 | Int_t CurrentDCathode() const { return fCathode; }; |
113 | ||
f51d54cb | 114 | private: |
71a2d3aa | 115 | /// Not implemented |
554b38a6 | 116 | AliMUONDataInterface(const AliMUONDataInterface& rhs); |
71a2d3aa | 117 | /// Not implemented |
554b38a6 | 118 | AliMUONDataInterface& operator=(const AliMUONDataInterface& rhs); |
119 | ||
3455463a | 120 | Bool_t FetchMuonLoader(TString filename); |
121 | Bool_t LoadLoaders(TString filename); | |
122 | Bool_t FetchLoaders(TString filename); | |
554b38a6 | 123 | Bool_t FetchEvent(Int_t event); |
124 | Bool_t FetchTreeK(); | |
125 | Bool_t FetchTreeH(); | |
126 | Bool_t FetchTreeS(); | |
127 | Bool_t FetchTreeD(); | |
128 | Bool_t FetchTreeR(); | |
129 | Bool_t FetchTreeT(); | |
130 | ||
3455463a | 131 | Bool_t fCreatedRunLoader; //!< If this object created the fRunloader then this flag is set. |
132 | Bool_t fCreatedRunLoaderSim;//!< If this object created the fRunloader then this flag is set. | |
18b6b8c7 | 133 | |
134 | Bool_t fHitAddressSet; //!< Flag specifying if the TTree address for the hit tree was set. | |
135 | Bool_t fSDigitAddressSet; //!< Flag specifying if the TTree address for the s-digit tree was set. | |
136 | Bool_t fDigitAddressSet; //!< Flag specifying if the TTree address for the digit tree was set. | |
137 | Bool_t fClusterAddressSet; //!< Flag specifying if the TTree address for the cluster tree was set. | |
138 | Bool_t fTriggerAddressSet; //!< Flag specifying if the TTree address for the trigger tree was set. | |
139 | Bool_t fRecTracksAddressSet; //!< Flag specifying if the TTree address for the rec tracks tree was set. | |
140 | ||
141 | AliRunLoader* fRunloader; //!< Pointer to the runloader object used. | |
3455463a | 142 | AliRunLoader* fRunloaderSim; //!< Pointer to the runloader object used. |
143 | AliLoader* fRecLoader; //!< Pointer to the muon loader object used. | |
144 | AliLoader* fSimLoader; //!< Pointer to the muon loader object used. | |
145 | AliMUONRecData fRecData; //!< Pointer to the muon raw data interface. | |
146 | AliMUONSimData fSimData; //!< Pointer to the muon raw data interface. | |
18b6b8c7 | 147 | TString fFilename; //!< The file name from which we are fetching data. |
148 | TString fFoldername; //!< The folder name from which we are fetching data. | |
3455463a | 149 | TString fFoldernameSim; //!< The folder name from which we are fetching data. |
18b6b8c7 | 150 | Int_t fEventnumber; //!< The currently selected event. |
151 | Int_t fTrack; //!< The currently selected track. | |
152 | Int_t fSCathode; //!< The currently selected cathode in TreeS. | |
153 | Int_t fCathode; //!< The currently selected cathode in TreeD. | |
554b38a6 | 154 | |
155 | ClassDef(AliMUONDataInterface, 0) // A easy to use interface to data in the MUON module. | |
156 | }; | |
157 | ||
48b32e42 | 158 | |
37b3f607 | 159 | #endif // ALI_MUON_DATA_INTERFACE_H |