]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - macros/ConfigPPR.C
Extacting the OCDB in a separate module. The detectors have write permission in the...
[u/mrichter/AliRoot.git] / macros / ConfigPPR.C
index 2419c6f278981d10eb95af18751309d65a0aa1c3..4bc2c61705a833b56675db3506580942287b15f5 100644 (file)
@@ -31,7 +31,7 @@
 #include "EVGEN/AliGenGeVSim.h"
 #include "EVGEN/AliGeVSimParticle.h"
 #include "PYTHIA6/AliGenPythia.h"
-#include "STEER/AliMagFMaps.h"
+#include "STEER/AliMagF.h"
 #include "STRUCT/AliBODY.h"
 #include "STRUCT/AliMAG.h"
 #include "STRUCT/AliABSOv3.h"
 #include "STRUCT/AliFRAMEv2.h"
 #include "STRUCT/AliSHILv3.h"
 #include "STRUCT/AliPIPEv3.h"
-#include "ITS/AliITSvPPRasymmFMD.h"
+#include "ITS/AliITSv11Hybrid.h"
 #include "TPC/AliTPCv2.h"
 #include "TOF/AliTOFv6T0.h"
-#include "HMPID/AliHMPIDv2.h"
-#include "ZDC/AliZDCv2.h"
+#include "HMPID/AliHMPIDv3.h"
+#include "ZDC/AliZDCv3.h"
 #include "TRD/AliTRDv1.h"
 #include "FMD/AliFMDv1.h"
 #include "MUON/AliMUONv1.h"
@@ -52,7 +52,7 @@
 #include "PMD/AliPMDv1.h"
 #include "T0/AliT0v1.h"
 #include "EMCAL/AliEMCALv2.h"
-#include "ACORDE/AliACORDEv0.h"
+#include "ACORDE/AliACORDEv1.h"
 #include "VZERO/AliVZEROv7.h"
 #endif
 
@@ -105,11 +105,6 @@ enum PprRad_t
     kGluonRadiation, kNoGluonRadiation
 };
 
