Added test macro for MC Generator Component
authorjthaeder <jthaeder@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 3 Jun 2009 11:24:34 +0000 (11:24 +0000)
committerjthaeder <jthaeder@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 3 Jun 2009 11:24:34 +0000 (11:24 +0000)
HLT/exa/MCGeneratorPublisher.C [new file with mode: 0644]

diff --git a/HLT/exa/MCGeneratorPublisher.C b/HLT/exa/MCGeneratorPublisher.C
new file mode 100644 (file)
index 0000000..9832a02
--- /dev/null
@@ -0,0 +1,114 @@
+/**
+ * @file MCGeneratorPublisher.C
+ * @brief Macro for testing of the generation and publishing of AliHLTMCEvent
+ *
+ * This macro is a testing/example macro of how to use the MCGenerator 
+ * (AliHLTMCGeneratorComponent) and RootFileWriter (AliHLTRootFileWriter). 
+ * It defines only two component in the chain, the publisher, which 
+ * publishes the content of the root files according to the selection. 
+ * Be aware there can be several root objects in one root file.
+ *
+ * For more descriptions, especially the used datatypes and specification:
+ * @see AliHLTMCGeneratorComponent
+ *
+ * @author thaeder@kip.uni-heidelberg.de
+ * @ingroup alihlt_tutorial
+ */
+
+// ---------------------------------------------------------------------------- 
+// -- Pythia Parameter 
+// ---------------------------------------------------------------------------- 
+
+enum PprRun_t {
+  kPythia6Jets20_24,   kPythia6Jets24_29,   kPythia6Jets29_35,
+  kPythia6Jets35_42,   kPythia6Jets42_50,   kPythia6Jets50_60,
+  kPythia6Jets60_72,   kPythia6Jets72_86,   kPythia6Jets86_104,
+  kPythia6Jets104_125, kPythia6Jets125_150, kPythia6Jets150_180,
+  kPyJetJet, kPyGammaJetPHOS, kRunMax
+};
+
+const Char_t* pprRunName[] = {
+  "kPythia6Jets20_24",   "kPythia6Jets24_29",   "kPythia6Jets29_35",
+  "kPythia6Jets35_42",   "kPythia6Jets42_50",   "kPythia6Jets50_60",
+  "kPythia6Jets60_72",   "kPythia6Jets72_86",   "kPythia6Jets86_104",
+  "kPythia6Jets104_125", "kPythia6Jets125_150", "kPythia6Jets150_180",
+  "kPyJetJet", "kPyGammaJetPHOS"
+};
+
+
+/** ESDMCEventPublisher test macro
+ *  @param nEvents Number of events which should be processed
+ */
+void MCGeneratorPublisher(Int_t nEvents=10, PprRun_t runType = kPythia6Jets104_125) {
+
+  TString writerInput;
+
+  // -- Switch Logging
+  // -------------------
+  AliLog::SetGlobalLogLevel( AliLog::kError );
+  AliHLTLogging log;
+  log.SwitchAliLog(0);
+
+  // -- Initialize HLT
+  // -------------------
+  AliHLTSystem gHLT;
+  gHLT.SetGlobalLoggingLevel(0x7D);
+  
+  gHLT.LoadComponentLibraries("libAliHLTUtil.so");
+
+  gHLT.LoadComponentLibraries("liblhapdf.so");  
+  gHLT.LoadComponentLibraries("libEGPythia6.so");   
+  gHLT.LoadComponentLibraries("libpythia6.so");  
+  gHLT.LoadComponentLibraries("libAliPythia6.so");  
+
+  // ----------------------------//
+  // -                         - //
+  // -- Parameters            -- //
+  // -                         - //
+  // ----------------------------//
+
+  Float_t coneRadius = 0.7;
+  Float_t cutPtSeed  = 4.0;
+  Float_t cutEtJet   = 7.0;
+
+  Int_t seed = 12345;
+
+  // ----------------------------//
+  // -                         - //
+  // -- Publisher  Components -- //
+  // -                         - //
+  // ----------------------------//
+  TString generatorId( Form("MCGenerator_%s", pprRunName[runType]) );
+  
+  TString generatorArg( Form("-seed %d -nevents %d -runtype %d -coneRadius %.1f -jetCutMinEt %.1f", 
+                            seed, nEvents, runType, coneRadius, cutEtJet));
+  
+  AliHLTConfiguration mcGenerator(generatorId.Data(), "MCGenerator", NULL, generatorArg.Data() );
+  
+  if (!writerInput.IsNull()) writerInput+=" ";
+  writerInput += generatorId;
+
+  // ----------------------------//
+  // -                         - //
+  // --    Sink Components    -- //
+  // -                         - //
+  // ----------------------------//
+  
+  TString writerArg( Form("-directory analysis -datafile analyze_%d_%s -write-all-events", nEvents, pprRunName[runType] ));
+
+  // -- The RootFileWriter 
+  AliHLTConfiguration rootWriter("RootWriter", "ROOTFileWriter", 
+                                writerInput.Data(), writerArg.Data() );
+  
+  // --------------------------- //
+  // -                         - //
+  // --         Run           -- //
+  // -                         - //
+  // --------------------------- //
+
+  gHLT.BuildTaskList("RootWriter");
+  gHLT.Run(nEvents);
+
+  return;
+}