]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - macros/ConfigPPR.C
TOF geometry with holes in front of three PHOS modules (Annalisa, Silvia)
[u/mrichter/AliRoot.git] / macros / ConfigPPR.C
index 40ec45c234425ae87216a0127dbec93cd24eb4e3..95dced18d1d0615abc7f1c12ed342b243d7abc9d 100644 (file)
@@ -9,13 +9,14 @@
 #include <TRandom.h>
 #include <TSystem.h>
 #include <TVirtualMC.h>
-#include <TGeant3.h>
+#include <TGeant3TGeo.h>
 #include <TPDGCode.h>
 #include <TF1.h>
 #include "STEER/AliRunLoader.h"
 #include "STEER/AliRun.h"
 #include "STEER/AliConfig.h"
 #include "STEER/AliGenerator.h"
+#include "STEER/AliLog.h"
 #include "PYTHIA6/AliDecayerPythia.h"
 #include "EVGEN/AliGenHIJINGpara.h"
 #include "THijing/AliGenHijing.h"
 #include "STEER/AliMagFMaps.h"
 #include "STRUCT/AliBODY.h"
 #include "STRUCT/AliMAG.h"
-#include "STRUCT/AliABSOv0.h"
-#include "STRUCT/AliDIPOv2.h"
-#include "STRUCT/AliHALL.h"
+#include "STRUCT/AliABSOv3.h"
+#include "STRUCT/AliDIPOv3.h"
+#include "STRUCT/AliHALLv3.h"
 #include "STRUCT/AliFRAMEv2.h"
-#include "STRUCT/AliSHILv2.h"
-#include "STRUCT/AliPIPEv0.h"
+#include "STRUCT/AliSHILv3.h"
+#include "STRUCT/AliPIPEv3.h"
 #include "ITS/AliITSvPPRasymmFMD.h"
 #include "TPC/AliTPCv2.h"
-#include "TOF/AliTOFv4T0.h"
-#include "RICH/AliRICHv1.h"
+#include "TOF/AliTOFv6T0.h"
+#include "HMPID/AliHMPIDv2.h"
 #include "ZDC/AliZDCv2.h"
 #include "TRD/AliTRDv1.h"
 #include "FMD/AliFMDv1.h"
 #include "MUON/AliMUONv1.h"
-#include "MUON/AliMUONSt1GeometryBuilderV2.h"
-#include "MUON/AliMUONSt2GeometryBuilder.h"
-#include "MUON/AliMUONSlatGeometryBuilder.h"
-#include "MUON/AliMUONTriggerGeometryBuilder.h"
 #include "PHOS/AliPHOSv1.h"
 #include "PMD/AliPMDv1.h"
-#include "START/AliSTARTv1.h"
-#include "EMCAL/AliEMCALv1.h"
-#include "CRT/AliCRTv0.h"
-#include "VZERO/AliVZEROv2.h"
+#include "T0/AliT0v1.h"
+#include "EMCAL/AliEMCALv2.h"
+#include "ACORDE/AliACORDEv0.h"
+#include "VZERO/AliVZEROv7.h"
 #endif
 
 enum PprRun_t 
@@ -103,11 +100,6 @@ const char* pprRunName[] = {
     "kFlow_2_2000", "kFlow_10_2000", "kFlow_6_2000", "kFlow_6_5000", "kHIJINGplus"
 };
 
-enum PprGeo_t 
-{
-    kHoles, kNoHoles
-};
-
 enum PprRad_t
 {
     kGluonRadiation, kNoGluonRadiation
@@ -118,14 +110,29 @@ enum PprMag_t
     k2kG, k4kG, k5kG
 };
 
+enum PprTrigConf_t
+{
+    kDefaultPPTrig, kDefaultPbPbTrig
+};
+
+const char * pprTrigConfName[] = {
+    "p-p","Pb-Pb"
+};
+
+enum PprGeo_t
+  {
+    kHoles, kNoHoles
+  };
 
 // This part for configuration    
 //static PprRun_t srun = test50;
-static PprRun_t srun = kHIJINGplus;
-static PprGeo_t sgeo = kNoHoles;
-static PprRad_t srad = kGluonRadiation;
-static PprMag_t smag = k5kG;
+static PprRun_t srun  = kHIJINGplus;
+static PprRad_t srad  = kGluonRadiation;
+static PprMag_t smag  = k5kG;
+static PprGeo_t geo   = kHoles;
 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
 
 // Comment line 
 static TString  comment;
@@ -157,9 +164,15 @@ void Config()
 
     new     TGeant3TGeo("C++ Interface to Geant3");
 
+    if(!AliCDBManager::Instance()->IsDefaultStorageSet()){
+      AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
+      AliCDBManager::Instance()->SetRun(0);
+    }
+
     AliRunLoader* rl=0x0;
 
