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 virtual AliLoader* GetLoader() {return fLoader;}
63 virtual void SetLoader(AliLoader * loader) {fLoader=loader;}
65 virtual void Fill(Option_t* opt=" ");
66 virtual void MakeBranch(Option_t *opt=" ");
67 virtual void SetTreeAddress(Option_t *opt=" ");
69 virtual void ResetHits();
70 virtual void ResetDigits();
71 virtual void ResetTrigger();
72 virtual void ResetRawClusters();
73 virtual void ResetRecTracks();
75 TTree* TreeH() {return fLoader->TreeH(); }
76 TTree* TreeD() {return fLoader->TreeD(); }
77 TTree* TreeR() {return fLoader->TreeR(); }
78 TTree* TreeT() {return fLoader->TreeT(); }
79 TTree* TreeP() {return fLoader->TreeP(); }
82 //descendant classes should
83 //use protected interface methods to access these folders
89 // One event in treeH per primary track
91 // One event in treeD and one branch per detection plane
93 //One event in TreeR/Rawcluster and one branch per tracking detection plane
94 TObjArray* fRawClusters;
95 //! List of Global Trigger One event in TreeR/GlobalTriggerBranch
96 TClonesArray* fGlobalTrigger;
97 //! List of Local Trigger, One event in TreeR/LocalTriggerBranch
98 TClonesArray* fLocalTrigger;
99 // pointer to array of reconstructed tracks
100 TClonesArray* fRecTracks;
104 Int_t* fNrawclusters;
105 Int_t fNglobaltrigger;
106 Int_t fNlocaltrigger;
109 ClassDef(AliMUONData,1)