Obsolete classes removed
authorschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 4 Sep 2003 11:37:18 +0000 (11:37 +0000)
committerschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 4 Sep 2003 11:37:18 +0000 (11:37 +0000)
PHOS/AliPHOSPpsdRecPoint.cxx [deleted file]
PHOS/AliPHOSPpsdRecPoint.h [deleted file]
PHOS/AliPHOSv4.cxx [deleted file]
PHOS/AliPHOSv4.h [deleted file]

diff --git a/PHOS/AliPHOSPpsdRecPoint.cxx b/PHOS/AliPHOSPpsdRecPoint.cxx
deleted file mode 100644 (file)
index 153529a..0000000
+++ /dev/null
@@ -1,278 +0,0 @@
-/**************************************************************************
- * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- *                                                                        *
- * Author: The ALICE Off-line Project.                                    *
- * Contributors are mentioned in the code where appropriate.              *
- *                                                                        *
- * Permission to use, copy, modify and distribute this software and its   *
- * documentation strictly for non-commercial purposes is hereby granted   *
- * without fee, provided that the above copyright notice appears in all   *
- * copies and that both the copyright notice and this permission notice   *
- * appear in the supporting documentation. The authors make no claims     *
- * about the suitability of this software for any purpose. It is          *
- * provided "as is" without express or implied warranty.                  *
- **************************************************************************/
-/* $Id$ */
-//_________________________________________________________________________
-//  A RecPoint (cluster) in the PPSD 
-//  A PPSD RecPoint ends up to be a single digit
-//  Why should I put meaningless comments
-//  just to satisfy
-//  the code checker                
-//                
-//*--  Yves Schutz (SUBATECH)
-
-// --- ROOT system ---
-
-#include "TPad.h"
-
-// --- Standard library ---
-
-// --- AliRoot header files ---
-
-#include "AliPHOSGeometry.h"
-#include "AliPHOSPpsdRecPoint.h"
-#include "AliPHOSCpvRecPoint.h"
-#include "AliRun.h"
-#include "AliPHOSLoader.h"
-
-ClassImp(AliPHOSPpsdRecPoint)
-
-//____________________________________________________________________________
-AliPHOSPpsdRecPoint::AliPHOSPpsdRecPoint(void)
-{ 
-  // ctor
-
-  fMulDigit = 0 ;  
-  fLocPos.SetX(1000000.)  ;      //Local position should be evaluated
-}
-
-//____________________________________________________________________________
-void AliPHOSPpsdRecPoint::AddDigit(AliPHOSDigit & digit, Float_t Energy)
-{
-  // adds a digit to the digits list
-  // and accumulates the total amplitude and the multiplicity 
-  
-  
-  if ( fMulDigit >= fMaxDigit ) { // increase the size of the lists 
-    fMaxDigit*=2 ; 
-    int * tempo = new ( int[fMaxDigit] ) ; 
-    Int_t index ; 
-    
-    for ( index = 0 ; index < fMulDigit ; index++ )
-      tempo[index] = fDigitsList[index] ;
-    
-    delete []  fDigitsList ; 
-    fDigitsList =  new ( int[fMaxDigit] ) ;
-   
-    for ( index = 0 ; index < fMulDigit ; index++ )
-      fDigitsList[index] = tempo[index] ;
-    delete [] tempo ;
-  }
-
-  fDigitsList[fMulDigit++]  =  digit.GetIndexInList() ; 
-  fAmp += Energy ; 
-  EvalPHOSMod(&digit) ;
-}
-
-//____________________________________________________________________________
-Int_t AliPHOSPpsdRecPoint::Compare(const TObject * obj) const
-{
-  // Compares according to the position
-  Float_t delta = 1 ; //width of the "Sorting row"
-
-  Int_t rv ; 
-  
-  if( (strcmp(obj->ClassName() , "AliPHOSPpsdRecPoint" )) == 0)  // PPSD Rec Point
-    {
-     AliPHOSPpsdRecPoint * clu = (AliPHOSPpsdRecPoint *)obj ; 
-
-     Float_t x1 , z1 ;    //This rec point
-     Float_t x2 , z2 ;    //
-     
-     Int_t phosmod1 ;
-     Int_t phosmod2 ;
-     
-     Int_t up1 ;
-     Int_t up2 ; 
-  
-     if(GetUp()) // upper layer
-       up1 = 0 ; 
-     else        // lower layer
-       up1 = 1 ;       
-     
-     if(clu->GetUp()) // upper layer
-       up2 = 0 ; 
-     else            // lower layer
-       up2 = 1 ;       
-
-     TVector3 posloc ;
-     GetLocalPosition(posloc) ;
-     x1 = posloc.X() ;
-     z1 = posloc.Z() ; 
-     phosmod1 = GetPHOSMod();  
-     clu->GetLocalPosition(posloc) ;
-     x2 = posloc.X() ;
-     z2 = posloc.Z() ; 
-     phosmod2 = clu->GetPHOSMod();
-     
-     if(phosmod1 == phosmod2 ) {
-       
-       if(up1 == up2 ){
-        Int_t rowdif = (Int_t)TMath::Ceil(x1/delta) - (Int_t) TMath::Ceil(x2/delta) ;
-        
-        if (rowdif> 0) 
-          rv = 1 ;
-        else if(rowdif < 0) 
-          rv = -1 ;
-        else if(z1>z2) 
-          rv = -1 ;
-        else 
-          rv = 1 ; 
-       }
-       
-       else {
-        
-        if(up1 < up2 ) // Upper level first (up = True or False, True > False)
-          rv = -1 ;   
-        else 
-          rv = 1 ;
-       }
-       
-     } // if phosmod1 == phosmod2
-     
-     else {
-       
-       if(phosmod1 < phosmod2 ) 
-        rv = -1 ;
-       else 
-        rv = 1 ;
-       
-     }
-     
-     return rv ;      
-    }
-  else
-    {
-      AliPHOSCpvRecPoint * clu  = (AliPHOSCpvRecPoint *) obj ;   
-      if(GetPHOSMod()  < clu->GetPHOSMod() ) 
-       rv = -1 ;
-      else 
-       rv = 1 ;
-      return rv ;
-    }
-
-  
-}
-
-//____________________________________________________________________________
-void AliPHOSPpsdRecPoint::EvalAll(Float_t logWeight,TClonesArray * digits )
-{
-  // calculates all the characteristics of the RecPoint
-  AliPHOSRecPoint::EvalAll(logWeight,digits) ;
-  EvalLocalPosition(logWeight,digits) ;
-  EvalUp(digits) ;
-}
-
-//____________________________________________________________________________
-void AliPHOSPpsdRecPoint::EvalLocalPosition(Float_t logWeight,TClonesArray * digits )
-{
-  // Calculates the local position in the PHOS-PPSD-module coordinates
-  
-  Int_t relid[4] ;
-
-  Float_t x = 0. ;
-  Float_t z = 0. ;
-
-  AliPHOSLoader * gime = AliPHOSLoader::GetInstance() ; 
-  AliPHOSGeometry * phosgeom =  (AliPHOSGeometry*)gime->PHOSGeometry();
-  
-  AliPHOSDigit * digit ;
-  Int_t iDigit;
-
-  for(iDigit = 0; iDigit < fMulDigit; iDigit++) {
-    digit = (AliPHOSDigit *) digits->At(fDigitsList[iDigit]) ; 
-    Float_t xi ;
-    Float_t zi ;
-    phosgeom->AbsToRelNumbering(digit->GetId(), relid) ;
-    phosgeom->RelPosInModule(relid, xi, zi);
-    x += xi ;
-    z += zi ;
-  }
-
-  x /= fMulDigit ;
-  z /= fMulDigit ;
-
-  fLocPos.SetX(x)  ;
-  fLocPos.SetY(0.) ;
-  fLocPos.SetZ(z)  ;
-
-}
-
-//____________________________________________________________________________
-void AliPHOSPpsdRecPoint::EvalUp(TClonesArray * digits)
-{
-  // Are we in the uper PPSD module ?
-
-  Int_t relid[4] ;
-  
-  AliPHOSLoader * gime = AliPHOSLoader::GetInstance() ; 
-  AliPHOSGeometry * phosgeom =  (AliPHOSGeometry*)gime->PHOSGeometry();
-  
-  
-  AliPHOSDigit *digit = (AliPHOSDigit *) digits->At(fDigitsList[0]) ; 
-  
-  phosgeom->AbsToRelNumbering(digit->GetId(),relid);
-
-  if((Int_t)TMath::Ceil((Float_t)relid[1]/
-                       (phosgeom->GetNumberOfModulesPhi()*phosgeom->GetNumberOfModulesZ())-0.0001 ) > 1) 
-    fUp = kFALSE ;
-  else  
-    fUp = kTRUE ;
-  
-}
-//______________________________________________________________________________
-void AliPHOSPpsdRecPoint::Paint(Option_t *)
-{
-  //*-*-*-*-*-*-*-*-*-*-*Paint this ALiRecPoint as a TMarker  with its current attributes*-*-*-*-*-*-*
-  //*-*                  =============================================
-
-  TVector3 pos(0.,0.,0.) ;
-  GetLocalPosition(pos) ;
-  Coord_t x = pos.X() ;
-  Coord_t y = pos.Z() ;
-  Color_t markercolor = 1 ;
-  Size_t  markersize  = 1. ;
-  Style_t markerstyle = 2 ;
-  if (GetUp()) 
-    markerstyle = 3 ;
-  
-  if (!gPad->IsBatch()) {
-    gVirtualX->SetMarkerColor(markercolor);
-    gVirtualX->SetMarkerSize (markersize);
-    gVirtualX->SetMarkerStyle(markerstyle);
-  }
-  gPad->SetAttMarkerPS(markercolor,markerstyle,markersize);
-  gPad->PaintPolyMarker(1,&x,&y,"");
-  
-  
-}
-
-//____________________________________________________________________________
-void AliPHOSPpsdRecPoint::Print(Option_t * option) 
-{
-  // Print the digits information 
-  
-  Info("Print","AliPHOSPpsdRecPoint: " ) ;
-  
-  Int_t iDigit; 
-  Info("Print"," Digit{s} # ") ; 
-  for(iDigit=0; iDigit<fMulDigit; iDigit++) 
-    Info("Print", "%d", fDigitsList[iDigit]) ;  
-  Info("Print","       Multiplicity    = %d", fMulDigit  ) ;
-  Info("Print","       Stored at position %d", fIndexInList ) ; 
-}
-
-
diff --git a/PHOS/AliPHOSPpsdRecPoint.h b/PHOS/AliPHOSPpsdRecPoint.h
deleted file mode 100644 (file)
index 1c30ae3..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-#ifndef ALIPHOSPPSDRECPOINT_H
-#define ALIPHOSPPSDRECPOINT_H
-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice                               */
-
-/* $Id$ */
-
-//_________________________________________________________________________
-//  A RecPoint (cluster) in the PPSD 
-//  A PPSD RecPoint ends up to be a single digit
-//  Oh yeah               
-//*--  Yves Schutz (SUBATECH)
-
-// --- ROOT system ---
-
-// --- Standard library ---
-
-// --- AliRoot header files ---
-
-#include "AliPHOSDigit.h"
-#include "AliPHOSRecPoint.h"
-
-class AliPHOSPpsdRecPoint : public AliPHOSRecPoint {
-
-public:
-
-  AliPHOSPpsdRecPoint();           // ctor   
-  virtual ~AliPHOSPpsdRecPoint(){
-    // dtor
-  }
-  virtual void AddDigit(AliPHOSDigit & digit, Float_t Energy) ;
-  Int_t   Compare(const TObject * obj) const;                    // method to sort clusters
-
-  void    EvalAll(Float_t LogWeight,TClonesArray * digits) ;
-  void    EvalLocalPosition(Float_t LogWeight,TClonesArray * digits) ;   
-                                                    // computes the position in the module of the cluster center
-  void    EvalUp(TClonesArray * digits) ;              
-
-  Int_t   GetMultiplicity(void)    const { return fMulDigit ;  } // returns the multiplicity of digits at 
-                                                                 // the origin of this recpoint
-  Int_t   GetMaximumMultiplicity() const { return   fMaxDigit ;} // returns the maximum allowed digit multiplicity 
-  Bool_t  GetUp()      const {return fUp;     }    // true if cluster is in upper ppsd 
-  Bool_t  IsEmc(void)  const {return kFALSE ; }    // tells that this is not a EMC
-  Bool_t  IsSortable() const { return kTRUE ; }    // tells that this is a sortable object
-  virtual void  Paint(Option_t * option="");
-  void    Print(Option_t * option) ; 
-
-private:
-
-  Bool_t fUp ; 
-  
-  ClassDef(AliPHOSPpsdRecPoint,1)  // PPSD RecPoint
-
-};
-
-#endif // AliPHOSPPSDRECPOINT_H
diff --git a/PHOS/AliPHOSv4.cxx b/PHOS/AliPHOSv4.cxx
deleted file mode 100644 (file)
index f1fee85..0000000
+++ /dev/null
@@ -1,525 +0,0 @@
-/**************************************************************************
- * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- *                                                                        *
- * Author: The ALICE Off-line Project.                                    *
- * Contributors are mentioned in the code where appropriate.              *
- *                                                                        *
- * Permission to use, copy, modify and distribute this software and its   *
- * documentation strictly for non-commercial purposes is hereby granted   *
- * without fee, provided that the above copyright notice appears in all   *
- * copies and that both the copyright notice and this permission notice   *
- * appear in the supporting documentation. The authors make no claims     *
- * about the suitability of this software for any purpose. It is          *
- * provided "as is" without express or implied warranty.                  *
- **************************************************************************/
-
-/* $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 "TBRIK.h"
-#include "TNode.h"
-#include "TParticle.h"
-#include "TTree.h"
-#include "TGeometry.h"
-#include "TFile.h"
-
-// --- Standard library ---
-
-// --- AliRoot header files ---
-#include "AliPHOSFastRecParticle.h"
-#include "AliPHOSGeometry.h"
-#include "AliPHOSv4.h"
-#include "AliPHOSLoader.h"
-#include "AliRun.h"
-#include "AliConst.h"
-#include "AliMC.h"
-
-ClassImp(AliPHOSv4)
-
-//____________________________________________________________________________
-AliPHOSv4::AliPHOSv4() : AliPHOS()
-{
-  // default ctor : initialize data member
-   fBigBoxX = 0. ;                      
-   fBigBoxY = 0. ;                      
-   fBigBoxZ = 0. ;                       
-   fFastRecParticles = 0 ;        
-   fNRecParticles = 0 ;                
-   fRan = 0 ;                            
-   fResPara1 = 0. ;                       
-   fResPara2 = 0. ;                        
-   fResPara3 = 0. ;                      
-   fPosParaA0 = 0. ;                      
-   fPosParaA1 = 0. ;
-   fPosParaB0 = 0. ;     
-   fPosParaB1 = 0. ;    
-   fPosParaB2 = 0. ;    
-
-}
-
-//____________________________________________________________________________
-AliPHOSv4::AliPHOSv4(const char *name, const char *title):
-  AliPHOS(name,title)
-{
-  // ctor
-
-  
-  // create the geometry parameters object  
-  // and post it to a folder (Post retrieves the correct geometry)
-  AliPHOSLoader::GetInstance(gDirectory->GetName(), name)->PostGeometry() ;  //skowron  
-    
-    SetBigBox(0, GetGeometry()->GetOuterBoxSize(0) ) ;
-    SetBigBox(1, GetGeometry()->GetOuterBoxSize(1) + GetGeometry()->GetCPVBoxSize(1) ) ; 
-    SetBigBox(2, GetGeometry()->GetOuterBoxSize(0) ); 
-    
-    fNRecParticles = 0 ; 
-    fFastRecParticles = new AliPHOSFastRecParticle::FastRecParticlesList("AliPHOSFastRecParticle", 100) ;
-
-    fResPara1 = 0.030 ;    // GeV
-    fResPara2 = 0.00003 ; 
-    fResPara3 = 0.00001 ; 
-    
-    fPosParaA0 = 2.87 ;    // mm
-    fPosParaA1 = -0.0975 ;  
-    fPosParaB0 = 0.257 ;   
-    fPosParaB1 = 0.137 ; 
-    fPosParaB2 = 0.00619 ; 
-}
-
-//____________________________________________________________________________
-AliPHOSv4::~AliPHOSv4()
-{
-  // dtor
-  fFastRecParticles->Delete() ; 
-  delete fFastRecParticles ;
-  fFastRecParticles = 0 ; 
-
-}
-
-//____________________________________________________________________________
-void AliPHOSv4::AddRecParticle(const AliPHOSFastRecParticle & rp)
-{  
-  // Add a virtually reconstructed particle to the list 
-
-  new( (*fFastRecParticles)[fNRecParticles] ) AliPHOSFastRecParticle(rp) ;
-  fNRecParticles++ ; 
-}
-
-//____________________________________________________________________________
-void AliPHOSv4::BuildGeometry()
-{
-  // Build the PHOS geometry for the ROOT display
-   //BEGIN_HTML
-  /*
-    <H2>
-     PHOS FAST in ALICE displayed by root
-    </H2>
-    <H4> All Views </H4>
-    <P>
-    <CENTER>
-    <IMG Align=BOTTOM ALT="Fast All Views" SRC="../images/AliPHOSv4AllViews.gif"> 
-    </CENTER></P>
-    <H4> Front View </H4>
-    <P>
-    <CENTER>
-    <IMG Align=BOTTOM ALT="Fast Front View" SRC="../images/AliPHOSv4FrontView.gif"> 
-    </CENTER></P>
-  */
-  //END_HTML  
-  const Int_t kColorPHOS = kRed ;
-  
-  Double_t const kRADDEG = 180.0 / TMath::Pi() ;
-  
-  new TBRIK( "BigBox", "PHOS box", "void", GetBigBox(0)/2, 
-            GetBigBox(1)/2, 
-            GetBigBox(2)/2 );
-  
-  // position PHOS into ALICE
-
-  Float_t r = GetGeometry()->GetIPtoCrystalSurface() + GetBigBox(1) / 2.0 ;
-  Int_t number = 988 ; 
-  Float_t pphi =  TMath::ATan( GetBigBox(0)  / ( 2.0 * GetGeometry()->GetIPtoCrystalSurface() ) ) ;
-  pphi *= kRADDEG ;
-  TNode * top = gAlice->GetGeometry()->GetNode("alice") ;
-  char * nodename = new char[20] ;  
-  char * rotname  = new char[20] ; 
-
-  for( Int_t i = 1; i <= GetGeometry()->GetNModules(); i++ ) { 
-   Float_t angle = pphi * 2 * ( i - GetGeometry()->GetNModules() / 2.0 - 0.5 ) ;
-   sprintf(rotname, "%s%d", "rot", number++) ;
-   new TRotMatrix(rotname, rotname, 90, angle, 90, 90 + angle, 0, 0);
-   top->cd();
-   sprintf(nodename,"%s%d", "Module", i) ;    
-   Float_t x =  r * TMath::Sin( angle / kRADDEG ) ;
-   Float_t y = -r * TMath::Cos( angle / kRADDEG ) ;
-   TNode * bigboxnode = new TNode(nodename, nodename, "BigBox", x, y, 0, rotname ) ;
-   bigboxnode->SetLineColor(kColorPHOS) ;
-   fNodes->Add(bigboxnode) ;
-  }
-  delete[] nodename ; 
-  delete[] rotname ; 
-}
-
-//____________________________________________________________________________
-void AliPHOSv4::CreateGeometry()
-{
-  // Create the geometry for GEANT
-  
-  AliPHOSv4 *phostmp = dynamic_cast<AliPHOSv4*>(gAlice->GetModule("PHOS")) ;
-  
-  if ( phostmp == NULL ) {
-    
-    fprintf(stderr, "PHOS detector not found!\n") ;
-    return ;
-    
-  }
-
-  // Get pointer to the array containing media indeces
-  Int_t *idtmed = fIdtmed->GetArray() - 699 ;
-  
-  Float_t bigbox[3] ; 
-  bigbox[0] =   GetBigBox(0) / 2.0 ;
-  bigbox[1] =   GetBigBox(1) / 2.0 ;
-  bigbox[2] =   GetBigBox(2) / 2.0 ;
-  
-  gMC->Gsvolu("PHOS", "BOX ", idtmed[798], bigbox, 3) ;
-  
-  // --- Position  PHOS mdules in ALICE setup ---
-  
-  Int_t idrotm[99] ;
-  Double_t const kRADDEG = 180.0 / TMath::Pi() ;
-  
-  for( Int_t i = 1; i <= GetGeometry()->GetNModules(); i++ ) {
-    
-    Float_t angle = GetGeometry()->GetPHOSAngle(i) ;
-    AliMatrix(idrotm[i-1], 90.0, angle, 90.0, 90.0+angle, 0.0, 0.0) ;
-    Float_t r = GetGeometry()->GetIPtoCrystalSurface() + GetBigBox(1) / 2.0 ;
-
-    Float_t xP1 = r * TMath::Sin( angle / kRADDEG ) ;
-    Float_t yP1 = -r * TMath::Cos( angle / kRADDEG ) ;
-    gMC->Gspos("PHOS", i, "ALIC", xP1, yP1, 0.0, idrotm[i-1], "ONLY") ;
-  } // for GetNModules
-
-}
-
-
-//____________________________________________________________________________
-void AliPHOSv4::Init(void)
-{
-  // Prints out an information message
-  
-  Int_t i;
-
-  printf("\n");
-  for(i=0;i<35;i++) printf("*");
-  printf(" FAST PHOS_INIT ");
-  for(i=0;i<35;i++) printf("*");
-  printf("\n");
-
-  // Here the PHOS initialisation code (if any!)
-
-  for(i=0;i<80;i++) printf("*");
-  printf("\n");
-  
-}
-
-//___________________________________________________________________________
-Float_t AliPHOSv4::GetBigBox(Int_t index) const
-{
-  // Get the X, Y or Z dimension of the box describing a PHOS module
-  
-  Float_t rv = 0 ; 
-
-  switch (index) {
-  case 0:
-    rv = fBigBoxX ; 
-    break ; 
-  case 1:
-     rv = fBigBoxY ; 
-    break ; 
-  case 2:
-     rv = fBigBoxZ ; 
-    break ; 
- }
-  return rv ; 
-}
-
-//___________________________________________________________________________
-void AliPHOSv4::MakeBranch(Option_t* opt, const char *file)
-{  
-  // Create new branch in the current reconstructed Root Tree
-  AliDetector::MakeBranch(opt,file) ;
-  
-  char branchname[10];
-  sprintf(branchname,"%s",GetName());
-  const char *cd = strstr(opt,"R");
-  
-  if (fFastRecParticles && gAlice->TreeR() && cd) {
-    MakeBranchInTree(gAlice->TreeR(), 
-                     branchname, &fFastRecParticles, fBufferSize, file);
-  }
-}
-
-//____________________________________________________________________________
-Double_t AliPHOSv4::MakeEnergy(const Double_t energy)
-{  
-  // Smears the energy according to the energy dependent energy resolution.
-  // A gaussian distribution is assumed
-
-  Double_t sigma  = SigmaE(energy) ; 
-  return  fRan.Gaus(energy, sigma) ;   
-}
-
-//____________________________________________________________________________
-TVector3 AliPHOSv4::MakePosition(const Double_t energy, const TVector3 pos, const Double_t theta, const Double_t phi)
-{
-  // Smears the impact position according to the energy dependent position resolution
-  // A gaussian position distribution is assumed
-
-  TVector3 newpos ;
-  Double_t sigma = SigmaP( energy, theta*180./TMath::Pi() ) ;
-  Double_t x = fRan.Gaus( pos.X(), sigma ) ;
-  sigma = SigmaP( energy, phi*180./TMath::Pi() ) ;
-  Double_t z = fRan.Gaus( pos.Z(), sigma ) ;
-  Double_t y = pos.Y() ; 
-  
-  newpos.SetX(x) ; 
-  newpos.SetY(y) ; 
-  newpos.SetZ(z) ; 
-             
-  return newpos ; 
-}
-
-//____________________________________________________________________________
-void AliPHOSv4::MakeRecParticle(const Int_t modid, const TVector3 pos, AliPHOSFastRecParticle & rp)
-{
-  // Modify the primary particle properties according
-  //  1. the response function of PHOS
-  //  2. the performance of the EMC+PPSD setup
-  
-  Int_t type = MakeType( rp ) ;
-  rp.SetType(type) ;
-
-  
-  // get the detected energy
-
-  TLorentzVector momentum ;  
-  rp.Momentum(momentum) ; 
-  Double_t kineticenergy = TMath::Sqrt( TMath::Power(momentum.E(), 2) - TMath::Power(rp.GetMass(), 2) ) ; 
-  Double_t modifiedkineticenergy = MakeEnergy(kineticenergy ) ;
-  Double_t modifiedenergy = TMath::Sqrt( TMath::Power(modifiedkineticenergy, 2)  
-                                        + TMath::Power( rp.GetMass(), 2) ) ;
-  // get the angle of incidence 
-  
-  Double_t incidencetheta = 90. * TMath::Pi() /180 - rp.Theta() ; 
-  Double_t incidencephi   = ( 270 + GetGeometry()->GetPHOSAngle(modid) ) * TMath::Pi() / 180. - rp.Phi() ;   
-
-  // get the detected direction
-  
-  TVector3 modifiedposition = MakePosition(kineticenergy, pos, incidencetheta, incidencephi) ; 
-  modifiedposition *= modifiedkineticenergy / modifiedposition.Mag() ; 
-
-  // Set the modified 4-momentum of the reconstructed particle
-
-  rp.SetMomentum(modifiedposition.X(), modifiedposition.Y(), modifiedposition.Z(), modifiedenergy) ; 
-
- }
-
-//____________________________________________________________________________
-Int_t AliPHOSv4::MakeType(AliPHOSFastRecParticle & rp )
-{
-  // Generate a particle type using the performance of the EMC+PPSD setup
-
-  Int_t rv =   AliPHOSFastRecParticle::kUNDEFINED ;
-  Int_t charge = (Int_t)rp.GetPDG()->Charge() ;
-  Int_t test ; 
-  Float_t ran ; 
-  if ( charge != 0 && ( TMath::Abs(rp.GetPdgCode()) != 11 ) ) 
-    test = - 1 ;
-  else
-    test = rp.GetPdgCode() ; 
-
-  switch (test) { 
-
-  case 22:    // it's a photon
-    ran = fRan.Rndm() ; 
-    if ( ran <= 0.5 )  // 50 % 
-      rv =  AliPHOSFastRecParticle::kGAMMA ; 
-    else {
-      ran = fRan.Rndm() ; 
-      if( ran <= 0.9498 )
-       rv =  AliPHOSFastRecParticle::kNEUTRALEM ; 
-      else
-       rv =  AliPHOSFastRecParticle::kNEUTRALHA ; 
-    }     
-    break ; 
-
-  case 2112:  // it's a neutron
-    ran = fRan.Rndm() ; 
-    if ( ran <= 0.9998 )
-      rv =  AliPHOSFastRecParticle::kNEUTRALHA ; 
-    else 
-      rv = AliPHOSFastRecParticle::kNEUTRALEM ; 
-    break ; 
-
-  case -2112: // it's a anti-neutron
-    ran = fRan.Rndm() ; 
-    if ( ran <= 0.9984 )
-      rv =  AliPHOSFastRecParticle::kNEUTRALHA ; 
-    else 
-      rv =  AliPHOSFastRecParticle::kNEUTRALEM ; 
-    break ; 
-    
-  case 11:    // it's a electron
-    ran = fRan.Rndm() ; 
-    if ( ran <= 0.9996 )
-      rv =  AliPHOSFastRecParticle::kELECTRON ; 
-    else 
-      rv =  AliPHOSFastRecParticle::kCHARGEDHA ; 
-    break; 
-
-  case -11:   // it's a positon
-    ran = fRan.Rndm() ; 
-    if ( ran <= 0.9996 )
-      rv =  AliPHOSFastRecParticle::kELECTRON ; 
-    else 
-      rv =  AliPHOSFastRecParticle::kCHARGEDHA ; 
-    break; 
-
-  case -1:    // it's a charged
-    ran = fRan.Rndm() ; 
-    if ( ran <= 0.9996 )
-      rv =  AliPHOSFastRecParticle::kCHARGEDHA ; 
-    else 
-      rv =  AliPHOSFastRecParticle::kGAMMA ; 
-
-    break ; 
-  }
-    
-  
-  return rv ;
-}
-
-//___________________________________________________________________________
-void AliPHOSv4::ResetPoints()
-{
-  // This overloads the method in AliDetector
-  
-  ResetFastRecParticles() ; 
-}
-
-//___________________________________________________________________________
-void AliPHOSv4::ResetFastRecParticles()
-{
-  // Resets the list of virtual reconstructed particles
-  if (fFastRecParticles) 
-    fFastRecParticles->Clear() ;
-  fNRecParticles = 0 ; 
-}
-
-//___________________________________________________________________________
-void AliPHOSv4::SetBigBox(Int_t index, Float_t value)
-{
-  // Set the size of the Box describing a PHOS module
-  
-  switch (index) {
-  case 0:
-    fBigBoxX = value ; 
-    break ; 
-  case 1:
-    fBigBoxY = value ; 
-    break ; 
-  case 2:
-    fBigBoxZ = value ; 
-    break ; 
- }
-
-}
-
-//____________________________________________________________________________
-Double_t AliPHOSv4::SigmaE(Double_t energy)
-{
-  // Calculates the energy dependent energy resolution
-  
-  Double_t rv = -1 ; 
-  
-  rv = TMath::Sqrt( TMath::Power(fResPara1/energy, 2) 
-              + TMath::Power(fResPara2/TMath::Sqrt(energy), 2) 
-              + TMath::Power(fResPara3, 2) ) ;  
-
-  return rv * energy ; 
-}
-
-//____________________________________________________________________________
-Double_t AliPHOSv4::SigmaP(Double_t energy, Double_t incidence)
-{
-  // Calculates the energy dependent position resolution 
-
-  Double_t paraA = fPosParaA0 + fPosParaA1 * incidence ; 
-  Double_t paraB = fPosParaB0 + fPosParaB1 * incidence + fPosParaB2 * incidence * incidence ; 
-
-  return ( paraA / TMath::Sqrt(energy) + paraB ) * 0.1   ; // in cm  
-}
-
-//____________________________________________________________________________
-void AliPHOSv4::StepManager(void)
-{
-  // Only verifies if the particle reaches PHOS and stops the tracking 
-
-  Int_t primary =  gAlice->GetPrimary( gAlice->GetCurrentTrackNumber() ); 
-
-  TLorentzVector lv ; 
-  gMC->TrackPosition(lv) ;
-  TVector3 pos = lv.Vect() ; 
-  Int_t modid  ; 
-  gMC->CurrentVolID(modid);
-  
-  Float_t energy = gMC->Etot() ; //Total energy of current track
-
-  //Calculating mass of current particle
-  TDatabasePDG * pdg = TDatabasePDG::Instance() ;
-  TParticlePDG * partPDG = pdg->GetParticle(gMC->TrackPid()) ;
-  Float_t mass = partPDG->Mass() ;
-
-  if(energy > mass){
-    pos.SetMag(TMath::Sqrt(energy*energy-mass*mass)) ;
-    TLorentzVector pTrack(pos, energy) ;  
-
-    TParticle * part = new TParticle(gMC->TrackPid(), 0,-1,-1,-1,-1, pTrack, lv)  ;
-        
-    AliPHOSFastRecParticle rp(*part) ;
-    rp.SetPrimary(primary) ; 
-
-    // Adds the response of PHOS to the particle
-    MakeRecParticle(modid, pos, rp) ;
-    
-    // add the `track' particle to the FastRecParticles list
-  
-    AddRecParticle(rp) ;
-
-    part->Delete() ;
-  }
-  // stop the track as soon PHOS is reached
-  
-  gMC->StopTrack() ; 
-
-}
-
diff --git a/PHOS/AliPHOSv4.h b/PHOS/AliPHOSv4.h
deleted file mode 100644 (file)
index e2905fc..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-#ifndef ALIPHOSV4_H
-#define ALIPHOSV4_H
-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice                               */
-
-/* $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 "TRandom.h"
-
-class TVector3 ;
-class TFile;
-
-// --- AliRoot header files ---
-#include "AliPHOS.h"
-class AliPHOSGeometry ;
-class AliPHOSFastRecParticle ;
-
-class AliPHOSv4 : public AliPHOS {
-
-public:
-
-  AliPHOSv4() ;
-  AliPHOSv4(const char *name, const char *title="") ;
-  AliPHOSv4(const AliPHOSv4 & fast) {
-    // cpy ctor: no implementation yet
-    // requested by the Coding Convention
-    assert(0==1) ; 
-  }
-  virtual ~AliPHOSv4(void) ;
-
-  virtual void   AddHit( Int_t shunt, Int_t primary, Int_t track, Int_t id, Float_t *hits ) {
-    // useless since there are no hits
-    assert(0==1) ; 
-  }
-  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) const;                             
-  virtual void   Init(void) ;                                        // does nothing
-  virtual Int_t  IsVersion(void) const {
-    // Gives the version number 
-    return 4 ; 
-  }
-
-  void    MakeBranch(Option_t* opt, const char *file=0) ;
-  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) ; 
-                                                                     // makes the detected position
-  void MakeRecParticle(const Int_t modid, const 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("v4") ; 
-  }
-
-  AliPHOSv4 & operator = (const AliPHOSv4 & )  {
-    // assignement operator requested by coding convention but not needed
-    assert(0==1) ;
-    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)
-  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 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(AliPHOSv4,1)  //  Implementation of the PHOS manager class for fast simulations  
-
-};
-
-#endif // AliPHOSV4_H