]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONData.h
Extended include path to cover all directories needed by all
[u/mrichter/AliRoot.git] / MUON / AliMUONData.h
1 #ifndef ALIMUONDATA_H
2 #define ALIMUONDATA_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 // Revision of includes 07/05/2004
9 //
10 /// \ingroup base
11 /// \class AliMUONData
12 /// \brief Class containing MUON data: hits, digits, rawclusters, globaltrigger, 
13 /// localtrigger, etc ...
14 ///
15 //  Author: Gines Martinez, Subatech,  September 2003
16
17 #include <TNamed.h>
18
19 #include "AliLoader.h"
20
21 class AliMUONDigit;
22 class AliMUONLocalTrigger;
23 class AliMUONRegionalTrigger;
24 class AliMUONGlobalTrigger;
25
26 class AliRunLoader;
27
28 class TClonesArray;
29 class TObjArray;
30 class TTree;
31
32
33 //__________________________________________________________________
34 /////////////////////////////////////////////////////////////////////
35 //                                                                 //
36 //  class AliMUONData                                              //
37 //                                                                 //
38 /////////////////////////////////////////////////////////////////////
39
40 class AliMUONData : public TNamed 
41 {
42   public:
43   
44   //  enum EChamberIteration { kAllChambers, kTrackingChambers, kTriggerChambers };
45   
46     AliMUONData();
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
52
53     
54     virtual void   AddGlobalTrigger(const AliMUONGlobalTrigger& trigger); // use copy constructor
55
56     virtual void   AddLocalTrigger(const AliMUONLocalTrigger& trigger); // use copy constructor
57  
58     virtual void   AddRegionalTrigger(const AliMUONRegionalTrigger& trigger); // use copy constructor
59
60
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;    
66
67     void           GetSDigits() const;
68     void           GetDigits() const;
69     void           GetTriggerD() const;
70
71                    /// Return split level
72     Int_t          GetSplitLevel() const {return fSplitLevel;}
73
74                    /// Set split level
75     void           SetSplitLevel(Int_t SplitLevel) {fSplitLevel=SplitLevel;}
76
77     Bool_t        IsDigitsBranchesInTree();
78     Bool_t        IsTriggerBranchesInTreeD();
79
80                        /// Get loader
81     virtual AliLoader* GetLoader() const { return fLoader; }
82                        /// Set loader
83     virtual void       SetLoader(AliLoader * loader) {fLoader=loader;}    
84     
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=" ");
89     
90     virtual void Print(Option_t* opt="") const;
91     
92     virtual void   ResetSDigits();
93     virtual void   ResetDigits();
94     virtual void   ResetTrigger();
95   
96                    /// Return tree with summable digits
97     TTree*         TreeS() {return fLoader->TreeS(); }
98                    /// Return tree with digits
99     TTree*         TreeD() {return fLoader->TreeD(); }
100
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");
104     
105   protected: 
106     /// Not implemented
107     AliMUONData(const AliMUONData& rhs);
108     /// Not implemented
109     AliMUONData& operator=(const AliMUONData& rhs);
110
111     AliRunLoader*   fRunLoader; //!< Run loader pointer
112     AliLoader*      fLoader;  //!< Detector Loader pointer
113
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
119
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)
126
127     mutable Int_t fCurrentEvent; ///< Current event we're dealing with
128     
129 private:  
130
131   ClassDef(AliMUONData,4) // Data accessor for MUON module
132       
133 };
134 // inline functions
135
136
137 /// Load sdigits tree
138 inline void AliMUONData::GetSDigits() const {
139   if (fLoader && fLoader->TreeS())
140     fLoader->TreeS()->GetEvent(0);
141 }
142
143 /// Load trigger D tree
144 inline void AliMUONData::GetTriggerD() const {
145   if (fLoader && fLoader->TreeD())
146     fLoader->TreeD()->GetEvent(0);
147 }
148
149
150 #endif
151