5 // Class containing MUON data: hits, digits, rawclusters, globaltrigger, localtrigger, etc ...
6 // Gines Martinez, Subatech, September 2003
17 class AliMUONConstants;
18 class AliMUONRawCluster;
21 //__________________________________________________________________
22 /////////////////////////////////////////////////////////////////////
24 // class AliMUONData //
26 /////////////////////////////////////////////////////////////////////
28 class AliMUONData : public TNamed {
31 AliMUONData(AliLoader * loader, const char* name, const char* title);
32 AliMUONData(const AliMUONData& rMUONData);
33 virtual ~AliMUONData();
34 virtual void AddDigit(Int_t id, Int_t* tracks, Int_t* charges,
36 virtual void AddHit(Int_t fIshunt, Int_t track, Int_t iChamber,
37 Int_t idpart, Float_t X, Float_t Y, Float_t Z,
38 Float_t tof, Float_t momentum, Float_t theta,
39 Float_t phi, Float_t length, Float_t destep);
40 virtual void AddGlobalTrigger(Int_t *singlePlus, Int_t *singleMinus,
41 Int_t *singleUndef, Int_t *pairUnlike,
43 virtual void AddLocalTrigger(Int_t* ltrigger);
44 virtual void AddRawCluster(Int_t id, const AliMUONRawCluster& clust);
45 virtual void AddRecTrack(const AliMUONTrack& track);
47 TClonesArray* Hits() {return fHits;}
48 TClonesArray* Digits(Int_t DetectionPlane)
49 {return ( (TClonesArray*) fDigits->At(DetectionPlane) );}
50 TClonesArray* LocalTrigger() {return fLocalTrigger;}
51 TClonesArray* GlobalTrigger() {return fGlobalTrigger;}
52 TClonesArray* RawClusters(Int_t DetectionPlane)
53 {return ( (TClonesArray*) fRawClusters->At(DetectionPlane) );}
54 TClonesArray* RecTracks() {return fRecTracks;}
56 void GetTrack(Int_t it) {fLoader->TreeH()->GetEvent(it);}
57 Int_t GetNtracks() {return (Int_t) fLoader->TreeH()->GetEntries();}
58 void GetCathode(Int_t ic) {fLoader->TreeD()->GetEvent(ic);}
59 void GetRawClusters() {fLoader->TreeR()->GetEvent(0);}
60 void GetTrigger() {fLoader->TreeR()->GetEvent(0);}
62 Bool_t IsRawClusterBranchesInTree();
63 Bool_t IsTriggerBranchesInTree();
65 virtual AliLoader* GetLoader() {return fLoader;}
66 virtual void SetLoader(AliLoader * loader) {fLoader=loader;}
68 virtual void Fill(Option_t* opt=" ");
69 virtual void MakeBranch(Option_t *opt=" ");
70 virtual void SetTreeAddress(Option_t *opt=" ");
72 virtual void ResetHits();
73 virtual void ResetDigits();
74 virtual void ResetTrigger();
75 virtual void ResetRawClusters();
76 virtual void ResetRecTracks();
78 TTree* TreeH() {return fLoader->TreeH(); }
79 TTree* TreeD() {return fLoader->TreeD(); }
80 TTree* TreeR() {return fLoader->TreeR(); }
81 TTree* TreeT() {return fLoader->TreeT(); }
82 TTree* TreeP() {return fLoader->TreeP(); }
85 //descendant classes should
86 //use protected interface methods to access these folders
92 // One event in treeH per primary track
94 // One event in treeD and one branch per detection plane
96 //One event in TreeR/Rawcluster and one branch per tracking detection plane
97 TObjArray* fRawClusters;
98 //! List of Global Trigger One event in TreeR/GlobalTriggerBranch
99 TClonesArray* fGlobalTrigger;
100 //! List of Local Trigger, One event in TreeR/LocalTriggerBranch
101 TClonesArray* fLocalTrigger;
102 // pointer to array of reconstructed tracks
103 TClonesArray* fRecTracks;
107 Int_t* fNrawclusters;//!
108 Int_t fNglobaltrigger;//!
109 Int_t fNlocaltrigger;//!
110 Int_t fNrectracks; //!
112 ClassDef(AliMUONData,1)