6    TString  RunsListFile  = 
"runs.txt";
 
    7    std::ifstream runsFileInput(RunsListFile.Data());
 
    9    bool runexists = 
false;
 
   10    int nrun, nrunmax = -1;
 
   17    runsFileInput >> strg;
 
   18    while(!runsFileInput.eof()) {
 
   20          sscanf(strg.c_str(),
"%d",&nrun);
 
   23             runsFileInput >> strg; sscanf(strg.c_str(),
"%d",&
pid);
 
   24             runsFileInput >> strg; sscanf(strg.c_str(),
"%d",&
nEvents);
 
   25             runsFileInput >> strg; sscanf(strg.c_str(),
"%d",&
mult);
 
   26             runsFileInput >> strg; sscanf(strg.c_str(),
"%f",&pmin);
 
   27             runsFileInput >> strg; sscanf(strg.c_str(),
"%f",&pmax);
 
   28             runsFileInput >> strg; sscanf(strg.c_str(),
"%f",&tmin);
 
   29             runsFileInput >> strg; sscanf(strg.c_str(),
"%f",&tmax);
 
   30             runsFileInput >> strg; sscanf(strg.c_str(),
"%f",&fmin);
 
   31             runsFileInput >> strg; sscanf(strg.c_str(),
"%f",&fmax);
 
   34             for(
size_t iw=0;iw<9;iw++) runsFileInput >> strg;
 
   36          nrunmax = nrun>nrunmax ? nrun : nrunmax;
 
   38       runsFileInput >> strg;
 
   40    runsFileInput.close();
 
   43       std::cout << 
"Run number " << nRun << 
" is not defined!" << std::endl;
 
   47    std::cout << 
"run = " << nRun << 
" " << pid << 
" " << nEvents << 
" " << mult << 
" " << pmin << 
" " 
   48       << pmax << 
" " << tmin << 
" " << tmax << 
" " << fmin << 
" " << fmax << std::endl;
 
   78   FairRunAna *
fRun= 
new FairRunAna();
 
   79   fRun->SetInputFile(inFile);
 
   80   fRun->SetOutputFile(outFile);
 
   81   fRun->SetGenerateRunInfo(kFALSE);  
 
   82   fRun->SetUseFairLinks(kTRUE); 
 
   85   allDigiFile += 
"/macro/params/";
 
   88   FairRuntimeDb* 
rtdb = fRun->GetRuntimeDb();
 
   89   FairParRootFileIo* 
parInput1 = 
new FairParRootFileIo();
 
   90   parInput1->open(parFile.Data());
 
   92   FairParAsciiFileIo* 
parIo1 = 
new FairParAsciiFileIo();
 
   93   parIo1->open(allDigiFile.Data(),
"in");
 
   95   rtdb->setFirstInput(parInput1);
 
   96   rtdb->setSecondInput(parIo1);
 
  100   fRun->AddTask(sttHitProducer);
 
  105   fRun->AddTask(mvddigi);
 
  109   fRun->AddTask(mvdmccls);
 
  116   fRun->AddTask(emcHitsToWaveform);  
 
  117   fRun->AddTask(emcWaveformToDigi);  
 
  120   fRun->AddTask(emcMakeCluster);
 
  123   fRun->AddTask(emcMakeBump);
 
  130   tofhit->SetVerbose(iVerbose);
 
  131   fRun->AddTask(tofhit);
 
  136   fRun->AddTask(mdtHitProd);
 
  139   fRun->AddTask(mdtTrkProd);
 
  143   drchit->SetVerbose(iVerbose);
 
  144   fRun->AddTask(drchit);
 
  149   fRun->AddTask(gemDigitize);
 
  152   fRun->AddTask(gemFindHits);
 
  156   fRun->AddTask(ftsHitProducer);
 
  160   ftofhit->SetVerbose(iVerbose);
 
  161   fRun->AddTask(ftofhit);
 
  165   richhit->SetVerbose(iVerbose);
 
  167   fRun->AddTask(richhit);
 
  179   cout << endl << endl;
 
  180   cout << 
"Macro finished successfully." << endl;
 
  181   cout << 
"Output file is "    << outFile << endl;
 
  182   cout << 
"Parameter file is " << parFile << endl;
 
  183   cout << 
"Real time " << rtime << 
" s, CPU time " << ctime << 
" s" << endl;
 
  186   cout << 
" Test passed" << endl;
 
  187   cout << 
" All ok " << endl;
 
PndGemFindHits * gemFindHits
PndEmcHitsToWaveform * emcHitsToWaveform
PndEmcMakeBump * emcMakeBump
void SetPhDetNoiseON(UInt_t phDetNoise)
PndMvdStripClusterTask * mvdmccls
PndSttHitProducerRealFast * sttHitProducer
PndFtofHitProducerIdeal * tofhit
PndMdtHitProducerIdeal * mdtHitProd
PndDrcHitProducerReal * drchit
PndEmcMakeCluster * emcMakeCluster
Takes clusters and slits them up into bumps. 
void SetVerbose(Int_t iVerbose)
FairParRootFileIo * parInput1
PndFtofHitProducerIdeal * ftofhit
PndGemDigitize * gemDigitize
PndEmcWaveformToDigi * emcWaveformToDigi
FairParAsciiFileIo * parIo1
Task to cluster PndEmcDigis. 
PndMdtTrkProducer * mdtTrkProd
PndFtsHitProducerRealFast * ftsHitProducer
void SetPositionSmearing(Float_t res)
Set the smearing of the PndMdtHit position.