7 #include <PndDchFindTracks.h>
8 #include <PndDchTrackFinderIdealCylHit.h>
9 #include <PndDchMatchTracks.h>
21 #include <PndTpcClusterFinderTask.h>
22 #include <PndTpcIdealTrackingTask.h>
24 #include <KalmanTask.h>
25 #include <TrackFitStatTask.h>
27 #include <FairGeane.h>
28 #include <FairBoxGenerator.h>
29 #include <FairEvtGenGenerator.h>
30 #include <FairModule.h>
31 #include <FairParAsciiFileIo.h>
32 #include <FairParRootFileIo.h>
33 #include <FairPrimaryGenerator.h>
34 #include <FairRunAna.h>
35 #include <FairRunSim.h>
36 #include <FairRuntimeDb.h>
39 #include <TStopwatch.h>
65 FairRunAna *
fRun=
new FairRunAna();
66 fRun->SetInputFile(mcFile);
67 fRun->AddFriend(dgFile);
68 fRun->SetOutputFile(outFile);
71 FairGeane *
Geane =
new FairGeane();
77 emcDigiFile +=
"/macro/params/";
79 FairRuntimeDb*
rtdb = fRun->GetRuntimeDb();
80 FairParRootFileIo*
parInput1 =
new FairParRootFileIo();
81 parInput1->open(parFile.Data());
83 FairParAsciiFileIo*
parIo1 =
new FairParAsciiFileIo();
84 parIo1->open(emcDigiFile.Data(),
"in");
86 rtdb->setFirstInput(parInput1);
87 rtdb->setSecondInput(parIo1);
95 fRun->AddTask(emcMakeCluster);
97 fRun->AddTask(emcHdrFiller);
99 fRun->AddTask(emcMakeBump);
101 fRun->AddTask(emcMakeRecoHit);
107 fRun->AddTask(sttFindTracks);
111 fRun->AddTask(sttTrackMatcher);
116 fRun->AddTask(sttFitTracks);
119 fRun->AddTask(sttHHProducer);
122 PndTpcClusterFinderTask*
tpcCF =
new PndTpcClusterFinderTask();
124 tpcCF->SetPersistence();
125 tpcCF->timeslice(20);
127 fRun->AddTask(tpcCF);
130 PndTpcIdealTrackingTask* tpcIPR =
new PndTpcIdealTrackingTask();
131 tpcIPR->useGeane(
true);
132 tpcIPR->useDistSorting(
true);
133 fRun->AddTask(tpcIPR);
134 tpcIPR->SetPersistence();
137 PndDchFindTracks* finderTask =
new PndDchFindTracks(
"dchFindTracks");
138 finderTask->SetUseHitOrDigi(
"chit");
139 fRun->AddTask(finderTask);
141 PndDchTrackFinderIdealCylHit* mcTrackFinder =
new PndDchTrackFinderIdealCylHit();
142 mcTrackFinder->SetPrimary(1);
143 finderTask->UseFinder(mcTrackFinder);
145 PndDchMatchTracks *matchTask =
new PndDchMatchTracks();
146 matchTask->SetUseHitOrDigi(
"chit");
147 fRun->AddTask(matchTask);
151 fRun->AddTask(mvdmccls);
158 fRun->AddTask(gemFinderTask);
163 gemFinderTask->
UseFinder(gemTrackFinder);
167 fRun->AddTask(gemTrackFinderQA);
169 KalmanTask*
kalman =
new KalmanTask();
170 kalman->SetPersistence();
171 kalman->SetNumIterations(3);
172 fRun->AddTask(kalman);
174 TrackFitStatTask* fitstat=
new TrackFitStatTask();
175 fitstat->SetPersistence();
176 fitstat->SetMCPCut(10);
177 fitstat->SetMCCuts(0.05,
184 fRun->AddTask(fitstat);
187 cout <<
"fRun->Init()" << endl;
191 fRun->Run(0,nEvents);
199 cout << endl << endl;
200 cout <<
"Macro finished successfully." << endl;
201 cout <<
"Output file is " << outFile << endl;
202 cout <<
"Parameter file is " << parFile << endl;
203 cout <<
"Real time " << rtime <<
" s, CPU time " << ctime <<
" s" << endl;
void SetStorageOfData(Bool_t val)
Method to specify whether clusters are stored or not.
void SetPrimary(const Int_t &primary)
PndSttMatchTracks * sttTrackMatcher
Create PndEmcRecoHit from PndEmcBump.
PndSttHelixHitProducer * sttHHProducer
OnHits track finding algorithm.
PndEmcMakeBump * emcMakeBump
PndMvdStripClusterTask * mvdmccls
PndSttTrackFitter * sttTrackFitter
void AddHitCollectionName(char *hitCollectionName, char *pointCollectionName)
void UseFinder(PndGemTrackFinder *finder)
PndSttTrackFinderReal * sttTrackFinder
PndEmcHdrFiller * emcHdrFiller
void RecoComplete(TString const &mcFile, TString const &dgFile, TString const &parFile, TString const &digiFile, TString const &outFile)
void SetVerbose(const Int_t &verbose)
PndEmcMakeCluster * emcMakeCluster
void AddHitCollectionName(char *hitCollectionName)
PndSttFindTracks * sttFindTracks
void SetVerbose(const Int_t &verbose)
Takes clusters and slits them up into bumps.
FairParRootFileIo * parInput1
FairParAsciiFileIo * parIo1
Task to cluster PndEmcDigis.
track finding quality assesment task
PndTpcClusterFinderTask * tpcCF
Task class for track finding in the Gem.
PndSttFitTracks * sttFitTracks
Task to create Emc header.
void AddHitCollectionName(char *hitCollectionName, char *pointCollectionName)
void SetUseHitOrDigi(TString useHitOrDigi="hit")