In AliMUONTriggerQADataMakerRec:
[u/mrichter/AliRoot.git] / MUON / AliMUONDigitStoreV1.h
1 #ifndef ALIMUONDIGITSTOREV1_H
2 #define ALIMUONDIGITSTOREV1_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
9 /// \ingroup base
10 /// \class AliMUONDigitStoreV1
11 /// \brief (Legacy) implementation of AliMUONVDigitStore
12 /// 
13 // Author Laurent Aphecetche
14
15 #ifndef ALIMUONVDIGITSTORE_H
16 #  include "AliMUONVDigitStore.h"
17 #endif
18
19 class TObjArray;
20 class TClonesArray;
21
22 class AliMUONDigitStoreV1 : public AliMUONVDigitStore
23 {
24 public:
25   AliMUONDigitStoreV1();
26   AliMUONDigitStoreV1(const AliMUONDigitStoreV1& rhs);
27   AliMUONDigitStoreV1& operator=(const AliMUONDigitStoreV1& rhs);  
28   virtual ~AliMUONDigitStoreV1();
29   
30   virtual void Clear(Option_t* opt="");
31
32   /// Whether the Connect(TTree&) method is implemented
33   virtual Bool_t CanConnect() const { return kTRUE; }
34   
35   // Below are our specific methods
36     
37   virtual AliMUONVDigitStore* Create() const { return new AliMUONDigitStoreV1; }
38   
39   virtual Bool_t Connect(TTree& tree, Bool_t alone=kTRUE) const;
40
41   virtual AliMUONVDigit* CreateDigit(Int_t detElemId, Int_t manuId,
42                                      Int_t manuChannel, Int_t cathode) const;
43   
44   using AliMUONVDigitStore::Add;
45   
46   virtual AliMUONVDigit* Add(const AliMUONVDigit& digit, EReplacePolicy replace=kDeny);
47
48   virtual TIterator* CreateIterator() const;
49   
50   virtual TIterator* CreateTrackerIterator() const;
51   
52   virtual TIterator* CreateTriggerIterator() const;
53
54   virtual TIterator* CreateIterator(Int_t firstDetElemId, 
55                                     Int_t lastDetElemId,
56                                     Int_t cathode=2) const;
57     
58   using AliMUONVDigitStore::FindObject;
59   
60   virtual AliMUONVDigit* FindObject(Int_t detElemId, Int_t manuId, 
61                                     Int_t manuChannel, Int_t cathode) const;
62
63   using AliMUONVDigitStore::GetSize;
64   
65   virtual Int_t GetSize() const;
66   
67   virtual AliMUONVDigit* Remove(AliMUONVDigit& digit);
68
69   Bool_t HasMCInformation() const;
70   
71 private:
72
73   TObject** ChamberDigitsPtr(Int_t chamberId) const;
74   
75   TClonesArray* ChamberDigits(Int_t chamberId);
76   const TClonesArray* ChamberDigits(Int_t chamberId) const;
77   
78   AliMUONVDigit* Find(const AliMUONVDigit& digit, Int_t& index) const;
79   
80   AliMUONVDigit* FindIndex(Int_t detElemId, Int_t manuId, 
81                            Int_t manuChannel, Int_t cathode, Int_t& index) const;
82   
83 private:
84   TObjArray* fDigits; ///< array of tclonesarray
85   TClonesArray* fChamberDigits; ///< array of digits for one chamber
86   
87   ClassDef(AliMUONDigitStoreV1,1) // (Legacy) Implementation of AliMUONVDigitStore
88 };
89
90 #endif