ROOT logo
AliRoot » MUON » AliMUONDigitStoreVImpl

class AliMUONDigitStoreVImpl: public AliMUONVDigitStore

 \class AliMUONDigitStoreVImpl

 Base implementation of VDigitStore, where digits are simply put
 within a single TClonesArray (to get compact output on disk) and
 fast search is achieved by using a separate index (a 2Dmap)

 Note that this class is a base implementation only, because to add
 a digit to a TClonesArray, you need to give the concrete class
 name (made in subclass by overriding :

 AliMUONVDigit* AddConcreteDigit(TClonesArray&,const AliMUONVDigit&, Int_t)

 and

 AliMUONVDigit* CreateDigit((Int_t detElemId, Int_t manuId,
 Int_t manuChannel, Int_t cathode) const

 methods.

 \author Laurent Aphecetche

Function Members (Methods)

 
    This is an abstract class, constructors will not be documented.
    Look at the header to check for available constructors.

public:
virtual~AliMUONDigitStoreVImpl()
voidTObject::AbstractMethod(const char* method) const
virtual AliMUONVDigit*Add(const AliMUONVDigit& digit, AliMUONVDigitStore::EReplacePolicy replace)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
virtual Bool_tCanConnect() const
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidClear(Option_t* opt = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual Bool_tConnect(TTree& tree, Bool_t alone = kTRUE) const
virtual voidTObject::Copy(TObject& object) const
virtual AliMUONVDigitStore*AliMUONVDigitStore::Create() const
static AliMUONVDigitStore*AliMUONVDigitStore::Create(TTree& tree)
static AliMUONVDigitStore*AliMUONVDigitStore::Create(const char* classname)
virtual AliMUONVDigit*CreateDigit(Int_t detElemId, Int_t manuId, Int_t manuChannel, Int_t cathode) const
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
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual AliMUONVDigit*FindObject(UInt_t uniqueID) const
virtual AliMUONVDigit*FindObject(Int_t detElemId, Int_t manuId, Int_t manuChannel, Int_t cathode) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual Int_tGetSize() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual Bool_tAliMUONVDigitStore::HasMCInformation() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tAliMUONVStore::IsEmpty() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
AliMUONDigitStoreVImpl&operator=(const AliMUONDigitStoreVImpl& rhs)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidAliMUONVStore::Print(Option_t* wildcard = "") const
virtual voidAliMUONVStore::Print(Option_t* wildcard, Option_t* opt) const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
virtual AliMUONVDigit*Remove(AliMUONVDigit& digit)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual AliMUONVDigit*AddConcreteDigit(TClonesArray& a, const AliMUONVDigit& digit, Int_t index)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
private:
voidClearIndex()
AliMUONVDigit*Find(const AliMUONVDigit& digit) const
Int_tFindIndex(const AliMUONVDigit& digit) const
Int_tFindIndex(Int_t detElemId, Int_t internalManuId, Int_t manuChannel) const
voidReIndex()
voidUpdateIndex(const AliMUONVDigit& digit, Int_t index)

Data Members

public:
enum AliMUONVDigitStore::EReplacePolicy { kAllow
kDeny
kMerge
kIgnore
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
private:
TClonesArray*fDigits/< collection of digits
Bool_tfIndexed!< whether our internal indices fDEs and fManus are uptodate
AliMUON2DMap*fMap!< index map for fast digit retrieval

Class Charts

Inheritance Chart:
TObject
AliMUONVStore
AliMUONVDigitStore
AliMUONDigitStoreVImpl
AliMUONDigitStoreV2R
AliMUONDigitStoreV2S

Function documentation

operator=(const AliMUONDigitStoreVImpl& rhs)
 assignement operator
~AliMUONDigitStoreVImpl()
 dtor
Connect(TTree& tree, Bool_t alone = kTRUE) const
 Connect this to the tree.
Clear(Option_t* opt = "")
 Clear the internal digit array AND the index
ClearIndex()
 Clear our internal index
Add(const AliMUONVDigit& digit, AliMUONVDigitStore::EReplacePolicy replace)
 Try to add a digit to the store. Return whether the try was successfull
 or not.

 If the digit is already there, the action taken depends on "replace"
 kAllow -> replacement will occur (i.e. return kTRUE)
 kDeny -> replacement will *not* occur (and returned value is kFALSE)
 kMerge -> both digits will be merged into one (return kTRUE)

CreateIterator() const
 Create an iterator over the full store
CreateIterator(Int_t firstDetElemId, Int_t lastDetElemId, Int_t cathode = 2) const
 Create an iterator on a given part of the store
CreateTrackerIterator() const
 Create an iterator to loop over tracker digits only
CreateTriggerIterator() const
 Create an iterator to loop over trigger digits only
Find(const AliMUONVDigit& digit) const
 Find a given digit
 Note that we only check for the id of the digit (i.e. de,manu,...)
 not for the actual content (charge, ...) to decide whether
 it's the same digit or not
ReIndex()
 Recompute the fMap, which map (de,manu,ch) to an index within
 the fDigits array
UpdateIndex(const AliMUONVDigit& digit, Int_t index)
 Update the internal index given this new digit
FindIndex(Int_t detElemId, Int_t internalManuId, Int_t manuChannel) const
 Find the index of a given (de,internalManu,ch) triplet
FindIndex(const AliMUONVDigit& digit) const
 Find the index of a given digit
FindObject(UInt_t uniqueID) const
 Find digit by its uniqueID
FindObject(Int_t detElemId, Int_t manuId, Int_t manuChannel, Int_t cathode) const
 Find a digit
GetSize() const
 Return the number of digits we hold
Remove(AliMUONVDigit& digit)
 Remove a digit
Bool_t CanConnect() const
 Whether we can be connected to a TTree
{ return kTRUE; }
AliMUONVDigit* CreateDigit(Int_t detElemId, Int_t manuId, Int_t manuChannel, Int_t cathode) const
AliMUONVDigit* AddConcreteDigit(TClonesArray& a, const AliMUONVDigit& digit, Int_t index)
 Add concrete digit