ROOT logo
/**
 * @file ESDMCEventPublisher.C
 * @brief Macro for testing AliESDEvent and AliMCEvent publishing and writing
 *
 * This macro is a testing/example macro of how to use the ESDMCEventPublisher 
 * (AliHLTESDMCEventPublisherComponent) 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.
 *
 * The file datapath has to be changed with an actual one. It must contain 
 * the files: <br>
 *   - AliESDs.root<br>
 *   - Kinematics.root<br>
 *   - galice.root<br>
 *   - TrackRefs.root<br>
 *
 * Entry type can be one, all or some of :<br>
 *   - ESD<br>
 *   - HLTESD<br>
 *   - MC<br>
 *
 * For more descriptions, especially the used datatypes and specification:
 * @see AliHLTESDMCEventPublisherComponent
 *
 * @author thaeder@kip.uni-heidelberg.de
 * @ingroup alihlt_tutorial
 */

/** ESDMCEventPublisher test macro
 *  @param nEvents Number of events which should be processed
 */
void ESDMCEventPublisher(Int_t nEvents=1) {

  TString writerInput;
  TString arg;

  AliHLTSystem gHLT;
  gHLT.LoadComponentLibraries("libAliHLTUtil.so");

  // -- Root publisher configuration
  // !!! myDataPath has to be exchanged with an existing one.
  arg.Form("-entrytype ESD -entrytype HLTESD -entrytype MC -dataspec 0x0000001F -datapath /opt/HLT/analysis/HLT-HEAD_2008-09-24/exa -datapath /home/jthaeder/jet/data/test");
  //  arg.Form("-entrytype ESD -entrytype HLTESD -entrytype MC -dataspec 0x0000001F -datapath mydatapath0 -datapath mydatapath1");

  // -- The AliHLTESDMCEventPublisher (Id 'ESDMCEventPublisher') is a data source. 
  //    It provides AliESDEvents and AliMCEvents out of the given datapaths to 
  //    the subsequent components in the chain.
  //    see AliHLTESDMCEventPublisherComponent for more options 
  AliHLTConfiguration ESDMCEventPublisher("ESDMCEventPublisher", "ESDMCEventPublisher", NULL, arg.Data() );
  if (!writerInput.IsNull()) writerInput+=" ";
  writerInput+="ESDMCEventPublisher";
  
  // -
  // -- Processing Components can be put in here
  // - 

  // -- The AliHLTRootFileWriter (Id 'ROOTFileWriter') is a data sink. It writes
  // all incoming data blocks to files. Several options available.
  AliHLTConfiguration rootWriter("RootWriter", "ROOTFileWriter", writerInput.Data(),"-datafile event");

  // -- Here you specify the top most configuration of the chain. The
  // configuration depends on all the parents. The task lisy is build
  // according to that.
  gHLT.BuildTaskList("RootWriter");
  gHLT.Run(nEvents);
}
 ESDMCEventPublisher.C:1
 ESDMCEventPublisher.C:2
 ESDMCEventPublisher.C:3
 ESDMCEventPublisher.C:4
 ESDMCEventPublisher.C:5
 ESDMCEventPublisher.C:6
 ESDMCEventPublisher.C:7
 ESDMCEventPublisher.C:8
 ESDMCEventPublisher.C:9
 ESDMCEventPublisher.C:10
 ESDMCEventPublisher.C:11
 ESDMCEventPublisher.C:12
 ESDMCEventPublisher.C:13
 ESDMCEventPublisher.C:14
 ESDMCEventPublisher.C:15
 ESDMCEventPublisher.C:16
 ESDMCEventPublisher.C:17
 ESDMCEventPublisher.C:18
 ESDMCEventPublisher.C:19
 ESDMCEventPublisher.C:20
 ESDMCEventPublisher.C:21
 ESDMCEventPublisher.C:22
 ESDMCEventPublisher.C:23
 ESDMCEventPublisher.C:24
 ESDMCEventPublisher.C:25
 ESDMCEventPublisher.C:26
 ESDMCEventPublisher.C:27
 ESDMCEventPublisher.C:28
 ESDMCEventPublisher.C:29
 ESDMCEventPublisher.C:30
 ESDMCEventPublisher.C:31
 ESDMCEventPublisher.C:32
 ESDMCEventPublisher.C:33
 ESDMCEventPublisher.C:34
 ESDMCEventPublisher.C:35
 ESDMCEventPublisher.C:36
 ESDMCEventPublisher.C:37
 ESDMCEventPublisher.C:38
 ESDMCEventPublisher.C:39
 ESDMCEventPublisher.C:40
 ESDMCEventPublisher.C:41
 ESDMCEventPublisher.C:42
 ESDMCEventPublisher.C:43
 ESDMCEventPublisher.C:44
 ESDMCEventPublisher.C:45
 ESDMCEventPublisher.C:46
 ESDMCEventPublisher.C:47
 ESDMCEventPublisher.C:48
 ESDMCEventPublisher.C:49
 ESDMCEventPublisher.C:50
 ESDMCEventPublisher.C:51
 ESDMCEventPublisher.C:52
 ESDMCEventPublisher.C:53
 ESDMCEventPublisher.C:54
 ESDMCEventPublisher.C:55
 ESDMCEventPublisher.C:56
 ESDMCEventPublisher.C:57
 ESDMCEventPublisher.C:58
 ESDMCEventPublisher.C:59
 ESDMCEventPublisher.C:60
 ESDMCEventPublisher.C:61
 ESDMCEventPublisher.C:62
 ESDMCEventPublisher.C:63
 ESDMCEventPublisher.C:64
 ESDMCEventPublisher.C:65
 ESDMCEventPublisher.C:66
 ESDMCEventPublisher.C:67
 ESDMCEventPublisher.C:68