8 #include "TClonesArray.h"
9 #include "TParticlePDG.h"
12 #include "FairRootManager.h"
14 #include "FairRuntimeDb.h"
15 #include "FairRunAna.h"
25 FairTask(
"MVD Riemann Track Finder"),
35 fTrackCandArray(NULL),
36 fRiemannTrackArray(NULL),
43 fTimeGapFunctor(NULL),
56 FairRuntimeDb*
rtdb = FairRunAna::Instance()->GetRuntimeDb();
62 InitStatus stat=kSUCCESS;
69 FairRootManager* ioman = FairRootManager::Instance();
73 std::cout <<
"-E- PndMvdRiemannTrackFinderTask::Init: "
74 <<
"RootManager not instantiated!" << std::endl;
86 std::cout <<
"-W- PndMvdRiemannTrackFinderTask::Init: " <<
"No Branch Names given with AddHitBranch(TString branchName)! Standard BranchNames taken!" << std::endl;
115 std::cout <<
"-I- PndMvdRiemannTrackFinderTask: Initialisation successfull" << std::endl;
125 std::cout <<
"-W- AddHitBranch has to be called before the Init() of the task!" << std::endl;
140 if (
fVerbose > 0) std::cout << std::endl;
141 if (
fVerbose > 0) std::cout <<
"------------- event " <<
fEventNr <<
"----------------" << std::endl;
145 Fatal(
"Exec",
"No trackCandArray");
157 FairRootManager *ioman = FairRootManager::Instance();
177 if (
fVerbose > 0) std::cout <<
" -I- PndMvdRiemannTrackFinderTask::Exec : Found Tracks: " << trackFinder.
NTracks() <<
" in event no. " <<
fEventNr++ << std::endl;
178 if (
fVerbose > 0) std::cout <<
" -I- PndMvdRiemannTrackFinderTask::Exec : ----------------" << std::endl;
181 for (
int i = 0;
i < trackFinder.
NTracks();
i++){
197 if (myCand->GetTimeStamp() == 0){
198 myTrack->SetTimeStamp(0.0001 * (
i+1));
199 myCand->SetTimeStamp(0.0001 * (
i+1));
202 myTrack->SetTimeStamp(myCand->GetTimeStamp());
203 myTrack->SetTimeStampError(myCand->GetTimeStampError());
205 myTrack->SetLink(FairLink(
"MVDRiemannTrackCand",
i));
209 std::cout <<
i <<
": ";
226 std::cout <<
"Track " <<
i << std::endl;
227 std::cout <<
"Links: ";
228 ((FairMultiLinkedData*) myCand)->Print();
229 std::cout << std::endl;
243 TClonesArray* tempArray = (TClonesArray*) FairRootManager::Instance()->GetObject(branchName);
245 std::cout <<
"-W- PndMvdRiemannTrackFinderTask::Init: " <<
"No hitArray for BranchName " << branchName.Data() << std::endl;
253 if (FairRunAna::Instance()->IsTimeStamp()){
259 std::cout <<
"PixelHits: " <<
fHitArray[0]->GetEntriesFast() << std::endl;
261 FairTimeStamp* data = (FairTimeStamp*)
fHitArray[0]->
At(1);
262 eventTime = data->GetTimeStamp();
263 std::cout <<
"EventTime: " << eventTime << std::endl;
265 std::cout <<
"StripHits: " <<
fHitArray[1]->GetEntriesFast() << std::endl;
PndGeoSttPar * fSttParameters
void SetVerbose(int val)
Adds one new hit to the array of hits.
TClonesArray * fTubeArray
PndMvdRiemannTrackFinderTask()
virtual ~PndMvdRiemannTrackFinderTask()
std::vector< TString > fHitBranch
virtual InitStatus Init()
cout<< "POINTs for new FwEndCap == "<< tsim-> GetEntriesFast()
void AddHits(TClonesArray *hits, Int_t branchId)
virtual void FinishEvent()
std::vector< PndTrackCand > GetTrackCand()
Returns the hits belonging to track i.
virtual void Exec(Option_t *opt)
TClonesArray * fTrackArray
TClonesArray * fRiemannTrackArray
std::vector< TClonesArray * > fHitArray
virtual InitStatus ReInit()
BinaryFunctor * fTimeGapFunctor
TClonesArray * FillTubeArray()
TClonesArray * fTrackCandArray
void InitHitArray(TString branchName)
void SetMaxSZDist(double val)
static PndGeoHandling * Instance()
void SetMinPointDist(double val)
PndLheTrackFinder * trackFinder
virtual void SetParContainers()
void SetMaxPlaneDistance(double val)
void SetSttTubeArray(TClonesArray *SttTubeArray)
void SetMinNumberOfHits(int val)
void FindTracks()
Main function to start the riemann track finding.
void SetCutDistH(TH2F *hist)
cout<<"the Event No is "<< i<< endl;{{if(hit_array->GetEntriesFast()!=mc_array->GetEntriesFast()) continue;PndSdsHit *hit=(PndSdsHit *) hit_array-> At(j)
void SetTrackCand(const PndTrackCand &cand)
void SetMaxSZChi2(double val)
BinaryFunctor * fStopFunctor
PndTrack GetPndTrack(int i, double B)
Returns the track with the index i.
void SetCutChi2H(TH2F *hist)
void AddHitBranch(TString branchName)