// $Id$
/**
* @file publish-rawreader-data.C
* @brief Publish data from the the RawReader provided by the AliReconstruction.
*
* Usage:
* <pre>
* aliroot -b -q 'publish-rawreader-data.C("raw.root", 768, 769)' | tee publish-rawreader-data.log
* </pre>
*
* This macro runs shows a use case of the AliHLTRawReaderPublisherComponent
* An HLT chain is run inside the AliReconstruction and the DDL payload is
* extracted from the AliRawReader in a given equipment range.
* Input can be either a root file or the path to the directory containing
* the 'rawx' sub folders.
*
* @author Matthias.Richter@ift.uib.no
*/
const char* defaultInput="./";
const int defaultMinId=768;
const int defaultMaxId=769;
void publish_rawreader_data(const char* input, int iMinDDLno, int iMaxDDLno)
{
/////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////
//
// some defaults
const char* baseName="RAW.ddl";
/////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////
//
// setup of the reconstruction
if (!input) {
cerr << "invalid path" << endl;
cerr << "usage: aliroot -b -q 'publish-rawreader-data.C(\"raw.root\", 768, 769)'" << endl;
return;
}
AliReconstruction rec;
rec.SetInput(input);
rec.SetOption("HLT", "libAliHLTUtil.so loglevel=0x7c chains=sink1");
/////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////
//
// setup of the HLT system
AliHLTSystem* pHLT=AliHLTPluginBase::GetInstance();
if (!pHLT) {
cerr << "fatal error: can not get HLT instance" << endl;
}
/////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////
//
// the configuration chain
TString writerInput;
TString arg;
arg.Form("-minid %d -maxid %d -skipempty -verbose", iMinDDLno, iMaxDDLno);
AliHLTConfiguration pubconf("publisher", "AliRawReaderPublisher", NULL , arg.Data());
if (!writerInput.IsNull()) writerInput+=" ";
writerInput+="publisher";
// the writer configuration
arg.Form("-specfmt=_%%d -subdir=out%%d -blocknofmt= -idfmt= -datafile %s", baseName);
AliHLTConfiguration fwconf("sink1", "FileWriter" , writerInput.Data(), arg.Data());
/////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////
//
// the reconstruction loop
rec.SetRunLocalReconstruction("HLT");
rec.SetRunReconstruction("HLT");
rec.SetRunTracking("");
rec.SetFillESD("HLT");
rec.SetFillTriggerESD(kFALSE);
rec.SetRunQA(":");
rec.SetRunVertexFinder(kFALSE);
rec.SetLoadAlignFromCDB(0);
rec.SetFillTriggerESD(kFALSE);
rec.Run();
}
void publish_rawreader_data()
{
cout << "runnig from defaults: input " << defaultInput << " " << defaultMinId << "-" << defaultMaxId << endl;
publish_rawreader_data(defaultInput, defaultMinId, defaultMaxId);
}
publish-rawreader-data.C:1 publish-rawreader-data.C:2 publish-rawreader-data.C:3 publish-rawreader-data.C:4 publish-rawreader-data.C:5 publish-rawreader-data.C:6 publish-rawreader-data.C:7 publish-rawreader-data.C:8 publish-rawreader-data.C:9 publish-rawreader-data.C:10 publish-rawreader-data.C:11 publish-rawreader-data.C:12 publish-rawreader-data.C:13 publish-rawreader-data.C:14 publish-rawreader-data.C:15 publish-rawreader-data.C:16 publish-rawreader-data.C:17 publish-rawreader-data.C:18 publish-rawreader-data.C:19 publish-rawreader-data.C:20 publish-rawreader-data.C:21 publish-rawreader-data.C:22 publish-rawreader-data.C:23 publish-rawreader-data.C:24 publish-rawreader-data.C:25 publish-rawreader-data.C:26 publish-rawreader-data.C:27 publish-rawreader-data.C:28 publish-rawreader-data.C:29 publish-rawreader-data.C:30 publish-rawreader-data.C:31 publish-rawreader-data.C:32 publish-rawreader-data.C:33 publish-rawreader-data.C:34 publish-rawreader-data.C:35 publish-rawreader-data.C:36 publish-rawreader-data.C:37 publish-rawreader-data.C:38 publish-rawreader-data.C:39 publish-rawreader-data.C:40 publish-rawreader-data.C:41 publish-rawreader-data.C:42 publish-rawreader-data.C:43 publish-rawreader-data.C:44 publish-rawreader-data.C:45 publish-rawreader-data.C:46 publish-rawreader-data.C:47 publish-rawreader-data.C:48 publish-rawreader-data.C:49 publish-rawreader-data.C:50 publish-rawreader-data.C:51 publish-rawreader-data.C:52 publish-rawreader-data.C:53 publish-rawreader-data.C:54 publish-rawreader-data.C:55 publish-rawreader-data.C:56 publish-rawreader-data.C:57 publish-rawreader-data.C:58 publish-rawreader-data.C:59 publish-rawreader-data.C:60 publish-rawreader-data.C:61 publish-rawreader-data.C:62 publish-rawreader-data.C:63 publish-rawreader-data.C:64 publish-rawreader-data.C:65 publish-rawreader-data.C:66 publish-rawreader-data.C:67 publish-rawreader-data.C:68 publish-rawreader-data.C:69 publish-rawreader-data.C:70 publish-rawreader-data.C:71 publish-rawreader-data.C:72 publish-rawreader-data.C:73 publish-rawreader-data.C:74 publish-rawreader-data.C:75 publish-rawreader-data.C:76 publish-rawreader-data.C:77 publish-rawreader-data.C:78 publish-rawreader-data.C:79 publish-rawreader-data.C:80 publish-rawreader-data.C:81 publish-rawreader-data.C:82 publish-rawreader-data.C:83 publish-rawreader-data.C:84 publish-rawreader-data.C:85 publish-rawreader-data.C:86 publish-rawreader-data.C:87 publish-rawreader-data.C:88 publish-rawreader-data.C:89 publish-rawreader-data.C:90 publish-rawreader-data.C:91 publish-rawreader-data.C:92 publish-rawreader-data.C:93