]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - macros/Config_PDC06.C
Truncate Z vertex at 3 sigma (was at one sigma)
[u/mrichter/AliRoot.git] / macros / Config_PDC06.C
index d2c271b267079267b1d18d1c0f4cf5040274dbc9..16cd0ccf624febde672793b74a3a6751cc8ee340 100644 (file)
@@ -2,13 +2,22 @@
 // Configuration for the Physics Data Challenge 2006
 //
 
+// One can use the configuration macro in compiled mode by
+// root [0] gSystem->Load("libgeant321");
+// root [0] gSystem->SetIncludePath("-I$ROOTSYS/include -I$ALICE_ROOT/include\
+//                   -I$ALICE_ROOT -I$ALICE/geant3/TGeant3");
+// root [0] .x grun.C(1,"Config_PDC06.C++")
+
 #if !defined(__CINT__) || defined(__MAKECINT__)
 #include <Riostream.h>
 #include <TRandom.h>
 #include <TDatime.h>
 #include <TSystem.h>
 #include <TVirtualMC.h>
-#include <TGeant3.h>
+#include <TGeant3TGeo.h>
+#include "EVGEN/AliGenCocktail.h"
+#include "EVGEN/AliGenParam.h"
+#include "EVGEN/AliGenMUONlib.h"
 #include "STEER/AliRunLoader.h"
 #include "STEER/AliRun.h"
 #include "STEER/AliConfig.h"
 #include "STRUCT/AliFRAMEv2.h"
 #include "STRUCT/AliSHILv2.h"
 #include "STRUCT/AliPIPEv0.h"
+#include "ITS/AliITSgeom.h"
 #include "ITS/AliITSvPPRasymmFMD.h"
 #include "TPC/AliTPCv2.h"
-#include "TOF/AliTOFv4T0.h"
+#include "TOF/AliTOFv5T0.h"
 #include "RICH/AliRICHv1.h"
-#include "ZDC/AliZDCv1.h"
+#include "ZDC/AliZDCv2.h"
 #include "TRD/AliTRDv1.h"
-#include "FMD/AliFMDv0.h"
+#include "FMD/AliFMDv1.h"
 #include "MUON/AliMUONv1.h"
 #include "PHOS/AliPHOSv1.h"
 #include "PMD/AliPMDv1.h"
 #include "START/AliSTARTv1.h"
-#include "CRT/AliCRTv1.h"
+#include "EMCAL/AliEMCALv2.h"
+#include "CRT/AliCRTv0.h"
+#include "VZERO/AliVZEROv7.h"
 #endif
 
 
@@ -46,7 +58,15 @@ enum PDC06Proc_t
   kDPlusPbPb5500,  kDPluspPb8800,  kDPluspp14000,
   kBeautyPbPb5500, kBeautypPb8800, kBeautypp14000, kBeautypp14000wmi, 
 // -- Pythia Mb
-  kPyMbNoHvq, kPyOmegaPlus, kPyOmegaMinus
+  kPyMbNoHvq, kPyOmegaPlus, kPyOmegaMinus, kRunMax
+};
+
+const char * pprRunName[] = {
+  "kCharmPbPb5500",  "kCharmpPb8800",  "kCharmpp14000",  "kCharmpp14000wmi",
+  "kD0PbPb5500",     "kD0pPb8800",     "kD0pp14000",
+  "kDPlusPbPb5500",  "kDPluspPb8800",  "kDPluspp14000",
+  "kBeautyPbPb5500", "kBeautypPb8800", "kBeautypp14000", "kBeautypp14000wmi", 
+  "kPyMbNoHvq", "kPyOmegaPlus", "kPyOmegaMinus"
 };
 
 
@@ -69,12 +89,19 @@ enum Mag_t
 AliGenPythia *PythiaHVQ(PDC06Proc_t proc);
 AliGenerator *MbCocktail();
 AliGenerator *PyMbTriggered(Int_t pdg);
+void ProcessEnvironmentVars();
 
 // This part for configuration
-static PDC06Proc_t   proc     = kPyMbNoHvq;
+static PDC06Proc_t   proc     = kPyOmegaPlus;
 static DecayHvFl_t   decHvFl  = kNature; 
 static YCut_t        ycut     = kFull;
 static Mag_t         mag      = k5kG; 
+//========================//
+// Set Random Number seed //
+//========================//
+TDatime dt;
+static UInt_t seed    = dt.Get();
+
 // nEvts = -1  : you get 1 QQbar pair and all the fragmentation and 
 //               decay chain
 // nEvts = N>0 : you get N charm / beauty Hadrons 