-    cout<<"Config.C: Creating Run Loader ..."<<endl;
+    AliLog::Message(AliLog::kInfo, "Creating Run Loader", "", "", "Config()"," ConfigPPR.C", __LINE__);
+
     rl = AliRunLoader::Open("galice.root",
                            AliConfig::GetDefaultEventFolderName(),
                            "recreate");
@@ -171,6 +184,12 @@ void Config()
     rl->SetCompressionLevel(2);
     rl->SetNumberOfEventsPerFile(3);
     gAlice->SetRunLoader(rl);
+    // gAlice->SetGeometryFromFile("geometry.root");
+    // gAlice->SetGeometryFromCDB();
+
+    // Set the trigger configuration
+    gAlice->SetTriggerDescriptor(pprTrigConfName[strig]);
+    cout<<"Trigger configuration is set to  "<<pprTrigConfName[strig]<<endl;
 
     //
     // Set External decayer
@@ -234,7 +253,7 @@ void Config()
 
     // Debug and log level
     AliLog::SetGlobalDebugLevel(0);
-    AliLog::SetGlobalLogLevel(0);
+    AliLog::SetGlobalLogLevel(AliLog::kError);
 
     // Generator Configuration
     AliGenerator* gener = GeneratorFactory(srun);
@@ -262,14 +281,6 @@ void Config()
        comment = comment.Append(" | Gluon Radiation Off");
     }
 
-    if (sgeo == kHoles)
-    {
-       comment = comment.Append(" | Holes for PHOS/RICH");
-       
-    } else {
-       comment = comment.Append(" | No holes for PHOS/RICH");
-    }
-
     printf("\n \n Comment: %s \n \n", comment.Data());
     
     
@@ -290,16 +301,16 @@ void Config()
     Int_t   iPHOS   = 1;
     Int_t   iPIPE   = 1;
     Int_t   iPMD    = 1;
-    Int_t   iRICH   = 1;
+    Int_t   iHMPID   = 1;
     Int_t   iSHIL   = 1;
-    Int_t   iSTART  = 1;
+    Int_t   iT0  = 1;
     Int_t   iTOF    = 1;
     Int_t   iTPC    = 1;
     Int_t   iTRD    = 1;
     Int_t   iZDC    = 1;
     Int_t   iEMCAL  = 1;
     Int_t   iVZERO  = 1;
-    Int_t   iCRT    = 0;
+    Int_t   iACORDE    = 0;
 
     //=================== Alice BODY parameters =============================
     AliBODY *BODY = new AliBODY("BODY", "Alice envelop");
@@ -317,21 +328,21 @@ void Config()
     if (iABSO)
     {
         //=================== ABSO parameters ============================
-        AliABSO *ABSO = new AliABSOv0("ABSO", "Muon Absorber");
+        AliABSO *ABSO = new AliABSOv3("ABSO", "Muon Absorber");
     }
 
     if (iDIPO)
     {
         //=================== DIPO parameters ============================
 
-        AliDIPO *DIPO = new AliDIPOv2("DIPO", "Dipole version 2");
+        AliDIPO *DIPO = new AliDIPOv3("DIPO", "Dipole version 3");
     }
 
     if (iHALL)
     {
         //=================== HALL parameters ============================
 
-        AliHALL *HALL = new AliHALL("HALL", "Alice Hall");
+        AliHALL *HALL = new AliHALLv3("HALL", "Alice Hall");
     }
 
 
@@ -340,10 +351,10 @@ void Config()
         //=================== FRAME parameters ============================
 
         AliFRAMEv2 *FRAME = new AliFRAMEv2("FRAME", "Space Frame");
-       if (sgeo == kHoles) {
-           FRAME->SetHoles(1);
+        if (geo == kHoles) {
+         FRAME->SetHoles(1);
        } else {
-           FRAME->SetHoles(0);
+         FRAME->SetHoles(0);
        }
     }
 
@@ -351,7 +362,7 @@ void Config()
     {
         //=================== SHIL parameters ============================
 
-        AliSHIL *SHIL = new AliSHILv2("SHIL", "Shielding Version 2");
+        AliSHIL *SHIL = new AliSHILv3("SHIL", "Shielding Version 3");
     }
 
 
@@ -359,104 +370,33 @@ void Config()
     {
         //=================== PIPE parameters ============================
 
-        AliPIPE *PIPE = new AliPIPEv0("PIPE", "Beam Pipe");
+        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(kTRUE);   // 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
-
-    // 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();
+      //============================ TPC parameters =====================
         AliTPC *TPC = new AliTPCv2("TPC", "Default");
-
-        // All sectors included 
-        TPC->SetSecAL(-1);
-        TPC->SetSecAU(-1);
-
     }
 
 
     if (iTOF) {
         //=================== TOF parameters ============================
-       AliTOF *TOF = new AliTOFv4T0("TOF", "normal TOF");
+       AliTOF *TOF = new AliTOFv6T0("TOF", "normal TOF");
     }
 
 
