UPdated macros for running with Geant4
authorivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 9 Sep 2011 08:08:04 +0000 (08:08 +0000)
committerivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 9 Sep 2011 08:08:04 +0000 (08:08 +0000)
MUON/commonConfig.C
MUON/g3Config.C
MUON/g4Config.C
MUON/genTestConfig.C

index 088d174..4fd03fc 100644 (file)
@@ -36,8 +36,9 @@ static TString comment;
 // Functions
 void  LoadPythia();
 
-void commonConfig(Bool_t setRootGeometry = kFALSE,
-                  const char* digitstore="AliMUONDigitStoreV2S")
+void commonConfig(const char* directory="", 
+                  const char* digitstore="AliMUONDigitStoreV2S",
+                  bool forEmbedding=kFALSE)
 {
   cout << "Running commonConfig.C ... " << endl;
 
@@ -51,15 +52,12 @@ void commonConfig(Bool_t setRootGeometry = kFALSE,
   // ALICE steering object (AliRunLoader)
   //=======================================================================
 
-  // Set Root geometry file
-  if ( setRootGeometry ) {
-    AliSimulation::Instance()->SetGeometryFile("$ALICE_ROOT/MUON/geometry/geometry.root");
-  }
-
+  Text_t filename[100];
+  sprintf(filename,"%sgalice.root",directory);
   AliRunLoader* rl 
-    = AliRunLoader::Open("galice.root",
-                         AliConfig::GetDefaultEventFolderName(),
-                         "recreate");
+    = AliRunLoader::Open(filename,
+                        AliConfig::GetDefaultEventFolderName(),
+                        "recreate");
   if ( ! rl ) {
     gAlice->Fatal("Config.C","Can not instatiate the Run Loader");
     return;
@@ -67,35 +65,31 @@ void commonConfig(Bool_t setRootGeometry = kFALSE,
   rl->SetCompressionLevel(2);
   rl->SetNumberOfEventsPerFile(100);
   gAlice->SetRunLoader(rl);
+  cout << "Run loader created ... " << endl;
   
-  //======================================================================
-  // Trigger configuration
-  //=======================================================================
-
-  gAlice->SetTriggerDescriptor(pprTrigConfName[strig]);
-  cout << "Trigger configuration is set to  " << pprTrigConfName[strig] << endl;
-
   // ============================= 
   // Magnetic field
   // ============================= 
 
-  // Field (L3 0.5 T)
+  //============================================================= 
   // Field (L3 0.5 T)
   TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", -1., -1, AliMagF::k5kG));
+  cout << "Field created ... " << endl;
  
+  //============================================================= 
   //============================================================= 
   //=================== Alice BODY parameters =============================
-  AliBODY *BODY = new AliBODY("BODY","Alice envelop");
+  new AliBODY("BODY","Alice envelop");
   //=================== ABSO parameters ============================
-  AliABSO *ABSO = new AliABSOv3("ABSO", "Muon Absorber");
+  new AliABSOv3("ABSO", "Muon Absorber");
   //=================== DIPO parameters ============================
-  AliDIPO *DIPO = new AliDIPOv3("DIPO", "Dipole version 2");
+  new AliDIPOv3("DIPO", "Dipole version 2");
   //================== HALL parameters ============================
-  AliHALL *HALL = new AliHALLv3("HALL", "Alice Hall");
+  new AliHALLv3("HALL", "Alice Hall");
   //=================== PIPE parameters ============================
-  AliPIPE *PIPE = new AliPIPEv3("PIPE", "Beam Pipe");
+  new AliPIPEv3("PIPE", "Beam Pipe");
   //=================== SHIL parameters ============================
-  AliSHIL *SHIL = new AliSHILv3("SHIL", "Shielding Version 2");
+  new AliSHILv3("SHIL", "Shielding Version 2");
 
   //=================== MUON Subsystem ===========================
   AliMUON *MUON = new AliMUONv1("MUON", "default");
@@ -109,13 +103,24 @@ void commonConfig(Bool_t setRootGeometry = kFALSE,
   // activate trigger chamber efficiency by cells (0=default, 1=trigger efficiency according to AliMUONTriggerEfficiencyCells
   //  MUON->SetTriggerEffCells(0);
 
+  // Activate the following line when running with Fluka
+  // MUON->SetIsMaxStep(kFALSE);
+
   // Use SetDigitStoreClassName() to change the digitStore implementation used by (s)digitizer
   MUON->SetDigitStoreClassName(digitstore);
   
   cout << "MUON DigitStore is " << MUON->DigitStoreClassName().Data() << endl;
-  
-  // Noise-only digits in tracker/trigger (0=no noise, 1=default (noise in tracker), 2=noise in tracker and trigger):
-  //MUON->SetDigitizerWithNoise(kFALSE);
+
+  if ( forEmbedding ) 
+  {
+    // Noise-only digits in tracker/trigger (0=no noise, 1=default (noise in tracker), 2=noise in tracker and trigger):
+    cout << "****** DISABLING NOISE GENERATION AS WE DO EMBEDDING ******" << endl;
+    MUON->SetDigitizerWithNoise(0);
+               MUON->SetConvertTrigger(true);
+    
+    new AliITSv11Hybrid("ITS","ITS v11Hybrid");
+    
+  }
 
   // Use non-high performance raw data decoder 
   //MUON->SetFastTrackerDecoder(kFALSE);  
index 5aeb2b1..5d6d6b4 100644 (file)
 /// \file g3Config.C
 /// \brief Configuration macro for MUON spectrometer Geant3 simulation
 
-void Config()
+void Config(const char* directory="", 
+            const char* option="param", 
+           const char* digitstore="AliMUONDigitStoreV2S",
+           bool forEmbedding=kFALSE)
 {
   cout << "Running g3Config.C ... " << endl;
 
   // AliRoot setup
   //
   gROOT->LoadMacro("$ALICE_ROOT/MUON/commonConfig.C");
-  commonConfig(kFALSE);
+  commonConfig(directory, digitstore, forEmbedding);
 
   // Load Geant3 + Geant3 VMC libraries
   //
@@ -42,7 +45,7 @@ void Config()
   // (it has to be created after MC, as it may use decayer via VMC)
   //
   gROOT->LoadMacro("$ALICE_ROOT/MUON/genTestConfig.C");
-  genConfig();
+  genConfig(option);
 
   // From external file
   //
index 91f38ac..19de0ed 100644 (file)
 ///
 /// \author I. Hrivnacova, IPN Orsay
        
-void Config()
+void Config(const char* directory="", 
+            const char* option="param", 
+            const char* digitstore="AliMUONDigitStoreV2S",
+            bool forEmbedding=kFALSE)
 {
   cout << "Running g4Config.C ... " << endl;
 
   // AliRoot setup
   //
   gROOT->LoadMacro("$ALICE_ROOT/MUON/commonConfig.C");
-  commonConfig(kTRUE);
+  commonConfig(directory, digitstore, forEmbedding);
 
   // Load Geant4 + Geant4 VMC libraries
   //
@@ -100,7 +103,7 @@ void Config()
   // (it has to be created after MC, as it may use decayer via VMC)
   //
   gROOT->LoadMacro("$ALICE_ROOT/MUON/genTestConfig.C");
-  genConfig();
+  genConfig(option);
 
   // From external file
   //
index a6bf8fd..c598aa3 100644 (file)
@@ -104,6 +104,7 @@ AliGenerator* genConfig(char option[6]="param")
     gener->SetOrigin(0,0,0);          //vertex position    gener->SetSigma(0,0,0);           //Sigma in (X,Y,Z) (cm) on IP position
     gener->SetForceDecay(kDiMuon);
     gener->SetTrackingFlag(1);
+    gener->Init();
   }
   if (!strcmp(option,"paramJpsi")) {
     AliGenParam *gener = new AliGenParam(1, AliGenMUONlib::kJpsi);
@@ -116,6 +117,7 @@ AliGenerator* genConfig(char option[6]="param")
     gener->SetOrigin(0,0,0);
     gener->SetForceDecay(kDiMuon);
     gener->SetTrackingFlag(1);
+    gener->Init();
   }
   if (!strcmp(option,"hijing")) { //Hijing generator from ConfigPPR in macros
     AliGenHijing *gener = new AliGenHijing(-1);
@@ -140,6 +142,7 @@ AliGenerator* genConfig(char option[6]="param")
     gener->SetSelectAll(0);
     // impact parameter range
     gener->SetImpactParameterRange(0., 5.); // 0. - 5. fm corresponds to ~10% most central
+    gener->Init();
   }
   if (!strcmp(option,"muoncocktail")) { // Muon cocktail for PbPb
     AliGenMUONCocktail * gener = new AliGenMUONCocktail();
@@ -153,10 +156,8 @@ AliGenerator* genConfig(char option[6]="param")
     gener->SetVertexSmear(kPerTrack);  
     gener->SetOrigin(0,0,0);        // Vertex position
     gener->SetSigma(0,0,0.0);       // Sigma in (X,Y,Z) (cm) on IP position
+    gener->Init();
   }  
-
-  gener->SetDecayer(decayer);
-  gener->Init();
   return gener;
   
   cout << "Running genGunConfig.C finished ... " << endl;