Compilation warnings fixed
[u/mrichter/AliRoot.git] / PHOS / AliPHOSvFast.h
1 #ifndef ALIPHOSVFAST_H
2 #define ALIPHOSVFAST_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 // Implementation of the PHOS manager class for fast simulations     
10 // Tracks particles until the reach a grossly designed PHOS module
11 // Modify the particles property (momentum, energy, type) according to
12 //  the PHOS response function. The result is called a virtual reconstructed
13 //  particle.                                
14 //                  
15 //*-- Author: Yves Schutz (SUBATECH)
16
17 // --- ROOT system ---
18 #include "TClonesArray.h"
19 #include "TRandom.h"
20
21 class TVector3 ;
22 class TFile;
23
24 // --- AliRoot header files ---
25 #include "AliPHOS.h"
26 class AliPHOSGeometry ;
27 class AliPHOSFastRecParticle ;
28
29 class AliPHOSvFast : public AliPHOS {
30
31 public:
32
33   AliPHOSvFast() ;
34   AliPHOSvFast(const char *name, const char *title="") ;
35   AliPHOSvFast(const AliPHOSvFast & fast) : AliPHOS(fast) {
36     // cpy ctor: no implementation yet
37     // requested by the Coding Convention
38     assert(0==1) ; 
39   }
40   virtual ~AliPHOSvFast(void) ;
41
42   void           AddRecParticle(const AliPHOSFastRecParticle & rp) ; // adds primary particle to the RecParticles list
43   virtual void   BuildGeometry(void) ;                               // creates the geometry for the ROOT display
44   virtual void   CreateGeometry(void) ;                              // creates the geometry for GEANT
45   Float_t        GetBigBox(Int_t index) const;                             
46   virtual void   Init(void) ;                                        // does nothing
47   virtual Int_t  IsVersion(void) const {
48     // Gives the version number 
49     return 99 ; 
50   }
51
52   void    MakeBranch(Option_t* opt);
53   Double_t MakeEnergy(const Double_t energy) ;                       // makes the detected energy    
54   TVector3 MakePosition(const Double_t energy, const TVector3 pos, const Double_t th, const Double_t ph) ; 
55                                                                      // makes the detected position
56   void MakeRecParticle(const Int_t modid, const TVector3 pos, AliPHOSFastRecParticle & rp) ;  // makes a reconstructes particle from primary
57   Int_t   MakeType(AliPHOSFastRecParticle & rp) ;                    // gets the detected type of particle
58   // gets TClonesArray of reconstructed particles
59   TClonesArray * FastRecParticles() const { return fFastRecParticles ; } 
60   virtual void ResetPoints() ; 
61   void         ResetFastRecParticles() ; 
62   void         SetBigBox(Int_t index, Float_t value) ;                             
63   Double_t     SigmaE(Double_t energy) ;    // calulates the energy resolution at a given Energy                           
64   Double_t     SigmaP(Double_t energy, Double_t inc) ; // calulates the position resolution at a given Energy at a given incidence                           
65   virtual void StepManager(void) ;          // does the tracking through PHOS and a preliminary digitalization
66   virtual const TString Version(void)const { 
67     // As IsVersion
68     return TString("vFast") ; 
69   }
70
71   AliPHOSvFast & operator = (const AliPHOSvFast & )  {
72     // assignement operator requested by coding convention but not needed
73     assert(0==1) ;
74     return *this ; 
75   }
76   
77 private:
78   
79   Float_t fBigBoxX ;                         // main box containing all PHOS (EMC+PPSD)
80   Float_t fBigBoxY ;                         // main box containing all PHOS (EMC+PPSD)
81   Float_t fBigBoxZ ;                         // main box containing all PHOS (EMC+PPSD)
82   TClonesArray * fFastRecParticles ;         // list of particles modified by the response function 
83   Int_t fNRecParticles ;                     // number of detected particles
84   TRandom fRan ;                             // random number generator
85   Double_t fResPara1 ;                       // parameter for the energy resolution dependence  
86   Double_t fResPara2 ;                       // parameter for the energy resolution dependence  
87   Double_t fResPara3 ;                       // parameter for the energy resolution dependence 
88   Double_t fPosParaA0 ;                      // parameter for the position resolution
89   Double_t fPosParaA1 ;                      // parameter for the position resolution 
90   Double_t fPosParaB0 ;                      // parameter for the position resolution 
91   Double_t fPosParaB1 ;                      // parameter for the position resolution 
92   Double_t fPosParaB2 ;                      // parameter for the position resolution
93
94   ClassDef(AliPHOSvFast,1)  //  Implementation of the PHOS manager class for fast simulations  
95
96 };
97
98 #endif // AliPHOSVFAST_H