Corrections to comply with coding convention
[u/mrichter/AliRoot.git] / PHOS / AliPHOS.cxx
index 555f66a..33e9918 100644 (file)
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
+/* $Id$ */
+
 //_________________________________________________________________________
-// Base Class of PHOS.
-// Only creates the materials
-//*-- Author : Laurent Aphecetche  SUBATECH 
+// Base Class for PHOS description:
+//   PHOS consists of a PbWO4 calorimeter (EMCA) and a gazeous charged 
+//    particles detector (CPV or PPSD).
+//   The only provided method here is CreateMaterials, 
+//    which defines the materials common to all PHOS versions.   
+// 
+//*-- Author: Laurent Aphecetche & Yves Schutz (SUBATECH) 
 //////////////////////////////////////////////////////////////////////////////
 
 // --- ROOT system ---
 
 #include "AliPHOS.h"
 #include "AliMC.h"
-//#include "TGeant3.h"
 #include "AliRun.h"
 
 ClassImp(AliPHOS)
 
 //____________________________________________________________________________
-AliPHOS::AliPHOS(const char* name, const char* title) 
-  : AliDetector(name,title) 
-{
-}
-
-//____________________________________________________________________________
-AliPHOS::AliPHOS() : AliDetector()
-{
-}
-
-//____________________________________________________________________________
 AliPHOS::~AliPHOS()
 {
+  // dtor
   delete fHits ;
   delete fDigits ;
 }
@@ -53,7 +48,8 @@ AliPHOS::~AliPHOS()
 //____________________________________________________________________________
 void AliPHOS::CreateMaterials()
 {
-  // DEFINITION OF PHOS MATERIALS
+  // Definitions of materials to build PHOS and associated tracking media.
+  // media number in idtmed are 699 to 798.
 
   // --- The PbWO4 crystals ---
   Float_t aX[3] = {207.19, 183.85, 16.0} ;
@@ -288,21 +284,93 @@ void AliPHOS::CreateMaterials()
   gMC->Gstpar(idtmed[712], "LOSS",3) ;
   gMC->Gstpar(idtmed[712], "DRAY",1) ;
   // Tracking threshold for photons and electrons in the gas ArC02 
-  gMC->Gstpar(idtmed[715], "CUTGAM",5.E-7) ; 
-  gMC->Gstpar(idtmed[715], "CUTELE",5.E-7) ;
-  gMC->Gstpar(idtmed[715], "CUTNEU",5.E-7) ;
-  gMC->Gstpar(idtmed[715], "CUTHAD",5.E-7) ;
-  gMC->Gstpar(idtmed[715], "CUTMUO",5.E-7) ;
-  gMC->Gstpar(idtmed[715], "BCUTE",5.E-7) ;
-  gMC->Gstpar(idtmed[715], "BCUTM",5.E-7) ;
-  gMC->Gstpar(idtmed[715], "DCUTE",5.E-7) ;
-  gMC->Gstpar(idtmed[715], "DCUTM",5.E-7) ;
-  gMC->Gstpar(idtmed[715], "PPCUTM",5.E-7) ;
+  gMC->Gstpar(idtmed[715], "CUTGAM",1.E-5) ; 
+  gMC->Gstpar(idtmed[715], "CUTELE",1.E-5) ;
+  gMC->Gstpar(idtmed[715], "CUTNEU",1.E-5) ;
+  gMC->Gstpar(idtmed[715], "CUTHAD",1.E-5) ;
+  gMC->Gstpar(idtmed[715], "CUTMUO",1.E-5) ;
+  gMC->Gstpar(idtmed[715], "BCUTE",1.E-5) ;
+  gMC->Gstpar(idtmed[715], "BCUTM",1.E-5) ;
+  gMC->Gstpar(idtmed[715], "DCUTE",1.E-5) ;
+  gMC->Gstpar(idtmed[715], "DCUTM",1.E-5) ;
+  gMC->Gstpar(idtmed[715], "PPCUTM",1.E-5) ;
   gMC->Gstpar(idtmed[715], "LOSS",2.) ;
   gMC->Gstpar(idtmed[715], "DRAY",0.) ;
   gMC->Gstpar(idtmed[715], "STRA",2.) ;
 
+}
+
+//____________________________________________________________________________
+AliPHOSRecPoint::RecPointsList * AliPHOS::EmcRecPoints(Int_t evt) 
+{
+  // returns the pointer to the EMCA RecPoints list
+  // if the list is empty, get it from TreeR on the disk file
+
+  AliPHOSRecPoint::RecPointsList * rv = 0 ; 
+  
+  if ( fEmcRecPoints ) 
+    rv = fEmcRecPoints ; 
+
+  else {
+    fEmcRecPoints = new TClonesArray("AliPHOSEmcRecPoint", 100) ; 
+    gAlice->GetEvent(evt) ; 
+    TTree * fReconstruct = gAlice->TreeR() ; 
+    fReconstruct->SetBranchAddress( "PHOSEmcRP", &fEmcRecPoints) ;
+    fReconstruct->GetEvent(0) ;
+    fEmcRecPoints->Expand( fEmcRecPoints->GetEntries() ) ; 
+    rv =  fEmcRecPoints ;
+  }
+    
+  return rv ; 
   
+}
+
+//____________________________________________________________________________
+AliPHOSRecParticle::RecParticlesList * AliPHOS::RecParticles(Int_t evt) 
+{
+  // returns the pointer to the RecParticles list
+  // if the list is empty, get it from TreeR on the disk file
+
+  AliPHOSRecParticle::RecParticlesList * rv = 0 ; 
+  
+  if ( fRecParticles ) 
+    rv = fRecParticles ; 
+
+  else {
+    fRecParticles = new TClonesArray("AliPHOSRecParticle", 100) ; 
+    gAlice->GetEvent(evt) ; 
+    TTree * fReconstruct = gAlice->TreeR() ; 
+    fReconstruct->SetBranchAddress( "PHOSRP", &fRecParticles) ;
+    fReconstruct->GetEvent(0) ;
+    fRecParticles->Expand( fRecParticles->GetEntries() ) ; 
+    rv =  fRecParticles ;
+  }
  
+  return rv ; 
+  
+}
+
+//____________________________________________________________________________
+AliPHOSRecParticle::RecParticlesList * AliPHOS::TrackSegments(Int_t evt) 
+{
+  // returns the pointer to the TrackSegments list
+  // if the list is empty, get it from TreeR on the disk file
 
+  AliPHOSTrackSegment::TrackSegmentsList * rv = 0 ; 
+  
+  if ( fTrackSegments ) 
+    rv = fTrackSegments ; 
+
+  else {
+    fTrackSegments = new TClonesArray("AliPHOSTrackSegment", 100) ; 
+    gAlice->GetEvent(evt) ; 
+    TTree * fReconstruct = gAlice->TreeR() ; 
+    fReconstruct->SetBranchAddress( "PHOSTS", &fTrackSegments) ;
+    fReconstruct->GetEvent(0) ;
+    fTrackSegments->Expand( fTrackSegments->GetEntries() ) ; 
+    rv =  fTrackSegments ;
+  }
+  return rv ; 
+  
 }