#ifndef ALIMUONDATAINTERFACE_H
#define ALIMUONDATAINTERFACE_H
#include <TObject.h>
#include <TString.h>
class TIterator;
class AliLoader;
class AliMUONVStore;
class AliMUONVDigitStore;
class AliMUONVClusterStore;
class AliMUONVTriggerStore;
class AliMUONVDigit;
class AliMUONVCluster;
class AliMUONLocalTrigger;
class AliMUONRegionalTrigger;
class AliMUONGlobalTrigger;
class AliMUONDataInterface : public TObject
{
public:
AliMUONDataInterface(const char* filename="galice.root");
virtual ~AliMUONDataInterface();
Bool_t IsValid() const { return fIsValid; };
void Open(const char* filename);
Int_t NumberOfEvents() const;
Int_t CurrentEvent() const { return fCurrentEvent; }
AliMUONVDigitStore* DigitStore(Int_t event);
AliMUONVClusterStore* ClusterStore(Int_t event);
AliMUONVTriggerStore* TriggerStore(Int_t event, const char* treeLetter="R");
void DumpClusters(Int_t event, Bool_t sorted=kTRUE) { return DumpRecPoints(event,sorted); }
void DumpRecPoints(Int_t event, Bool_t sorted=kTRUE);
void DumpDigits(Int_t event, Bool_t sorted=kTRUE);
void DumpTrigger(Int_t event, const char* treeLetter="R");
Bool_t GetEvent(Int_t event = 0);
Int_t NumberOfDigits(Int_t detElemId);
AliMUONVDigit* Digit(Int_t detElemId, Int_t index);
Int_t NumberOfDigits(Int_t chamber, Int_t cathode);
AliMUONVDigit* Digit(Int_t chamber, Int_t cathode, Int_t index);
Int_t NumberOfRawClusters(Int_t chamber);
AliMUONVCluster* RawCluster(Int_t chamber, Int_t index);
Int_t NumberOfLocalTriggers();
AliMUONLocalTrigger* LocalTrigger(Int_t index);
Int_t NumberOfRegionalTriggers();
AliMUONRegionalTrigger* RegionalTrigger(Int_t index);
AliMUONGlobalTrigger* GlobalTrigger();
private:
enum IteratorType
{
kNoIterator,
kDigitIteratorByDetectorElement,
kDigitIteratorByChamberAndCathode,
kRawClusterIterator,
kLocalTriggerIterator,
kRegionalTriggerIterator
};
void DumpSorted(const AliMUONVStore& store) const;
Bool_t LoadEvent(Int_t event);
void NtupleTrigger(const char* treeLetter);
void ResetStores();
TIterator* GetIterator(IteratorType type, Int_t x = 0, Int_t y = 0);
void ResetIterator();
Int_t CountObjects(TIterator* iter);
TObject* FetchObject(TIterator* iter, Int_t index);
AliMUONDataInterface(const AliMUONDataInterface& rhs);
AliMUONDataInterface& operator=(const AliMUONDataInterface& rhs);
AliLoader* fLoader;
AliMUONVDigitStore* fDigitStore;
AliMUONVTriggerStore* fTriggerStore;
AliMUONVClusterStore* fClusterStore;
Int_t fCurrentEvent;
TString fTreeLetter;
Bool_t fIsValid;
IteratorType fCurrentIteratorType;
Int_t fCurrentIndex;
Int_t fDataX;
Int_t fDataY;
TIterator* fIterator;
static Int_t fgInstanceCounter;
ClassDef(AliMUONDataInterface, 0)
};
#endif // ALIMUONDATAINTERFACE_H
AliMUONDataInterface.h:10 AliMUONDataInterface.h:11 AliMUONDataInterface.h:12 AliMUONDataInterface.h:13 AliMUONDataInterface.h:14 AliMUONDataInterface.h:15 AliMUONDataInterface.h:16 AliMUONDataInterface.h:17 AliMUONDataInterface.h:18 AliMUONDataInterface.h:19 AliMUONDataInterface.h:20 AliMUONDataInterface.h:21 AliMUONDataInterface.h:22 AliMUONDataInterface.h:23 AliMUONDataInterface.h:24 AliMUONDataInterface.h:25 AliMUONDataInterface.h:26 AliMUONDataInterface.h:27 AliMUONDataInterface.h:28 AliMUONDataInterface.h:29 AliMUONDataInterface.h:30 AliMUONDataInterface.h:31 AliMUONDataInterface.h:32 AliMUONDataInterface.h:33 AliMUONDataInterface.h:34 AliMUONDataInterface.h:35 AliMUONDataInterface.h:36 AliMUONDataInterface.h:37 AliMUONDataInterface.h:38 AliMUONDataInterface.h:39 AliMUONDataInterface.h:40 AliMUONDataInterface.h:41 AliMUONDataInterface.h:42 AliMUONDataInterface.h:43 AliMUONDataInterface.h:44 AliMUONDataInterface.h:45 AliMUONDataInterface.h:46 AliMUONDataInterface.h:47 AliMUONDataInterface.h:48 AliMUONDataInterface.h:49 AliMUONDataInterface.h:50 AliMUONDataInterface.h:51 AliMUONDataInterface.h:52 AliMUONDataInterface.h:53 AliMUONDataInterface.h:54 AliMUONDataInterface.h:55 AliMUONDataInterface.h:56 AliMUONDataInterface.h:57 AliMUONDataInterface.h:58 AliMUONDataInterface.h:59 AliMUONDataInterface.h:60 AliMUONDataInterface.h:61 AliMUONDataInterface.h:62 AliMUONDataInterface.h:63 AliMUONDataInterface.h:64 AliMUONDataInterface.h:65 AliMUONDataInterface.h:66 AliMUONDataInterface.h:67 AliMUONDataInterface.h:68 AliMUONDataInterface.h:69 AliMUONDataInterface.h:70 AliMUONDataInterface.h:71 AliMUONDataInterface.h:72 AliMUONDataInterface.h:73 AliMUONDataInterface.h:74 AliMUONDataInterface.h:75 AliMUONDataInterface.h:76 AliMUONDataInterface.h:77 AliMUONDataInterface.h:78 AliMUONDataInterface.h:79 AliMUONDataInterface.h:80 AliMUONDataInterface.h:81 AliMUONDataInterface.h:82 AliMUONDataInterface.h:83 AliMUONDataInterface.h:84 AliMUONDataInterface.h:85 AliMUONDataInterface.h:86 AliMUONDataInterface.h:87 AliMUONDataInterface.h:88 AliMUONDataInterface.h:89 AliMUONDataInterface.h:90 AliMUONDataInterface.h:91 AliMUONDataInterface.h:92 AliMUONDataInterface.h:93 AliMUONDataInterface.h:94 AliMUONDataInterface.h:95 AliMUONDataInterface.h:96 AliMUONDataInterface.h:97 AliMUONDataInterface.h:98 AliMUONDataInterface.h:99 AliMUONDataInterface.h:100 AliMUONDataInterface.h:101 AliMUONDataInterface.h:102 AliMUONDataInterface.h:103 AliMUONDataInterface.h:104 AliMUONDataInterface.h:105 AliMUONDataInterface.h:106 AliMUONDataInterface.h:107 AliMUONDataInterface.h:108 AliMUONDataInterface.h:109 AliMUONDataInterface.h:110 AliMUONDataInterface.h:111 AliMUONDataInterface.h:112 AliMUONDataInterface.h:113 AliMUONDataInterface.h:114 AliMUONDataInterface.h:115 AliMUONDataInterface.h:116 AliMUONDataInterface.h:117 AliMUONDataInterface.h:118 AliMUONDataInterface.h:119 AliMUONDataInterface.h:120 AliMUONDataInterface.h:121 AliMUONDataInterface.h:122 AliMUONDataInterface.h:123 AliMUONDataInterface.h:124 AliMUONDataInterface.h:125 AliMUONDataInterface.h:126 AliMUONDataInterface.h:127 AliMUONDataInterface.h:128 AliMUONDataInterface.h:129 AliMUONDataInterface.h:130 AliMUONDataInterface.h:131 AliMUONDataInterface.h:132 AliMUONDataInterface.h:133 AliMUONDataInterface.h:134 AliMUONDataInterface.h:135 AliMUONDataInterface.h:136