#ifndef ALIMUONDIGITSTOREVIMPL_H
#define ALIMUONDIGITSTOREVIMPL_H
#ifndef ALIMUONVDIGITSTORE_H
# include "AliMUONVDigitStore.h"
#endif
class TClonesArray;
class AliMUON2DMap;
class AliMUONDigitStoreVImpl : public AliMUONVDigitStore
{
friend class AliMUONDigitStoreVImplIterator;
public:
AliMUONDigitStoreVImpl(const char* concreteClassName);
AliMUONDigitStoreVImpl(const AliMUONDigitStoreVImpl& rhs);
AliMUONDigitStoreVImpl& operator=(const AliMUONDigitStoreVImpl& rhs);
virtual ~AliMUONDigitStoreVImpl();
virtual Bool_t CanConnect() const { return kTRUE; }
virtual Bool_t Connect(TTree& tree, Bool_t alone = kTRUE) const;
virtual void Clear(Option_t* opt="");
virtual AliMUONVDigit* CreateDigit(Int_t detElemId, Int_t manuId,
Int_t manuChannel, Int_t cathode) const = 0;
using AliMUONVDigitStore::Add;
virtual AliMUONVDigit* Add(const AliMUONVDigit& digit, EReplacePolicy replace);
virtual TIterator* CreateIterator() const;
virtual TIterator* CreateIterator(Int_t firstDetElemId,
Int_t lastDetElemId,
Int_t cathode=2) const;
virtual TIterator* CreateTrackerIterator() const;
virtual TIterator* CreateTriggerIterator() const;
using AliMUONVStore::FindObject;
virtual AliMUONVDigit* FindObject(UInt_t uniqueID) const;
virtual AliMUONVDigit* FindObject(Int_t detElemId, Int_t manuId,
Int_t manuChannel, Int_t cathode) const;
using AliMUONVDigitStore::GetSize;
virtual Int_t GetSize() const;
virtual AliMUONVDigit* Remove(AliMUONVDigit& digit);
protected:
virtual AliMUONVDigit* AddConcreteDigit(TClonesArray& a,
const AliMUONVDigit& digit,
Int_t index) = 0;
private:
AliMUONVDigit* Find(const AliMUONVDigit& digit) const;
void UpdateIndex(const AliMUONVDigit& digit, Int_t index);
Int_t FindIndex(const AliMUONVDigit& digit) const;
Int_t FindIndex(Int_t detElemId, Int_t internalManuId, Int_t manuChannel) const;
void ReIndex();
void ClearIndex();
private:
TClonesArray* fDigits;
AliMUON2DMap* fMap;
Bool_t fIndexed;
ClassDef(AliMUONDigitStoreVImpl,1)
};
#endif
AliMUONDigitStoreVImpl.h:1 AliMUONDigitStoreVImpl.h:2 AliMUONDigitStoreVImpl.h:3 AliMUONDigitStoreVImpl.h:4 AliMUONDigitStoreVImpl.h:5 AliMUONDigitStoreVImpl.h:6 AliMUONDigitStoreVImpl.h:7 AliMUONDigitStoreVImpl.h:8 AliMUONDigitStoreVImpl.h:9 AliMUONDigitStoreVImpl.h:10 AliMUONDigitStoreVImpl.h:11 AliMUONDigitStoreVImpl.h:12 AliMUONDigitStoreVImpl.h:13 AliMUONDigitStoreVImpl.h:14 AliMUONDigitStoreVImpl.h:15 AliMUONDigitStoreVImpl.h:16 AliMUONDigitStoreVImpl.h:17 AliMUONDigitStoreVImpl.h:18 AliMUONDigitStoreVImpl.h:19 AliMUONDigitStoreVImpl.h:20 AliMUONDigitStoreVImpl.h:21 AliMUONDigitStoreVImpl.h:22 AliMUONDigitStoreVImpl.h:23 AliMUONDigitStoreVImpl.h:24 AliMUONDigitStoreVImpl.h:25 AliMUONDigitStoreVImpl.h:26 AliMUONDigitStoreVImpl.h:27 AliMUONDigitStoreVImpl.h:28 AliMUONDigitStoreVImpl.h:29 AliMUONDigitStoreVImpl.h:30 AliMUONDigitStoreVImpl.h:31 AliMUONDigitStoreVImpl.h:32 AliMUONDigitStoreVImpl.h:33 AliMUONDigitStoreVImpl.h:34 AliMUONDigitStoreVImpl.h:35 AliMUONDigitStoreVImpl.h:36 AliMUONDigitStoreVImpl.h:37 AliMUONDigitStoreVImpl.h:38 AliMUONDigitStoreVImpl.h:39 AliMUONDigitStoreVImpl.h:40 AliMUONDigitStoreVImpl.h:41 AliMUONDigitStoreVImpl.h:42 AliMUONDigitStoreVImpl.h:43 AliMUONDigitStoreVImpl.h:44 AliMUONDigitStoreVImpl.h:45 AliMUONDigitStoreVImpl.h:46 AliMUONDigitStoreVImpl.h:47 AliMUONDigitStoreVImpl.h:48 AliMUONDigitStoreVImpl.h:49 AliMUONDigitStoreVImpl.h:50 AliMUONDigitStoreVImpl.h:51 AliMUONDigitStoreVImpl.h:52 AliMUONDigitStoreVImpl.h:53 AliMUONDigitStoreVImpl.h:54 AliMUONDigitStoreVImpl.h:55 AliMUONDigitStoreVImpl.h:56 AliMUONDigitStoreVImpl.h:57 AliMUONDigitStoreVImpl.h:58 AliMUONDigitStoreVImpl.h:59 AliMUONDigitStoreVImpl.h:60 AliMUONDigitStoreVImpl.h:61 AliMUONDigitStoreVImpl.h:62 AliMUONDigitStoreVImpl.h:63 AliMUONDigitStoreVImpl.h:64 AliMUONDigitStoreVImpl.h:65 AliMUONDigitStoreVImpl.h:66 AliMUONDigitStoreVImpl.h:67 AliMUONDigitStoreVImpl.h:68 AliMUONDigitStoreVImpl.h:69 AliMUONDigitStoreVImpl.h:70 AliMUONDigitStoreVImpl.h:71 AliMUONDigitStoreVImpl.h:72 AliMUONDigitStoreVImpl.h:73 AliMUONDigitStoreVImpl.h:74 AliMUONDigitStoreVImpl.h:75 AliMUONDigitStoreVImpl.h:76 AliMUONDigitStoreVImpl.h:77 AliMUONDigitStoreVImpl.h:78 AliMUONDigitStoreVImpl.h:79 AliMUONDigitStoreVImpl.h:80 AliMUONDigitStoreVImpl.h:81 AliMUONDigitStoreVImpl.h:82 AliMUONDigitStoreVImpl.h:83 AliMUONDigitStoreVImpl.h:84 AliMUONDigitStoreVImpl.h:85 AliMUONDigitStoreVImpl.h:86 AliMUONDigitStoreVImpl.h:87 AliMUONDigitStoreVImpl.h:88 AliMUONDigitStoreVImpl.h:89 AliMUONDigitStoreVImpl.h:90 AliMUONDigitStoreVImpl.h:91 AliMUONDigitStoreVImpl.h:92 AliMUONDigitStoreVImpl.h:93 AliMUONDigitStoreVImpl.h:94 AliMUONDigitStoreVImpl.h:95