-enum PprMag_t
-{
-    k2kG, k4kG, k5kG
-};
-
 enum PprTrigConf_t
 {
     kDefaultPPTrig, kDefaultPbPbTrig
@@ -121,9 +116,9 @@ const char * pprTrigConfName[] = {
 
 // This part for configuration    
 //static PprRun_t srun = test50;
-static PprRun_t srun = kHIJINGplus;
-static PprRad_t srad = kGluonRadiation;
-static PprMag_t smag = k5kG;
+static PprRun_t srun  = kHIJINGplus;
+static PprRad_t srad  = kGluonRadiation;
+static AliMagF::BMap_t smag  = AliMagF::k5kG;
 static Int_t    sseed = 12345; //Set 0 to use the current time
 //static PprTrigConf_t strig = kDefaultPPTrig; // default pp trigger configuration
 static PprTrigConf_t strig = kDefaultPbPbTrig; // default PbPb trigger configuration
@@ -137,6 +132,7 @@ AliGenerator* GeneratorFactory(PprRun_t srun);
 AliGenHijing* HijingStandard();
 AliGenGeVSim* GeVSimStandard(Float_t, Float_t);
 void ProcessEnvironmentVars();
+void LoadPythia();
 
 void Config()
 {
@@ -150,8 +146,10 @@ void Config()
     gRandom->SetSeed(sseed);
     cout<<"Seed for random number generation= "<<gRandom->GetSeed()<<endl; 
 
-
-   // libraries required by geant321
+    // Load Pythia libraries
+    LoadPythia();
+    
+    // libraries required by geant321
 #if defined(__CINT__)
     gSystem->Load("libgeant321");
 #endif
@@ -159,7 +157,7 @@ void Config()
     new     TGeant3TGeo("C++ Interface to Geant3");
 
     if(!AliCDBManager::Instance()->IsDefaultStorageSet()){
-      AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
+      AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
       AliCDBManager::Instance()->SetRun(0);
     }
 
@@ -258,11 +256,9 @@ void Config()
     gener->SetTrackingFlag(1);
     gener->Init();
     
-    if (smag == k2kG) {
+    if (smag == AliMagF::k2kG) {
        comment = comment.Append(" | L3 field 0.2 T");
-    } else if (smag == k4kG) {
-       comment = comment.Append(" | L3 field 0.4 T");
-    } else if (smag == k5kG) {
+    } else if (smag == AliMagF::k5kG) {
        comment = comment.Append(" | L3 field 0.5 T");
     }
     
@@ -279,10 +275,11 @@ void Config()
     
     
 // Field (L3 0.4 T)
-    AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., smag);
+    AliMagF* field = new AliMagF("Maps","Maps", 2, 1., 1., 10., smag);
     field->SetL3ConstField(0); //Using const. field in the barrel
+    TGeoGlobalMagField::Instance()->SetField(field);
+
     rl->CdGAFile();
-    gAlice->SetField(field);    
 //
     Int_t   iABSO   = 1;
     Int_t   iDIPO   = 1;
@@ -345,6 +342,7 @@ void Config()
         //=================== FRAME parameters ============================
 
         AliFRAMEv2 *FRAME = new AliFRAMEv2("FRAME", "Space Frame");
+       FRAME->SetHoles(1);
     }
 
     if (iSHIL)
@@ -362,60 +360,11 @@ void Config()
         AliPIPE *PIPE = new AliPIPEv3("PIPE", "Beam Pipe");
     }
  
-    if(iITS) {
+    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 [100,300]
-       ITS->SetThicknessDet2(200.);   // detector thickness on layer 2 must be in the range [100,300]
-       ITS->SetThicknessChip1(150.);  // chip thickness on layer 1 must be in the range [150,300]
-       ITS->SetThicknessChip2(150.);  // 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);  
+       AliITS *ITS  = new AliITSv11Hybrid("ITS","ITS v11Hybrid");
     }
 
     if (iTPC)
@@ -434,7 +383,7 @@ void Config()
     if (iHMPID)
     {
         //=================== HMPID parameters ===========================
-        AliHMPID *HMPID = new AliHMPIDv2("HMPID", "normal HMPID");
+        AliHMPID *HMPID = new AliHMPIDv3("HMPID", "normal HMPID");
 
     }
 
@@ -443,7 +392,7 @@ void Config()
     {
         //=================== ZDC parameters ============================
 
-        AliZDC *ZDC = new AliZDCv2("ZDC", "normal ZDC");
+        AliZDC *ZDC = new AliZDCv3("ZDC", "normal ZDC");
     }
 
     if (iTRD)
@@ -488,13 +437,13 @@ void Config()
     if (iEMCAL)
     {
         //=================== EMCAL parameters ============================
-        AliEMCAL *EMCAL = new AliEMCALv2("EMCAL", "SHISH_77_TRD1_2X2_FINAL_110DEG");
+        AliEMCAL *EMCAL = new AliEMCALv2("EMCAL", "EMCAL_COMPLETE");
     }
 
      if (iACORDE)
     {
         //=================== ACORDE parameters ============================
-        AliACORDE *ACORDE = new AliACORDEv0("ACORDE", "normal ACORDE");
+        AliACORDE *ACORDE = new AliACORDEv1("ACORDE", "normal ACORDE");
     }
 
      if (iVZERO)
@@ -1435,7 +1384,7 @@ AliGenerator* GeneratorFactory(PprRun_t srun) {
        AliGenSTRANGElib *lib = new AliGenSTRANGElib();
        Int_t particle;
        // Xi
-       particle = AliGenSTRANGElib::kXiMinus;
+       particle = kXiMinus;
        AliGenParam *genXi = new AliGenParam(16,particle,lib->GetPt(particle),lib->GetY(particle),lib->GetIp(particle));
        genXi->SetPtRange(0., 12.);
        genXi->SetYRange(-1.1, 1.1);
@@ -1443,7 +1392,7 @@ AliGenerator* GeneratorFactory(PprRun_t srun) {
  
        //
        // Omega
-       particle = AliGenSTRANGElib::kOmegaMinus;
+       particle = kOmegaMinus;
        AliGenParam *genOmega = new AliGenParam(10,particle,lib->GetPt(particle),lib->GetY(particle),lib->GetIp(particle));     
        genOmega->SetPtRange(0, 12.);
        genOmega->SetYRange(-1.1, 1.1);
@@ -1605,3 +1554,13 @@ void ProcessEnvironmentVars()
       sseed = atoi(gSystem->Getenv("CONFIG_SEED"));
     }
 }
+
+
+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
+}