]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONData.h
Updated list of MUON libraries
[u/mrichter/AliRoot.git] / MUON / AliMUONData.h
CommitLineData
6309cf6e 1#ifndef ALIMUONDATA_H
2#define ALIMUONDATA_H
3//
1391e633 4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
50837721 5 * See cxx source for full Copyright notice */
6
7/* $Id$ */
30178c30 8// Revision of includes 07/05/2004
6309cf6e 9//
692de412 10/// \ingroup base
11/// \class AliMUONData
c4ee792d 12/// \brief Class containing MUON data: hits, digits, rawclusters, globaltrigger,
692de412 13/// localtrigger, etc ...
14///
c4ee792d 15// Author: Gines Martinez, Subatech, September 2003
6309cf6e 16
30178c30 17#include <TNamed.h>
f0945e46 18
1a1cdff8 19#include "AliLoader.h"
6309cf6e 20
61adb9bd 21class AliMUONDigit;
61adb9bd 22class AliMUONLocalTrigger;
47dc4ee7 23class AliMUONRegionalTrigger;
61adb9bd 24class AliMUONGlobalTrigger;
6309cf6e 25
6b74d6d9 26class AliRunLoader;
27
28class TClonesArray;
6b74d6d9 29class TObjArray;
30class TTree;
6b74d6d9 31
32
6309cf6e 33//__________________________________________________________________
34/////////////////////////////////////////////////////////////////////
35// //
36// class AliMUONData //
37// //
38/////////////////////////////////////////////////////////////////////
39
53af523e 40class AliMUONData : public TNamed
41{
42 public:
f0945e46 43
834ca869 44 // enum EChamberIteration { kAllChambers, kTrackingChambers, kTriggerChambers };
f0945e46 45
6309cf6e 46 AliMUONData();
47 AliMUONData(AliLoader * loader, const char* name, const char* title);
8e322de6 48 AliMUONData(const char* galiceFile, const char* folderName);
6309cf6e 49 virtual ~AliMUONData();
e3ea1889 50 virtual void AddSDigit(Int_t id, const AliMUONDigit& digit); // use copy constructor
8e322de6 51 virtual void AddDigit(Int_t id, const AliMUONDigit& digit); // use copy constructor
52
61adb9bd 53
61adb9bd 54 virtual void AddGlobalTrigger(const AliMUONGlobalTrigger& trigger); // use copy constructor
55
61adb9bd 56 virtual void AddLocalTrigger(const AliMUONLocalTrigger& trigger); // use copy constructor
47dc4ee7 57
58 virtual void AddRegionalTrigger(const AliMUONRegionalTrigger& trigger); // use copy constructor
61adb9bd 59
dcd2690d 60
c82862d3 61 TClonesArray* SDigits(Int_t DetectionPlane) const;
8e322de6 62 TClonesArray* Digits(Int_t DetectionPlane) const;
f0945e46 63 TClonesArray* LocalTrigger() const;
47dc4ee7 64 TClonesArray* RegionalTrigger() const;
f0945e46 65 TClonesArray* GlobalTrigger() const;
1a1cdff8 66
6b74d6d9 67 void GetSDigits() const;
8e322de6 68 void GetDigits() const;
6b74d6d9 69 void GetTriggerD() const;
6b74d6d9 70
71a2d3aa 71 /// Return split level
30178c30 72 Int_t GetSplitLevel() const {return fSplitLevel;}
1a1cdff8 73
8e322de6 74 /// Set split level
75 void SetSplitLevel(Int_t SplitLevel) {fSplitLevel=SplitLevel;}
76
ce3e25a8 77 Bool_t IsDigitsBranchesInTree();
ce3e25a8 78 Bool_t IsTriggerBranchesInTreeD();
c1d45bdf 79
5398f946 80 /// Get loader
f0945e46 81 virtual AliLoader* GetLoader() const { return fLoader; }
5398f946 82 /// Set loader
ce3f5e87 83 virtual void SetLoader(AliLoader * loader) {fLoader=loader;}
dcd2690d 84
1a1cdff8 85 virtual void Fill(Option_t* opt=" ");
6309cf6e 86 virtual void MakeBranch(Option_t *opt=" ");
79fc84ff 87 virtual void SetDataContainer(Option_t *opt=" ");
ce3f5e87 88 virtual void SetTreeAddress(Option_t *opt=" ");
dcd2690d 89
c82862d3 90 virtual void Print(Option_t* opt="") const;
91
d1775029 92 virtual void ResetSDigits();
8e322de6 93 virtual void ResetDigits();
6309cf6e 94 virtual void ResetTrigger();
6309cf6e 95
5398f946 96 /// Return tree with summable digits
d1775029 97 TTree* TreeS() {return fLoader->TreeS(); }
8e322de6 98 /// Return tree with digits
99 TTree* TreeD() {return fLoader->TreeD(); }
6309cf6e 100
6b74d6d9 101 // Methods to dump data
6b74d6d9 102 void DumpSDigits(Int_t event2Check=0, Option_t* opt="tracks");
8e322de6 103 void DumpDigits(Int_t event2Check=0, Option_t* opt="tracks");
f0945e46 104
53af523e 105 protected:
71a2d3aa 106 /// Not implemented
e3ea1889 107 AliMUONData(const AliMUONData& rhs);
71a2d3aa 108 /// Not implemented
e3ea1889 109 AliMUONData& operator=(const AliMUONData& rhs);
110
6b74d6d9 111 AliRunLoader* fRunLoader; //!< Run loader pointer
18b6b8c7 112 AliLoader* fLoader; //!< Detector Loader pointer
8e322de6 113
18b6b8c7 114 TObjArray* fSDigits; ///< One event in treeS and one branch per detection plane
8e322de6 115 TObjArray* fDigits; ///< One event in treeD and one branch per detection plane
18b6b8c7 116 TClonesArray* fGlobalTrigger; ///< List of Global Trigger One event in TreeR/GlobalTriggerBranch
117 TClonesArray* fLocalTrigger; ///< List of Local Trigger, One event in TreeR/LocalTriggerBranch
47dc4ee7 118 TClonesArray* fRegionalTrigger; ///< List of Regional Trigger, One event in TreeR/LocalTriggerBranch
119
18b6b8c7 120 Int_t* fNSdigits;//!< Number of Digits
8e322de6 121 Int_t* fNdigits; //!< Number of Digits
18b6b8c7 122 Int_t fNglobaltrigger;//!< Number of Global trigger
123 Int_t fNlocaltrigger; //!< Number of Local trigger
47dc4ee7 124 Int_t fNregionaltrigger; //!< Number of regional trigger
18b6b8c7 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
f0945e46 128
129private:
53af523e 130
8e322de6 131 ClassDef(AliMUONData,4) // Data accessor for MUON module
f0945e46 132
53af523e 133};
6b74d6d9 134// inline functions
135
136
6b74d6d9 137/// Load sdigits tree
138inline void AliMUONData::GetSDigits() const {
139 if (fLoader && fLoader->TreeS())
140 fLoader->TreeS()->GetEvent(0);
141}
142
6b74d6d9 143/// Load trigger D tree
144inline void AliMUONData::GetTriggerD() const {
145 if (fLoader && fLoader->TreeD())
146 fLoader->TreeD()->GetEvent(0);
147}
148
f0945e46 149
6309cf6e 150#endif
8547965d 151