]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONData.h
Update for station2:
[u/mrichter/AliRoot.git] / MUON / AliMUONData.h
1 #ifndef ALIMUONDATA_H
2 #define ALIMUONDATA_H
3 //
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$ */
8
9 // AliMUONData
10 // Class containing MUON data: hits, digits, rawclusters, globaltrigger, localtrigger, etc ...
11 // Gines Martinez, Subatech,  September 2003
12 //
13
14 #include "AliLoader.h"
15
16 class TClonesArray;
17 class TNamed;
18 class TObjArray;
19 class TTree;
20
21
22 class AliMUONConstants;
23 class AliMUONRawCluster;
24 class AliMUONTrack;
25
26 //__________________________________________________________________
27 /////////////////////////////////////////////////////////////////////
28 //                                                                 //
29 //  class AliMUONData                                              //
30 //                                                                 //
31 /////////////////////////////////////////////////////////////////////
32
33 class AliMUONData : public TNamed {
34  public:
35     AliMUONData();
36     AliMUONData(AliLoader * loader, const char* name, const char* title);
37     AliMUONData(const AliMUONData& rMUONData);
38     virtual ~AliMUONData();  
39     virtual void   AddDigit(Int_t id, Int_t* tracks, Int_t* charges,
40                              Int_t* digits); 
41     virtual void   AddHit(Int_t fIshunt, Int_t track, Int_t iChamber, 
42                           Int_t idpart, Float_t X, Float_t Y, Float_t Z, 
43                           Float_t tof, Float_t momentum, Float_t theta, 
44                           Float_t phi, Float_t length, Float_t destep);
45     virtual void   AddGlobalTrigger(Int_t *singlePlus, Int_t *singleMinus,
46                                     Int_t *singleUndef, Int_t *pairUnlike, 
47                                     Int_t *pairLike);
48     virtual void   AddLocalTrigger(Int_t* ltrigger);
49     virtual void   AddRawCluster(Int_t id, const AliMUONRawCluster& clust);
50     virtual void   AddRecTrack(const AliMUONTrack& track);
51
52     TClonesArray*  Hits() {return fHits;}
53     TClonesArray*  Digits(Int_t DetectionPlane) 
54       {return ( (TClonesArray*) fDigits->At(DetectionPlane) );}
55     TClonesArray*  LocalTrigger() {return fLocalTrigger;}
56     TClonesArray*  GlobalTrigger() {return fGlobalTrigger;}
57     TClonesArray*  RawClusters(Int_t DetectionPlane)
58       {return ( (TClonesArray*) fRawClusters->At(DetectionPlane) );}
59     TClonesArray*  RecTracks() {return fRecTracks;}
60
61     void           GetTrack(Int_t it) {fLoader->TreeH()->GetEvent(it);}
62     Int_t          GetNtracks()       {return (Int_t) fLoader->TreeH()->GetEntries();}
63     void           GetCathode(Int_t ic) {fLoader->TreeD()->GetEvent(ic);}
64     void           GetRawClusters() {fLoader->TreeR()->GetEvent(0);}
65     void           GetTrigger() {fLoader->TreeR()->GetEvent(0);}
66
67     Bool_t        IsRawClusterBranchesInTree();
68     Bool_t        IsTriggerBranchesInTree();
69
70     virtual AliLoader* GetLoader() {return fLoader;}
71     virtual void       SetLoader(AliLoader * loader) {fLoader=loader;}    
72     
73     virtual void   Fill(Option_t* opt=" ");
74     virtual void   MakeBranch(Option_t *opt=" ");
75     virtual void   SetTreeAddress(Option_t *opt=" ");
76     
77     virtual void   ResetHits();
78     virtual void   ResetDigits();
79     virtual void   ResetTrigger();
80     virtual void   ResetRawClusters();
81     virtual void   ResetRecTracks();
82   
83     TTree*         TreeH() {return fLoader->TreeH(); }
84     TTree*         TreeD() {return fLoader->TreeD(); }
85     TTree*         TreeR() {return fLoader->TreeR(); }
86     TTree*         TreeT() {return fLoader->TreeT(); }
87     TTree*         TreeP() {return fLoader->TreeP(); }
88
89  private:  
90     //descendant classes should
91     //use protected interface methods to access these folders
92
93   
94  protected: 
95     AliLoader*  fLoader;
96
97     // One event in treeH per primary track
98     TClonesArray*   fHits;    
99     // One event in treeD and one branch per detection plane
100     TObjArray*      fDigits; 
101     //One event in TreeR/Rawcluster and one branch per tracking detection plane
102     TObjArray*      fRawClusters; 
103     //! List of Global Trigger One event in TreeR/GlobalTriggerBranch
104     TClonesArray*   fGlobalTrigger; 
105     //! List of Local Trigger, One event in TreeR/LocalTriggerBranch
106     TClonesArray*   fLocalTrigger;  
107     // pointer to array of reconstructed tracks
108     TClonesArray*   fRecTracks; 
109
110     Int_t           fNhits; //!
111     Int_t*          fNdigits;//!
112     Int_t*          fNrawclusters;//!
113     Int_t           fNglobaltrigger;//!
114     Int_t           fNlocaltrigger;//!
115     Int_t           fNrectracks; //!
116
117     ClassDef(AliMUONData,1)
118  };
119 #endif