1 #ifndef ALIMUONRECDATA_H
2 #define ALIMUONRECDATA_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
8 // Revision of includes 07/05/2004
11 /// \class AliMUONRecData
12 /// \brief Class containing MUON data: hits, digits, rawclusters, globaltrigger,
13 /// localtrigger, etc ...
15 // Author: Gines Martinez, Subatech, September 2003
17 #include "AliLoader.h"
19 #include "AliMUONData.h"
21 class AliMUONRawCluster;
23 class AliMUONTriggerTrack;
32 //__________________________________________________________________
33 /////////////////////////////////////////////////////////////////////
35 // class AliMUONData //
37 /////////////////////////////////////////////////////////////////////
39 class AliMUONRecData : public AliMUONData
43 // enum EChamberIteration { kAllChambers, kTrackingChambers, kTriggerChambers };
46 AliMUONRecData(AliLoader * loader, const char* name, const char* title);
47 AliMUONRecData(const char* galiceFile);
48 virtual ~AliMUONRecData();
50 virtual void AddRawCluster(Int_t id, const AliMUONRawCluster& clust);
51 virtual void AddRecTrack(const AliMUONTrack& track);
52 virtual void AddRecTriggerTrack(const AliMUONTriggerTrack& triggertrack);
54 TClonesArray* RawClusters(Int_t DetectionPlane);
56 /// Return reconstructed tracks
57 TClonesArray* RecTracks() {return fRecTracks;}
58 /// Return reconstructed trigger tracks
59 TClonesArray* RecTriggerTracks() {return fRecTriggerTracks;}
61 void GetRawClusters() const;
62 void GetTrigger() const;
63 void GetRecTracks() const;
64 void GetRecTriggerTracks() const;
66 Bool_t IsRawClusterBranchesInTree();
67 Bool_t IsTrackBranchesInTree();
68 Bool_t IsTriggerBranchesInTree();
69 Bool_t IsTriggerTrackBranchesInTree();
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=" ");
76 virtual void ResetRawClusters();
77 virtual void ResetRecTracks();
78 virtual void ResetRecTriggerTracks();
80 /// Return tree with raw clusters
81 TTree* TreeR() {return fLoader->TreeR(); }
82 /// Return tree with tracks
83 TTree* TreeT() {return fLoader->TreeT(); }
85 // Methods to dump data
86 void DumpRecPoints(Int_t event2Check=0, Option_t* opt="full");
87 void DumpTracks(Int_t event2Check=0, Option_t* opt="full");
88 void DumpRecTrigger(Int_t event2Check=0, Int_t write = 0, Bool_t readFromRP = kTRUE);
92 AliMUONRecData(const AliMUONRecData& rhs);
94 AliMUONRecData& operator=(const AliMUONRecData& rhs);
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
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)
105 mutable Int_t fCurrentEvent; ///< Current event we're dealing with
108 void FillOwn(Option_t* opt=" ");
109 void MakeOwnBranch(Option_t *opt=" ");
110 void SetOwnDataContainer(Option_t *opt=" ");
111 void SetOwnTreeAddress(Option_t *opt=" ");
114 ClassDef(AliMUONRecData,3) // Data accessor for MUON module
120 /// Load raw clusters tree
121 inline void AliMUONRecData::GetRawClusters() const {
122 if (fLoader && fLoader->TreeR())
123 fLoader->TreeR()->GetEvent(0);
126 /// Load trigger tree
127 inline void AliMUONRecData::GetTrigger() const {
128 if (fLoader && fLoader->TreeR())
129 fLoader->TreeR()->GetEvent(0);
132 /// Load reconstructed tracks
133 inline void AliMUONRecData::GetRecTracks() const {
134 if (fLoader && fLoader->TreeT())
135 fLoader->TreeT()->GetBranch("MUONTrack")->GetEvent(0);
138 /// Load reconstructed trigger tracks
139 inline void AliMUONRecData::GetRecTriggerTracks() const {
140 if (fLoader && fLoader->TreeT())
141 fLoader->TreeT()->GetBranch("MUONTriggerTrack")->GetEvent(0);