4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
8 // Revision of includes 07/05/2004
11 /// \class AliMUONData
12 /// \brief Class containing MUON data: hits, digits, rawclusters, globaltrigger,
13 /// localtrigger, etc ...
15 // Author: Gines Martinez, Subatech, September 2003
19 #include "AliLoader.h"
22 class AliMUONLocalTrigger;
23 class AliMUONRegionalTrigger;
24 class AliMUONGlobalTrigger;
33 //__________________________________________________________________
34 /////////////////////////////////////////////////////////////////////
36 // class AliMUONData //
38 /////////////////////////////////////////////////////////////////////
40 class AliMUONData : public TNamed
44 // enum EChamberIteration { kAllChambers, kTrackingChambers, kTriggerChambers };
47 AliMUONData(AliLoader * loader, const char* name, const char* title);
48 AliMUONData(const char* galiceFile, const char* folderName);
49 virtual ~AliMUONData();
50 virtual void AddSDigit(Int_t id, const AliMUONDigit& digit); // use copy constructor
51 virtual void AddDigit(Int_t id, const AliMUONDigit& digit); // use copy constructor
54 virtual void AddGlobalTrigger(const AliMUONGlobalTrigger& trigger); // use copy constructor
56 virtual void AddLocalTrigger(const AliMUONLocalTrigger& trigger); // use copy constructor
58 virtual void AddRegionalTrigger(const AliMUONRegionalTrigger& trigger); // use copy constructor
61 TClonesArray* SDigits(Int_t DetectionPlane) const;
62 TClonesArray* Digits(Int_t DetectionPlane) const;
63 TClonesArray* LocalTrigger() const;
64 TClonesArray* RegionalTrigger() const;
65 TClonesArray* GlobalTrigger() const;
67 void GetSDigits() const;
68 void GetDigits() const;
69 void GetTriggerD() const;
71 /// Return split level
72 Int_t GetSplitLevel() const {return fSplitLevel;}
75 void SetSplitLevel(Int_t SplitLevel) {fSplitLevel=SplitLevel;}
77 Bool_t IsDigitsBranchesInTree();
78 Bool_t IsTriggerBranchesInTreeD();
81 virtual AliLoader* GetLoader() const { return fLoader; }
83 virtual void SetLoader(AliLoader * loader) {fLoader=loader;}
85 virtual void Fill(Option_t* opt=" ");
86 virtual void MakeBranch(Option_t *opt=" ");
87 virtual void SetDataContainer(Option_t *opt=" ");
88 virtual void SetTreeAddress(Option_t *opt=" ");
90 virtual void Print(Option_t* opt="") const;
92 virtual void ResetSDigits();
93 virtual void ResetDigits();
94 virtual void ResetTrigger();
96 /// Return tree with summable digits
97 TTree* TreeS() {return fLoader->TreeS(); }
98 /// Return tree with digits
99 TTree* TreeD() {return fLoader->TreeD(); }
101 // Methods to dump data
102 void DumpSDigits(Int_t event2Check=0, Option_t* opt="tracks");
103 void DumpDigits(Int_t event2Check=0, Option_t* opt="tracks");
107 AliMUONData(const AliMUONData& rhs);
109 AliMUONData& operator=(const AliMUONData& rhs);
111 AliRunLoader* fRunLoader; //!< Run loader pointer
112 AliLoader* fLoader; //!< Detector Loader pointer
114 TObjArray* fSDigits; ///< One event in treeS and one branch per detection plane
115 TObjArray* fDigits; ///< One event in treeD and one branch per detection plane
116 TClonesArray* fGlobalTrigger; ///< List of Global Trigger One event in TreeR/GlobalTriggerBranch
117 TClonesArray* fLocalTrigger; ///< List of Local Trigger, One event in TreeR/LocalTriggerBranch
118 TClonesArray* fRegionalTrigger; ///< List of Regional Trigger, One event in TreeR/LocalTriggerBranch
120 Int_t* fNSdigits;//!< Number of Digits
121 Int_t* fNdigits; //!< Number of Digits
122 Int_t fNglobaltrigger;//!< Number of Global trigger
123 Int_t fNlocaltrigger; //!< Number of Local trigger
124 Int_t fNregionaltrigger; //!< Number of regional trigger
125 Int_t fSplitLevel; ///< Splitting of branches 0 no spitting (root files are smaller) 1 splitting (larger output files)
127 mutable Int_t fCurrentEvent; ///< Current event we're dealing with
131 ClassDef(AliMUONData,4) // Data accessor for MUON module
137 /// Load sdigits tree
138 inline void AliMUONData::GetSDigits() const {
139 if (fLoader && fLoader->TreeS())
140 fLoader->TreeS()->GetEvent(0);
143 /// Load trigger D tree
144 inline void AliMUONData::GetTriggerD() const {
145 if (fLoader && fLoader->TreeD())
146 fLoader->TreeD()->GetEvent(0);