6309cf6e |
1 | #ifndef ALIMUONDATA_H |
2 | #define ALIMUONDATA_H |
3 | // |
4 | // AliMUONData |
5 | // Class containing MUON data: hits, digits, rawclusters, globaltrigger, localtrigger, etc ... |
6 | // Gines Martinez, Subatech, September 2003 |
7 | // |
8 | |
9 | #include "TNamed.h" |
10 | |
11 | #include "AliLoader.h" |
12 | #include "AliMUONConstants.h" |
13 | |
14 | class TClonesArray; |
15 | class TObjArray; |
16 | class TTree; |
17 | |
18 | class AliMUONRawCluster; |
19 | |
20 | //__________________________________________________________________ |
21 | ///////////////////////////////////////////////////////////////////// |
22 | // // |
23 | // class AliMUONData // |
24 | // // |
25 | ///////////////////////////////////////////////////////////////////// |
26 | |
27 | class AliMUONData : public TNamed { |
28 | public: |
29 | AliMUONData(); |
30 | AliMUONData(AliLoader * loader, const char* name, const char* title); |
31 | AliMUONData(const AliMUONData& rMUONData); |
32 | virtual ~AliMUONData(); |
33 | virtual void AddDigit(Int_t id, Int_t* tracks, Int_t* charges, |
34 | Int_t* digits); |
35 | virtual void AddHit(Int_t fIshunt, Int_t track, Int_t iChamber, |
36 | Int_t idpart, Float_t X, Float_t Y, Float_t Z, |
37 | Float_t tof, Float_t momentum, Float_t theta, |
38 | Float_t phi, Float_t length, Float_t destep); |
39 | virtual void AddGlobalTrigger(Int_t *singlePlus, Int_t *singleMinus, |
40 | Int_t *singleUndef, Int_t *pairUnlike, |
41 | Int_t *pairLike); |
42 | virtual void AddLocalTrigger(Int_t* ltrigger); |
43 | virtual void AddRawCluster(Int_t id, const AliMUONRawCluster& clust); |
44 | TClonesArray* Hits() {return fHits;} |
45 | TClonesArray* Digits(Int_t DetectionPlane, Int_t /*Cathode*/) |
46 | {return ( (TClonesArray*) fDigits->At(DetectionPlane) );} |
47 | TClonesArray* LocalTrigger() {return fLocalTrigger;} |
48 | TClonesArray* GlobalTrigger() {return fGlobalTrigger;} |
49 | TClonesArray* RawClusters(Int_t DetectionPlane) |
50 | {return ( (TClonesArray*) fRawClusters->At(DetectionPlane) );} |
51 | |
52 | virtual void MakeBranch(Option_t *opt=" "); |
53 | virtual void SetTreeAddress(); |
54 | |
55 | virtual void ResetHits(); |
56 | virtual void ResetDigits(); |
57 | virtual void ResetTrigger(); |
58 | virtual void ResetRawClusters(); |
59 | |
60 | TTree* TreeH() {return fLoader->TreeH(); } |
61 | TTree* TreeD() {return fLoader->TreeD(); } |
62 | TTree* TreeR() {return fLoader->TreeR(); } |
63 | TTree* TreeT() {return fLoader->TreeT(); } |
64 | TTree* TreeP() {return fLoader->TreeP(); } |
65 | |
66 | private: |
67 | //descendant classes should |
68 | //use protected interface methods to access these folders |
69 | |
70 | |
71 | protected: |
72 | AliLoader* fLoader; |
73 | |
74 | TClonesArray* fHits; // One event in treeH per primary track |
75 | TObjArray* fDigits; // One event in treeD and one branch per detection plane |
76 | TObjArray* fRawClusters; //One event in TreeR/Rawcluster and one branch per tracking detection plane |
77 | TClonesArray* fGlobalTrigger; //! List of Global Trigger One event in TreeR/GlobalTriggerBranch |
78 | TClonesArray* fLocalTrigger; //! List of Local Trigger, ONe event in TreeR/LocalTriggerBranch |
79 | Int_t fNhits; |
80 | Int_t* fNdigits; |
81 | Int_t* fNrawclusters; |
82 | Int_t fNglobaltrigger; |
83 | Int_t fNlocaltrigger; |
84 | |
85 | ClassDef(AliMUONData,1) |
86 | }; |
87 | #endif |