]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/loadmacros.C
Fix memory leak (in simulations with trigger chamber efficiency < 1)
[u/mrichter/AliRoot.git] / MUON / loadmacros.C
index e9f4adf9b5f75267dd1a7c3c492e715fbab833de..f32ad74b8dacd6045d4d206044fa4ca5096af351 100644 (file)
 
 /// \ingroup macros
 /// \file loadmacros.C
-/// \brief Macro which loads and compiles the MUON macros:
+/// \brief Macro which loads and compiles the MUON macros
 ///
 /// \author I. Hrivnacova, IPN Orsay
-///
-/// <pre>
-/// runSimulation.C               - ok, comp,  x;      Laurent
-/// runReconstruction.C           - ok, comp,  x;      Laurent
-/// fastMUONGen.C                 - ok, comp,  x;      Hermine, Alessandro
-/// fastMUONSim.C                 - ok, comp,  x;      Hermine, Alessandro
-/// DecodeRecoCocktail.C          - ok, comp,  README; Hermine, Alessandro
-/// ReadRecoCocktail.C            - ok, comp,  README; Hermine, Alessandro
-/// MergeMuonLight.C              - x,  comp,  README; Hermine, Alessandro
-/// MakeMUONFullMisAlignment.C    - ok, comp,  README; Javier, Ivana
-/// MakeMUONResMisAlignment.C     - ok, comp,  README; Javier, Ivana
-/// MakeMUONZeroMisAlignment.C    - ok, comp,  README; Javier, Ivana
-/// MUONAlignment.C               - ok, comp,  README; Javier
-/// MUONCheck.C                   - ok, comp,  x,      Frederic, in test
-/// MUONCheckDI.C                 - x,  comp,  x       Artur     
-/// MUONCheckMisAligner.C         - ok, comp,  x,      Javier
-/// MUONefficiency.C              - ok, comp,  README; Christophe, in test
-/// MUONGenerateBusPatch.C        - ok, comp,  x,      Christian
-/// MUONGenerateGeometryData.C    - ok, comp,  README; Ivana
-/// MUONGenerateTestGMS.C         - ok, comp,  READMEshuttle;  Ivana
-/// MUONmassPlot_ESD.C            - ok, comp,  README, Christian
-/// MUONplotefficiency.C          - ok, comp,  README; Christophe
-/// MUONRawStreamTracker.C        - x,  comp,  README; Christian
-/// MUONRawStreamTrigger.C        - x,  comp,  README; Christian
-/// MUONRecoCheck.C               - ok, comp,  README; Hermine, Alessandro
-/// MUONResoEffChamber.C          - ok, comp,  x,      Nicolas
-/// MUONStatusMap.C               - ok, comp,  x,      Laurent
-/// MUONTimeRawStreamTracker.C    - ok, comp,  README, Artur
-/// MUONTrigger.C                 - ok, comp,  README, Philippe C.
-/// MUONTriggerEfficiency.C       - ok, comp,  x,      Philippe C., in test
-/// MUONTriggerEfficiencyPt.C     - x,  comp,  README, Philippe C.
-/// MUONTriggerChamberEfficiency.C- x,  comp,  README, Diego
-/// TestMUONPreprocessor.C        - ok, comp,  READMEshuttle; Laurent
-/// </pre>
-/// 
-/// - 1st item: ok/fails/x - if the macro runs; x means that it was not tried either for lack
-///             of documentation, or expertise
-/// - 2nd item: comp/x     - if the macro can be compiled
-/// - 3rd item: README/x  - if it is documented in README, x means no doxumentation outside the 
-///                         macro itself
-/// - 4th item: author(s) - responsible for macro maintenance 
-/// - eventually 5th item: - if the macro is run within test scripts                         
 
 #if !defined(__CINT__) || defined(__MAKECINT__)
 
 
 #endif
 
