removing obsolete macros. new ones should go in the macros directory
authorjklay <jklay@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 28 Feb 2006 22:17:58 +0000 (22:17 +0000)
committerjklay <jklay@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 28 Feb 2006 22:17:58 +0000 (22:17 +0000)
EMCAL/AliEMCALAnalyseTest.C [deleted file]
EMCAL/AliEMCALReconstruct.C [deleted file]
EMCAL/AliEMCALReconstructionTest.C [deleted file]
EMCAL/Config.C [deleted file]
EMCAL/ConfigTestSuite.C [deleted file]
EMCAL/grunTestSuite.C [deleted file]
EMCAL/testEMCALGeom.C [deleted file]

diff --git a/EMCAL/AliEMCALAnalyseTest.C b/EMCAL/AliEMCALAnalyseTest.C
deleted file mode 100644 (file)
index 979f802..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-#if !defined(__CINT__) || defined(__MAKECINT__)
-#include <iostream>
-
-#include "EMCAL/AliEMCALGetter.h"
-#endif
-
-
-void Go(){
-
-  cout << "AliEMCAL:> Single File default reconstruction analysing" << endl ;
-  
-  AliEMCALGetter* gime=AliEMCALGetter::GetInstance("galice.root") ;  
-  gime->Event(0,"SDR") ;
-  
-  if((gime->TowerRecPoints()==0)||(gime->TowerRecPoints()->At(0)==0)){
-    cout << "        No TowerRecPoint  !!!!! " << endl ;
-  }    
-
-  if((gime->PreShowerRecPoints()==0)||(gime->PreShowerRecPoints()->At(0)==0)){
-    cout << "        No PreShowerRecPoint  !!!!! " << endl ;
-  } 
-   
-//   if((gime->TrackSegments()==0)||(gime->TrackSegments()->At(0)==0)){
-//     cout << "        No TrackSegments !!!! " << endl ;
-//   }    
-
-//   if((gime->RecParticles()==0)||(gime->RecParticles()->At(0)==0)){
-//     cout << "        No RecParticles !!!!! " << endl ;
-//   }    
-
-  cout << "AliEMCAL:> Single File default analysing finished" << endl ;
-
-
-  cout << "AliEMCAL:> Single File branch TEST analyzing started" << endl ;
-
-  gime=AliEMCALGetter::GetInstance("galice.root","test") ;  
-  gime->Event(0,"SDR") ;
-
-  if((gime->TowerRecPoints()==0)||(gime->TowerRecPoints()->At(0)==0)){
-    cout << "No TowerRecPoint " << endl ;
-  }    
-  
-  if((gime->PreShowerRecPoints()==0)||(gime->PreShowerRecPoints()->At(0)==0)){
-    cout << "No PreShowerRecPoint " << endl ;
-  }   
-  
-//   if((gime->TrackSegments()==0)||(gime->TrackSegments()->At(0)==0)){
-//     cout << "No TrackSegments " << endl ;
-//   }    
-
-//   if((gime->RecParticles()==0)||(gime->RecParticles()->At(0)==0)){
-//     cout << "No RecParticles " << endl ;
-//   }   
-  cout << "AliEMCAL:> Single File branch TEST reconstruction ended" << endl ;
-
-  
-  cout << "AliEMCAL:> Split File default reconstruction started" << endl ;
-  gime=AliEMCALGetter::GetInstance("galice.root","Default",kTRUE) ;  
-  gime->Event(0,"SDR") ;
-  if((gime->TowerRecPoints()==0)||(gime->TowerRecPoints()->At(0)==0)){
-    cout << "No TowerRecPoint " << endl ;
-  }    
-  if((gime->PreShowerRecPoints()==0)||(gime->PreShowerRecPoints()->At(0)==0)){
-    cout << "No PreShowerRecPoint " << endl ;
-  }    
-  
-  //  if((gime->TrackSegments()==0)||(gime->TrackSegments()->At(0)==0)){
-//     cout << "No TrackSegments " << endl ;
-//   }   
-//   if((gime->RecParticles()==0)||(gime->RecParticles()->At(0)==0)){
-//     cout << "No RecParticles " << endl ;
-//  }   
-  cout << "AliEMCAL:> Split File default reconstruction ended" << endl ;
-  
-  cout << "--------AliEMCAL:> Reconstruction OK------------------"<< endl ;
-  
-}
diff --git a/EMCAL/AliEMCALReconstruct.C b/EMCAL/AliEMCALReconstruct.C
deleted file mode 100644 (file)
index d3823cc..0000000
+++ /dev/null
@@ -1,241 +0,0 @@
-// YS Subatech Mai 2002
-// YK Subatech 6 Aug 2002
-
-// EMCAL Reconstruction chain:
-// Hits -> SDigits -> Digits -> RecPoints -> TrackSegments -> RecParticles
-
-//Root
-#if !defined(__CINT__) || defined(__MAKECINT__)
-#include "TString.h"
-
-//AliRoot
-#include "STEER/AliRun.h"
-#include "EMCAL/AliEMCALSDigitizer.h"
-#include "EMCAL/AliEMCALDigitizer.h"
-#include "EMCAL/AliEMCALClusterizerv1.h"
-// #include "EMCAL/AliEMCALTrackSegmentMakerv1.h"
-// #include "EMCAL/AliEMCALPIDv1.h"
-#endif
-
-void EMCALHits2SDigits( Bool_t split=kFALSE, TString fileName = "galice.root") {
-
-  // usage : 
-  // 1. write SDigits in the same file as Hits --------------- (OK)
-  //root [0] .L Reconstruct.C++
-  //root [1] SDigits2Digits()
-  // 2. write SDigits in a separate file, one per detector, from Hits --------------- (OK)
-  //root [0] .L Reconstruct.C++
-  //root [1] SDigits2Digits(kTRUE) // SDigits saved in [DET}.SDigits.root (DET=EMCAL, EMCAL)
-
-  delete gAlice ; 
-  gAlice = 0 ; 
-  
-  AliEMCALSDigitizer * sdp = new AliEMCALSDigitizer(fileName) ; 
-  if (split) 
-    sdp->SetSplitFile() ;
-  sdp->ExecuteTask("deb") ; 
-
-  delete sdp ;
-}
-
-//________________________________________________________________________
-void EMCALSDigits2Digits( Bool_t split=kFALSE, TString fileName = "galice.root") {
-  
- // usage : 
-  // 1. write SDigits in the same file as SDigits --------------- (OK)
-  //root [0] .L Reconstruct.C++
-  //root [1] SDigits2Digits()
-  // 2. write SDigits in a separate file, one per detector, from SDigits --------------- (OK)
-  //root [0] .L Reconstruct.C++
-  //root [1] SDigitsDigits(kTRUE) // Digits saved in [DET}.Digits.root (DET=EMCAL, EMCAL)
-
-  delete gAlice ; 
-  gAlice = 0 ; 
-  
-  // EMCAL
-  AliEMCALDigitizer * dp = 0 ; 
-  if (split) {
-    dp = new AliEMCALDigitizer("EMCAL.SDigits.root") ; 
-    dp->SetSplitFile() ; } 
-  else 
-    dp = new AliEMCALDigitizer(fileName) ; 
-  
-  dp->ExecuteTask("deb") ; 
-  
-  delete dp ;
-}
-
-//________________________________________________________________________
-void EMCALDigits2RecPoints( Bool_t split=kFALSE, TString fileName = "galice.root") {
-  
- // usage : 
-  // 1. write RecPoints in the same file as Digits --------------- OK 
-  //root [0] .L Reconstruct.C++
-  //root [1] Digits2RecPoints()
-  // 2. write RecPoints in a separate file, one per detector, from Digits --------------- OK 
-  //root [0] .L Reconstruct.C++
-  //root [1] Digits2RecPoints(kTRUE) // RecPoints saved in [DET}.RecPoints.root (DET=EMCAL, EMCAL)
-
-  delete gAlice ; 
-  gAlice = 0 ; 
-  AliEMCALClusterizer * cp = 0 ; 
-  if (split) {
-    cp = new AliEMCALClusterizerv1("EMCAL.Digits.root") ; 
-    cp->SetSplitFile() ; } 
-  else 
-    cp = new AliEMCALClusterizerv1(fileName) ; 
-  
-  cp->ExecuteTask("deb") ; 
-  
-  delete cp ;
-}
-
-// //________________________________________________________________________
-// void EMCALRecPoints2TrackSegments( Bool_t split=kFALSE, TString fileName = "galice.root") {
-  
-//  // usage : 
-//   // 1. write TrackSegments in the same file as RecPoints --------------- (OK) 
-//   //root [0] .L Reconstruct.C++
-//   //root [1] RecPoints2TrackSegments()
-//   // 2. write TrackSegments in a separate file, one per detector, from RecPoints --------------- (Not needed) 
-//   //root [0] .L Reconstruct.C++
-//   //root [1] RecPoints2TrackSegments(kTRUE) // TrackSegments saved in [DET}.RecData.root (DET=EMCAL, EMCAL)
-
-//   delete gAlice ; 
-//   gAlice = 0 ; 
-  
-//   AliEMCALTrackSegmentMaker * tmp = 0 ; 
-//   if (split)
-//     tmp = new AliEMCALTrackSegmentMakerv1("EMCAL.RecData.root") ; 
-//   else 
-//     tmp = new AliEMCALTrackSegmentMakerv1(fileName) ; 
-  
-//   tmp->ExecuteTask("deb") ; 
-  
-//   delete tmp ;
-// }
-
-// //________________________________________________________________________
-// void EMCALTrackSegments2RecParticles( Bool_t split=kFALSE, TString fileName = "galice.root") {
-  
-//  // usage : 
-//   // 1. write RecParticles in the same file as TrackSegments ---------------  (OK)
-//   //root [0] .L Reconstruct.C++
-//   //root [1] TrackSegments2RecParticles()
-//   // 2. write RecParticles in a separate file, one per detector, from TrackSegments --------------- (Not needed) 
-//   //root [0] .L Reconstruct.C++
-//   //root [1] TrackSegments2RecParticles(kTRUE) // RecParticles saved in [DET}.RecData.root (DET=EMCAL, EMCAL)
-
-//   delete gAlice ; 
-//   gAlice = 0 ; 
-  
-//   AliEMCALPID * pp = 0 ; 
-//   if (split) 
-//     pp = new AliEMCALPIDv1("EMCAL.RecData.root") ; 
-//   else 
-//     pp = new AliEMCALPIDv1(fileName) ; 
-  
-//   pp->ExecuteTask("deb") ; 
-  
-//   delete pp ;
-// }
-
-// //________________________________________________________________________
-// void EMCALDigits2RecParticles( Bool_t split=kFALSE, TString fileName = "galice.root") {
-  
-//  // usage : 
-//   // 1. write RecPoints, TrackSegments and RecParticles in the same file as Digits --------------- (OK)
-//   //root [0] .L Reconstruct.C++
-//   //root [1] Digits2RecParticles()
-//   // 2. write RecPoints , TrackSegments and RecParticles in a separate file, one per detector, from Digits --------------- (OK)
-//   //root [0] .L Reconstruct.C++
-//   //root [1] Digits2RecParticles(kTRUE) // TrackSegments saved in [DET}.RecData.root (DET=EMCAL, EMCAL)
-
-//   delete gAlice ; 
-//   gAlice = 0 ; 
-//   // EMCAL
-//   AliEMCALClusterizer * cp = 0 ; 
-//   if (split) {
-//     cp = new AliEMCALClusterizerv1("EMCAL.Digits.root") ; 
-//     cp->SetSplitFile() ; } 
-//   else 
-//     cp = new AliEMCALClusterizerv1(fileName) ; 
-  
-//   cp->ExecuteTask("deb") ; 
-
-//   if (split) 
-//     delete cp ;
-  
-//   AliEMCALTrackSegmentMaker * tmp = 0 ; 
-  
-//   if (split) 
-//     tmp = new AliEMCALTrackSegmentMakerv1("EMCAL.RecData.root") ; 
-//   else 
-//     tmp = new AliEMCALTrackSegmentMakerv1(fileName) ; 
-  
-//   tmp->ExecuteTask("deb") ; 
-  
-//   AliEMCALPID * pp = 0 ; 
-//   if (split) 
-//     pp = new AliEMCALPIDv1("EMCAL.RecData.root") ; 
-//   else 
-//     pp = new AliEMCALPIDv1(fileName) ; 
-  
-//   pp->ExecuteTask("deb") ; 
-  
-//   delete tmp; 
-//   delete pp ; 
-// }
-
-//________________________________________________________________________
-void EMCALHits2Digits (Bool_t split=kFALSE, TString fileName = "galice.root") {
-  // usage : 
-  // 1. write (S)Digits in the same file as Hits --------------- (OK)
-  //root [0] .L Reconstruct.C++
-  //root [1] Hits2Digits()
-  // 2. write (S)Digits in a separate file, one per detector, from Hits --------------- (OK)
-  //root [0] .L Reconstruct.C++
-  //root [1] Hits2Digits(kTRUE) // SDigits saved in [DET}.SDigits.root (DET=EMCAL, EMCAL)
-                                // Digits  saved in [DET}.Digits.root  (DET=EMCAL, EMCAL)
-
-  delete gAlice ; 
-  gAlice = 0 ; 
-  
-  //EMCAL
-  AliEMCALSDigitizer * sdp = new AliEMCALSDigitizer(fileName) ; 
-  if (split) 
-    sdp->SetSplitFile() ;
-  sdp->ExecuteTask("deb") ; 
-
-  if (split) 
-    delete sdp ; 
-
-  AliEMCALDigitizer * dp = 0 ; 
-  if (split) {
-    dp = new AliEMCALDigitizer("EMCAL.SDigits.root") ; 
-    dp->SetSplitFile() ; } 
-  else 
-    dp = new AliEMCALDigitizer(fileName) ; 
-  
-  dp->ExecuteTask("deb") ; 
-
-  if (split) 
-    delete dp ; 
-
-  if (!split) { 
-    delete sdp ; 
-    delete dp ; 
-  }
-}
-
diff --git a/EMCAL/AliEMCALReconstructionTest.C b/EMCAL/AliEMCALReconstructionTest.C
deleted file mode 100644 (file)
index 373fb50..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-#if !defined(__CINT__) || defined(__MAKECINT__)
-#include <iostream>
-
-#include "TString.h"
-
-#include "EMCAL/AliEMCALReconstructioner.h"
-#endif
-
-void Go(TString deb = ""){
-  AliEMCALReconstructioner * a ;   
-
-  cout << "AliEMCAL:> Single File default reconstruction started" << endl ;
-  a = new AliEMCALReconstructioner("galice.root") ;  //first -single file default reconstruction
-  a->ExecuteTask(deb.Data()) ;
-  cout << "AliEMCAL:> Single File default reconstruction finished" << endl ;
-  // delete a ; 
-
-  cout << "AliEMCAL:> Single File branch TEST reconstruction started" << endl ;
-  a = new AliEMCALReconstructioner("galice.root","test") ;  //another branch single file recontruction
-  a->ExecuteTask(deb.Data()) ;
-  cout << "AliEMCAL:> Single File branch TEST reconstruction ended" << endl ;
-  //delete a ; 
-  
-  cout << "AliEMCAL:> Split File default reconstruction started" << endl ;
-  a = new AliEMCALReconstructioner("galice.root","Default",kTRUE) ; //Split file default reconstruction
-  a->ExecuteTask(deb.Data()) ;
-  cout << "AliEMCAL:> Split File default reconstruction ended" << endl ;
-  //delete a ; 
-
-  cout << "--------AliEMCAL:> Reconstruction OK------------------"<< endl ;
-}
diff --git a/EMCAL/Config.C b/EMCAL/Config.C
deleted file mode 100644 (file)
index 89e0853..0000000
+++ /dev/null
@@ -1,1002 +0,0 @@
-enum PprRun_t 
-{
-    kTest50,
-    kParam_8000,   kParam_4000,  kParam_2000, 
-    kHijing_cent1, kHijing_cent2, 
-    kHijing_per1,  kHijing_per2, kHijing_per3, kHijing_per4,  kHijing_per5,
-    kHijing_jj25,  kHijing_jj50, kHijing_jj75, kHijing_jj100, kHijing_jj125, 
-    kHijing_gj25,  kHijing_gj50, kHijing_gj75, kHijing_gj100, kHijing_gj125, 
-    kJetPlusBg,    kGammaPlusBg, 
-    kParam_8000_Ecal, kParam_4000_Ecal, 
-    kJets_50,       kJets_75,      kJets_100,      kJets_200,
-    kGammaJets_50,  kGammaJets_75, kGammaJets_100, kGammaJets_200,
-    kGammaJets_250, kGammaJets_300,
-    kGammaGun, kGammaBox
-};
-
-enum PprGeo_t 
-{
-    kHoles, kNoHoles
-};
-
-enum PprRad_t
-{
-    kGluonRadiation, kNoGluonRadiation
-};
-
-// This part for configuration    
-static PprRun_t run          = kHijing_jj75;
-//static PprRun_t run = kJets_100;
-static PprGeo_t geo          = kHoles;
-static PprRad_t rad          = kGluonRadiation;
-static Int_t    eventsPerRun = 100;
-static Int_t    simpleJet    = 1;
-if (rad == kGluonRadiation) 
-{
-    simpleJet = 0;
-}
-
-
-// Comment line 
-static TString  comment;
-
-void Config()
-{
-
-    // 7-DEC-2000 09:00
-    // Switch on Transition adiation simulation. 6/12/00 18:00
-    // iZDC=1  7/12/00 09:00
-    // ThetaRange is (0., 180.). It was (0.28,179.72) 7/12/00 09:00
-    // Theta range given through pseudorapidity limits 22/6/2001
-
-    // Set Random Number seed
-    // gRandom->SetSeed(12345);
-
-    new AliGeant3("C++ Interface to Geant3");
-
-    if (!gSystem->Getenv("CONFIG_FILE"))
-    {
-        TFile  *rootfile = new TFile("galice.root", "recreate");
-
-        rootfile->SetCompressionLevel(2);
-    }
-
-    TGeant3 *geant3 = (TGeant3 *) gMC;
-
-    //
-    // Set External decayer
-    AliDecayer *decayer = new AliDecayerPythia();
-
-    decayer->SetForceDecay(kAll);
-    decayer->Init();
-    gMC->SetExternalDecayer(decayer);
-    //
-    //
-    //=======================================================================
-    // ******* GEANT STEERING parameters FOR ALICE SIMULATION *******
-    geant3->SetTRIG(1);         //Number of events to be processed 
-    geant3->SetSWIT(4, 10);
-    geant3->SetDEBU(0, 0, 1);
-    geant3->SetDCAY(1);
-    geant3->SetPAIR(1);
-    geant3->SetCOMP(1);
-    geant3->SetPHOT(1);
-    geant3->SetPFIS(0);
-    geant3->SetDRAY(0);
-    geant3->SetANNI(1);
-    geant3->SetBREM(1);
-    geant3->SetMUNU(1);
-    geant3->SetCKOV(1);
-    geant3->SetHADR(1);         //Select pure GEANH (HADR 1) or GEANH/NUCRIN (HADR 3)
-    geant3->SetLOSS(2);
-    geant3->SetMULS(1);
-    geant3->SetRAYL(1);
-    geant3->SetAUTO(1);         //Select automatic STMIN etc... calc. (AUTO 1) or manual (AUTO 0)
-    geant3->SetABAN(0);         //Restore 3.16 behaviour for abandoned tracks
-    geant3->SetOPTI(2);         //Select optimisation level for GEANT geometry searches (0,1,2)
-    geant3->SetERAN(5.e-7);
-
-    Float_t cut    = 1.e-3;        // 1MeV cut by default
-    Float_t tofmax = 1.e10;
-
-    //             GAM ELEC NHAD CHAD MUON EBREM MUHAB EDEL MUDEL MUPA TOFMAX
-    geant3->SetCUTS(cut, cut, cut, cut, cut, cut, cut, cut, cut, cut, tofmax);
-    gAlice->TrackingLimits(900, 900);
-    
-    //
-    //=======================================================================
-    // ************* STEERING parameters FOR ALICE SIMULATION **************
-    // --- Specify event type to be tracked through the ALICE setup
-    // --- All positions are in cm, angles in degrees, and P and E in GeV
-
-
-// Generator Configuration
-    gAlice->SetDebug(1);
-
-    AliGenerator*  gener = GeneratorFactory(run);
-    gener->SetPtRange(0.,1.e10);
-    gener->Init();
-    gener->SetTrackingFlag(1);
-    
-
-
-    if (rad == kGluonRadiation)
-    {
-       //coment= comment.Append(" | Gluon Radiation On");
-       
-    } else {
-       //coment= comment.Append(" | Gluon Radiation Off");
-    }
-
-    if (geo == kHoles)
-    {
-       //coment= comment.Append(" | Holes for PHOS/RICH");
-       
-    } else {
-       //coment= comment.Append(" | No holes for PHOS/RICH");
-    }
-
-    printf("\n \n Comment: %s \n \n", (char*) comment);
-    
-    
-// Field (L3 0.4 T)
-
-    AliMagFCM* field = new AliMagFCM(
-       "Map2","$(ALICE_ROOT)/data/field01.dat", 2, 1., 10.);
-    field->SetSolenoidField(4.);
-    gAlice->SetField(field);    
-
-    Int_t iMAG    = 1;
-    Int_t iITS    = 1;
-    Int_t iTPC    = 1;
-    Int_t iTOF    = 1;
-    Int_t iRICH   = 0;
-    Int_t iZDC    = 0;
-    Int_t iCASTOR = 0;
-    Int_t iTRD    = 1;
-    Int_t iABSO   = 1;
-    Int_t iDIPO   = 0;
-    Int_t iHALL   = 1;
-    Int_t iFRAME  = 1;
-    Int_t iSHIL   = 0;
-    Int_t iPIPE   = 1;
-    Int_t iFMD    = 1;
-    Int_t iMUON   = 0;
-    Int_t iPHOS   = 1;
-    Int_t iPMD    = 1;
-    Int_t iSTART  = 1;
-    Int_t iVZERO  = 1;
-    Int_t iEMCAL  = 1;    
-// 
-//  enable/disable StepManager()
-//
-
-    Int_t   enableABSO   = 0;
-    Int_t   enableCASTOR = 0;
-    Int_t   enableDIPO   = 0;
-    Int_t   enableFMD    = 0;
-    Int_t   enableFRAME  = 0;
-    Int_t   enableHALL   = 0;
-    Int_t   enableITS    = 0;
-    Int_t   enableMAG    = 0;
-    Int_t   enableMUON   = 0;
-    Int_t   enablePHOS   = 1;
-    Int_t   enablePIPE   = 0;
-    Int_t   enablePMD    = 0;
-    Int_t   enableRICH   = 0;
-    Int_t   enableSHIL   = 0;
-    Int_t   enableSTART  = 0;
-    Int_t   enableTOF    = 0;
-    Int_t   enableTPC    = 0;
-    Int_t   enableTRD    = 0;
-    Int_t   enableZDC    = 0;
-    Int_t   enableEMCAL  = 1;
-
-    //=================== Alice BODY parameters =============================
-    AliBODY *BODY = new AliBODY("BODY", "Alice envelop");
-
-
-    if (iMAG)
-    {
-        //=================== MAG parameters ============================
-        // --- Start with Magnet since detector layouts may be depending ---
-        // --- on the selected Magnet dimensions ---
-        AliMAG *MAG = new AliMAG("MAG", "Magnet");
-    }
-
-
-    if (iABSO)
-    {
-        //=================== ABSO parameters ============================
-        AliABSO *ABSO = new AliABSOv0("ABSO", "Muon Absorber");
-    }
-
-    if (iDIPO)
-    {
-        //=================== DIPO parameters ============================
-
-        AliDIPO *DIPO = new AliDIPOv2("DIPO", "Dipole version 2");
-    }
-
-    if (iHALL)
-    {
-        //=================== HALL parameters ============================
-
-        AliHALL *HALL = new AliHALL("HALL", "Alice Hall");
-    }
-
-
-    if (iFRAME)
-    {
-        //=================== FRAME parameters ============================
-
-        AliFRAMEv2 *FRAME = new AliFRAMEv2("FRAME", "Space Frame");
-       if (geo == kHoles) {
-           FRAME->SetHoles(1);
-       } else {
-           FRAME->SetHoles(0);
-       }
-    }
-
-    if (iSHIL)
-    {
-        //=================== SHIL parameters ============================
-
-        AliSHIL *SHIL = new AliSHILv0("SHIL", "Shielding");
-    }
-
-
-    if (iPIPE)
-    {
-        //=================== PIPE parameters ============================
-
-        AliPIPE *PIPE = new AliPIPEv0("PIPE", "Beam Pipe");
-    }
-  if(iITS) {
-
-//=================== ITS parameters ============================
-    //
-    // As the innermost detector in ALICE, the Inner Tracking System "impacts" on
-    // almost all other detectors. This involves the fact that the ITS geometry
-    // still has several options to be followed in parallel in order to determine
-    // the best set-up which minimizes the induced background. All the geometries
-    // available to date are described in the following. Read carefully the comments
-    // and use the default version (the only one uncommented) unless you are making
-    // comparisons and you know what you are doing. In this case just uncomment the
-    // ITS geometry you want to use and run Aliroot.
-    //
-    // Detailed geometries:         
-    //
-    //
-    //AliITS *ITS  = new AliITSv5symm("ITS","Updated ITS TDR detailed version with symmetric services");
-    //
-    //AliITS *ITS  = new AliITSv5asymm("ITS","Updates ITS TDR detailed version with asymmetric services");
-    //
-    AliITSvPPRasymm *ITS  = new AliITSvPPRasymm("ITS","New ITS PPR detailed version with asymmetric services");
-    ITS->SetMinorVersion(2);                                    // don't touch this parameter if you're not an ITS developer
-    ITS->SetReadDet(kFALSE);                                    // don't touch this parameter if you're not an ITS developer
-    //    ITS->SetWriteDet("$ALICE_ROOT/ITS/ITSgeometry_vPPRasymm2.det");  // don't touch this parameter if you're not an ITS developer
-    ITS->SetThicknessDet1(200.);   // detector thickness on layer 1 must be in the range [100,300]
-    ITS->SetThicknessDet2(200.);   // detector thickness on layer 2 must be in the range [100,300]
-    ITS->SetThicknessChip1(200.);  // chip thickness on layer 1 must be in the range [150,300]
-    ITS->SetThicknessChip2(200.);  // chip thickness on layer 2 must be in the range [150,300]
-    ITS->SetRails(1);       // 1 --> rails in ; 0 --> rails out
-    ITS->SetCoolingFluid(1);   // 1 --> water ; 0 --> freon
-    //
-    //AliITSvPPRsymm *ITS  = new AliITSvPPRsymm("ITS","New ITS PPR detailed version with symmetric services");
-    //ITS->SetMinorVersion(2);                                       // don't touch this parameter if you're not an ITS developer
-    //ITS->SetReadDet(kFALSE);                                       // don't touch this parameter if you're not an ITS developer
-    //ITS->SetWriteDet("$ALICE_ROOT/ITS/ITSgeometry_vPPRsymm2.det"); // don't touch this parameter if you're not an ITS developer
-    //ITS->SetThicknessDet1(200.);   // detector thickness on layer 1 must be in the range [100,300]
-    //ITS->SetThicknessDet2(200.);   // detector thickness on layer 2 must be in the range [100,300]
-    //ITS->SetThicknessChip1(200.);  // chip thickness on layer 1 must be in the range [150,300]
-    //ITS->SetThicknessChip2(200.);  // chip thickness on layer 2 must be in the range [150,300]
-    //ITS->SetRails(1);              // 1 --> rails in ; 0 --> rails out
-    //ITS->SetCoolingFluid(1);       // 1 --> water ; 0 --> freon
-    //
-    //
-    // Coarse geometries (warning: no hits are produced with these coarse geometries and they unuseful 
-    // for reconstruction !):
-    //                                                     
-    //
-    //AliITSvPPRcoarseasymm *ITS  = new AliITSvPPRcoarseasymm("ITS","New ITS PPR coarse version with asymmetric services");
-    //ITS->SetRails(1);                // 1 --> rails in ; 0 --> rails out
-    //ITS->SetSupportMaterial(0);      // 0 --> Copper ; 1 --> Aluminum ; 2 --> Carbon
-    //
-    //AliITS *ITS  = new AliITSvPPRcoarsesymm("ITS","New ITS PPR coarse version with symmetric services");
-    //ITS->SetRails(1);                // 1 --> rails in ; 0 --> rails out
-    //ITS->SetSupportMaterial(0);      // 0 --> Copper ; 1 --> Aluminum ; 2 --> Carbon
-    //                      
-    //
-    //
-    // Geant3 <-> EUCLID conversion
-    // ============================
-    //
-    // SetEUCLID is a flag to output (=1) or not to output (=0) both geometry and
-    // media to two ASCII files (called by default ITSgeometry.euc and
-    // ITSgeometry.tme) in a format understandable to the CAD system EUCLID.
-    // The default (=0) means that you dont want to use this facility.
-    //
-    ITS->SetEUCLID(0);  
-    if (!enableITS) ITS->DisableStepManager();
-  }
-  
-
-    if (iTPC)
-    {
-        //============================ TPC parameters ================================
-        // --- This allows the user to specify sectors for the SLOW (TPC geometry 2)
-        // --- Simulator. SecAL (SecAU) <0 means that ALL lower (upper)
-        // --- sectors are specified, any value other than that requires at least one 
-        // --- sector (lower or upper)to be specified!
-        // --- Reminder: sectors 1-24 are lower sectors (1-12 -> z>0, 13-24 -> z<0)
-        // ---           sectors 25-72 are the upper ones (25-48 -> z>0, 49-72 -> z<0)
-        // --- SecLows - number of lower sectors specified (up to 6)
-        // --- SecUps - number of upper sectors specified (up to 12)
-        // --- Sens - sensitive strips for the Slow Simulator !!!
-        // --- This does NOT work if all S or L-sectors are specified, i.e.
-        // --- if SecAL or SecAU < 0
-        //
-        //
-        //-----------------------------------------------------------------------------
-
-        //  gROOT->LoadMacro("SetTPCParam.C");
-        //  AliTPCParam *param = SetTPCParam();
-        AliTPC *TPC = new AliTPCv2("TPC", "Default");
-
-        // All sectors included 
-        TPC->SetSecAL(-1);
-        TPC->SetSecAU(-1);
-       if (!enableTPC) TPC->DisableStepManager();
-    }
-
-
-    if (iRICH)
-    {
-        //=================== RICH parameters ===========================
-        AliRICH *RICH = new AliRICHv1("RICH", "normal RICH");
-       if (!enableRICH) RICH->DisableStepManager();
-    }
-
-
-    if (iZDC)
-    {
-        //=================== ZDC parameters ============================
-
-        AliZDC *ZDC = new AliZDCv2("ZDC", "normal ZDC");
-       if (!enableZDC) ZDC->DisableStepManager();
-    }
-
-    if (iCASTOR)
-    {
-        //=================== CASTOR parameters ============================
-
-        AliCASTOR *CASTOR = new AliCASTORv1("CASTOR", "normal CASTOR");
-       if (!enableCASTOR) CASTOR->DisableStepManager();
-    }
-
-    if (iTRD)
-    {
-        //=================== TRD parameters ============================
-
-        AliTRD *TRD = new AliTRDv1("TRD", "TRD slow simulator");
-
-        // Select the gas mixture (0: 97% Xe + 3% isobutane, 1: 90% Xe + 10% CO2)
-        TRD->SetGasMix(1);
-       if (geo == kHoles) {
-           // With hole in front of PHOS
-           TRD->SetPHOShole();
-           // With hole in front of RICH
-           TRD->SetRICHhole();
-       }
-           // Switch on TR
-           AliTRDsim *TRDsim = TRD->CreateTR();
-           if (!enableTRD) TRD->DisableStepManager();
-    }
-
-    if (iFMD)
-    {
-        //=================== FMD parameters ============================
-
-        AliFMD *FMD = new AliFMDv1("FMD", "normal FMD");
-        FMD->SetRingsSi1(256);
-        FMD->SetRingsSi2(64);
-        FMD->SetSectorsSi1(20);
-        FMD->SetSectorsSi2(24);
-       if (!enableFMD) FMD->DisableStepManager();
-   }
-
-    if (iMUON)
-    {
-        //=================== MUON parameters ===========================
-
-        AliMUON *MUON = new AliMUONv1("MUON", "default");
-       if (!enableMUON) MUON->DisableStepManager();
-    }
-    //=================== PHOS parameters ===========================
-
-    if (iPHOS)
-    {
-        AliPHOS *PHOS = new AliPHOSv1("PHOS", "IHEP");
-       if (!enablePHOS) PHOS->DisableStepManager();
-    }
-
-
-    if (iPMD)
-    {
-        //=================== PMD parameters ============================
-        AliPMD *PMD = new AliPMDv1("PMD", "normal PMD");
-        PMD->SetPAR(1., 1., 0.8, 0.02);
-        PMD->SetIN(6., 18., -580., 27., 27.);
-        PMD->SetGEO(0.0, 0.2, 4.);
-        PMD->SetPadSize(0.8, 1.0, 1.0, 1.5);
-       if (!enablePMD) PMD->DisableStepManager();
-    }
-
-    if (iTOF) {
-       if (geo == kHoles) {
-        //=================== TOF parameters ============================
-           AliTOF *TOF = new AliTOFv2FHoles("TOF", "TOF with Holes");
-       } else {
-           AliTOF *TOF = new AliTOFv4("TOF", "normal TOF");
-       }
-       if (!enableTOF) TOF->DisableStepManager();
-    }
-
-    if (iSTART)
-    {
-        //=================== START parameters ============================
-        AliSTART *START = new AliSTARTv1("START", "START Detector");
-       if (!enableSTART) START->DisableStepManager();
-    }
-
-    if (iEMCAL && !iRICH)
-    {
-        //=================== EMCAL parameters ============================
-        AliEMCAL *EMCAL = new AliEMCALv1("EMCAL", "EMCALArch1b");
-       if (!enableEMCAL) EMCAL->DisableStepManager();
-    }
-}
-
-Float_t EtaToTheta(Float_t arg){
-  return (180./TMath::Pi())*2.*atan(exp(-arg));
-}
-
-
-
-AliGenerator* GeneratorFactory(PprRun_t run) {
-    Int_t isw = 3;
-    if (rad == kNoGluonRadiation) isw = 0;
-    
-
-    switch (run) {
-    case kGammaGun:
-       gener = new AliGenFixed(1);
-       gener->SetMomentum(100.);
-       gener->SetPhi(240.);
-       gener->SetTheta(91.);
-       gener->SetPart(kGamma);
-     break;
-
-    case kGammaBox:
-       gener = new AliGenBox(100);
-       gener->SetMomentumRange(100., 100.1);
-       gener->SetPhiRange(0,360);
-       gener->SetThetaRange(45., 135.);
-       gener->SetPart(kGamma);
-       break;
-       
-    case kTest50:
-       //coment= comment.Append(":HIJINGparam test 50 particles");
-       gener = new AliGenHIJINGparaBa(50);
-       gener->SetMomentumRange(0, 999999.);
-       gener->SetPhiRange(-180., 180.);
-       // Set pseudorapidity range from -8 to 8.
-       Float_t thmin = EtaToTheta(8);   // theta min. <---> eta max
-       Float_t thmax = EtaToTheta(-8);  // theta max. <---> eta min 
-       gener->SetThetaRange(thmin,thmax);
-       break;
-
-    case kParam_8000:
-       //coment= comment.Append(":HIJINGparam N=8000");
-       AliGenHIJINGpara *gener = new AliGenHIJINGpara(86030);
-       gener->SetMomentumRange(0, 999999.);
-       gener->SetPhiRange(-180., 180.);
-       // Set pseudorapidity range from -8 to 8.
-       Float_t thmin = EtaToTheta(8);   // theta min. <---> eta max
-       Float_t thmax = EtaToTheta(-8);  // theta max. <---> eta min 
-       gener->SetThetaRange(thmin,thmax);
-       break;
-    case kParam_4000:
-       //coment= comment.Append("HIJINGparam N=4000");
-       AliGenHIJINGpara *gener = new AliGenHIJINGpara(43015);
-       gener->SetMomentumRange(0, 999999.);
-       gener->SetPhiRange(-180., 180.);
-       // Set pseudorapidity range from -8 to 8.
-       Float_t thmin = EtaToTheta(8);   // theta min. <---> eta max
-       Float_t thmax = EtaToTheta(-8);  // theta max. <---> eta min 
-       gener->SetThetaRange(thmin,thmax);
-       break;
-    case kParam_2000:
-       //coment= comment.Append("HIJINGparam N=2000");
-       AliGenHIJINGpara *gener = new AliGenHIJINGpara(21507);
-       gener->SetMomentumRange(0, 999999.);
-       gener->SetPhiRange(-180., 180.);
-       // Set pseudorapidity range from -8 to 8.
-       Float_t thmin = EtaToTheta(8);   // theta min. <---> eta max
-       Float_t thmax = EtaToTheta(-8);  // theta max. <---> eta min 
-       gener->SetThetaRange(thmin,thmax);
-       break;
-
-    case kParam_8000_Ecal:
-       //coment= comment.Append(":HIJINGparam N=8000 baryons");
-       AliGenHIJINGparaBa *gener = new AliGenHIJINGparaBa(82534);
-       gener->SetMomentumRange(0, 999999.);
-       gener->SetPhiRange(-180., 180.);
-       // Set pseudorapidity range from -8 to 8.
-       Float_t thmin = EtaToTheta( 5);   // theta min. <---> eta max
-       Float_t thmax = EtaToTheta(-5);  // theta max. <---> eta min 
-       gener->SetThetaRange(thmin,thmax);
-       break;
-
-    case kParam_4000_Ecal:
-       //coment= comment.Append(":HIJINGparam N=8000 baryons");
-       AliGenHIJINGparaBa *gener = new AliGenHIJINGparaBa(82534/2.);
-       gener->SetMomentumRange(0, 999999.);
-       gener->SetPhiRange(-180., 180.);
-       // Set pseudorapidity range from -8 to 8.
-       Float_t thmin = EtaToTheta( 5);   // theta min. <---> eta max
-       Float_t thmax = EtaToTheta(-5);  // theta max. <---> eta min 
-       gener->SetThetaRange(thmin,thmax);
-       break;
-//
-//  Hijing Central
-//
-    case kHijing_cent1:
-       //coment= comment.Append("HIJING cent1");
-       AliGenHijing *gener = HijingStandard();
-// impact parameter range
-       gener->SetImpactParameterRange(0., 5.);
-       break;
-    case kHijing_cent2:
-       //coment= comment.Append("HIJING cent2");
-       AliGenHijing *gener = HijingStandard();
-// impact parameter range
-       gener->SetImpactParameterRange(0., 2.);
-       break;
-//
-// Hijing Peripheral 
-//
-    case kHijing_per1:
-       //coment= comment.Append("HIJING per1");
-       AliGenHijing *gener = HijingStandard();
-// impact parameter range
-       gener->SetImpactParameterRange(5., 8.6);
-       break;
-    case kHijing_per2:
-       //coment= comment.Append("HIJING per2");
-       AliGenHijing *gener = HijingStandard();
-// impact parameter range
-       gener->SetImpactParameterRange(8.6, 11.2);
-       break;
-    case kHijing_per3:
-       //coment= comment.Append("HIJING per3");
-       AliGenHijing *gener = HijingStandard();
-// impact parameter range
-       gener->SetImpactParameterRange(11.2, 13.2);
-       break;
-    case kHijing_per4:
-       //coment= comment.Append("HIJING per4");
-       AliGenHijing *gener = HijingStandard();
-// impact parameter range
-       gener->SetImpactParameterRange(13.2, 15.);
-       break;
-    case kHijing_per5:
-       //coment= comment.Append("HIJING per5");
-       AliGenHijing *gener = HijingStandard();
-// impact parameter range
-       gener->SetImpactParameterRange(15., 100.);
-       break;
-//
-//  Jet-Jet
-//
-    case kHijing_jj25:
-       //coment= comment.Append("HIJING Jet 25 GeV");
-       AliGenHijing *gener = HijingStandard();
-// impact parameter range
-       gener->SetImpactParameterRange(0., 5.);
-       // trigger
-       gener->SetTrigger(1);
-       gener->SetPtJet(25.);
-       gener->SetSimpleJets(simpleJet);
-       gener->SetRadiation(isw);
-       gener->SetJetEtaRange(-0.3,0.3);
-       gener->SetJetPhiRange(15.,105.);   
-       break;
-
-    case kHijing_jj50:
-       //coment= comment.Append("HIJING Jet 50 GeV");
-       AliGenHijing *gener = HijingStandard();
-// impact parameter range
-       gener->SetImpactParameterRange(0., 5.);
-       // trigger
-       gener->SetTrigger(1);
-       gener->SetPtJet(50.);
-       gener->SetSimpleJets(simpleJet);
-       gener->SetRadiation(isw);
-       gener->SetJetEtaRange(-0.3,0.3);
-       gener->SetJetPhiRange(15.,105.);   
-       break;
-
-    case kHijing_jj75:
-       //coment= comment.Append("HIJING Jet 75 GeV");
-       AliGenHijing *gener = HijingStandard();
-// impact parameter range
-       gener->SetImpactParameterRange(0., 5.);
-       // trigger
-       gener->SetTrigger(1);
-       gener->SetPtJet(75.);
-       gener->SetSimpleJets(simpleJet);
-       gener->SetRadiation(isw);
-       gener->SetJetEtaRange(-0.3,0.3);
-       gener->SetJetPhiRange(15.,105.);   
-       break;
-
-    case kHijing_jj100:
-       //coment= comment.Append("HIJING Jet 100 GeV");
-       AliGenHijing *gener = HijingStandard();
-// impact parameter range
-       gener->SetImpactParameterRange(0., 5.);
-       // trigger
-       gener->SetTrigger(1);
-       gener->SetPtJet(100.);
-       gener->SetSimpleJets(simpleJet);
-       gener->SetRadiation(isw);
-       gener->SetJetEtaRange(-0.3,0.3);
-       gener->SetJetPhiRange(15.,105.);   
-       break;
-
-    case kHijing_jj125:
-       //coment= comment.Append("HIJING Jet 125 GeV");
-       AliGenHijing *gener = HijingStandard();
-// impact parameter range
-       gener->SetImpactParameterRange(0., 5.);
-       // trigger
-       gener->SetTrigger(1);
-       gener->SetPtJet(125.);
-       gener->SetSimpleJets(simpleJet);
-       gener->SetRadiation(isw);
-       gener->SetJetEtaRange(-0.3,0.3);
-       gener->SetJetPhiRange(15.,105.);   
-       break;
-//
-// Gamma-Jet
-//
-    case kHijing_gj25:
-       //coment= comment.Append("HIJING Gamma 25 GeV");
-       AliGenHijing *gener = HijingStandard();
-// impact parameter range
-       gener->SetImpactParameterRange(0., 5.);
-       // trigger
-       gener->SetTrigger(2);
-       gener->SetPtJet(25.);
-       gener->SetSimpleJets(simpleJet);
-       gener->SetRadiation(isw);
-       gener->SetJetEtaRange(-0.3,0.3);
-       gener->SetJetPhiRange(15.,105.);   
-       break;
-
-    case kHijing_gj50:
-       //coment= comment.Append("HIJING Gamma 50 GeV");
-       AliGenHijing *gener = HijingStandard();
-// impact parameter range
-       gener->SetImpactParameterRange(0., 5.);
-       // trigger
-       gener->SetTrigger(2);
-       gener->SetPtJet(50.);
-       gener->SetSimpleJets(simpleJet);
-       gener->SetRadiation(isw);
-       gener->SetJetEtaRange(-0.3,0.3);
-       gener->SetJetPhiRange(15.,105.);   
-       break;
-
-    case kHijing_gj75:
-       //coment= comment.Append("HIJING Gamma 75 GeV");
-       AliGenHijing *gener = HijingStandard();
-// impact parameter range
-       gener->SetImpactParameterRange(0., 5.);
-       // trigger
-       gener->SetTrigger(2);
-       gener->SetPtJet(75.);
-       gener->SetSimpleJets(simpleJet);
-       gener->SetRadiation(isw);
-       gener->SetJetEtaRange(-0.3,0.3);
-       gener->SetJetPhiRange(15.,105.);   
-       break;
-
-    case kHijing_gj100:
-       //coment= comment.Append("HIJING Gamma 100 GeV");
-       AliGenHijing *gener = HijingStandard();
-// impact parameter range
-       gener->SetImpactParameterRange(0., 5.);
-       // trigger
-       gener->SetTrigger(2);
-       gener->SetPtJet(100.);
-       gener->SetSimpleJets(simpleJet);
-       gener->SetRadiation(isw);
-       gener->SetJetEtaRange(-0.3,0.3);
-       gener->SetJetPhiRange(15.,105.);   
-       break;
-
-    case kHijing_gj125:
-       //coment= comment.Append("HIJING Gamma 125 GeV");
-       AliGenHijing *gener = HijingStandard();
-// impact parameter range
-       gener->SetImpactParameterRange(0., 5.);
-       // trigger
-       gener->SetTrigger(2);
-       gener->SetPtJet(125.);
-       gener->SetSimpleJets(simpleJet);
-       gener->SetRadiation(isw);
-       gener->SetJetEtaRange(-0.3,0.3);
-       gener->SetJetPhiRange(15.,105.);   
-       break;
-    case kJetPlusBg:
-       AliGenCocktail *gener = new AliGenCocktail();
-       gener->SetMomentumRange(0, 999999.);
-       gener->SetPhiRange(-180., 180.);
-       // Set pseudorapidity range from -8 to 8.
-       Float_t thmin = EtaToTheta( 5.);   // theta min. <---> eta max
-       Float_t thmax = EtaToTheta(-5.);  // theta max. <---> eta min 
-       gener->SetThetaRange(thmin,thmax);
-
-//
-//      Underlying Event
-//
-//     AliGenHIJINGparaBa *bg = new AliGenHIJINGparaBa(82534);
-       AliGenHIJINGparaBa *bg = new AliGenHIJINGparaBa(10);
-//
-//      Jets from Pythia
-//
-       AliGenPythia *jets = new AliGenPythia(-1);
-//   Centre of mass energy 
-       jets->SetEnergyCMS(5500.);
-//   Process type
-       jets->SetProcess(kPyJets);
-//   final state kinematic cuts
-       jets->SetJetEtaRange(-0.3, 0.3);
-       jets->SetJetPhiRange(15., 105.);
-//   Structure function
-       jets->SetStrucFunc(kGRV_LO_98);
-//   
-//   Pt transfer of the hard scattering
-       jets->SetPtHard(100.,100.1);
-//   Decay type (semielectronic, semimuonic, nodecay)
-       jets->SetForceDecay(kAll);
-//
-//      Add all to cockail ...    
-//
-       gener->AddGenerator(jets,"Jets",1);
-       gener->AddGenerator(bg,"Underlying Event", 1);
-
-     break;    
-    case kGammaPlusBg:
-       AliGenCocktail *gener = new AliGenCocktail();
-       gener->SetMomentumRange(0, 999999.);
-       gener->SetPhiRange(-180., 180.);
-       // Set pseudorapidity range from -8 to 8.
-       Float_t thmin = EtaToTheta( 5.);   // theta min. <---> eta max
-       Float_t thmax = EtaToTheta(-5.);  // theta max. <---> eta min 
-       gener->SetThetaRange(thmin,thmax);
-
-//
-//      Underlying Event
-//
-       AliGenHIJINGparaBa *bg = new AliGenHIJINGparaBa(82534);
-//
-//      Jets from Pythia
-//
-       AliGenPythia *jets = new AliGenPythia(-1);
-//   Centre of mass energy 
-       jets->SetEnergyCMS(5500.);
-//   Process type
-       jets->SetProcess(kPyDirectGamma);
-//   final state kinematic cuts
-       jets->SetJetEtaRange(-0.3, 0.3);
-       jets->SetJetPhiRange(15., 105.);
-       jets->SetGammaEtaRange(-0.12, 0.12);
-       jets->SetGammaPhiRange(220., 320.);
-//   Structure function
-       jets->SetStrucFunc(kGRV_LO_98);
-//   
-//   Pt transfer of the hard scattering
-       jets->SetPtHard(100.,100.1);
-//   Decay type (semielectronic, semimuonic, nodecay)
-       jets->SetForceDecay(kAll);
-//
-//      Add all to cockail ...    
-//
-       gener->AddGenerator(jets,"Jets",1);
-       gener->AddGenerator(bg,"Underlying Event", 1);
-
-       break;
-    case kJets_50:
-//  50 GeV Jets
-        AliGenPythia *gener = PythiaJets(50.);
-        break; 
-    case kJets_75:
-//  75 GeV Jets
-        AliGenPythia *gener = PythiaJets(75.);
-        break; 
-    case kJets_100:
-//  100 GeV Jets  
-       AliGenPythia *gener = PythiaJets(100.);
-       break; 
-    case kJets_200:
-//  200 GeV Jets
-        AliGenPythia *gener = PythiaJets(200.);
-        break;
-    case kGammaJets_50:
-//  50 GeV Jets + Gamma
-        AliGenPythia *gener = PythiaJets(-1);
-        gener->SetEnergyCMS(5500.);
-        gener->SetProcess(kPyDirectGamma);
-        gener->SetJetEtaRange(-0.3,+0.3);
-        gener->SetJetPhiRange(15.,105.);
-        gener->SetGammaEtaRange(-0.12, 0.12);
-        gener->SetGammaPhiRange(220., 320.);
-        gener->SetStrucFunc(kGRV_LO_98);
-        gener->SetPtHard(50.,50.001);
-        gener->SetForceDecay(kAll);
-        break;
-    case kGammaJets_75:
-//  75 GeV Jets + Gamma 
-        AliGenPythia *gener = PythiaJets(-1);
-        gener->SetEnergyCMS(5500.);
-        gener->SetProcess(kPyDirectGamma);
-        gener->SetJetEtaRange(-0.3,+0.3);
-        gener->SetJetPhiRange(15.,105.);
-        gener->SetGammaEtaRange(-0.12, 0.12);
-        gener->SetGammaPhiRange(220., 320.);
-        gener->SetStrucFunc(kGRV_LO_98);
-        gener->SetPtHard(75.,75.001);
-        gener->SetForceDecay(kAll);
-        break; 
-    case kGammaJets_100:
-// 100 GeV Jets + Gamma
-        AliGenPythia *gener = PythiaJets(-1);
-        gener->SetEnergyCMS(5500.);
-        gener->SetProcess(kPyDirectGamma);
-        gener->SetJetEtaRange(-0.3,+0.3);
-        gener->SetJetPhiRange(15.,105.);
-        gener->SetGammaEtaRange(-0.12, 0.12);
-        gener->SetGammaPhiRange(220., 320.);
-        gener->SetStrucFunc(kGRV_LO_98);
-        gener->SetPtHard(100.,100.001);
-        gener->SetForceDecay(kAll);
-        break; 
-    case kGammaJets_200:
-//  200 GeV Jets + Gamma
-        AliGenPythia *gener = PythiaJets(-1);
-        gener->SetEnergyCMS(5500.);
-        gener->SetProcess(kPyDirectGamma);
-        gener->SetJetEtaRange(-0.3,+0.3);
-        gener->SetJetPhiRange(15.,105.);
-        gener->SetGammaEtaRange(-0.12, 0.12);
-        gener->SetGammaPhiRange(220., 320.);
-        gener->SetStrucFunc(kGRV_LO_98);
-        gener->SetPtHard(200.,200.001);
-        gener->SetForceDecay(kAll);
-        break; 
-    case kGammaJets_250:
-//  250 GeV Jets + Gamma
-        AliGenPythia *gener = PythiaJets(-1);
-        gener->SetEnergyCMS(5500.);
-        gener->SetProcess(kPyDirectGamma);
-        gener->SetJetEtaRange(-0.3,+0.3);
-        gener->SetJetPhiRange(15.,105.);
-        gener->SetGammaEtaRange(-0.12, 0.12);
-        gener->SetGammaPhiRange(220., 320.);
-        gener->SetStrucFunc(kGRV_LO_98);
-        gener->SetPtHard(250.,250.001);
-        gener->SetForceDecay(kAll);
-        break; 
-    case kGammaJets_300:
-//  300 GeV Jets + Gamma
-        AliGenPythia *gener = PythiaJets(-1);
-        gener->SetEnergyCMS(5500.);
-        gener->SetProcess(kPyDirectGamma);
-        gener->SetJetEtaRange(-0.3,+0.3);
-        gener->SetJetPhiRange(15.,105.);
-        gener->SetGammaEtaRange(-0.12, 0.12);
-        gener->SetGammaPhiRange(220., 320.);
-        gener->SetStrucFunc(kGRV_LO_98);
-        gener->SetPtHard(300.,300.001);
-        gener->SetForceDecay(kAll);
-        break;
-    }
-
-    return gener;
-}
-
-AliGenHijing* HijingStandard()
-{
-    AliGenHijing *gener = new AliGenHijing(-1);
-// centre of mass energy 
-    gener->SetEnergyCMS(5500.);
-// reference frame
-    gener->SetReferenceFrame("CMS");
-// projectile
-    gener->SetProjectile("A", 208, 82);
-    gener->SetTarget    ("A", 208, 82);
-// tell hijing to keep the full parent child chain
-    gener->KeepFullEvent();
-// enable jet quenching
-    gener->SetJetQuenching(1);
-// enable shadowing
-    gener->SetShadowing(1);
-// neutral pion and heavy particle decays switched off
-    gener->SetDecaysOff(1);
-// Don't track spectators
-    gener->SetSpectators(0);
-// kinematic selection
-    gener->SetSelectAll(0);
-    return gener;
-}
-
-AliGenPythia* PythiaJets(Float_t energy)
-{
-    AliGenPythia *gener = new AliGenPythia(-1);
-//   Centre of mass energy 
-    gener->SetEnergyCMS(5500.);
-//   Process type
-    gener->SetProcess(kPyJets);
-//   final state kinematic cuts
-    gener->SetJetEtaRange(-0.3, 0.3);
-    gener->SetJetPhiRange(15., 105.);
-//   Structure function
-    gener->SetStrucFunc(kGRV_LO_98);
-//   
-//   Pt transfer of the hard scattering
-    gener->SetPtHard(energy, energy+0.1);
-//   Decay type (semielectronic, semimuonic, nodecay)
-    gener->SetForceDecay(kAll);
-//
-    return gener;
-}
-
-
-AliGenPythia* PythiaGamma(Float_t energy)
-{
-    AliGenPythia *gener = new AliGenPythia(-1);
-//   Centre of mass energy 
-    gener->SetEnergyCMS(5500.);
-//   Process type
-    gener->SetProcess(kPyDirectGamma);
-//   final state kinematic cuts
-    gener->SetJetEtaRange(-0.3, 0.3);
-    gener->SetJetPhiRange(15., 105.);
-    gener->SetGammaEtaRange(-0.12, 0.12);
-    gener->SetGammaPhiRange(220., 320.);
-//   Structure function
-    gener->SetStrucFunc(kGRV_LO_98);
-//   
-//   Pt transfer of the hard scattering
-    gener->SetPtHard(energy, energy+0.1);
-//   Decay type (semielectronic, semimuonic, nodecay)
-    gener->SetForceDecay(kAll);
-//
-    return gener;
-}
-
-
-
-
-
-
-
-
-
-
-
diff --git a/EMCAL/ConfigTestSuite.C b/EMCAL/ConfigTestSuite.C
deleted file mode 100644 (file)
index 9c1364a..0000000
+++ /dev/null
@@ -1,413 +0,0 @@
-static Int_t    eventsPerRun = 100;
-enum PprGeo_t 
-{
-    kHoles, kNoHoles
-};
-static PprGeo_t geo = kHoles;
-
-void Config()
-{
-    // 7-DEC-2000 09:00
-    // Switch on Transition Radiation simulation. 6/12/00 18:00
-    // iZDC=1  7/12/00 09:00
-    // ThetaRange is (0., 180.). It was (0.28,179.72) 7/12/00 09:00
-    // Theta range given through pseudorapidity limits 22/6/2001
-
-    // Set Random Number seed
-    // AliLoader::SetDebug(5) ; 
-    gRandom->SetSeed(12345);
-
-
-   // libraries required by geant321
-    gSystem->Load("libgeant321");
-
-    new     TGeant3("C++ Interface to Geant3");
-
-    if (!gSystem->Getenv("CONFIG_FILE"))
-    {
-        cout<<"Config.C: Creating Run Loader ..."<<endl;
-        AliRunLoader* rl = AliRunLoader::Open("galice.root",AliConfig::GetDefaultEventFolderName(),
-                                              "recreate");
-        if (rl == 0x0)
-         {
-           gAlice->Fatal("Config.C","Can not instatiate the Run Loader");
-           return;
-         }
-        rl->SetCompressionLevel(2);
-        rl->SetNumberOfEventsPerFile(1000);
-        gAlice->SetRunLoader(rl);
-    }
-
-    TGeant3 *geant3 = (TGeant3 *) gMC;
-
-    //
-    // Set External decayer
-    TVirtualMCDecayer *decayer = new AliDecayerPythia();
-
-    decayer->SetForceDecay(kAll);
-    decayer->Init();
-    gMC->SetExternalDecayer(decayer);
-    //
-    //
-    //=======================================================================
-    // ******* GEANT STEERING parameters FOR ALICE SIMULATION *******
-    geant3->SetTRIG(1);         //Number of events to be processed 
-    geant3->SetSWIT(4, 10);
-    geant3->SetDEBU(0, 0, 1);
-    //geant3->SetSWIT(2,2);
-    geant3->SetDCAY(1);
-    geant3->SetPAIR(1);
-    geant3->SetCOMP(1);
-    geant3->SetPHOT(1);
-    geant3->SetPFIS(0);
-    geant3->SetDRAY(0);
-    geant3->SetANNI(1);
-    geant3->SetBREM(1);
-    geant3->SetMUNU(1);
-    geant3->SetCKOV(1);
-    geant3->SetHADR(1);         //Select pure GEANH (HADR 1) or GEANH/NUCRIN (HADR 3)
-    geant3->SetLOSS(2);
-    geant3->SetMULS(1);
-    geant3->SetRAYL(1);
-    geant3->SetAUTO(1);         //Select automatic STMIN etc... calc. (AUTO 1) or manual (AUTO 0)
-    geant3->SetABAN(0);         //Restore 3.16 behaviour for abandoned tracks
-    geant3->SetOPTI(2);         //Select optimisation level for GEANT geometry searches (0,1,2)
-    geant3->SetERAN(5.e-7);
-
-    Float_t cut = 1.e-3;        // 1MeV cut by default
-    Float_t tofmax = 1.e10;
-
-    //             GAM ELEC NHAD CHAD MUON EBREM MUHAB EDEL MUDEL MUPA TOFMAX
-    geant3->SetCUTS(cut, cut, cut, cut, cut, cut, cut, cut, cut, cut,
-                    tofmax);
-    //
-    //=======================================================================
-    // ************* STEERING parameters FOR ALICE SIMULATION **************
-    // --- Specify event type to be tracked through the ALICE setup
-    // --- All positions are in cm, angles in degrees, and P and E in GeV
-    if (gSystem->Getenv("CONFIG_NPARTICLES"))
-    {
-        int     nParticles = atoi(gSystem->Getenv("CONFIG_NPARTICLES"));
-    } else
-    {
-        int     nParticles = 10;
-    }
- //    AliGenCocktail *gener = new AliGenCocktail();
-//     gener->SetPhiRange(220, 320);
-//     // Set pseudorapidity range from -8 to 8.
-//     Float_t thmin = EtaToTheta(0.12);   // theta min. <---> eta max
-//     Float_t thmax = EtaToTheta(-0.12);  // theta max. <---> eta min 
-//     gener->SetThetaRange(thmin,thmax);
-//     gener->SetOrigin(0, 0, 0);  //vertex position
-//     gener->SetSigma(0, 0, 0);   //Sigma in (X,Y,Z) (cm) on IP position
-
-//     AliGenHIJINGpara *hijingparam = new AliGenHIJINGpara(nParticles);
-//     hijingparam->SetMomentumRange(0.2, 999);
-//     gener->AddGenerator(hijingparam,"HIJING PARAM",1);
-
-//     AliGenBox *genbox = new AliGenBox(nParticles);
-//     genbox->SetPart(22);
-//     genbox->SetPtRange(0.3, 10.00);
-//     gener->AddGenerator(genbox,"GENBOX GAMMA for PHOS",1);
-//     gener->Init();
-
-    AliGenBox *gener = new AliGenBox(1);
-    gener->SetMomentumRange(50.,100.);
-    gener->SetPhiRange(60.0,180.0);
-    gener->SetThetaRange(EtaToTheta(-0.7), EtaToTheta(0.7));
-
-    gener->SetOrigin(0,0,0);        //vertex position
-    gener->SetSigma(0,0,0);         //Sigma in (X,Y,Z) (cm) on IP position
-    gener->SetPart(kGamma);
-    gener->Init();
-    // 
-    // Activate this line if you want the vertex smearing to happen
-    // track by track
-    //
-    //gener->SetVertexSmear(perTrack); 
-    // Field (L3 0.4 T)
-    AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., 1);
-    gAlice->SetField(field);    
-
-
-    Int_t   iABSO  =  0;
-    Int_t   iDIPO  =  0;
-    Int_t   iFMD   =  0;
-    Int_t   iFRAME =  0;
-    Int_t   iHALL  =  0;
-    Int_t   iITS   =  0;
-    Int_t   iMAG   =  0;
-    Int_t   iMUON  =  0;
-    Int_t   iPHOS  =  0;
-    Int_t   iPIPE  =  0;
-    Int_t   iPMD   =  0;
-    Int_t   iRICH  =  0;
-    Int_t   iSHIL  =  0;
-    Int_t   iSTART =  0;
-    Int_t   iTOF   =  0;
-    Int_t   iTPC   =  0;
-    Int_t   iTRD   =  0;
-    Int_t   iZDC   =  0;
-    Int_t   iEMCAL =  1;
-    Int_t   iCRT   =  0;
-    Int_t   iVZERO =  0;
-    rl->CdGAFile();
-    //=================== Alice BODY parameters =============================
-    AliBODY *BODY = new AliBODY("BODY", "Alice envelop");
-
-    if (iMAG)
-    {
-        //=================== MAG parameters ============================
-        // --- Start with Magnet since detector layouts may be depending ---
-        // --- on the selected Magnet dimensions ---
-        AliMAG *MAG = new AliMAG("MAG", "Magnet");
-    }
-
-
-    if (iABSO)
-    {
-        //=================== ABSO parameters ============================
-        AliABSO *ABSO = new AliABSOv0("ABSO", "Muon Absorber");
-    }
-
-    if (iDIPO)
-    {
-        //=================== DIPO parameters ============================
-
-        AliDIPO *DIPO = new AliDIPOv2("DIPO", "Dipole version 2");
-    }
-
-    if (iHALL)
-    {
-        //=================== HALL parameters ============================
-
-        AliHALL *HALL = new AliHALL("HALL", "Alice Hall");
-    }
-
-
-    if (iFRAME)
-    {
-        //=================== FRAME parameters ============================
-
-        AliFRAMEv2 *FRAME = new AliFRAMEv2("FRAME", "Space Frame");
-       if (geo == kHoles) {
-           FRAME->SetHoles(1);
-       } else {
-           FRAME->SetHoles(0);
-       }
-    }
-
-    if (iSHIL)
-    {
-        //=================== SHIL parameters ============================
-
-        AliSHIL *SHIL = new AliSHILv2("SHIL", "Shielding Version 2");
-    }
-
-
-    if (iPIPE)
-    {
-        //=================== PIPE parameters ============================
-
-        AliPIPE *PIPE = new AliPIPEv0("PIPE", "Beam Pipe");
-    }
-    if(iITS) {
-
-    //=================== ITS parameters ============================
-    //
-    // As the innermost detector in ALICE, the Inner Tracking System "impacts" on
-    // almost all other detectors. This involves the fact that the ITS geometry
-    // still has several options to be followed in parallel in order to determine
-    // the best set-up which minimizes the induced background. All the geometries
-    // available to date are described in the following. Read carefully the comments
-    // and use the default version (the only one uncommented) unless you are making
-    // comparisons and you know what you are doing. In this case just uncomment the
-    // ITS geometry you want to use and run Aliroot.
-    //
-    // Detailed geometries:         
-    //
-    //
-    //AliITS *ITS  = new AliITSv5symm("ITS","Updated ITS TDR detailed version with symmetric services");
-    //
-    //AliITS *ITS  = new AliITSv5asymm("ITS","Updates ITS TDR detailed version with asymmetric services");
-    //
-       AliITSvPPRasymm *ITS  = new AliITSvPPRasymm("ITS","New ITS PPR detailed version with asymmetric services");
-       ITS->SetMinorVersion(2);                                         // don't touch this parameter if you're not an ITS developer
-       ITS->SetReadDet(kFALSE);                                         // don't touch this parameter if you're not an ITS developer
-    //    ITS->SetWriteDet("$ALICE_ROOT/ITS/ITSgeometry_vPPRasymm2.det");  // don't touch this parameter if you're not an ITS developer
-       ITS->SetThicknessDet1(200.);   // detector thickness on layer 1 must be in the range [100,300]
-       ITS->SetThicknessDet2(200.);   // detector thickness on layer 2 must be in the range [100,300]
-       ITS->SetThicknessChip1(200.);  // chip thickness on layer 1 must be in the range [150,300]
-       ITS->SetThicknessChip2(200.);  // chip thickness on layer 2 must be in the range [150,300]
-       ITS->SetRails(0);            // 1 --> rails in ; 0 --> rails out
-       ITS->SetCoolingFluid(1);   // 1 --> water ; 0 --> freon
-       //
-    //AliITSvPPRsymm *ITS  = new AliITSvPPRsymm("ITS","New ITS PPR detailed version with symmetric services");
-    //ITS->SetMinorVersion(2);                                       // don't touch this parameter if you're not an ITS developer
-    //ITS->SetReadDet(kFALSE);                                       // don't touch this parameter if you're not an ITS developer
-    //ITS->SetWriteDet("$ALICE_ROOT/ITS/ITSgeometry_vPPRsymm2.det"); // don't touch this parameter if you're not an ITS developer
-    //ITS->SetThicknessDet1(200.);   // detector thickness on layer 1 must be in the range [100,300]
-    //ITS->SetThicknessDet2(200.);   // detector thickness on layer 2 must be in the range [100,300]
-    //ITS->SetThicknessChip1(200.);  // chip thickness on layer 1 must be in the range [150,300]
-    //ITS->SetThicknessChip2(200.);  // chip thickness on layer 2 must be in the range [150,300]
-    //ITS->SetRails(0);              // 1 --> rails in ; 0 --> rails out
-    //ITS->SetCoolingFluid(1);       // 1 --> water ; 0 --> freon
-    //
-    //
-    // Coarse geometries (warning: no hits are produced with these coarse geometries and they unuseful 
-    // for reconstruction !):
-    //                                                     
-    //
-    //AliITSvPPRcoarseasymm *ITS  = new AliITSvPPRcoarseasymm("ITS","New ITS PPR coarse version with asymmetric services");
-    //ITS->SetRails(0);                // 1 --> rails in ; 0 --> rails out
-    //ITS->SetSupportMaterial(0);      // 0 --> Copper ; 1 --> Aluminum ; 2 --> Carbon
-    //
-    //AliITS *ITS  = new AliITSvPPRcoarsesymm("ITS","New ITS PPR coarse version with symmetric services");
-    //ITS->SetRails(0);                // 1 --> rails in ; 0 --> rails out
-    //ITS->SetSupportMaterial(0);      // 0 --> Copper ; 1 --> Aluminum ; 2 --> Carbon
-    //                      
-    //
-    //
-    // Geant3 <-> EUCLID conversion
-    // ============================
-    //
-    // SetEUCLID is a flag to output (=1) or not to output (=0) both geometry and
-    // media to two ASCII files (called by default ITSgeometry.euc and
-    // ITSgeometry.tme) in a format understandable to the CAD system EUCLID.
-    // The default (=0) means that you dont want to use this facility.
-    //
-     ITS->SetEUCLID(0);  
-    }
-
-    if (iTPC)
-    {
-        //============================ TPC parameters ================================
-        // --- This allows the user to specify sectors for the SLOW (TPC geometry 2)
-        // --- Simulator. SecAL (SecAU) <0 means that ALL lower (upper)
-        // --- sectors are specified, any value other than that requires at least one 
-        // --- sector (lower or upper)to be specified!
-        // --- Reminder: sectors 1-24 are lower sectors (1-12 -> z>0, 13-24 -> z<0)
-        // ---           sectors 25-72 are the upper ones (25-48 -> z>0, 49-72 -> z<0)
-        // --- SecLows - number of lower sectors specified (up to 6)
-        // --- SecUps - number of upper sectors specified (up to 12)
-        // --- Sens - sensitive strips for the Slow Simulator !!!
-        // --- This does NOT work if all S or L-sectors are specified, i.e.
-        // --- if SecAL or SecAU < 0
-        //
-        //
-        //-----------------------------------------------------------------------------
-
-        //  gROOT->LoadMacro("SetTPCParam.C");
-        //  AliTPCParam *param = SetTPCParam();
-        AliTPC *TPC = new AliTPCv2("TPC", "Default");
-
-        // All sectors included 
-        TPC->SetSecAU(-1);
-        TPC->SetSecAL(-1);
-    }
-
-
-    if (iTOF) {
-       if (geo == kHoles) {
-        //=================== TOF parameters ============================
-           AliTOF *TOF = new AliTOFv2FHoles("TOF", "TOF with Holes");
-       } else {
-           AliTOF *TOF = new AliTOFv4T0("TOF", "normal TOF");
-       }
-    }
-
-
-    if (iRICH)
-    {
-        //=================== RICH parameters ===========================
-        AliRICH *RICH = new AliRICHv3("RICH", "normal RICH");
-
-    }
-
-
-    if (iZDC)
-    {
-        //=================== ZDC parameters ============================
-
-        AliZDC *ZDC = new AliZDCv2("ZDC", "normal ZDC");
-    }
-
-    if (iTRD)
-    {
-        //=================== TRD parameters ============================
-
-        AliTRD *TRD = new AliTRDv1("TRD", "TRD slow simulator");
-
-        // Select the gas mixture (0: 97% Xe + 3% isobutane, 1: 90% Xe + 10% CO2)
-        TRD->SetGasMix(1);
-       if (geo == kHoles) {
-           // With hole in front of PHOS
-           TRD->SetPHOShole();
-           // With hole in front of RICH
-           TRD->SetRICHhole();
-       }
-           // Switch on TR
-           AliTRDsim *TRDsim = TRD->CreateTR();
-    }
-
-    if (iFMD)
-    {
-        //=================== FMD parameters ============================
-       AliFMD *FMD = new AliFMDv1("FMD", "normal FMD");
-        FMD->SetRingsSi1(256);
-        FMD->SetRingsSi2(128);
-        FMD->SetSectorsSi1(20);
-        FMD->SetSectorsSi2(40);      
-   }
-
-    if (iMUON)
-    {
-        //=================== MUON parameters ===========================
-
-        AliMUON *MUON = new AliMUONv1("MUON", "default");
-    }
-    //=================== PHOS parameters ===========================
-
-    if (iPHOS)
-    {
-        AliPHOS *PHOS = new AliPHOSv1("PHOS", "IHEP");
-    }
-
-
-    if (iPMD)
-    {
-        //=================== PMD parameters ============================
-        AliPMD *PMD = new AliPMDv1("PMD", "normal PMD");
-    }
-
-    if (iSTART)
-    {
-        //=================== START parameters ============================
-        AliSTART *START = new AliSTARTv1("START", "START Detector");
-    }
-
-    if (iEMCAL)
-    {
-        //=================== EMCAL parameters ============================
-        AliEMCAL *EMCAL = new AliEMCALv1("EMCAL", "EMCAL_55_25");
-    }
-
-     if (iCRT)
-    {
-        //=================== CRT parameters ============================
-        AliCRT *CRT = new AliCRTv0("CRT", "normal ACORDE");
-    }
-
-     if (iVZERO)
-    {
-        //=================== CRT parameters ============================
-        AliVZERO *VZERO = new AliVZEROv2("VZERO", "normal VZERO");
-    }
-
-}
-
-Float_t EtaToTheta(Float_t arg){
-  return (180./TMath::Pi())*2.*atan(exp(-arg));
-}
diff --git a/EMCAL/grunTestSuite.C b/EMCAL/grunTestSuite.C
deleted file mode 100644 (file)
index cb5ee3c..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-void grunTestSuite (Int_t nevent=3, const char *config="ConfigTestSuite.C")
-{
-  //
-  // Simple macro to run aliroot in a batch mode
-  //
-  gAlice->Init(config);
-  TStopwatch timer;
-  timer.Start();
-//
-//  If nevent is negative it is assumed that in config the 
-//  global variable eventsPerRun has been set.
-//
-  if (nevent < 0) 
-      nevent = eventsPerRun;
-  gAlice->Run(nevent);
-  timer.Stop();
-  timer.Print();
-}
diff --git a/EMCAL/testEMCALGeom.C b/EMCAL/testEMCALGeom.C
deleted file mode 100644 (file)
index 61d9055..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-void testEMCALGeom(const char *filename="galice.root",){
-/////////////////////////////////////////////////////////////////////////
-//   This macro computes the sampling fraction in the EMCAL
-//   
-//     Root > .L ComputeSamplingFraction.C //this loads the macro in memory
-//     Root > ComputeSamplingFraction();   //by default process first event   
-//     Root > ComputeSamplingFraction("galice2.root"); //process from the file 
-//                                                       galice2.root .
-//Begin_Html
-/*
-<img src="picts/ComputeSamplingFraction.gif">
-*/
-//End_Html
-/////////////////////////////////////////////////////////////////////////
-    if(gAlice){
-       delete gAlice;
-       gAlice=0;
-    }else{
-       // Dynamically link some shared libs
-       if(gClassTable->GetID("AliRun") < 0) {
-           gROOT->LoadMacro("loadlibs.C");
-           loadlibs();
-       } // end if
-    } // end if gAlice
-    // Connect the Root Galice file containing Geometry, Kine and Hits
-    TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject(filename);
-    if(!file) file = new TFile(filename);
-
-    // Get AliRun object from file or create it if not on file
-    if(!gAlice) {
-       gAlice = (AliRun*)file->Get("gAlice");
-       if(gAlice) printf("AliRun object found on file\n");
-       if(!gAlice) gAlice = new AliRun("gAlice","Alice test program");
-    } // end if !gAlice
-      
-    // Set event pointer to this event
-    Int_t nparticles = gAlice->GetEvent(0);
-    if (nparticles <= 0){
-       cout << "No particles found for event " << evNumber;
-       cout << " in file " << filename << endl;
-       return;
-    } // end if nparticles <=0
-
-    // Pointer to specific detector hits.
-    AliEMCALHit  *emcalHit;
-
-    // Get pointers to ALL Alice detectors and Hits containers
-    AliEMCALv0  *EMCAL  = (AliEMCALv0*)  gAlice->GetDetector("EMCAL");
-    if(!EMCAL) {
-       cout << "EMCAL not Found. Exiting." << endl;
-       return;
-    } // end if !EMCAL
-
-    AliEMCALGeometry *g = EMCAL->GetGeometry();
-    
-    Int_t i,in,ix,ieta,iphi,ipre;
-    Float_t eta,phi;
-    cout << "i    ieta  iphi  ipre     in       eta          phi   ix" << endl;
-    for(i=0;i<=2*g->GetNEta()*g->GetNPhi();i++){
-       g->TowerIndexes(i,ieta,iphi,ipre);
-       in = g->TowerIndex(ieta,iphi,ipre);
-       g->EtaPhiFromIndex(i,eta,phi);
-       ix = g->TowerIndexFromEtaPhi(eta,phi);
-       cout << i << "     " << ieta << "     " << iphi << "     " << ipre;
-       cout << "     " << in << "     " << eta << "     " << phi << "     " << ix << endl;
-    } //
-    return;
-    // Get pointer to the particle
-    TParticle    *part;
-    Int_t         ipart;
-
-    // Create histograms
-    TH1F *hEMCAL = new TH1F("hEMCAL" ,"Energy",100,0.,2.);
-    TH2F *hSfs   = new TH2F("hSfs","Sampling Fraction",200,-0.7,0.7,
-                           200,0.0,120.0);
-    TH2F *hSfi   = new TH2F("hSfi","Sampling Fraction Normilization",
-                           200,-0.7,0.7,200,0.0,120.0);
-
-    Int_t track,ntracks = gAlice->TreeH()->GetEntries();
-    Float_t etot = 0.0;
-    Float_t egam = 0.0;
-    Bool_t first = kTRUE;
-    Float_t eta,phi,x,y,z;
-    // Start loop on tracks in the hits containers
-    for(track=0; track<ntracks;track++){
-       //MI change
-       gAlice->ResetHits();
-       gAlice->TreeH()->GetEvent(track);
-       for(emcalHit=(AliEMCALHit*)EMCAL->FirstHit(-1);emcalHit;
-           emcalHit=(AliEMCALHit*)EMCAL->NextHit()) {
-           ipart = emcalHit->GetTrack();
-           part  = gAlice->Particle(ipart);
-           if(part->GetFirstMother()!=0) continue;
-           // only those that don't interact.
-           hEMCAL->Fill((Float_t)(emcalHit->GetEnergy()));
-           x = emcalHit->X();
-           y = emcalHit->Y();
-           z = emcalHit->Z();
-           findetaphi(x,y,z,eta,phi);
-           if(first){
-               egam += part->Energy();
-               hSfi->Fill(eta,phi,part->Energy());
-           } // end if first.
-           first = kFALSE;
-           etot += emcalHit->GetEnergy();
-           hSfs->Fill(eta,phi,emcalHit->GetEnergy());
-       } // end for tpcHit
-       first = kTRUE;
-    } // end for track
-    hSfs->Divide(hSfi);
-    cout << "Energy of gamma =" << egam << "GeV. Energy in EMCAL =" << etot;
-    cout << "GeV. Sampling Fractions is therefore f=" << etot/egam << endl;
-
-    //Create a canvas, set the view range, show histograms
-    TCanvas *c0 = new TCanvas("c0","Alice Detectors",400,10,600,700);
-    c0->Divide(1,3);
-    c0->cd(1);
-    hEMCAL->SetFillColor(42);
-    hEMCAL->Draw();
-    c0->cd(2);
-    hSfi->Draw("lego");
-    c0->cd(3);
-    hSfs->Draw("lego");
-//    c0->SaveAs("analHitsEMCAL.eps");
-}
-void findetaphi(Float_t x,Float_t y,Float_t z,Float_t &eta,Float_t &phi){
-    // Compute Eta and Phi from x, y, z. Assumes vertex is a zero.
-    Float_t r;
-
-    r = x*x+y*y;
-    r = TMath::Sqrt(r);
-    phi = 180.*TMath::ATan2(y,x)/TMath::Pi();
-    if(phi<0.0) phi += 180.;
-    r = TMath::ATan2(r,z);
-    r = TMath::Tan(0.5*r);
-    eta = -TMath::Exp(r);
-    return;
-}