ROOT logo
/**
 * @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;
}
 MCGeneratorPublisher.C:1
 MCGeneratorPublisher.C:2
 MCGeneratorPublisher.C:3
 MCGeneratorPublisher.C:4
 MCGeneratorPublisher.C:5
 MCGeneratorPublisher.C:6
 MCGeneratorPublisher.C:7
 MCGeneratorPublisher.C:8
 MCGeneratorPublisher.C:9
 MCGeneratorPublisher.C:10
 MCGeneratorPublisher.C:11
 MCGeneratorPublisher.C:12
 MCGeneratorPublisher.C:13
 MCGeneratorPublisher.C:14
 MCGeneratorPublisher.C:15
 MCGeneratorPublisher.C:16
 MCGeneratorPublisher.C:17
 MCGeneratorPublisher.C:18
 MCGeneratorPublisher.C:19
 MCGeneratorPublisher.C:20
 MCGeneratorPublisher.C:21
 MCGeneratorPublisher.C:22
 MCGeneratorPublisher.C:23
 MCGeneratorPublisher.C:24
 MCGeneratorPublisher.C:25
 MCGeneratorPublisher.C:26
 MCGeneratorPublisher.C:27
 MCGeneratorPublisher.C:28
 MCGeneratorPublisher.C:29
 MCGeneratorPublisher.C:30
 MCGeneratorPublisher.C:31
 MCGeneratorPublisher.C:32
 MCGeneratorPublisher.C:33
 MCGeneratorPublisher.C:34
 MCGeneratorPublisher.C:35
 MCGeneratorPublisher.C:36
 MCGeneratorPublisher.C:37
 MCGeneratorPublisher.C:38
 MCGeneratorPublisher.C:39
 MCGeneratorPublisher.C:40
 MCGeneratorPublisher.C:41
 MCGeneratorPublisher.C:42
 MCGeneratorPublisher.C:43
 MCGeneratorPublisher.C:44
 MCGeneratorPublisher.C:45
 MCGeneratorPublisher.C:46
 MCGeneratorPublisher.C:47
 MCGeneratorPublisher.C:48
 MCGeneratorPublisher.C:49
 MCGeneratorPublisher.C:50
 MCGeneratorPublisher.C:51
 MCGeneratorPublisher.C:52
 MCGeneratorPublisher.C:53
 MCGeneratorPublisher.C:54
 MCGeneratorPublisher.C:55
 MCGeneratorPublisher.C:56
 MCGeneratorPublisher.C:57
 MCGeneratorPublisher.C:58
 MCGeneratorPublisher.C:59
 MCGeneratorPublisher.C:60
 MCGeneratorPublisher.C:61
 MCGeneratorPublisher.C:62
 MCGeneratorPublisher.C:63
 MCGeneratorPublisher.C:64
 MCGeneratorPublisher.C:65
 MCGeneratorPublisher.C:66
 MCGeneratorPublisher.C:67
 MCGeneratorPublisher.C:68
 MCGeneratorPublisher.C:69
 MCGeneratorPublisher.C:70
 MCGeneratorPublisher.C:71
 MCGeneratorPublisher.C:72
 MCGeneratorPublisher.C:73
 MCGeneratorPublisher.C:74
 MCGeneratorPublisher.C:75
 MCGeneratorPublisher.C:76
 MCGeneratorPublisher.C:77
 MCGeneratorPublisher.C:78
 MCGeneratorPublisher.C:79
 MCGeneratorPublisher.C:80
 MCGeneratorPublisher.C:81
 MCGeneratorPublisher.C:82
 MCGeneratorPublisher.C:83
 MCGeneratorPublisher.C:84
 MCGeneratorPublisher.C:85
 MCGeneratorPublisher.C:86
 MCGeneratorPublisher.C:87
 MCGeneratorPublisher.C:88
 MCGeneratorPublisher.C:89
 MCGeneratorPublisher.C:90
 MCGeneratorPublisher.C:91
 MCGeneratorPublisher.C:92
 MCGeneratorPublisher.C:93
 MCGeneratorPublisher.C:94
 MCGeneratorPublisher.C:95
 MCGeneratorPublisher.C:96
 MCGeneratorPublisher.C:97
 MCGeneratorPublisher.C:98
 MCGeneratorPublisher.C:99
 MCGeneratorPublisher.C:100
 MCGeneratorPublisher.C:101
 MCGeneratorPublisher.C:102
 MCGeneratorPublisher.C:103
 MCGeneratorPublisher.C:104
 MCGeneratorPublisher.C:105
 MCGeneratorPublisher.C:106
 MCGeneratorPublisher.C:107
 MCGeneratorPublisher.C:108
 MCGeneratorPublisher.C:109
 MCGeneratorPublisher.C:110
 MCGeneratorPublisher.C:111
 MCGeneratorPublisher.C:112
 MCGeneratorPublisher.C:113
 MCGeneratorPublisher.C:114
 MCGeneratorPublisher.C:115