AliRoot Core  da88d91 (da88d91)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliMUONDigitStoreVImpl.h
Go to the documentation of this file.
1 #ifndef ALIMUONDIGITSTOREVIMPL_H
2 #define ALIMUONDIGITSTOREVIMPL_H
3 
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6 
7 // $Id$
8 
13 // author Laurent Aphecetche
14 
15 #ifndef ALIMUONVDIGITSTORE_H
16 # include "AliMUONVDigitStore.h"
17 #endif
18 
19 class TClonesArray;
20 class AliMUON2DMap;
21 
23 {
25 
26 public:
27  AliMUONDigitStoreVImpl(const char* concreteClassName);
30  virtual ~AliMUONDigitStoreVImpl();
31 
33  virtual Bool_t CanConnect() const { return kTRUE; }
34 
35  virtual Bool_t Connect(TTree& tree, Bool_t alone = kTRUE) const;
36 
37  virtual void Clear(Option_t* opt="");
38 
39  virtual AliMUONVDigit* CreateDigit(Int_t detElemId, Int_t manuId,
40  Int_t manuChannel, Int_t cathode) const = 0;
41 
43 
44  virtual AliMUONVDigit* Add(const AliMUONVDigit& digit, EReplacePolicy replace);
45 
46  virtual TIterator* CreateIterator() const;
47 
48  virtual TIterator* CreateIterator(Int_t firstDetElemId,
49  Int_t lastDetElemId,
50  Int_t cathode=2) const;
51 
52  virtual TIterator* CreateTrackerIterator() const;
53 
54  virtual TIterator* CreateTriggerIterator() const;
55 
57 
58  virtual AliMUONVDigit* FindObject(UInt_t uniqueID) const;
59 
60  virtual AliMUONVDigit* FindObject(Int_t detElemId, Int_t manuId,
61  Int_t manuChannel, Int_t cathode) const;
62 
64 
65  virtual Int_t GetSize() const;
66 
67  virtual AliMUONVDigit* Remove(AliMUONVDigit& digit);
68 
69 protected:
71  virtual AliMUONVDigit* AddConcreteDigit(TClonesArray& a,
72  const AliMUONVDigit& digit,
73  Int_t index) = 0;
74 
75 private:
76 
77  AliMUONVDigit* Find(const AliMUONVDigit& digit) const;
78 
79  void UpdateIndex(const AliMUONVDigit& digit, Int_t index);
80 
81  Int_t FindIndex(const AliMUONVDigit& digit) const;
82  Int_t FindIndex(Int_t detElemId, Int_t internalManuId, Int_t manuChannel) const;
83 
84  void ReIndex();
85  void ClearIndex();
86 
87 private:
88  TClonesArray* fDigits;
90  Bool_t fIndexed;
91 
92  ClassDef(AliMUONDigitStoreVImpl,1) // Implementation of AliMUONVDigitStore
93 };
94 
95 #endif
Bool_t fIndexed
! whether our internal indices fDEs and fManus are uptodate
Base implementation of TIterator for AliMUONDigitStoreVImpl.
virtual Int_t GetSize() const
Number of digits we store.
Interface for a digit container.
virtual TIterator * CreateTriggerIterator() const
Create an iterator to loop over trigger digits only.
virtual void Clear(Option_t *opt="")
Clear ourselves (i.e. Reset)
AliMUONDigitStoreVImpl & operator=(const AliMUONDigitStoreVImpl &rhs)
Base implementation of VDigitStore.
virtual AliMUONVDigit * AddConcreteDigit(TClonesArray &a, const AliMUONVDigit &digit, Int_t index)=0
Add concrete digit.
TTree * tree
AliMUON2DMap * fMap
! index map for fast digit retrieval
virtual Int_t GetSize() const =0
Number of digits we store.
virtual Bool_t Connect(TTree &tree, Bool_t alone=kTRUE) const
Connect us to a TTree (only valid if CanConnect()==kTRUE)
virtual AliMUONVDigit * Add(const AliMUONVDigit &digit, EReplacePolicy replace)
AliMUONVDigit * Find(const AliMUONVDigit &digit) const
void UpdateIndex(const AliMUONVDigit &digit, Int_t index)
TClonesArray * fDigits
collection of digits
virtual TIterator * CreateTrackerIterator() const
Create an iterator to loop over tracker digits only.
virtual TIterator * CreateIterator() const
Create an iterator to loop over all our digits.
Int_t FindIndex(const AliMUONVDigit &digit) const
Basic implementation of AliMUONVStore container using AliMpExMap internally.
Definition: AliMUON2DMap.h:20
virtual Bool_t CanConnect() const
Whether we can be connected to a TTree.
virtual AliMUONVDigit * Remove(AliMUONVDigit &digit)
Remove an element.
virtual AliMUONVDigit * FindObject(UInt_t uniqueID) const
Find an object by its uniqueID.
ABC of a MUON digit.
Definition: AliMUONVDigit.h:18
virtual AliMUONVDigit * CreateDigit(Int_t detElemId, Int_t manuId, Int_t manuChannel, Int_t cathode) const =0
Create a digit.
AliMUONDigitStoreVImpl(const char *concreteClassName)
EReplacePolicy
Replacement policy : what to do when adding a digit to the store.
virtual TObject * FindObject(const char *name) const
Find an object by name.
virtual Bool_t Add(TObject *object)
Add an object, if it is of the right class.
return kTRUE
Definition: AliFMDv1.cxx:97