#ifndef ALIMUONMCDATAINTERFACE_H
#define ALIMUONMCDATAINTERFACE_H
#ifndef ROOT_TObject
# include "TObject.h"
#endif
class AliMUONVStore;
class AliMUONVHitStore;
class AliMUONVDigitStore;
class AliMUONVTriggerStore;
class AliMUONHit;
class AliMUONVDigit;
class AliMUONLocalTrigger;
class AliMUONRegionalTrigger;
class AliMUONGlobalTrigger;
class AliLoader;
class AliStack;
class TIterator;
class TClonesArray;
class TParticle;
class AliMUONMCDataInterface : public TObject
{
public:
AliMUONMCDataInterface(const char* filename="galice.root");
virtual ~AliMUONMCDataInterface();
void Open(const char* filename);
Bool_t IsValid() const { return fIsValid; };
Int_t NumberOfEvents() const;
Int_t CurrentEvent() const { return fCurrentEvent; }
Int_t NumberOfTracks(Int_t event);
Int_t NumberOfTrackRefs(Int_t event);
AliMUONVHitStore* HitStore(Int_t event, Int_t track);
AliMUONVDigitStore* SDigitStore(Int_t event);
AliMUONVDigitStore* DigitStore(Int_t event);
AliStack* Stack(Int_t event);
TClonesArray* TrackRefs(Int_t event, Int_t track);
AliMUONVTriggerStore* TriggerStore(Int_t event);
void DumpDigits(Int_t event, Bool_t sorted=kTRUE);
void DumpSDigits(Int_t event, Bool_t sorted=kTRUE);
void DumpHits(Int_t event);
void DumpKine(Int_t event);
void DumpTrackRefs(Int_t event);
void DumpTrigger(Int_t event);
Bool_t GetEvent(Int_t event = 0);
Int_t NumberOfParticles();
TParticle* Particle(Int_t index);
Int_t NumberOfTracks();
Int_t NumberOfHits(Int_t track);
AliMUONHit* Hit(Int_t track, Int_t index);
Int_t NumberOfSDigits(Int_t detElemId);
AliMUONVDigit* SDigit(Int_t detElemId, Int_t index);
Int_t NumberOfSDigits(Int_t chamber, Int_t cathode);
AliMUONVDigit* SDigit(Int_t chamber, Int_t cathode, Int_t index);
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 NumberOfLocalTriggers();
AliMUONLocalTrigger* LocalTrigger(Int_t index);
Int_t NumberOfRegionalTriggers();
AliMUONRegionalTrigger* RegionalTrigger(Int_t index);
AliMUONGlobalTrigger* GlobalTrigger();
Int_t NumberOfTrackRefs();
TClonesArray* TrackRefs(Int_t track);
private:
enum IteratorType
{
kNoIterator,
kHitIterator,
kSDigitIteratorByDetectorElement,
kSDigitIteratorByChamberAndCathode,
kDigitIteratorByDetectorElement,
kDigitIteratorByChamberAndCathode,
kLocalTriggerIterator,
kRegionalTriggerIterator
};
AliMUONMCDataInterface(const AliMUONMCDataInterface&);
AliMUONMCDataInterface& operator=(const AliMUONMCDataInterface&);
void DumpSorted(const AliMUONVStore& store) const;
Bool_t LoadEvent(Int_t event);
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);
AliLoader* fLoader;
AliMUONVHitStore* fHitStore;
AliMUONVDigitStore* fSDigitStore;
AliMUONVDigitStore* fDigitStore;
AliMUONVTriggerStore* fTriggerStore;
TClonesArray* fTrackRefs;
Int_t fCurrentEvent;
Bool_t fIsValid;
IteratorType fCurrentIteratorType;
Int_t fCurrentIndex;
Int_t fDataX;
Int_t fDataY;
TIterator* fIterator;
static Int_t fgInstanceCounter;
ClassDef(AliMUONMCDataInterface,0)
};
#endif
AliMUONMCDataInterface.h:1 AliMUONMCDataInterface.h:2 AliMUONMCDataInterface.h:3 AliMUONMCDataInterface.h:4 AliMUONMCDataInterface.h:5 AliMUONMCDataInterface.h:6 AliMUONMCDataInterface.h:7 AliMUONMCDataInterface.h:8 AliMUONMCDataInterface.h:9 AliMUONMCDataInterface.h:10 AliMUONMCDataInterface.h:11 AliMUONMCDataInterface.h:12 AliMUONMCDataInterface.h:13 AliMUONMCDataInterface.h:14 AliMUONMCDataInterface.h:15 AliMUONMCDataInterface.h:16 AliMUONMCDataInterface.h:17 AliMUONMCDataInterface.h:18 AliMUONMCDataInterface.h:19 AliMUONMCDataInterface.h:20 AliMUONMCDataInterface.h:21 AliMUONMCDataInterface.h:22 AliMUONMCDataInterface.h:23 AliMUONMCDataInterface.h:24 AliMUONMCDataInterface.h:25 AliMUONMCDataInterface.h:26 AliMUONMCDataInterface.h:27 AliMUONMCDataInterface.h:28 AliMUONMCDataInterface.h:29 AliMUONMCDataInterface.h:30 AliMUONMCDataInterface.h:31 AliMUONMCDataInterface.h:32 AliMUONMCDataInterface.h:33 AliMUONMCDataInterface.h:34 AliMUONMCDataInterface.h:35 AliMUONMCDataInterface.h:36 AliMUONMCDataInterface.h:37 AliMUONMCDataInterface.h:38 AliMUONMCDataInterface.h:39 AliMUONMCDataInterface.h:40 AliMUONMCDataInterface.h:41 AliMUONMCDataInterface.h:42 AliMUONMCDataInterface.h:43 AliMUONMCDataInterface.h:44 AliMUONMCDataInterface.h:45 AliMUONMCDataInterface.h:46 AliMUONMCDataInterface.h:47 AliMUONMCDataInterface.h:48 AliMUONMCDataInterface.h:49 AliMUONMCDataInterface.h:50 AliMUONMCDataInterface.h:51 AliMUONMCDataInterface.h:52 AliMUONMCDataInterface.h:53 AliMUONMCDataInterface.h:54 AliMUONMCDataInterface.h:55 AliMUONMCDataInterface.h:56 AliMUONMCDataInterface.h:57 AliMUONMCDataInterface.h:58 AliMUONMCDataInterface.h:59 AliMUONMCDataInterface.h:60 AliMUONMCDataInterface.h:61 AliMUONMCDataInterface.h:62 AliMUONMCDataInterface.h:63 AliMUONMCDataInterface.h:64 AliMUONMCDataInterface.h:65 AliMUONMCDataInterface.h:66 AliMUONMCDataInterface.h:67 AliMUONMCDataInterface.h:68 AliMUONMCDataInterface.h:69 AliMUONMCDataInterface.h:70 AliMUONMCDataInterface.h:71 AliMUONMCDataInterface.h:72 AliMUONMCDataInterface.h:73 AliMUONMCDataInterface.h:74 AliMUONMCDataInterface.h:75 AliMUONMCDataInterface.h:76 AliMUONMCDataInterface.h:77 AliMUONMCDataInterface.h:78 AliMUONMCDataInterface.h:79 AliMUONMCDataInterface.h:80 AliMUONMCDataInterface.h:81 AliMUONMCDataInterface.h:82 AliMUONMCDataInterface.h:83 AliMUONMCDataInterface.h:84 AliMUONMCDataInterface.h:85 AliMUONMCDataInterface.h:86 AliMUONMCDataInterface.h:87 AliMUONMCDataInterface.h:88 AliMUONMCDataInterface.h:89 AliMUONMCDataInterface.h:90 AliMUONMCDataInterface.h:91 AliMUONMCDataInterface.h:92 AliMUONMCDataInterface.h:93 AliMUONMCDataInterface.h:94 AliMUONMCDataInterface.h:95 AliMUONMCDataInterface.h:96 AliMUONMCDataInterface.h:97 AliMUONMCDataInterface.h:98 AliMUONMCDataInterface.h:99 AliMUONMCDataInterface.h:100 AliMUONMCDataInterface.h:101 AliMUONMCDataInterface.h:102 AliMUONMCDataInterface.h:103 AliMUONMCDataInterface.h:104 AliMUONMCDataInterface.h:105 AliMUONMCDataInterface.h:106 AliMUONMCDataInterface.h:107 AliMUONMCDataInterface.h:108 AliMUONMCDataInterface.h:109 AliMUONMCDataInterface.h:110 AliMUONMCDataInterface.h:111 AliMUONMCDataInterface.h:112 AliMUONMCDataInterface.h:113 AliMUONMCDataInterface.h:114 AliMUONMCDataInterface.h:115 AliMUONMCDataInterface.h:116 AliMUONMCDataInterface.h:117 AliMUONMCDataInterface.h:118 AliMUONMCDataInterface.h:119 AliMUONMCDataInterface.h:120 AliMUONMCDataInterface.h:121 AliMUONMCDataInterface.h:122 AliMUONMCDataInterface.h:123 AliMUONMCDataInterface.h:124 AliMUONMCDataInterface.h:125 AliMUONMCDataInterface.h:126 AliMUONMCDataInterface.h:127 AliMUONMCDataInterface.h:128 AliMUONMCDataInterface.h:129 AliMUONMCDataInterface.h:130 AliMUONMCDataInterface.h:131 AliMUONMCDataInterface.h:132 AliMUONMCDataInterface.h:133 AliMUONMCDataInterface.h:134 AliMUONMCDataInterface.h:135 AliMUONMCDataInterface.h:136 AliMUONMCDataInterface.h:137 AliMUONMCDataInterface.h:138 AliMUONMCDataInterface.h:139 AliMUONMCDataInterface.h:140 AliMUONMCDataInterface.h:141 AliMUONMCDataInterface.h:142 AliMUONMCDataInterface.h:143 AliMUONMCDataInterface.h:144 AliMUONMCDataInterface.h:145 AliMUONMCDataInterface.h:146 AliMUONMCDataInterface.h:147 AliMUONMCDataInterface.h:148 AliMUONMCDataInterface.h:149 AliMUONMCDataInterface.h:150 AliMUONMCDataInterface.h:151 AliMUONMCDataInterface.h:152 AliMUONMCDataInterface.h:153 AliMUONMCDataInterface.h:154 AliMUONMCDataInterface.h:155