Line data Source code
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 0 : virtual Bool_t CanConnect() const { return kTRUE; }
35 :
36 : // Below are our specific methods
37 :
38 0 : 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 18 : ClassDef(AliMUONDigitStoreV1,1) // (Legacy) Implementation of AliMUONVDigitStore
89 : };
90 :
91 : #endif
|