New CPV classes: CPVModule, CPVHit, CPVDigit
[u/mrichter/AliRoot.git] / PHOS / AliPHOSCPV.h
1 #ifndef ALIPHOSCPV_H
2 #define ALIPHOSCPV_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 ////////////////////////////////////////////////
9 //  Manager and hits classes for set:CPV      //
10 //                                            //
11 //  Author: Yuri Kharlov, IHEP, Protvino      //
12 //  e-mail: Yuri.Kharlov@cern.ch              //
13 //  Last modified: 23 March 2000              //
14 ////////////////////////////////////////////////
15  
16 // --- ROOT system ---
17 #include <TClonesArray.h> 
18 #include <TLorentzVector.h>
19
20 // --- galice header files ---
21 #include "AliHit.h"
22
23 //==============================================================================
24 //                              CPVModule
25 //==============================================================================
26
27 class CPVModule : public TObject {
28
29 public:
30
31   virtual ~CPVModule(void);
32            CPVModule(void);
33   
34   void     Clear(Option_t *opt="");
35   void     Print(Option_t *opt="");
36   void     AddHit(TLorentzVector p, Float_t *xy, Int_t ipart);
37   void     MakeBranch(Int_t i);
38   void     SetTreeAddress(Int_t i);
39   
40   TClonesArray *Hits    (void) {return fHits;}
41
42 private:
43   
44   TClonesArray *fHits;              // List of hits in the Module
45
46   ClassDef(CPVModule,1)             // CPV Module
47 };
48
49 //==============================================================================
50 //                              CPVHit
51 //==============================================================================
52
53 class CPVHit : public TObject {
54   
55 private:
56   TLorentzVector fMomentum;   // 4-momentum of the particle
57   Float_t        fXhit;       // Hit's X-coordinates
58   Float_t        fYhit;       // Hit's Y-coordinates
59   Int_t          fIpart;      // Hit's particle type
60   
61 public:
62   virtual ~CPVHit() {}
63            CPVHit() {}
64            CPVHit(TLorentzVector p, Float_t *xy, Int_t ipart);
65   
66   TLorentzVector GetMomentum()  { return  fMomentum; }
67   Float_t        GetX()         { return  fXhit;     }
68   Float_t        GetY()         { return  fYhit;     }
69   Int_t          GetIpart()     { return  fIpart;    }
70   void           Print();
71
72   ClassDef(CPVHit,1)  // Hit object in one CPV module
73 };
74  
75 //==============================================================================
76 //                              CPVDigit
77 //==============================================================================
78
79 class CPVDigit : public TObject {
80   
81 private:
82   Int_t    fXpad;       // Digit's pad number in Phi
83   Int_t    fYpad;       // Digit's pad number in Z
84   Float_t  fQpad;       // Digit's pad amplitude
85   
86 public:
87   virtual ~CPVDigit() {}
88            CPVDigit() {}
89            CPVDigit(Int_t x, Int_t y, Float_t q);
90   
91   void     SetQpad(Float_t q) { fQpad = q;     }
92   Int_t    GetXpad()          { return  fXpad; }
93   Int_t    GetYpad()          { return  fYpad; }
94   Float_t  GetQpad()          { return  fQpad; }
95
96   ClassDef(CPVDigit,1)  // Digit object in one CPV pad
97 };
98  
99 #endif