]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PHOS/AliPHOSvFast.h
24860250ca82edf83a3064de591825f23f4ff589
[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 ////////////////////////////////////////////////
7 //  Manager class  for PHOS                   //
8 //  Version SUBATECH                          //
9 //  Author  Y. Schutz SUBATECH                //
10 //       This is the class to be used for     //  
11 //       fast simulations                     //
12 ////////////////////////////////////////////////
13
14 /* $Id$ */
15
16 // --- ROOT system ---
17 #include "TClonesArray.h"
18 #include "TRandom.h"
19
20 // --- AliRoot header files ---
21 #include "AliPHOS.h"
22 #include "AliPHOSGeometry.h"
23 #include "AliPHOSPID.h"
24 #include "AliPHOSFastRecParticle.h"
25
26 class AliPHOSvFast : public AliPHOS {
27
28 public:
29
30   AliPHOSvFast(void) ;
31   AliPHOSvFast(const char *name, const char *title="") ;
32   virtual ~AliPHOSvFast(void) ;
33
34   void           AddRecParticle(const AliPHOSFastRecParticle & rp) ; // adds primary particle to the RecParticles list
35   virtual void   BuildGeometry(void) ;                               // creates the geometry for the ROOT display
36   virtual void   CreateGeometry(void) ;                              // creates the geometry for GEANT
37   Float_t        GetBigBox(Int_t index) ;                             
38   virtual AliPHOSGeometry * GetGeometry() { return fGeom ; }  
39   virtual void   Init(void) ;                                        // does nothing
40   Int_t   IsVersion(void) const { return -1 ; }
41   void    MakeBranch(Option_t* opt) ;
42   Double_t MakeEnergy(const Double_t energy) ;                       // makes the detected energy    
43   void MakeRecParticle(AliPHOSFastRecParticle & rp) ;                // makes a reconstructes particle from primary
44   Int_t   MakeType(const Text_t * name) ;                            // gets the detected type of particle
45   FastRecParticlesList * FastRecParticles() { return fFastRecParticles ; } // gets TClonesArray of reconstructed particles
46   void           SetBigBox(Int_t index, Float_t value) ;                             
47   Double_t       SigmaE(Double_t energy) ;    // calulates the energy resolution at a given Energy                           
48   virtual void   StepManager(void) ;          // does the tracking through PHOS and a preliminary digitalization
49   
50 private:
51   
52   Float_t fBigBoxX ;                         // main box containing all PHOS (EMC+PPSD)
53   Float_t fBigBoxY ;                         // main box containing all PHOS (EMC+PPSD)
54   Float_t fBigBoxZ ;                         // main box containing all PHOS (EMC+PPSD)
55   FastRecParticlesList * fFastRecParticles ; // list of particles modified by the response function 
56   AliPHOSGeometry * fGeom ;                  // geometry definition
57   Int_t fNRecParticles ;                     // number of detected particles
58   TRandom fRan ;                             // random number generator
59   Double_t fResPara1 ;                       // parameter for the energy resolution dependence ; 
60   Double_t fResPara2 ;                       // parameter for the energy resolution dependence ; 
61   Double_t fResPara3 ;                       // parameter for the energy resolution dependence ; 
62
63
64   ClassDef(AliPHOSvFast,1)  // PHOS main class , version for fast simulation
65
66 };
67
68 #endif // AliPHOSVFAST_H