]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EMCAL/macros/Config.C
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / EMCAL / macros / Config.C
old mode 100755 (executable)
new mode 100644 (file)
index 81bdcf9..80e8fc2
@@ -26,7 +26,7 @@
 #include "STRUCT/AliFRAMEv2.h"
 #include "STRUCT/AliSHILv3.h"
 #include "STRUCT/AliPIPEv3.h"
-#include "ITS/AliITSvPPRasymmFMD.h"
+#include "ITS/AliITSv11.h"
 #include "TPC/AliTPCv2.h"
 #include "TOF/AliTOFv6T0.h"
 #include "HMPID/AliHMPIDv2.h"
@@ -44,6 +44,7 @@
 
 Float_t EtaToTheta(Float_t arg);
 void    LoadPythia();
+AliGenerator *GenParamCalo(Int_t nPart, Int_t type, TString calo);
 
 Int_t  year = 2012;
 Bool_t checkGeoAndRun = kFALSE;
@@ -82,7 +83,7 @@ void Config()
     return;
   }
   rl->SetCompressionLevel(2);
-  rl->SetNumberOfEventsPerFile(100);
+  rl->SetNumberOfEventsPerFile(10000);
   gAlice->SetRunLoader(rl);
   
   // Set the trigger configuration
@@ -133,7 +134,7 @@ void Config()
   gMC->SetCut("TOFMAX", tofmax); 
   
   
-  int     nParticles = 5;
+  int     nParticles = 1;
   if (gSystem->Getenv("CONFIG_NPARTICLES"))
   {
     nParticles = atoi(gSystem->Getenv("CONFIG_NPARTICLES"));
@@ -145,20 +146,52 @@ void Config()
   }
   
   AliGenBox *gener = new AliGenBox(nParticles);
-  gener->SetMomentumRange(1.,10.);
+  gener->SetMomentumRange(10.,10.);
+  
+  gener->SetPart(22);
   
   if     (year == 2010)
     gener->SetPhiRange(80.0,120.0);
   else if(year == 2011)
     gener->SetPhiRange(80.0,180.0);
-  else
+  else if(year == 2012 || year == 2013)
     gener->SetPhiRange(80.0,190.0);
+  else
+    gener->SetPhiRange(80.0,330.0); // Include DCal
   
   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);
+//  AliGenLib* lib   = new AliGenPHOSlib();
+//  Int_t      type  = AliGenPHOSlib::kEtaFlat;
+//  AliGenParam *gener = new AliGenParam(1,lib,type,"");
+//     gener->SetMomentumRange(0,999);
+//     gener->SetPtRange(1,30);
+//     gener->SetPhiRange(80, 200.);
+//     gener->SetYRange(-2,2);
+//     gener->SetThetaRange(EtaToTheta(0.7),EtaToTheta(-0.7));
+//     gener->SetCutOnChild(1);
+//  gener->SetChildPtRange(0.1,30);
+//     gener->SetChildThetaRange(EtaToTheta(0.7),EtaToTheta(-0.7));
+//  gener->SetChildPhiRange(80, 180.);
+//     gener->SetOrigin(0,0,0);        //vertex position
+//     gener->SetSigma(0,0,5.3);       //Sigma in (X,Y,Z) (cm) on IP position
+//     gener->SetForceDecay(kGammaEM);
+//
+//  //gener->SetTrackingFlag(0);
+  
+//  AliGenCocktail *gener = new AliGenCocktail();
+//  gener->SetProjectile("A", 208, 82);
+//  gener->SetTarget    ("A", 208, 82);
+//  
+//  // 1 Pi0 in EMCAL, 2010 configuration, 4 SM
+//  AliGenParam *gEMCPi0 = GenParamCalo(1, AliGenPHOSlib::kPi0Flat, "EMCAL");
+//  gener->AddGenerator(gEMCPi0,"pi0EMC", 1);
+//  
+//  // 1 Eta in EMCAL, 2010 configuration, 4 SM
+//  AliGenParam *gEMCEta = GenParamCalo(1, AliGenPHOSlib::kEtaFlat, "EMCAL");
+//  gener->AddGenerator(gEMCEta,"etaEMC", 1);
+//  
   gener->Init();
   
   // 
@@ -250,7 +283,7 @@ void Config()
     
     //=================== ITS parameters ============================
     
-    AliITSvPPRasymmFMD *ITS  = new AliITSvPPRasymmFMD("ITS","ITS PPR detailed version with asymmetric services");
+    AliITS *ITS  = new AliITSv11("ITS","ITS v11");
   }
   
   if (iTPC)
@@ -269,7 +302,7 @@ void Config()
   if (iHMPID)
   {
     //=================== HMPID parameters ===========================
-    AliHMPID *HMPID = new AliHMPIDv2("HMPID", "normal HMPID");
+    AliHMPID *HMPID = new AliHMPIDv3("HMPID", "normal HMPID");
     
   }
   
@@ -286,6 +319,30 @@ void Config()
     //=================== TRD parameters ============================
     
     AliTRD *TRD = new AliTRDv1("TRD", "TRD slow simulator");
