]>
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"); | |
87 | void DumpRecTrigger(Int_t event2Check=0, Int_t write = 0, Bool_t readFromRP = kTRUE); | |
88 | ||
89 | protected: | |
90 | /// Not implemented | |
91 | AliMUONRecData(const AliMUONRecData& rhs); | |
92 | /// Not implemented | |
93 | AliMUONRecData& operator=(const AliMUONRecData& rhs); | |
94 | ||
95 | TObjArray* fRawClusters; ///< One event in TreeR/Rawcluster and one branch per tracking detection plane | |
96 | TClonesArray* fRecTracks; ///< pointer to array of reconstructed tracks | |
97 | TClonesArray* fRecTriggerTracks; ///< pointer to array of reconstructed trigger tracks | |
98 | ||
99 | Int_t* fNrawclusters; //!< Number of Raw Clusters | |
100 | Int_t fNrectracks; //!< Number of reconstructed tracks | |
101 | Int_t fNrectriggertracks; //!< Number of reconstructed tracks | |
102 | Int_t fSplitLevel; ///< Splitting of branches 0 no spitting (root files are smaller) 1 splitting (larger output files) | |
103 | ||
104 | mutable Int_t fCurrentEvent; ///< Current event we're dealing with | |
105 | ||
106 | private: | |
107 | void FillOwn(Option_t* opt=" "); | |
108 | void MakeOwnBranch(Option_t *opt=" "); | |
109 | void SetOwnDataContainer(Option_t *opt=" "); | |
110 | void SetOwnTreeAddress(Option_t *opt=" "); | |
111 | ||
112 | ||
113 | ClassDef(AliMUONRecData,3) // Data accessor for MUON module | |
114 | ||
115 | }; | |
116 | // inline functions | |
117 | ||
118 | ||
119 | /// Load raw clusters tree | |
120 | inline void AliMUONRecData::GetRawClusters() const { | |
121 | if (fLoader && fLoader->TreeR()) | |
122 | fLoader->TreeR()->GetEvent(0); | |
123 | } | |
124 | ||
125 | /// Load trigger tree | |
126 | inline void AliMUONRecData::GetTrigger() const { | |
127 | if (fLoader && fLoader->TreeR()) | |
128 | fLoader->TreeR()->GetEvent(0); | |
129 | } | |
130 | ||
131 | /// Load reconstructed tracks | |
132 | inline void AliMUONRecData::GetRecTracks() const { | |
133 | if (fLoader && fLoader->TreeT()) | |
134 | fLoader->TreeT()->GetBranch("MUONTrack")->GetEvent(0); | |
135 | } | |
136 | ||
137 | /// Load reconstructed trigger tracks | |
138 | inline void AliMUONRecData::GetRecTriggerTracks() const { | |
139 | if (fLoader && fLoader->TreeT()) | |
140 | fLoader->TreeT()->GetBranch("MUONTriggerTrack")->GetEvent(0); | |
141 | } | |
142 | ||
143 | ||
144 | ||
145 | #endif | |
146 |