ROOT logo
// $Id$
/**
 * @file conf-sample.C
 * @brief A sample configuration macro for HLT chains in AliRoot.
 *
 * The macro defines a simple HLT analysis chain consisting of multiple
 * data publishers with a processor each (just a dummy component copying
 * the data blocks), and a common data sink.
 *
 * \b Note: The file publisher needs a file to read, either you replace
 * \em some-data.dat with the path of an existing file or just create a
 * dummy file in the current working directory. Futhermore, there has to
 * be at least one simulated event since AliReconstruction relies on a
 * couple of filesin the folder.
 *
 * Usage: from the aliroot prompt
 * <pre>
 {
   AliReconstruction rec;                 // the reconstruction instance
   rec.SetInput("./");                    // to be independent of galice.root
   rec.SetLoadAlignFromCDB(kFALSE);
   rec.SetFillTriggerESD(kFALSE);
   rec.SetRunQA(":");
   rec.SetRunVertexFinder(kFALSE);
   rec.SetRunLocalReconstruction("HLT");  // run local rec only for HLT 
   rec.SetRunTracking("");                // switch off tracking
   rec.SetFillESD("HLT");                 // 
   rec.SetOption("HLT", "libAliHLTSample.so libAliHLTUtil.so "
                        "config=$ALICE_ROOT/HLT/exa/conf-sample.C "
                        "chains=sink");
   //rec.SetEventRange(0,0);
   rec.Run();
 }
 * </pre>
 *
 * @author Matthias.Richter@ift.uib.no
 * @ingroup alihlt_tutorial
 */
{
  /////////////////////////////////////////////////////////////////////////
  /////////////////////////////////////////////////////////////////////////
  //
  // the configuration
  const int nofPublishers=5;
  TString writerInput;

  for (int i=0; i<nofPublishers; i++) {
    TString publisherName;
    TString processorName;
    TString arg;
    publisherName.Form("fp_%d", i);
    arg.Form("-datatype 'DUMMYDAT' 'SMPL' -datafile some-data.dat "
	     "-dataspec %d", i);
    // The AliHLTFilePublisher (component Id \em 'FilePublisher' provides
    // the given file (see AliHLTFilePublisher for more options) to the
    // subsequent components in the chain.
    AliHLTConfiguration publisher(publisherName.Data(), "FilePublisher",
				  NULL, arg.Data());

    processorName.Form("cp_%d", i);
    // The AliHLTDummyComponent (Id \em 'Dummy') just forwards a certain
    // fraction of the input to the output or just repeats the input data
    // if percentage > 100
    AliHLTConfiguration copy(processorName.Data(), "Dummy", publisherName.Data(),
			     "output_percentage 80");

    // add all processors to the input of the data sink
    if (!writerInput.IsNull()) writerInput+=" ";
    writerInput+=processorName;
  }

  // The AliHLTFileWriter (Id 'FileWriter') is a data sink. It writes
  // all incoming data blocks to files. Several options available.
  AliHLTConfiguration sink("sink", "FileWriter", writerInput.Data(), NULL);
}
 conf-sample.C:1
 conf-sample.C:2
 conf-sample.C:3
 conf-sample.C:4
 conf-sample.C:5
 conf-sample.C:6
 conf-sample.C:7
 conf-sample.C:8
 conf-sample.C:9
 conf-sample.C:10
 conf-sample.C:11
 conf-sample.C:12
 conf-sample.C:13
 conf-sample.C:14
 conf-sample.C:15
 conf-sample.C:16
 conf-sample.C:17
 conf-sample.C:18
 conf-sample.C:19
 conf-sample.C:20
 conf-sample.C:21
 conf-sample.C:22
 conf-sample.C:23
 conf-sample.C:24
 conf-sample.C:25
 conf-sample.C:26
 conf-sample.C:27
 conf-sample.C:28
 conf-sample.C:29
 conf-sample.C:30
 conf-sample.C:31
 conf-sample.C:32
 conf-sample.C:33
 conf-sample.C:34
 conf-sample.C:35
 conf-sample.C:36
 conf-sample.C:37
 conf-sample.C:38
 conf-sample.C:39
 conf-sample.C:40
 conf-sample.C:41
 conf-sample.C:42
 conf-sample.C:43
 conf-sample.C:44
 conf-sample.C:45
 conf-sample.C:46
 conf-sample.C:47
 conf-sample.C:48
 conf-sample.C:49
 conf-sample.C:50
 conf-sample.C:51
 conf-sample.C:52
 conf-sample.C:53
 conf-sample.C:54
 conf-sample.C:55
 conf-sample.C:56
 conf-sample.C:57
 conf-sample.C:58
 conf-sample.C:59
 conf-sample.C:60
 conf-sample.C:61
 conf-sample.C:62
 conf-sample.C:63
 conf-sample.C:64
 conf-sample.C:65
 conf-sample.C:66
 conf-sample.C:67
 conf-sample.C:68
 conf-sample.C:69
 conf-sample.C:70
 conf-sample.C:71
 conf-sample.C:72
 conf-sample.C:73
 conf-sample.C:74
 conf-sample.C:75
 conf-sample.C:76