]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOSvFast.h
Fix
[u/mrichter/AliRoot.git] / PHOS / AliPHOSvFast.h
index 6c02ad78313be0d3bb974e90509a987e7f87c068..b49095c9784f9cf60a075351d01b485a3992d8b4 100644 (file)
@@ -3,60 +3,85 @@
 /* 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$ */
 
+/* History of cvs commits:
+ *
+ * $Log$
+ * Revision 1.26  2006/09/13 07:31:01  kharlov
+ * Effective C++ corrections (T.Pocheptsov)
+ *
+ * Revision 1.25  2005/05/28 14:19:05  schutz
+ * Compilation warnings fixed by T.P.
+ *
+ */
+
+//_________________________________________________________________________
+// 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="") ;
+  
   virtual ~AliPHOSvFast(void) ;
 
   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    
-  TVector3 MakePosition(const Double_t energy, const TVector3 pos, const Double_t th, const Double_t ph) ; 
+  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(const Int_t modid, const TVector3 pos, AliPHOSFastRecParticle & rp) ;  // makes a reconstructes particle from primary
+  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
-  FastRecParticlesList * FastRecParticles() { return fFastRecParticles ; } // gets TClonesArray of reconstructed particles
+  // 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, Int_t inc) ; // calulates the position resolution at a given Energy at a given incidence                           
+  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") ; 
+  }
+
 private:
+  AliPHOSvFast(AliPHOSvFast & fast);
+  AliPHOSvFast & operator = (const AliPHOSvFast & );
   
   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  
@@ -68,7 +93,7 @@ private:
   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  
 
 };