-    if (iRICH)
+    if (iHMPID)
     {
-        //=================== RICH parameters ===========================
-        AliRICH *RICH = new AliRICHv1("RICH", "normal RICH");
+        //=================== HMPID parameters ===========================
+        AliHMPID *HMPID = new AliHMPIDv2("HMPID", "normal HMPID");
 
     }
 
@@ -473,17 +413,6 @@ void Config()
         //=================== 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 (sgeo == 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)
@@ -497,12 +426,6 @@ void Config()
         //=================== MUON parameters ===========================
         // New MUONv1 version (geometry defined via builders)
         AliMUON *MUON = new AliMUONv1("MUON", "default");
-       ((AliMUONv1*)MUON)->SetStepManagerVersionDE(true);
-       MUON->SetSegmentationType(2);// default wise to old (1), new (2)
-       MUON->AddGeometryBuilder(new AliMUONSt1GeometryBuilderV2(MUON));
-       MUON->AddGeometryBuilder(new AliMUONSt2GeometryBuilderV2(MUON));
-       MUON->AddGeometryBuilder(new AliMUONSlatGeometryBuilder(MUON));
-       MUON->AddGeometryBuilder(new AliMUONTriggerGeometryBuilder(MUON));
     }
     //=================== PHOS parameters ===========================
 
@@ -518,28 +441,28 @@ void Config()
         AliPMD *PMD = new AliPMDv1("PMD", "normal PMD");
     }
 
-    if (iSTART)
+    if (iT0)
     {
-        //=================== START parameters ============================
-        AliSTART *START = new AliSTARTv1("START", "START Detector");
+        //=================== T0 parameters ============================
+        AliT0 *T0 = new AliT0v1("T0", "T0 Detector");
     }
 
     if (iEMCAL)
     {
         //=================== EMCAL parameters ============================
-        AliEMCAL *EMCAL = new AliEMCALv1("EMCAL", "EMCAL_55_25");
+        AliEMCAL *EMCAL = new AliEMCALv2("EMCAL", "SHISH_77_TRD1_2X2_FINAL_110DEG");
     }
 
-     if (iCRT)
+     if (iACORDE)
     {
-        //=================== CRT parameters ============================
-        AliCRT *CRT = new AliCRTv0("CRT", "normal ACORDE");
+        //=================== ACORDE parameters ============================
+        AliACORDE *ACORDE = new AliACORDEv0("ACORDE", "normal ACORDE");
     }
 
      if (iVZERO)
     {
-        //=================== CRT parameters ============================
-        AliVZERO *VZERO = new AliVZEROv2("VZERO", "normal VZERO");
+        //=================== VZERO parameters ============================
+        AliVZERO *VZERO = new AliVZEROv7("VZERO", "normal VZERO");
     }
  
              
@@ -1294,7 +1217,7 @@ AliGenerator* GeneratorFactory(PprRun_t srun) {
        gener->SetMuonPtCut(0.8);
        gener->SetMuonThetaCut(171.,178.);
        gener->SetMuonMultiplicity(2);
-       gener->SetImpactParameterRange(12.,16.);  //Centrality class Cent1 for PDC04
+       gener->SetImpactParameterRange(0.,5.);  //Centrality class Cent1 for PDC04
        gGener=gener;
       }
       break;
@@ -1577,15 +1500,18 @@ AliGenGeVSim* GeVSimStandard(Float_t mult, Float_t vn)
     AliGeVSimParticle *ne =  new AliGeVSimParticle(kNeutron, 1, 0.05 * mm, 0.25, sigma_eta) ;
 //
 // Set Elliptic Flow properties        
-    pp->SetEllipticParam(vn,1.0,0.) ;
-    pm->SetEllipticParam(vn,1.0,0.) ;
-    p0->SetEllipticParam(vn,1.0,0.) ;
-    pr->SetEllipticParam(vn,1.0,0.) ;
-    ne->SetEllipticParam(vn,1.0,0.) ;
-    ks->SetEllipticParam(vn,1.0,0.) ;
-    kl->SetEllipticParam(vn,1.0,0.) ;
-    kp->SetEllipticParam(vn,1.0,0.) ;
-    km->SetEllipticParam(vn,1.0,0.) ;
+
+    Float_t pTsaturation = 2. ;
+
+    pp->SetEllipticParam(vn,pTsaturation,0.) ;
+    pm->SetEllipticParam(vn,pTsaturation,0.) ;
+    p0->SetEllipticParam(vn,pTsaturation,0.) ;
+    pr->SetEllipticParam(vn,pTsaturation,0.) ;
+    ne->SetEllipticParam(vn,pTsaturation,0.) ;
+    ks->SetEllipticParam(vn,pTsaturation,0.) ;
+    kl->SetEllipticParam(vn,pTsaturation,0.) ;
+    kp->SetEllipticParam(vn,pTsaturation,0.) ;
+    km->SetEllipticParam(vn,pTsaturation,0.) ;
 //
 // Set Direct Flow properties  
     pp->SetDirectedParam(vn,1.0,0.) ;