Merged ITS-working with HEAD. Improved some of the documentation and
[u/mrichter/AliRoot.git] / PHOS / AliPHOSvFast.h
CommitLineData
3decf5cb 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"
a73f33f0 18#include "TRandom.h"
3decf5cb 19
20// --- AliRoot header files ---
21#include "AliPHOS.h"
22#include "AliPHOSGeometry.h"
23#include "AliPHOSPID.h"
a73f33f0 24#include "AliPHOSFastRecParticle.h"
3decf5cb 25
26class AliPHOSvFast : public AliPHOS {
27
28public:
29
30 AliPHOSvFast(void) ;
31 AliPHOSvFast(const char *name, const char *title="") ;
32 virtual ~AliPHOSvFast(void) ;
33
a73f33f0 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
3decf5cb 37 Float_t GetBigBox(Int_t index) ;
38 virtual AliPHOSGeometry * GetGeometry() { return fGeom ; }
a73f33f0 39 virtual void Init(void) ; // does nothing
3decf5cb 40 Int_t IsVersion(void) const { return -1 ; }
a73f33f0 41 void MakeBranch(Option_t* opt) ;
42 Double_t MakeEnergy(const Double_t energy) ; // makes the detected energy
b1aa729d 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
a73f33f0 47 FastRecParticlesList * FastRecParticles() { return fFastRecParticles ; } // gets TClonesArray of reconstructed particles
f96d3dc7 48 virtual void ResetPoints() ;
49 void ResetFastRecParticles() ;
b1aa729d 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
3decf5cb 54
55private:
56
a73f33f0 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
b1aa729d 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
3decf5cb 72
73 ClassDef(AliPHOSvFast,1) // PHOS main class , version for fast simulation
74
75};
76
77#endif // AliPHOSVFAST_H