]>
Commit | Line | Data |
---|---|---|
990f8c6b | 1 | #ifndef ALIMUONRECDATA_H |
2 | #define ALIMUONRECDATA_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 rec | |
11 | /// \class AliMUONRecData | |
12 | /// \brief Class containing MUON data: hits, digits, rawclusters, globaltrigger, | |
13 | /// localtrigger, etc ... | |
14 | /// | |
15 | // Author: Gines Martinez, Subatech, September 2003 | |
16 | ||
17 | #include "AliLoader.h" | |
18 | ||
19 | #include "AliMUONData.h" | |
20 | ||
21 | class AliMUONRawCluster; | |
22 | class AliMUONTrack; | |
23 | class AliMUONTriggerTrack; | |
24 | ||
25 | class AliRunLoader; | |
26 | ||
27 | class TClonesArray; | |
28 | class TObjArray; | |
29 | class TTree; | |
30 | ||
31 | ||
32 | //__________________________________________________________________ | |
33 | ///////////////////////////////////////////////////////////////////// | |
34 | // // | |
35 | // class AliMUONData // | |
36 | // // | |
37 | ///////////////////////////////////////////////////////////////////// | |
38 | ||
39 | class AliMUONRecData : public AliMUONData | |
40 | { | |
41 | public: | |
42 | ||
43 | // enum EChamberIteration { kAllChambers, kTrackingChambers, kTriggerChambers }; | |
44 | ||
45 | AliMUONRecData(); | |
46 | AliMUONRecData(AliLoader * loader, const char* name, const char* title); | |
47 | AliMUONRecData(const char* galiceFile); | |
48 | virtual ~AliMUONRecData(); | |
49 | ||
50 | virtual void AddRawCluster(Int_t id, const AliMUONRawCluster& clust); | |
51 | virtual void AddRecTrack(const AliMUONTrack& track); | |
52 | virtual void AddRecTriggerTrack(const AliMUONTriggerTrack& triggertrack); | |
53 | ||
54 | TClonesArray* RawClusters(Int_t DetectionPlane); | |
55 | ||
56 | /// Return reconstructed tracks | |
57 | TClonesArray* RecTracks() {return fRecTracks;} | |
58 | /// Return reconstructed trigger tracks | |
59 | TClonesArray* RecTriggerTracks() {return fRecTriggerTracks;} | |
60 | ||
61 | void GetRawClusters() const; | |
62 | void GetTrigger() const; | |
63 | void GetRecTracks() const; | |
64 | void GetRecTriggerTracks() const; | |
65 | ||
66 | Bool_t IsRawClusterBranchesInTree(); | |
67 | Bool_t IsTrackBranchesInTree(); | |
68 | Bool_t IsTriggerBranchesInTree(); | |
69 | Bool_t IsTriggerTrackBranchesInTree(); | |
70 | ||
71 | virtual void Fill(Option_t* opt=" "); | |
72 | virtual void MakeBranch(Option_t *opt=" "); | |
73 | virtual void SetDataContainer(Option_t *opt=" "); | |
74 | virtual void SetTreeAddress(Option_t *opt=" "); | |
75 | ||
76 | virtual void ResetRawClusters(); | |
77 | virtual void ResetRecTracks(); | |
78 | virtual void ResetRecTriggerTracks(); | |
79 | ||
80 | /// Return tree with raw clusters | |
81 | TTree* TreeR() {return fLoader->TreeR(); } | |
82 | /// Return tree with tracks | |
83 | TTree* TreeT() {return fLoader->TreeT(); } | |
84 | ||
85 | // Methods to dump data | |
86 | void DumpRecPoints(Int_t event2Check=0, Option_t* opt="full"); | |
c6461770 | 87 | void DumpTracks(Int_t event2Check=0, Option_t* opt="full"); |
990f8c6b | 88 | void DumpRecTrigger(Int_t event2Check=0, Int_t write = 0, Bool_t readFromRP = kTRUE); |
89 | ||
90 | protected: | |
91 | /// Not implemented | |
92 | AliMUONRecData(const AliMUONRecData& rhs); | |
93 | /// Not implemented | |
94 | AliMUONRecData& operator=(const AliMUONRecData& rhs); | |
95 | ||
96 | TObjArray* fRawClusters; ///< One event in TreeR/Rawcluster and one branch per tracking detection plane | |
97 | TClonesArray* fRecTracks; ///< pointer to array of reconstructed tracks | |
98 | TClonesArray* fRecTriggerTracks; ///< pointer to array of reconstructed trigger tracks | |
99 | ||
100 | Int_t* fNrawclusters; //!< Number of Raw Clusters | |
101 | Int_t fNrectracks; //!< Number of reconstructed tracks | |
102 | Int_t fNrectriggertracks; //!< Number of reconstructed tracks | |
103 | Int_t fSplitLevel; ///< Splitting of branches 0 no spitting (root files are smaller) 1 splitting (larger output files) | |
104 | ||
105 | mutable Int_t fCurrentEvent; ///< Current event we're dealing with | |
106 | ||
107 | private: | |
108 | void FillOwn(Option_t* opt=" "); | |
109 | void MakeOwnBranch(Option_t *opt=" "); | |
110 | void SetOwnDataContainer(Option_t *opt=" "); | |
111 | void SetOwnTreeAddress(Option_t *opt=" "); | |
112 | ||
113 | ||
114 | ClassDef(AliMUONRecData,3) // Data accessor for MUON module | |
115 | ||
116 | }; | |
117 | // inline functions | |
118 | ||
119 | ||
120 | /// Load raw clusters tree | |
121 | inline void AliMUONRecData::GetRawClusters() const { | |
122 | if (fLoader && fLoader->TreeR()) | |
123 | fLoader->TreeR()->GetEvent(0); | |
124 | } | |
125 | ||
126 | /// Load trigger tree | |
127 | inline void AliMUONRecData::GetTrigger() const { | |
128 | if (fLoader && fLoader->TreeR()) | |
129 | fLoader->TreeR()->GetEvent(0); | |
130 | } | |
131 | ||
132 | /// Load reconstructed tracks | |
133 | inline void AliMUONRecData::GetRecTracks() const { | |
134 | if (fLoader && fLoader->TreeT()) | |
135 | fLoader->TreeT()->GetBranch("MUONTrack")->GetEvent(0); | |
136 | } | |
137 | ||
138 | /// Load reconstructed trigger tracks | |
139 | inline void AliMUONRecData::GetRecTriggerTracks() const { | |
140 | if (fLoader && fLoader->TreeT()) | |
141 | fLoader->TreeT()->GetBranch("MUONTriggerTrack")->GetEvent(0); | |
142 | } | |
143 | ||
144 | ||
145 | ||
146 | #endif | |
147 |