]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONDataInterface.h
Changes to use new VDigitStore and VClusterStore (Laurent)
[u/mrichter/AliRoot.git] / MUON / AliMUONDataInterface.h
CommitLineData
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 22class TParticle;
23
24class AliRunLoader;
25class AliLoader;
26class AliMUONRawCluster;
27class AliMUONLocalTrigger;
28class AliMUONHit;
29class AliMUONDigit;
554b38a6 30class AliMUONTrack;
48b32e42 31
48b32e42 32class 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