]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONRecData.h
Updated list of MUON libraries
[u/mrichter/AliRoot.git] / MUON / AliMUONRecData.h
CommitLineData
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
21class AliMUONRawCluster;
22class AliMUONTrack;
23class AliMUONTriggerTrack;
24
25class AliRunLoader;
26
27class TClonesArray;
28class TObjArray;
29class TTree;
30
31
32//__________________________________________________________________
33/////////////////////////////////////////////////////////////////////
34// //
35// class AliMUONData //
36// //
37/////////////////////////////////////////////////////////////////////
38
39class 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
107private:
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
121inline void AliMUONRecData::GetRawClusters() const {
122 if (fLoader && fLoader->TreeR())
123 fLoader->TreeR()->GetEvent(0);
124}
125
126/// Load trigger tree
127inline void AliMUONRecData::GetTrigger() const {
128 if (fLoader && fLoader->TreeR())
129 fLoader->TreeR()->GetEvent(0);
130}
131
132/// Load reconstructed tracks
133inline void AliMUONRecData::GetRecTracks() const {
134 if (fLoader && fLoader->TreeT())
135 fLoader->TreeT()->GetBranch("MUONTrack")->GetEvent(0);
136}
137
138/// Load reconstructed trigger tracks
139inline void AliMUONRecData::GetRecTriggerTracks() const {
140 if (fLoader && fLoader->TreeT())
141 fLoader->TreeT()->GetBranch("MUONTriggerTrack")->GetEvent(0);
142}
143
144
145
146#endif
147