-void loadmacros () 
+void init() 
 {
+/// Set include path and load libraries which are not 
+/// linked with aliroot
+
   // Redefine include paths as some macros need
   // to see more than what is define in rootlogon.C
   //
@@ -83,7 +44,12 @@ void loadmacros ()
   includePath        += "-I${ALICE_ROOT}/SHUTTLE/TestShuttle ";
   includePath        += "-I${ALICE_ROOT}/ITS ";
   includePath        += "-I${ALICE_ROOT}/MUON ";
-  includePath        += "-I${ALICE_ROOT}/MUON/mapping";
+  includePath        += "-I${ALICE_ROOT}/MUON/mapping ";
+
+  // includes needed for Config.C
+  includePath        += "-I${ALICE_ROOT}/STRUCT ";
+  includePath        += "-I${ALICE}/geant3/TGeant3 ";
+  includePath        += "-I${ALICE_ROOT}/THijing";
   gSystem->SetIncludePath(includePath.Data());
 
   // Load libraries not linked with aliroot
@@ -91,37 +57,85 @@ void loadmacros ()
   gSystem->Load("$ALICE_ROOT/SHUTTLE/TestShuttle/libTestShuttle.so");
   gSystem->Load("libMUONshuttle.so");
   gSystem->Load("libMUONevaluation.so");
+  gSystem->Load("liblhapdf.so");     
+  gSystem->Load("libpythia6.so");    
+  gSystem->Load("libgeant321.so");
+  gSystem->Load("libEG");
+  gSystem->Load("libEGPythia6");
+  gSystem->Load("libAliPythia6.so");
+  
+  // libraries needed for Config.C
+  gSystem->Load("libSTRUCT.so");
+  gSystem->Load("libITSbase.so");
+  gSystem->Load("libITSsim.so");
+}  
 
