18 #include "FairRootManager.h"
24 #include "TClonesArray.h"
29 #include "TGeoManager.h"
30 #include "TGeoTrack.h"
31 #include "TLorentzVector.h"
39 #include <Math/Vector3D.h>
42 #include <TMatrixTSym.h>
43 #include <TPolyLine3D.h>
44 #include <TVirtualFitter.h>
46 using namespace ROOT::Math;
63 FairRootManager* ioman = FairRootManager::Instance();
66 Error(
"PndLmdLinFitTask::Init",
"RootManager not instantiated!");
74 Error(
"PndLmdLinFitTask::Init",
"trackcand-array not found!");
81 Error(
"PndLmdLinFitTask::Init",
"reco-array not found!");
88 Error(
"PndLmdLinFitTask::Init",
"MCPoint-array not found!");
95 Error(
"PndLmdLinFitTask::Init",
"digi-array not found!");
102 Error(
"PndLmdLinFitTask::Init",
"clust-array not found!");
107 ioman->Register(
"LMDTrack",
"PndLmd",
fTrackArray, kTRUE);
109 std::cout <<
"-I- PndLmdLinFitTask: Initialisation successfull" << std::endl;
115 std::cout <<
"PndLmdLinFitTask::Exec" << std::endl;
117 if (
fTrackArray == 0) Fatal(
"PndLmdLinFitTask::Exec",
"No TrackArray");
124 std::cout <<
" -I- PndLmdLinFitTask: contains " << ntcand
125 <<
" RhoCandidates" << std::endl;
127 std::cout <<
" Detailed Debug info on the candidates:" << std::endl;
128 unsigned int index = 12345;
130 for (Int_t itr = 0; itr < ntcand; ++itr) {
132 std::cout <<
"TrackCand no. " << itr <<
" has " << trcnd->
GetNHits()
133 <<
" hits." << std::endl;
134 std::cout <<
"Point: \t Index: " << std::endl;
135 for (
unsigned int ihit = 0; ihit < trcnd->
GetNHits();
140 std::cout << ihit <<
"\t" << index << std::endl;
154 std::cout <<
" -I- PndLmdIdealFitTask: start Fitting " << std::endl;
158 const int numPts = trcnd->
GetNHits();
163 std::cout <<
"Track: " <<
track <<
" Points: " << numPts << std::endl;
175 firstPoint->Momentum(trueTrack);
183 new PndLinTrack(
"Lumi", truePos.X(), trueTrack.X() / trueTrack.Z(),
184 truePos.Y(), trueTrack.Y() / trueTrack.Z(), truePos.Z(),
185 trueTrack.Z(), 0, fhit, lhit,
track);
193 std::cout <<
"Fitting done" << std::endl;
TClonesArray * fTCandArray
Int_t GetIndex(int i=0) const
PndTrackCandHit GetSortedHit(UInt_t i)
Class for digitised strip hits.
virtual void Exec(Option_t *opt)
TClonesArray * fTrackArray
TClonesArray * fRecoArray
Int_t GetDigiIndex(Int_t i) const
TClonesArray * fMCPointArray
TVector3 GetPosition() const
TClonesArray * fClustArray
TString fMCPointBranchName
TClonesArray * fDigiArray
Int_t GetClusterIndex() const
virtual ~PndLmdIdealFitTask()
virtual InitStatus Init()