@@ -109,18 +136,12 @@ static TString comment;
 void Config()
 {
  
-  //========================//
-  // Set Random Number seed //
-  //========================//
-  TDatime dt;
-  UInt_t curtime = dt.Get();
-  UInt_t procid  = gSystem->GetPid();
-  UInt_t seed    = curtime-procid;
-
-  //  gRandom->SetSeed(seed);
-  //  cerr<<"Seed for random number generation= "<<seed<<endl; 
-  gRandom->SetSeed(12345);
-  
+
+  // Get settings from environment variables
+  ProcessEnvironmentVars();
+
+  gRandom->SetSeed(seed);
+  cerr<<"Seed for random number generation= "<<seed<<endl; 
 
   // libraries required by geant321
 #if defined(__CINT__)
@@ -213,7 +234,7 @@ void Config()
   //=========================//
   // Generator Configuration //
   //=========================//
-  AliGenerator* gener;
+  AliGenerator* gener = 0x0;
   
   if (proc <=   kBeautypp14000wmi) {
       AliGenPythia *pythia = PythiaHVQ(proc);
@@ -285,14 +306,9 @@ void Config()
   printf("\n \n Diamond size x-y: %10.3e z: %10.3e\n \n", sigmaxy, sigmaz);
     
   gener->SetSigma(sigmaxy, sigmaxy, sigmaz);      // Sigma in (X,Y,Z) (cm) on IP position
-  gener->SetCutVertexZ(1.);        // Truncate at 1 sigma
+  gener->SetCutVertexZ(3.);        // Truncate at 3 sigma
   gener->SetVertexSmear(kPerEvent);
 
-  gener->SetTrackingFlag(0);
-  // Specify GEANT tracking limits (Rmax, Zmax)
-  //gAlice->GetMCApp()->TrackingLimits(90.,1.0e10);
-
-
   gener->Init();
 
   // FIELD
@@ -314,7 +330,7 @@ void Config()
 
 
   Int_t iABSO  = 1;
-  Int_t iCRT   = 1;
+  Int_t iCRT   = 0;
   Int_t iDIPO  = 1;
   Int_t iEMCAL = 1;
   Int_t iFMD   = 1;
@@ -375,7 +391,6 @@ void Config()
         //=================== FRAME parameters ============================
 
         AliFRAMEv2 *FRAME = new AliFRAMEv2("FRAME", "Space Frame");
-       FRAME->SetHoles(0);
     }
 
     if (iSHIL)
@@ -524,7 +539,7 @@ void Config()
     if (iEMCAL)
     {
         //=================== EMCAL parameters ============================
-        AliEMCAL *EMCAL = new AliEMCALv2("EMCAL", "SHISH");
+        AliEMCAL *EMCAL = new AliEMCALv2("EMCAL", "SHISH_77_TRD1_2X2_FINAL_110DEG");
     }
 
      if (iCRT)
@@ -536,7 +551,7 @@ void Config()
      if (iVZERO)
     {
         //=================== CRT parameters ============================
-        AliVZERO *VZERO = new AliVZEROv5("VZERO", "normal VZERO");
+        AliVZERO *VZERO = new AliVZEROv7("VZERO", "normal VZERO");
     }
 }
 //
@@ -691,7 +706,7 @@ AliGenPythia *PythiaHVQ(PDC06Proc_t proc) {
 AliGenerator* MbCocktail()
 {
       comment = comment.Append(" pp at 14 TeV: Pythia low-pt, no heavy quarks + J/Psi from parameterisation");
-      gener = new AliGenCocktail();
+      AliGenCocktail * gener = new AliGenCocktail();
       gener->UsePerEventRates();
  
 //
@@ -734,6 +749,23 @@ AliGenerator* PyMbTriggered(Int_t pdg)
     return pythia;
 }
 
+void ProcessEnvironmentVars()
+{
+    // Run type
+    if (gSystem->Getenv("CONFIG_RUN_TYPE")) {
+      for (Int_t iRun = 0; iRun < kRunMax; iRun++) {
+       if (strcmp(gSystem->Getenv("CONFIG_RUN_TYPE"), pprRunName[iRun])==0) {
+         proc = (PDC06Proc_t)iRun;
+         cout<<"Run type set to "<<pprRunName[iRun]<<endl;
+       }
+      }
+    }
+
+    // Random Number seed
+    if (gSystem->Getenv("CONFIG_SEED")) {
+      seed = atoi(gSystem->Getenv("CONFIG_SEED"));
+    }
+}