3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
6 ////////////////////////////////////////////////
7 // Manager class for PHOS //
9 // Author Y. Schutz SUBATECH //
10 // This is the class to be used for //
11 // fast simulations //
12 ////////////////////////////////////////////////
16 // --- ROOT system ---
17 #include "TClonesArray.h"
20 // --- AliRoot header files ---
22 #include "AliPHOSGeometry.h"
23 #include "AliPHOSPID.h"
24 #include "AliPHOSFastRecParticle.h"
26 class AliPHOSvFast : public AliPHOS {
31 AliPHOSvFast(const char *name, const char *title="") ;
32 virtual ~AliPHOSvFast(void) ;
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 TVector3 MakePosition(const Double_t energy, const TVector3 pos, const Double_t th, const Double_t ph) ;
44 // makes the detected position
45 void MakeRecParticle(const Int_t modid, const TVector3 pos, AliPHOSFastRecParticle & rp) ; // makes a reconstructes particle from primary
46 Int_t MakeType(AliPHOSFastRecParticle & rp) ; // gets the detected type of particle
47 FastRecParticlesList * FastRecParticles() { return fFastRecParticles ; } // gets TClonesArray of reconstructed particles
48 virtual void ResetPoints() ;
49 void ResetFastRecParticles() ;
50 void SetBigBox(Int_t index, Float_t value) ;
51 Double_t SigmaE(Double_t energy) ; // calulates the energy resolution at a given Energy
52 Double_t SigmaP(Double_t energy, Int_t inc) ; // calulates the position resolution at a given Energy at a given incidence
53 virtual void StepManager(void) ; // does the tracking through PHOS and a preliminary digitalization
57 Float_t fBigBoxX ; // main box containing all PHOS (EMC+PPSD)
58 Float_t fBigBoxY ; // main box containing all PHOS (EMC+PPSD)
59 Float_t fBigBoxZ ; // main box containing all PHOS (EMC+PPSD)
60 FastRecParticlesList * fFastRecParticles ; // list of particles modified by the response function
61 AliPHOSGeometry * fGeom ; // geometry definition
62 Int_t fNRecParticles ; // number of detected particles
63 TRandom fRan ; // random number generator
64 Double_t fResPara1 ; // parameter for the energy resolution dependence
65 Double_t fResPara2 ; // parameter for the energy resolution dependence
66 Double_t fResPara3 ; // parameter for the energy resolution dependence
67 Double_t fPosParaA0 ; // parameter for the position resolution
68 Double_t fPosParaA1 ; // parameter for the position resolution
69 Double_t fPosParaB0 ; // parameter for the position resolution
70 Double_t fPosParaB1 ; // parameter for the position resolution
71 Double_t fPosParaB2 ; // parameter for the position resolution
73 ClassDef(AliPHOSvFast,1) // PHOS main class , version for fast simulation
77 #endif // AliPHOSVFAST_H