Go from pointer to ifstream to ifstream.
[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(TRootIOCtor* dummy);
27   AliMUONDigitStoreV1(const AliMUONDigitStoreV1& rhs);
28   AliMUONDigitStoreV1& operator=(const AliMUONDigitStoreV1& rhs);  
29   virtual ~AliMUONDigitStoreV1();
30   
31   virtual void Clear(Option_t* opt="");
32
33   /// Whether the Connect(TTree&) method is implemented
34   virtual Bool_t CanConnect() const { return kTRUE; }
35   
36   // Below are our specific methods
37     
38   virtual AliMUONVDigitStore* Create() const { return new AliMUONDigitStoreV1; }
39   
40   virtual Bool_t Connect(TTree& tree, Bool_t alone=kTRUE) const;
41
42   virtual AliMUONVDigit* CreateDigit(Int_t detElemId, Int_t manuId,
43                                      Int_t manuChannel, Int_t cathode) const;
44   
45   using AliMUONVDigitStore::Add;
46   
47   virtual AliMUONVDigit* Add(const AliMUONVDigit& digit, EReplacePolicy replace=kDeny);
48
49   virtual TIterator* CreateIterator() const;
50   
51   virtual TIterator* CreateTrackerIterator() const;
52   
53   virtual TIterator* CreateTriggerIterator() const;
54
55   virtual TIterator* CreateIterator(Int_t firstDetElemId, 
56                                     Int_t lastDetElemId,
57                                     Int_t cathode=2) const;
58     
59   using AliMUONVDigitStore::FindObject;
60   
61   virtual AliMUONVDigit* FindObject(Int_t detElemId, Int_t manuId, 
62                                     Int_t manuChannel, Int_t cathode) const;
63
64   using AliMUONVDigitStore::GetSize;
65   
66   virtual Int_t GetSize() const;
67   
68   virtual AliMUONVDigit* Remove(AliMUONVDigit& digit);
69
70   Bool_t HasMCInformation() const;
71   
72 private:
73
74   TObject** ChamberDigitsPtr(Int_t chamberId) const;
75   
76   TClonesArray* ChamberDigits(Int_t chamberId);
77   const TClonesArray* ChamberDigits(Int_t chamberId) const;
78   
79   AliMUONVDigit* Find(const AliMUONVDigit& digit, Int_t& index) const;
80   
81   AliMUONVDigit* FindIndex(Int_t detElemId, Int_t manuId, 
82                            Int_t manuChannel, Int_t cathode, Int_t& index) const;
83   
84 private:
85   TObjArray* fDigits; ///< array of tclonesarray
86   TClonesArray* fChamberDigits; ///< array of digits for one chamber
87   
88   ClassDef(AliMUONDigitStoreV1,1) // (Legacy) Implementation of AliMUONVDigitStore
89 };
90
91 #endif