AliRoot Core  3dc7879 (3dc7879)
AliMUONVDigitStore.h
Go to the documentation of this file.
1 #ifndef ALIMUONVDIGITSTORE_H
2 #define ALIMUONVDIGITSTORE_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, Subatech
14 
15 #ifndef ALIMUONVSTORE_H
16 # include "AliMUONVStore.h"
17 #endif
18 
19 #ifndef ALIMUONVDIGIT_H
20 # include "AliMUONVDigit.h" // must be there for covariant return type of FindObjet methods
21 #endif
22 
24 {
25 public:
26 
29 
30 public:
32  virtual ~AliMUONVDigitStore();
33 
35  virtual Bool_t Add(TObject* object);
36 
38  virtual AliMUONVDigitStore* Create() const = 0;
39 
40  static AliMUONVDigitStore* Create(TTree& tree);
41 
42  static AliMUONVDigitStore* Create(const char* classname);
43 
45  virtual AliMUONVDigit* CreateDigit(Int_t detElemId, Int_t manuId,
46  Int_t manuChannel, Int_t cathode) const = 0;
47 
49  virtual AliMUONVDigit* Add(Int_t detElemId,
50  Int_t manuId,
51  Int_t manuChannel,
52  Int_t cathode,
53  EReplacePolicy replace);
54 
63  virtual AliMUONVDigit* Add(const AliMUONVDigit& digit, EReplacePolicy replace) = 0;
64 
66  virtual TIterator* CreateIterator() const = 0;
67 
71  virtual TIterator* CreateIterator(Int_t firstDetElemId,
72  Int_t lastDetElemId,
73  Int_t cathode=2) const = 0;
74 
76  virtual TIterator* CreateTrackerIterator() const = 0;
77 
79  virtual TIterator* CreateTriggerIterator() const = 0;
80 
82 
84  virtual AliMUONVDigit* FindObject(const TObject* object) const;
85 
87  virtual AliMUONVDigit* FindObject(UInt_t uniqueID) const;
88 
90  virtual AliMUONVDigit* FindObject(Int_t detElemId, Int_t manuId, Int_t manuChannel, Int_t cathode) const = 0;
91 
93  virtual Int_t GetSize() const = 0;
94 
96  virtual AliMUONVDigit* Remove(AliMUONVDigit& digit) = 0;
97 
99  virtual Int_t GetSize(Int_t detElemId) const { return GetSize(detElemId,2); }
100 
102  virtual Int_t GetSize(Int_t detElemId, Int_t cathode) const;
103 
105  virtual Bool_t HasMCInformation() const = 0;
106 
107  ClassDef(AliMUONVDigitStore,1) // Digit container interface
108 };
109 
110 #endif
Interface for a digit container.
virtual TIterator * CreateIterator() const =0
Create an iterator to loop over all our digits.
virtual Int_t GetSize() const =0
Number of digits we store.
virtual AliMUONVDigit * Remove(AliMUONVDigit &digit)=0
Remove an element.
TTree * tree
virtual AliMUONVDigitStore * Create() const =0
Create an (empty) object of the same concrete class as *this.
virtual TIterator * CreateTriggerIterator() const =0
Create an iterator to loop over trigger digits only.
virtual TIterator * CreateTrackerIterator() const =0
Create an iterator to loop over tracker digits only.
virtual Int_t GetSize(Int_t detElemId) const
Number of digits in a given detection element.
ABC of a MUON digit.
Definition: AliMUONVDigit.h:18
virtual AliMUONVDigit * FindObject(const TObject *object) const
Find an object (default is to forward to FindObject(object->GetUniqueID())
virtual AliMUONVDigit * CreateDigit(Int_t detElemId, Int_t manuId, Int_t manuChannel, Int_t cathode) const =0
Create a digit.
EReplacePolicy
Replacement policy : what to do when adding a digit to the store.
Base class for MUON data stores.
Definition: AliMUONVStore.h:22
virtual Bool_t HasMCInformation() const =0
Whether we have any MC related information (e.g. at least one simulated digit)
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.