]>
Commit | Line | Data |
---|---|---|
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 |