+    AliTRDgeometry *geoTRD = TRD->GetGeometry();
+    // starting at 3h in positive direction
+    if(year==2011 || year == 2010)
+    { // not sure if good for 2010
+      // Partial geometry: modules at 0,1,7,8,9,10,11,15,16,17
+      printf("*** TRD configuration for 2011\n");
+      geoTRD->SetSMstatus(2,0);
+      geoTRD->SetSMstatus(3,0);
+      geoTRD->SetSMstatus(4,0);
+      geoTRD->SetSMstatus(5,0);
+      geoTRD->SetSMstatus(6,0);
+      geoTRD->SetSMstatus(12,0);
+      geoTRD->SetSMstatus(13,0);
+      geoTRD->SetSMstatus(14,0);
+    }
+    else if(year==2012)
+    {
+      printf("*** TRD configuration for 2012\n");
+      geoTRD->SetSMstatus(4,0);
+      geoTRD->SetSMstatus(5,0);
+      geoTRD->SetSMstatus(12,0);
+      geoTRD->SetSMstatus(13,0);
+      geoTRD->SetSMstatus(14,0); 
+    }
   }
   
   if (iFMD)
@@ -304,7 +361,7 @@ void Config()
   
   if (iPHOS)
   {
-    AliPHOS *PHOS = new AliPHOSv1("PHOS", "IHEP");
+    AliPHOS *PHOS = new AliPHOSv1("PHOS", "noCPV_Modules123");
   }
   
   
@@ -323,14 +380,15 @@ void Config()
   if (iEMCAL)
   {
     //=================== EMCAL parameters ============================
+    AliEMCAL *EMCAL = 0;
     if      (year == 2010)  // d phi = 40 degrees
-      AliEMCAL *EMCAL = new AliEMCALv2("EMCAL", "EMCAL_FIRSTYEARV1",    checkGeoAndRun);
+      EMCAL = new AliEMCALv2("EMCAL", "EMCAL_FIRSTYEARV1",    checkGeoAndRun);
     else if (year == 2011)  // d phi = 100 degrees
-      AliEMCAL *EMCAL = new AliEMCALv2("EMCAL", "EMCAL_COMPLETEV1",     checkGeoAndRun);
-    else if (year > 2011)   // d phi = 110 degrees
-      AliEMCAL *EMCAL = new AliEMCALv2("EMCAL", "EMCAL_COMPLETE12SMV1", checkGeoAndRun);
-    else // Old configuration with 110 degrees but not perfect geometry
-      AliEMCAL *EMCAL = new AliEMCALv2("EMCAL", "EMCAL_COMPLETE",       checkGeoAndRun);
+      EMCAL = new AliEMCALv2("EMCAL", "EMCAL_COMPLETEV1",     checkGeoAndRun);
+    else if (year == 2012 || year == 2013)   // d phi = 107 degrees
+      EMCAL = new AliEMCALv2("EMCAL", "EMCAL_COMPLETE12SMV1", checkGeoAndRun);
+    else
+      EMCAL = new AliEMCALv2("EMCAL", "EMCAL_COMPLETE12SMV1_DCAL_8SM", checkGeoAndRun); // EMCAL+DCAL dphi = 107 (EMCAL) + 33 (gap) + 67 (DCAL)
   }
   
   if (iACORDE)
@@ -362,3 +420,45 @@ void LoadPythia()
   gSystem->Load("libAliPythia6.so");  // ALICE specific
   // implementations                           
 }
+
+
+AliGenerator * GenParamCalo(Int_t nPart, Int_t type, TString calo)
+{
+  // nPart of type (Pi0, Eta, Pi0Flat, EtaFlat, ...) in EMCAL or PHOS
+  // CAREFUL EMCAL year 2010 configuration
+  AliGenParam *gener = new AliGenParam(nPart,new AliGenPHOSlib(),type,"");
+  
+  // meson cuts
+  gener->SetMomentumRange(0,999);
+  gener->SetYRange(-2,2);
+  gener->SetPtRange(1,30);
+  // photon cuts
+  gener->SetForceDecay(kGammaEM); // Ensure the decays are photons
+  gener->SetCutOnChild(1);
+  gener->SetChildPtRange(0.,30);
+  
+  if(calo=="EMCAL")
+  {
+    //meson acceptance
+    gener->SetPhiRange(80., 100.); // year 2010
+    //gener->SetPhiRange(80., 180.); // year 2011
+    gener->SetThetaRange(EtaToTheta(0.7),EtaToTheta(-0.7));
+    //decay acceptance
+    gener->SetChildThetaRange(EtaToTheta(0.7),EtaToTheta(-0.7));
+    gener->SetChildPhiRange(80., 100.); // year 2010
+    //gener->SetChildPhiRange(80., 180.); // year 2011
+  }
+  else if(calo=="PHOS")
+  {
+    //meson acceptance
+    gener->SetPhiRange(260., 320.);
+    gener->SetThetaRange(EtaToTheta(0.13),EtaToTheta(-0.13));
+    //decay acceptance
+    gener->SetChildThetaRange(EtaToTheta(0.13),EtaToTheta(-0.13));
+    gener->SetChildPhiRange(260., 320.);
+  }
+  
+  return gener;
+  
+}
+