-  // Load macros
-  //
-  gROOT->LoadMacro("$ALICE_ROOT/MUON/runSimulation.C++");      
-  gROOT->LoadMacro("$ALICE_ROOT/MUON/runReconstruction.C++");      
-  gROOT->LoadMacro("$ALICE_ROOT/MUON/fastMUONGen.C++");      
-  gROOT->LoadMacro("$ALICE_ROOT/MUON/fastMUONSim.C++");      
-  // gROOT->LoadMacro("$ALICE_ROOT/MUON/DecodeRecoCocktail.C++");      
-  gROOT->LoadMacro("$ALICE_ROOT/MUON/ReadRecoCocktail.C++");     
-  gROOT->LoadMacro("$ALICE_ROOT/MUON/MergeMuonLight.C++");       
-  gROOT->LoadMacro("$ALICE_ROOT/MUON/MakeMUONFullMisAlignment.C++");
-  gROOT->LoadMacro("$ALICE_ROOT/MUON/MakeMUONResMisAlignment.C++"); 
-  gROOT->LoadMacro("$ALICE_ROOT/MUON/MakeMUONZeroMisAlignment.C++");
-  gROOT->LoadMacro("$ALICE_ROOT/MUON/MUONAlignment.C++");           
-  gROOT->LoadMacro("$ALICE_ROOT/MUON/MUONCheck.C++");               
-  gROOT->LoadMacro("$ALICE_ROOT/MUON/MUONCheckDI.C++");          
-  gROOT->LoadMacro("$ALICE_ROOT/MUON/MUONCheckMisAligner.C++");     
-  gROOT->LoadMacro("$ALICE_ROOT/MUON/MUONefficiency.C++");          
-  gROOT->LoadMacro("$ALICE_ROOT/MUON/MUONGenerateBusPatch.C++");    
-  gROOT->LoadMacro("$ALICE_ROOT/MUON/MUONGenerateGeometryData.C++");
-  gROOT->LoadMacro("$ALICE_ROOT/MUON/MUONGenerateTestGMS.C++");     
-  gROOT->LoadMacro("$ALICE_ROOT/MUON/MUONmassPlot_ESD.C++");        
-  gROOT->LoadMacro("$ALICE_ROOT/MUON/MUONplotefficiency.C++");      
-  gROOT->LoadMacro("$ALICE_ROOT/MUON/MUONRawStreamTracker.C++");    
-  gROOT->LoadMacro("$ALICE_ROOT/MUON/MUONRawStreamTrigger.C++");
-  gROOT->LoadMacro("$ALICE_ROOT/MUON/MUONRecoCheck.C++");           
-  // gROOT->LoadMacro("$ALICE_ROOT/MUON/MUONResoEffChamber.C++"); 
-  gROOT->LoadMacro("$ALICE_ROOT/MUON/MUONStatusMap.C++");        
-  gROOT->LoadMacro("$ALICE_ROOT/MUON/MUONTrigger.C++");        
-  gROOT->LoadMacro("$ALICE_ROOT/MUON/MUONTriggerEfficiency.C++");   
-  gROOT->LoadMacro("$ALICE_ROOT/MUON/MUONTriggerEfficiencyPt.C++"); 
-  gROOT->LoadMacro("$ALICE_ROOT/MUON/MUONTriggerChamberEfficiency.C++"); 
-  gROOT->LoadMacro("$ALICE_ROOT/MUON/TestMUONPreprocessor.C++");    
+void loadmacro(const TString& macroName)
+{
+/// Load the macro with given name
+
+  TString path = "$ALICE_ROOT/MUON/";
+  path += macroName;
+  path += ".C++";
+  gROOT->LoadMacro(path.Data());
+}  
+
+void loadmacros () 
+{
+  init();
+
+  loadmacro("AddTaskMuonAlignment");       // Javier
+  loadmacro("AddTaskMuonReAlign");         // Javier
+  loadmacro("DecodeRecoCocktail");         // Hermine, Alessandro     
+  loadmacro("Config");                     //      
+  loadmacro("DIMUONFakes");                // Philippe P.
+  loadmacro("fastMUONGen");                // Hermine, Alessandro
+  loadmacro("fastMUONSim");                // Hermine, Alessandro
+  loadmacro("MakeMUONFullMisAlignment");   // Javier, Ivana
+  loadmacro("MakeMUONResMisAlignment");    // Javier, Ivana
+  loadmacro("MakeMUONZeroMisAlignment");   // Javier, Ivana
+  loadmacro("MakeMUONRecoParamArray");     // Philippe P.
+  loadmacro("MakeMUONSingleRecoParam");    // Philippe P.
+  loadmacro("MergeMuonLight");             // Hermine, Alessandro
+  loadmacro("MUONAlignment");              // Javier   
+  loadmacro("MUONChamberMaterialBudget");  // Philippe P.   
+  loadmacro("MUONCheck");                  // Frederic          
+  loadmacro("MUONCheckDI");                // Artur
+  loadmacro("MUONCheckMisAligner");        // Javier
+  loadmacro("MUONClusterInfo");            // Philippe P.
+  loadmacro("MUONFakes");                  // Philippe P.
+  loadmacro("MUONefficiency");             // Christophe
+  loadmacro("MUONGenerateBusPatch");       // Christian
+  loadmacro("MUONGenerateGeometryData");   // Ivana
+  loadmacro("MUONGenerateTestGMS");        // Ivana
+  loadmacro("MUONGeometryViewingHelper");  // Ivana
+  loadmacro("MUONmassPlot_ESD");           // Christian    
+  loadmacro("MUONOfflineShift");           // Laurent
+  loadmacro("MUONplotefficiency");         // Christian
+  loadmacro("MUONRawStreamTracker");       // Christian   
+  loadmacro("MUONRawStreamTrigger");       // Christian 
+  loadmacro("MUONReCalcGlobalTrigger");    // Bogdan       
+  loadmacro("MUONRecoCheck");              // Hermine, Alessandro
+  loadmacro("MUONRefit");                  // Philippe P.
+  loadmacro("MUONStatusMap");              // Laurent
+  loadmacro("MUONSurveyUtil");             // Javier
+  loadmacro("MUONSurveyCh1");              // Javier
+  loadmacro("MUONSurveyCh2");              // Javier
+  loadmacro("MUONSurveyCh3");              // Javier
+  loadmacro("MUONSurveyCh4");              // Javier
+  loadmacro("MUONSurveyCh5");              // Javier
+  loadmacro("MUONSurveyCh8L");             // Javier
+  loadmacro("MUONTimeRawStreamTracker");   // Artur
+  loadmacro("MUONTimeRawStreamTrigger");   // Artur 
+  loadmacro("MUONTrigger");                // Bogdan
+  loadmacro("MUONTriggerChamberEfficiency"); // Diego
+  loadmacro("MUONTriggerEfficiency");      // Bogdan
+  loadmacro("MUONTriggerEfficiencyPt");    // Bogdan
+  loadmacro("ReadRecoCocktail");           // Hermine, Alessandro   
+  loadmacro("runDataReconstruction");      // Laurent
+  loadmacro("runReconstruction");          // Laurent
+  loadmacro("runSimulation");              // Laurent
+  loadmacro("TestMUONPreprocessor");       // Laurent
+  loadmacro("TestRecPoints");              // Diego
+  loadmacro("UpdateCDBCTPConfig");         // Bogdan
 }