]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - macros/Config_PythiaHeavyFlavours.C
Do not assume operator==/!=() is a member function.
[u/mrichter/AliRoot.git] / macros / Config_PythiaHeavyFlavours.C
index 2b9436c78b1cd443474e788beba459226e02bfb2..45a5be268558a6aa7dd57d035bfa813cb145bf01 100644 (file)
@@ -36,7 +36,7 @@
 #include "TPC/AliTPCv2.h"
 #include "TOF/AliTOFv6T0.h"
 #include "HMPID/AliHMPIDv2.h"
-#include "ZDC/AliZDCv1.h"
+#include "ZDC/AliZDCv3.h"
 #include "TRD/AliTRDv1.h"
 #include "FMD/AliFMDv0.h"
 #include "MUON/AliMUONv1.h"
@@ -78,8 +78,15 @@ enum TrigConf_t
 const char * TrigConfName[] = {
     "p-p","Pb-Pb"
 };
+enum PprGeo_t
+  {
+    kHoles, kNoHoles
+  };
+
 //--- Functions ---
+class AliGenPythia;
 AliGenPythia *PythiaHVQ(ProcessHvFl_t proc);
+void          LoadPythia();
 
 
 // This part for configuration
@@ -88,6 +95,7 @@ static DecayHvFl_t   decHvFl  = kNature;
 static YCut_t        ycut     = kFull;
 static Mag_t         mag      = k5kG; 
 static TrigConf_t    trig     = kDefaultPbPbTrig; // default PbPb trigger configuration
+static PprGeo_t      geo      = kHoles;
 // nEvts = -1  : you get 1 QQbar pair and all the fragmentation and 
 //               decay chain
 // nEvts = N>0 : you get N charm / beauty Hadrons 
@@ -134,7 +142,8 @@ void Config()
   //  cerr<<"Seed for random number generation= "<<seed<<endl; 
   gRandom->SetSeed(12345);
   
-
+  // Load Pythia libraries
+  LoadPythia();
   // libraries required by geant321
 #if defined(__CINT__)
   gSystem->Load("libgeant321");
@@ -364,6 +373,11 @@ void Config()
     //=================== FRAME parameters ============================
 
     AliFRAME *FRAME  = new AliFRAMEv2("FRAME","Space Frame");
+    if (geo == kHoles) {
+      FRAME->SetHoles(1);
+    } else {
+      FRAME->SetHoles(0);
+    }
 
   }
 
@@ -382,59 +396,9 @@ void Config()
 
 
   if(iITS) {
+    //=================== ITS parameters ============================
 
-//=================== 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");
-    //
     AliITSvPPRasymmFMD *ITS  = new AliITSvPPRasymmFMD("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 [150,300]
-    ITS->SetThicknessDet2(200.);   // detector thickness on layer 2 must be in the range [150,300]
-    ITS->SetThicknessChip1(150.);  // chip thickness on layer 1 must be in the range [100,300]
-    ITS->SetThicknessChip2(150.);  // chip thickness on layer 2 must be in the range [100,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);  
   }
   
 
@@ -459,7 +423,7 @@ void Config()
   if(iZDC) {
     //=================== ZDC parameters ============================
 
-    AliZDC *ZDC  = new AliZDCv1("ZDC","normal ZDC");
+    AliZDC *ZDC  = new AliZDCv3("ZDC","normal ZDC");
   }
 
   if(iACORDE) {
@@ -683,5 +647,14 @@ AliGenPythia *PythiaHVQ(ProcessHvFl_t proc) {
 
 
 
+void LoadPythia()
+{
+    // Load Pythia related libraries
+    gSystem->Load("liblhapdf.so");      // Parton density functions
+    gSystem->Load("libEGPythia6.so");   // TGenerator interface
+    gSystem->Load("libpythia6.so");     // Pythia
+    gSystem->Load("libAliPythia6.so");  // ALICE specific implementations
+}
+