19 gROOT->LoadMacro(
"$VMCWORKDIR/gconfig/basiclibs.C");
 
   21 gSystem->Load(
"libGeoBase");
 
   22 gSystem->Load(
"libParBase");
 
   23 gSystem->Load(
"libBase");
 
   24 gSystem->Load(
"libPndData");
 
   25 gSystem->Load(
"libField");
 
   26 gSystem->Load(
"libPassive");
 
   27 gSystem->Load(
"libGen");  
 
   28 gSystem->Load(
"libEmc"); 
 
   29 gSystem->Load(
"libgenfit");
 
   30 gSystem->Load(
"libtpc"); 
 
   31 gSystem->Load(
"libtpcreco");
 
   32 gSystem->Load(
"libtrackrep");
 
   33 gSystem->Load(
"librecotasks");
 
   34 gSystem->Load(
"libMvd");
 
   35 gSystem->Load(
"libMvdReco");
 
   36 gSystem->Load(
"libLHETrack");
 
   51 FairRunAna *
fRun= 
new FairRunAna();
 
   52 fRun->SetInputFile(inFile);
 
   53 fRun->SetOutputFile(outFile);
 
   59 FairRuntimeDb* 
rtdb = fRun->GetRuntimeDb();
 
   60 FairParRootFileIo* 
parInput1 = 
new FairParRootFileIo();
 
   61 parInput1->open(parFile.Data());
 
   63 FairParAsciiFileIo* 
parIo1 = 
new FairParAsciiFileIo();
 
   64 parIo1->open(allDigiFile.Data(),
"in");
 
   66 rtdb->setFirstInput(parInput1);
 
   67 rtdb->setSecondInput(parIo1);
 
   74 fRun->AddTask(tpcClusterizer);
 
   78 tpcDrifter->SetDistort(
false);
 
   79 fRun->AddTask(tpcDrifter);
 
   81 PndTpcGemTask* 
tpcGem = 
new PndTpcGemTask();
 
   83 fRun->AddTask(tpcGem);
 
   86 tpcPadResponse->SetPersistence();
 
   87 fRun->AddTask(tpcPadResponse);
 
   89 PndTpcElectronicsTask* 
tpcElec = 
new PndTpcElectronicsTask();
 
   90 tpcElec->SetPersistence();
 
   91 fRun->AddTask(tpcElec);
 
   93 PndTpcClusterFinderTask* 
tpcCF = 
new PndTpcClusterFinderTask();
 
   94 tpcCF->SetPersistence();
 
  131 mvdPixProd->SetVerbose(iVerbose);
 
  132 fRun->AddTask(mvdPixProd);
 
  139 mvdmccls->SetVerbose(iVerbose);
 
  140 fRun->AddTask(mvdmccls);
 
  144 mvdClusterizer->SetVerbose(iVerbose);
 
  145 fRun->AddTask(mvdClusterizer);
 
  154 fRun->AddTask(emcHitProd); 
 
  161 fRun->AddTask(emcHitsToWaveform);  
 
  162 fRun->AddTask(emcWaveformToDigi);  
 
  165 fRun->AddTask(emcMakeCluster);
 
  168 fRun->AddTask(emcHdrFiller); 
 
  171 fRun->AddTask(emcMakeBump);
 
  174 fRun->AddTask(emcMakeRecoHit);
 
  178 PndTpcLheHitsMaker* 
trackMS = 
new PndTpcLheHitsMaker(
"Tracking routine");
 
  181 trackMS->SetTpcMode(2, -1);  
 
  182 trackMS->SetMvdMode(2, -1);  
 
  183 trackMS->SetEmcMode(0);      
 
  184 fRun->AddTask(trackMS);
 
  187 fRun->AddTask(trackFinder);
 
  189 PndTpcLheTrackFitter* 
trackFitter    = 
new PndTpcLheTrackFitter(
"fitting");
 
  190 fRun->AddTask(trackFitter);
 
  194 fRun->Run(0, nEvents);
 
  202 cout << endl << endl;
 
  203 cout << 
"Macro finished succesfully." << endl;
 
  204 cout << 
"Output file is "    << outFile << endl;
 
  205 cout << 
"Parameter file is " << parFile << endl;
 
  206 cout << 
"Real time " << rtime << 
" s, CPU time " << ctime << 
" s" << endl;
 
PndMvdStripHitProducer * mvdHitProd
 
Create PndEmcRecoHit from PndEmcBump. 
 
PndEmcHitsToWaveform * emcHitsToWaveform
 
PndMvdPixelClusterTask * mvdClusterizer
 
Hit Producer Task for strip detectors. 
 
PndMvdHybridHitProducer * mvdPixProd
 
creates PndEmcHits from PndEmcPoints 
 
PndEmcMakeBump * emcMakeBump
 
PndMvdStripClusterTask * mvdmccls
 
TVector2 botAnchor(0., 0.)
 
PndTpcClusterizerTask * tpcClusterizer
 
PndEmcHdrFiller * emcHdrFiller
 
PndEmcMakeCluster * emcMakeCluster
 
PndLheTrackFitter * trackFitter
 
PndTpcPadResponseTask * tpcPadResponse
 
Takes clusters and slits them up into bumps. 
 
FairParRootFileIo * parInput1
 
PndEmcWaveformToDigi * emcWaveformToDigi
 
FairParAsciiFileIo * parIo1
 
Task to cluster PndEmcDigis. 
 
PndLheHitsMaker * trackMS
 
PndTpcElectronicsTask * tpcElec
 
PndLheTrackFinder * trackFinder
 
PndEmcMakeDigi * emcMakeDigi
 
PndTpcDriftTask * tpcDrifter
 
PndTpcClusterFinderTask * tpcCF
 
Task to create Emc header. 
 
Task to create PndEmcDigi from PndEmcHit. 
 
TVector2 topAnchor(0., 0.)