X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PHOS%2FAliPHOSvFast.h;h=739bb16323ac5293eb2fc8da03a96c6f256f9675;hb=7f78a0253f24a601cc1493cb0bb5d3dd4c0e9097;hp=24860250ca82edf83a3064de591825f23f4ff589;hpb=a73f33f08284d11550deec9af806219953d782cb;p=u%2Fmrichter%2FAliRoot.git diff --git a/PHOS/AliPHOSvFast.h b/PHOS/AliPHOSvFast.h index 24860250ca8..739bb16323a 100644 --- a/PHOS/AliPHOSvFast.h +++ b/PHOS/AliPHOSvFast.h @@ -3,65 +3,92 @@ /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * * See cxx source for full Copyright notice */ -//////////////////////////////////////////////// -// Manager class for PHOS // -// Version SUBATECH // -// Author Y. Schutz SUBATECH // -// This is the class to be used for // -// fast simulations // -//////////////////////////////////////////////// - /* $Id$ */ +//_________________________________________________________________________ +// Implementation of the PHOS manager class for fast simulations +// Tracks particles until the reach a grossly designed PHOS module +// Modify the particles property (momentum, energy, type) according to +// the PHOS response function. The result is called a virtual reconstructed +// particle. +// +//*-- Author: Yves Schutz (SUBATECH) + // --- ROOT system --- -#include "TClonesArray.h" +//#include "TClonesArray.h" #include "TRandom.h" +class TVector3 ; +class TFile; + // --- AliRoot header files --- #include "AliPHOS.h" -#include "AliPHOSGeometry.h" -#include "AliPHOSPID.h" -#include "AliPHOSFastRecParticle.h" +class AliPHOSGeometry ; +class AliPHOSFastRecParticle ; class AliPHOSvFast : public AliPHOS { public: - AliPHOSvFast(void) ; + AliPHOSvFast() ; AliPHOSvFast(const char *name, const char *title="") ; + AliPHOSvFast(AliPHOSvFast & fast) : AliPHOS(fast) { + fast.Copy(*this) ; + } virtual ~AliPHOSvFast(void) ; + virtual void Copy(AliPHOSvFast & fast) ; void AddRecParticle(const AliPHOSFastRecParticle & rp) ; // adds primary particle to the RecParticles list virtual void BuildGeometry(void) ; // creates the geometry for the ROOT display virtual void CreateGeometry(void) ; // creates the geometry for GEANT - Float_t GetBigBox(Int_t index) ; - virtual AliPHOSGeometry * GetGeometry() { return fGeom ; } + Float_t GetBigBox(Int_t index) const; virtual void Init(void) ; // does nothing - Int_t IsVersion(void) const { return -1 ; } - void MakeBranch(Option_t* opt) ; - Double_t MakeEnergy(const Double_t energy) ; // makes the detected energy - void MakeRecParticle(AliPHOSFastRecParticle & rp) ; // makes a reconstructes particle from primary - Int_t MakeType(const Text_t * name) ; // gets the detected type of particle - FastRecParticlesList * FastRecParticles() { return fFastRecParticles ; } // gets TClonesArray of reconstructed particles - void SetBigBox(Int_t index, Float_t value) ; - Double_t SigmaE(Double_t energy) ; // calulates the energy resolution at a given Energy - virtual void StepManager(void) ; // does the tracking through PHOS and a preliminary digitalization + virtual Int_t IsVersion(void) const { + // Gives the version number + return 99 ; + } + + void MakeBranch(Option_t* opt); + Double_t MakeEnergy(Double_t energy) ; // makes the detected energy + TVector3 MakePosition(Double_t energy, TVector3 pos, Double_t th, Double_t ph) ; + // makes the detected position + void MakeRecParticle(Int_t modid, TVector3 pos, AliPHOSFastRecParticle & rp) ; // makes a reconstructes particle from primary + Int_t MakeType(AliPHOSFastRecParticle & rp) ; // gets the detected type of particle + // gets TClonesArray of reconstructed particles + TClonesArray * FastRecParticles() const { return fFastRecParticles ; } + virtual void ResetPoints() ; + void ResetFastRecParticles() ; + void SetBigBox(Int_t index, Float_t value) ; + Double_t SigmaE(Double_t energy) ; // calulates the energy resolution at a given Energy + Double_t SigmaP(Double_t energy, Double_t inc) ; // calulates the position resolution at a given Energy at a given incidence + virtual void StepManager(void) ; // does the tracking through PHOS and a preliminary digitalization + virtual const TString Version(void)const { + // As IsVersion + return TString("vFast") ; + } + + AliPHOSvFast & operator = (const AliPHOSvFast & ) { + Fatal("operator =", "not implemented") ; return *this ; + } private: Float_t fBigBoxX ; // main box containing all PHOS (EMC+PPSD) Float_t fBigBoxY ; // main box containing all PHOS (EMC+PPSD) Float_t fBigBoxZ ; // main box containing all PHOS (EMC+PPSD) - FastRecParticlesList * fFastRecParticles ; // list of particles modified by the response function - AliPHOSGeometry * fGeom ; // geometry definition + TClonesArray * fFastRecParticles ; // list of particles modified by the response function Int_t fNRecParticles ; // number of detected particles TRandom fRan ; // random number generator - Double_t fResPara1 ; // parameter for the energy resolution dependence ; - Double_t fResPara2 ; // parameter for the energy resolution dependence ; - Double_t fResPara3 ; // parameter for the energy resolution dependence ; - + Double_t fResPara1 ; // parameter for the energy resolution dependence + Double_t fResPara2 ; // parameter for the energy resolution dependence + Double_t fResPara3 ; // parameter for the energy resolution dependence + Double_t fPosParaA0 ; // parameter for the position resolution + Double_t fPosParaA1 ; // parameter for the position resolution + Double_t fPosParaB0 ; // parameter for the position resolution + Double_t fPosParaB1 ; // parameter for the position resolution + Double_t fPosParaB2 ; // parameter for the position resolution - ClassDef(AliPHOSvFast,1) // PHOS main class , version for fast simulation + ClassDef(AliPHOSvFast,1) // Implementation of the PHOS manager class for fast simulations };