FairRoot/PandaRoot
Public Member Functions | Private Member Functions | Private Attributes | List of all members
PndForwardTrackFinderTask Class Reference

#include <PndForwardTrackFinderTask.h>

Inheritance diagram for PndForwardTrackFinderTask:

Public Member Functions

 PndForwardTrackFinderTask ()
 
virtual ~PndForwardTrackFinderTask ()
 
virtual InitStatus Init ()
 
virtual void SetParContainers ()
 
virtual void Exec (Option_t *opt)
 
virtual void FinishEvent ()
 
virtual void Finish ()
 
void saveCombined (vector< PndLineApproximation > combined, Int_t branch, Int_t branchID, Bool_t useOrgHits)
 
void saveCorrectedTracklets (map< Int_t, vector< PndFtsExpandedTrackCand >>)
 
void saveTrackCollection (vector< PndTrackCollection > coll, Bool_t withOrgHits)
 

Private Member Functions

void createStatictcs (vector< PndTrackCollection > c, vector< PndLineApproximation > a)
 
PndLineApproximation getBest (PndTrackCollection &c, vector< PndLineApproximation > a)
 
Int_t getMcId (vector< PndFtsHit * > hits)
 
 ClassDef (PndForwardTrackFinderTask, 1)
 

Private Attributes

Int_t eventNumber
 
TClonesArray * fHits
 
FairRootManager * fIoman
 
std::vector< PndTrackCandfFirstTrackCand
 
string branchName = "FTSHitErr"
 
TClonesArray * planes
 
TClonesArray * planesHit
 
TClonesArray * fFirstTrackCandArray
 
TClonesArray * correctedTracklets
 
TClonesArray * correctedHits
 
TClonesArray * fLayerTracks
 
TClonesArray * fLayerTracksHits
 
TClonesArray * fGlobalTracks
 
TClonesArray * fGlobalTracksHits
 
TClonesArray * fFinalSolution
 
TClonesArray * fTrackCollection
 
TClonesArray * fTrackCollectionHits
 
TClonesArray * rootBranches [5]
 
PndFtsCellTrackletGeneratorfPndFtsCellTrackletGenerator
 
PndFtsLineApproximatorfPndFtsLineApproximator
 
PndTrackCombinerfPndTrackCombiner
 
PndModuleCombinerfModuleCombiner
 
PndWayFollowerfWayFollower
 
Int_t combinedTracksHitNum
 
Int_t combinedTracksTrackNum
 
map< Int_t, PndFtsHit * > fOriginalHits
 
Int_t dists [20]
 
Int_t angles [20]
 

Detailed Description

Definition at line 28 of file PndForwardTrackFinderTask.h.

Constructor & Destructor Documentation

PndForwardTrackFinderTask::PndForwardTrackFinderTask ( )
inline
PndForwardTrackFinderTask::~PndForwardTrackFinderTask ( )
virtual

Definition at line 5 of file PndForwardTrackFinderTask.cxx.

5  {
6 
7 }

Member Function Documentation

PndForwardTrackFinderTask::ClassDef ( PndForwardTrackFinderTask  ,
 
)
private
void PndForwardTrackFinderTask::createStatictcs ( vector< PndTrackCollection c,
vector< PndLineApproximation a 
)
private

Definition at line 257 of file PndForwardTrackFinderTask.cxx.

References angle, angles, dists, Double_t, PndFtsLineComparator::getAngle2D(), getBest(), PndLine::getDir(), PndFtsLineComparator::getDist2D(), PndTrackCollection::getLastLine(), PndLineApproximation::getLine(), PndLine::getP1(), PndLine::getRating(), i, and PndFtsLineComparator::setZValue().

257  {
258  PndFtsLineComparator comparator(0,0);
259  for(size_t i=0;i<c.size();i++){
260  PndTrackCollection coll = c[i];
261  PndLineApproximation appr = getBest(coll,a);
262  if(appr.getLine().getRating()==-1) continue;
263  PndLine l1 = coll.getLastLine();
264  PndLine l2 = appr.getLine();
265  comparator.setZValue((l1.getP1()[2]+l2.getP1()[2])/2);
266  Double_t dist = comparator.getDist2D(l1.getP1(),l2.getP1(),l1.getDir(),l2.getDir());
267  Double_t angle = comparator.getAngle2D(l1.getDir(),l2.getDir());
268 // cout << "Dist=" << (Int_t)(dist/5) << endl;
269 // cout << "Angle=" << (Int_t)(angle/5) << endl;;
270  if(dist>=100) dists[19]++;
271  else dists[(Int_t)(dist/5)]++;
272  if(angle>=100) angles[19]++;
273  else angles[(Int_t)(angle/5)]++;
274  }
275 }
Int_t i
Definition: run_full.C:25
TVector3 getDir()
Definition: PndLine.h:34
Int_t a
Definition: anaLmdDigi.C:126
Double_t
Int_t getRating()
Definition: PndLine.h:42
Double_t angle
PndLineApproximation getBest(PndTrackCollection &c, vector< PndLineApproximation > a)
TVector3 getP1()
Definition: PndLine.h:32
void PndForwardTrackFinderTask::Exec ( Option_t *  opt)
virtual

Definition at line 52 of file PndForwardTrackFinderTask.cxx.

References PndModuleCombiner::addUnusedHits(), c, PndTrackCombiner::combine(), combinedTracksHitNum, combinedTracksTrackNum, PndModuleCombiner::combineModules(), PndFtsLineApproximator::createExpandedTrackCand(), eventNumber, fFirstTrackCand, fHits, PndFtsCellTrackletGenerator::findTracks(), fIoman, fModuleCombiner, PndWayFollower::followLines(), fOriginalHits, fPndFtsCellTrackletGenerator, fPndFtsLineApproximator, fPndTrackCombiner, fWayFollower, PndFtsExpandedTrackCand::getLineApproximations(), PndFtsCellTrackletGenerator::getTracklets(), PndFtsHit::GetTubeID(), hit, hits, i, PndWayFollower::init(), PndTrackCombiner::init(), map, PndFtsCellTrackletGenerator::reset(), saveCombined(), saveCorrectedTracklets(), saveTrackCollection(), and PndFtsCellTrackletGenerator::setHits().

52  {
53  std::cout
54  << ">>>>>>>>>>>>>>====================PndForwardTrackFinderTask::Exec====================<<<<<<<<<<<<<<"
55  << std::endl;
56  std::cout << "EventNumber:" << eventNumber++ << std::endl;
57  //reset the TrackletGenerator
59  //get the hits and add to the TrackletGenerator
60  std::vector<PndFtsHit*> hits;
61  for (int i = 0; i < fHits->GetEntries(); i++) {
62  PndFtsHit* hit = (PndFtsHit*) (fHits->At(i));
63  hit->SetEntryNr(FairLink(-1, fIoman->GetEntryNr(), fIoman->GetBranchId("FTSHit"), i));
64  //hit->SetEntryNr(FairLink(-1, fIoman->GetEntryNr(), fIoman->GetBranchId("FTSHitErr"), i));
65  hits.push_back(hit);
66  fOriginalHits[hit->GetTubeID()]=hit;
67  }
69 
71 
72  //create first track cand
73  map<Int_t, vector<PndTrackCand>> result = fPndFtsCellTrackletGenerator->getTracklets();
74  fFirstTrackCand.clear();
75  for (map<Int_t, vector<PndTrackCand>>::iterator it = result.begin();
76  it != result.end(); it++) {
77  for(size_t i=0;i<it->second.size();i++)
78  fFirstTrackCand.push_back(it->second[i]);
79  }
80 // cout << fFirstTrackCand.size() << " Tracks found " << endl;
81  if(fFirstTrackCand.size() > 100){
82  fFirstTrackCand.clear();
83  result.clear();
84  cout << "Too mutch tracks for reconstruction" << endl;
85  }
86 
87  //save data in root-branch
88  for (size_t i = 0; i < fFirstTrackCand.size(); i++) {
89  new ((*fFirstTrackCandArray)[i]) PndTrackCand(fFirstTrackCand[i]); //PndTrackCand* myCand = //[R.K.03/2017] unused variable
90  }
91 
92  //create expanded track cands
93  map<Int_t, vector<PndFtsExpandedTrackCand>> expandedTrackCands;
94  for (map<Int_t, vector<PndTrackCand>>::iterator it = result.begin();
95  it != result.end(); it++) {
96  vector<PndTrackCand> myCands = it->second;
97  for(size_t i=0;i<myCands.size();i++){
98  PndTrackCand myCand = myCands[i];
100  if(c.getLineApproximations().size()!=0)
101  expandedTrackCands[it->first].push_back(c);
102  }
103  }
104  saveCorrectedTracklets(expandedTrackCands);
105 
106  //combine the expanded track cands
107  fPndTrackCombiner->init(expandedTrackCands);
108  // cout << "----------------------combine module 1" << endl;
109  vector<PndLineApproximation> combined1 = fPndTrackCombiner->combine(0);
110  // cout << "-------------------------combine module 2" << endl;
111  vector<PndLineApproximation> combined2 = fPndTrackCombiner->combine(1);
112  // cout << "-----------------------------combine module 5" << endl;
113  vector<PndLineApproximation> combined5 = fPndTrackCombiner->combine(4);
114  // cout << "-------------------------------combine module 6" << endl;
115  vector<PndLineApproximation> combined6 = fPndTrackCombiner->combine(5);
116 
119  // cout << "save layer tracks " << endl;
120  saveCombined(combined1,0,fIoman->GetBranchId("LayerTracksHits"),kFALSE);
121  saveCombined(combined2,0,fIoman->GetBranchId("LayerTracksHits"),kFALSE);
122  saveCombined(combined5,0,fIoman->GetBranchId("LayerTracksHits"),kFALSE);
123  saveCombined(combined6,0,fIoman->GetBranchId("LayerTracksHits"),kFALSE);
124 
125  vector<PndLineApproximation> m12 = fModuleCombiner->combineModules(combined1,combined2);
126  vector<PndLineApproximation> m56 = fModuleCombiner->combineModules(combined5,combined6);
127 
128  //way follower
129  fWayFollower->init(m12,expandedTrackCands);
130  vector<PndTrackCollection> ptc = fWayFollower->followLines(8);
131 
132  //createStatictcs(ptc,m56);
133 
135  fModuleCombiner->addUnusedHits(hits,ptc);
136  saveTrackCollection(ptc,kFALSE);
137 
138  //save
141  // cout << "save global " << endl;
142  saveCombined(m12,2,fIoman->GetBranchId("GlobalTracksHits"),kFALSE);
143  // cout << "save final solution" << endl;
144  saveTrackCollection(ptc,kTRUE);
145 
146 
147 }
void setHits(std::vector< PndFtsHit * > hits)
Int_t i
Definition: run_full.C:25
PndTransMap * map
Definition: sim_emc_apd.C:99
map< Int_t, vector< PndTrackCand > > getTracklets()
Int_t GetTubeID() const
Definition: PndFtsHit.h:70
void init(vector< PndLineApproximation > b, map< Int_t, vector< PndFtsExpandedTrackCand >> c)
PndFtsExpandedTrackCand createExpandedTrackCand(PndTrackCand &cand)
void addUnusedHits(vector< PndFtsHit * > hits, vector< PndTrackCollection > &c)
vector< PndTrackCollection > followLines(Int_t begin)
std::vector< PndTrackCand > fFirstTrackCand
void saveTrackCollection(vector< PndTrackCollection > coll, Bool_t withOrgHits)
PndFtsLineApproximator * fPndFtsLineApproximator
vector< PndLineApproximation > getLineApproximations()
vector< PndLineApproximation > combineModules(vector< PndLineApproximation > m1, vector< PndLineApproximation > m2)
void saveCombined(vector< PndLineApproximation > combined, Int_t branch, Int_t branchID, Bool_t useOrgHits)
map< Int_t, PndFtsHit * > fOriginalHits
void init(map< Int_t, vector< PndFtsExpandedTrackCand >> c)
vector< PndLineApproximation > combine(Int_t bigLayer)
void saveCorrectedTracklets(map< Int_t, vector< PndFtsExpandedTrackCand >>)
PndSdsMCPoint * hit
Definition: anasim.C:70
CbmHit * hits[nHits]
Definition: RiemannTest.C:19
PndFtsCellTrackletGenerator * fPndFtsCellTrackletGenerator
void PndForwardTrackFinderTask::Finish ( )
virtual

Definition at line 163 of file PndForwardTrackFinderTask.cxx.

163  {
164 // cout << "Dists:" << endl;
165 // for(int i=0;i<20;i++)
166 // cout << dists[i] <<";";
167 // cout << endl <<"Angles:" << endl;
168 // for(int i=0;i<20;i++)
169 // cout << angles[i] <<";";
170 }
void PndForwardTrackFinderTask::FinishEvent ( )
virtual

Definition at line 148 of file PndForwardTrackFinderTask.cxx.

References correctedHits, correctedTracklets, fFinalSolution, fFirstTrackCandArray, fGlobalTracks, fGlobalTracksHits, fLayerTracks, fLayerTracksHits, fTrackCollection, fTrackCollectionHits, planes, and planesHit.

148  {
149  fFirstTrackCandArray->Delete();
150  fLayerTracks->Delete();
151  correctedHits->Delete();
152  correctedTracklets->Delete();
153  fLayerTracksHits->Delete();
154  fGlobalTracks->Delete();
155  fGlobalTracksHits->Delete();
156  planes->Delete();
157  planesHit->Delete();
158  fTrackCollection->Delete();
159  fTrackCollectionHits->Delete();
160  fFinalSolution->Delete();
161 }
PndLineApproximation PndForwardTrackFinderTask::getBest ( PndTrackCollection c,
vector< PndLineApproximation a 
)
private

Definition at line 277 of file PndForwardTrackFinderTask.cxx.

References PndTrackCollection::getHits(), PndLineApproximation::getLine(), getMcId(), i, and PndLine::setRating().

Referenced by createStatictcs().

277  {
278  Int_t mc = getMcId(c.getHits());
279  for(size_t i=0;i<a.size();i++){
280  Int_t mc2 = getMcId(a[i].getHits());
281  if(mc==mc2) return a[i];
282  }
284  appr.getLine().setRating(-1);
285  return appr;
286 }
Int_t i
Definition: run_full.C:25
Int_t a
Definition: anaLmdDigi.C:126
void setRating(Int_t r)
Definition: PndLine.h:44
Int_t getMcId(vector< PndFtsHit * > hits)
vector< PndFtsHit * > getHits()
Int_t PndForwardTrackFinderTask::getMcId ( vector< PndFtsHit * >  hits)
private

Definition at line 288 of file PndForwardTrackFinderTask.cxx.

References fIoman, fOriginalHits, hit, i, m, and p.

Referenced by getBest().

288  {
289  Int_t mcTrackBranchId = fIoman->GetBranchId("MCTrack");
290  vector<Int_t> trackIDs;
291  for(size_t i=0;i<hits.size();i++){
292  PndFtsHit* hit = fOriginalHits[hits[i]->GetTubeID()];
293  FairLink link = hit->GetEntryNr();
294  PndFtsPoint* p = (PndFtsPoint*) fIoman->GetCloneOfLinkData(link);
295  FairMultiLinkedData mld = p->GetLinksWithType(mcTrackBranchId);
296  FairLink linksToMc = mld.GetLink(0);
297  int trackID = linksToMc.GetIndex();
298  trackIDs.push_back(trackID);
299  }
300  Int_t maxID = 0;
301  Int_t maxVal = -1;
302  map<Int_t,Int_t> m;
303  for(size_t i=0;i<trackIDs.size();i++){
304  m[trackIDs[i]]++;
305  if(m[trackIDs[i]] > maxVal){
306  maxVal = m[trackIDs[i]];
307  maxID = trackIDs[i];
308  }
309  }
310  return maxID;
311 }
Double_t p
Definition: anasim.C:58
Int_t i
Definition: run_full.C:25
__m128 m
Definition: P4_F32vec4.h:28
map< Int_t, PndFtsHit * > fOriginalHits
PndSdsMCPoint * hit
Definition: anasim.C:70
CbmHit * hits[nHits]
Definition: RiemannTest.C:19
InitStatus PndForwardTrackFinderTask::Init ( )
virtual

Definition at line 13 of file PndForwardTrackFinderTask.cxx.

References angles, correctedHits, correctedTracklets, dists, fFinalSolution, fFirstTrackCandArray, fGlobalTracks, fGlobalTracksHits, fHits, fIoman, fLayerTracks, fLayerTracksHits, fModuleCombiner, fPndFtsCellTrackletGenerator, fPndFtsLineApproximator, fPndTrackCombiner, fTrackCollection, fTrackCollectionHits, fWayFollower, i, planes, planesHit, and rootBranches.

13  {
14  fIoman = FairRootManager::Instance();
15  //load hits
16  fHits = (TClonesArray*) fIoman->GetObject("FTSHit"); //correct hits
17  //planes
18  planes = fIoman->Register("Planes", "PndTrack","FTS", kTRUE);
19  planesHit = fIoman->Register("PlanesHits", "PndFtsHit","FTS", kTRUE);
20  //tracklets
21  fFirstTrackCandArray = fIoman->Register("FirstTrackCand", "PndTrackCand","FTS", kTRUE);
22  //corrected tracklets
23  correctedTracklets = fIoman->Register("CorrectedTracklets", "PndTrack","FTS", kTRUE);
24  correctedHits = fIoman->Register("CorrectedHits", "PndFtsHit","FTS", kTRUE);
25  //layer tracks
26  fLayerTracks = fIoman->Register("LayerTracks", "PndTrack","FTS", kTRUE);
27  fLayerTracksHits = fIoman->Register("LayerTracksHits", "PndFtsHit","FTS", kTRUE);
28  //global tracks befor and after magnet
29  fGlobalTracks = fIoman->Register("GlobalTracks", "PndTrack","FTS", kTRUE);
30  fGlobalTracksHits = fIoman->Register("GlobalTracksHits", "PndFtsHit","FTS", kTRUE);
31  //final Solution
32  fFinalSolution = fIoman->Register("FinalSolution", "PndTrack","FTS", kTRUE);
33  //track collection
34  fTrackCollection = fIoman->Register("TrackCollection", "PndTrack","FTS", kTRUE);
35  fTrackCollectionHits = fIoman->Register("TrackCollectionHits", "PndFtsHit","FTS", kTRUE);
36  //fill the root-branches array
46 
47  for(int i=0;i<20;i++)dists[i]=0;
48  for(int i=0;i<20;i++)angles[i]=0;
49  return kSUCCESS;
50 }
Int_t i
Definition: run_full.C:25
PndFtsLineApproximator * fPndFtsLineApproximator
PndFtsCellTrackletGenerator * fPndFtsCellTrackletGenerator
void PndForwardTrackFinderTask::saveCombined ( vector< PndLineApproximation combined,
Int_t  branch,
Int_t  branchID,
Bool_t  useOrgHits 
)

Definition at line 172 of file PndForwardTrackFinderTask.cxx.

References PndTrackCand::AddHit(), c, combinedTracksHitNum, combinedTracksTrackNum, fIoman, fOriginalHits, PndLine::getDir(), PndLineApproximation::getHits(), PndLineApproximation::getLine(), PndLine::getP1(), PndFtsHit::GetTubeID(), hit, i, rootBranches, and v.

Referenced by Exec().

172  {
173  if (branchID == -1) {
174  std::cout << "PndForwardTrackFinderTask::saveCombined branchID == -1" << std::endl;
175  }
176  TVector3 v(1, 1, 1);
177  for (size_t i = 0; i < combined.size(); i++) {
178  PndLineApproximation l = combined[i];
179  PndLine l2 = l.getLine();
180  PndTrackCand c;
181  FairTrackParP tp1(v, v, v, v, 1, v, v, v);
182  FairTrackParP tp2(l2.getP1(), 3 * l2.getDir().Unit(), v, v, 1, v, v, v);
183  for (size_t j = 0; j < l.getHits().size(); j++) {
184  PndFtsHit* hit = l.getHits()[j];
185  if(!useOrgHits){
186  hit->SetEntryNr(FairLink(-1, fIoman->GetEntryNr(),branchID, combinedTracksHitNum));
187  new ((*(rootBranches[branch+1]))[combinedTracksHitNum++]) PndFtsHit(*hit); //PndFtsHit* myHit = //[R.K.03/2017] unused variable
188  } else {
189  hit = fOriginalHits[hit->GetTubeID()];
190  }
191  c.AddHit(hit->GetEntryNr(), j);
192  }
193  new ((*(rootBranches[branch]))[combinedTracksTrackNum++]) PndTrack(tp1, tp2, c); //PndTrack* myCand = //[R.K.03/2017] unused variable
194  }
195 }
vector< PndFtsHit * > getHits()
Int_t i
Definition: run_full.C:25
TVector3 getDir()
Definition: PndLine.h:34
__m128 v
Definition: P4_F32vec4.h:4
Int_t GetTubeID() const
Definition: PndFtsHit.h:70
void AddHit(UInt_t detId, UInt_t hitId, Double_t rho)
map< Int_t, PndFtsHit * > fOriginalHits
PndSdsMCPoint * hit
Definition: anasim.C:70
TVector3 getP1()
Definition: PndLine.h:32
void PndForwardTrackFinderTask::saveCorrectedTracklets ( map< Int_t, vector< PndFtsExpandedTrackCand >>  res)

Definition at line 197 of file PndForwardTrackFinderTask.cxx.

References PndTrackCand::AddHit(), fIoman, PndLine::getDir(), PndLineApproximation::getHits(), PndLineApproximation::getLine(), PndFtsExpandedTrackCand::getLineApproximations(), PndLine::getP1(), hit, i, map, res, and v.

Referenced by Exec().

197  {
198  Int_t trackNum = 0;
199  Int_t hitNum= 0;
200  for (map<Int_t, vector<PndFtsExpandedTrackCand>>::iterator it = res.begin();it != res.end(); it++) {
201  vector<PndFtsExpandedTrackCand> etc = it->second;
202  for(size_t i=0;i<etc.size();i++){
203  PndFtsExpandedTrackCand cand = etc[i];
204  vector<PndLineApproximation> approxs = cand.getLineApproximations();
205  for(size_t j=0;j<approxs.size();j++){
206  PndLineApproximation approx = approxs[j];
207  PndTrackCand trackCand;
208  for (size_t k = 0; k < approx.getHits().size(); k++) {
209  PndFtsHit* hit = approx.getHits()[k];
210  hit->SetEntryNr(FairLink(-1, fIoman->GetEntryNr(),fIoman->GetBranchId("CorrectedHits"),hitNum));
211  new ((*correctedHits)[hitNum++]) PndFtsHit(*hit);//PndFtsHit* myHit = //[R.K.03/2017] unused variable
212  trackCand.AddHit(hit->GetEntryNr(), k);
213  }
214  TVector3 v(1, 1, 1);
215  FairTrackParP tp1(approx.getLine().getP1(),
216  3 * approx.getLine().getDir().Unit(), v, v, 1, v, v, v);
217  FairTrackParP tp2(v, 2 * v, v, v, 1, v, v, v);
218  //PndTrack* myCand =
219  new ((*correctedTracklets)[trackNum++]) PndTrack(tp1, tp2, trackCand);
220 // std::cout << "PndForwardTrackFinderTask::saveCorrectedTracklets myCand: " << *myCand << std::endl;
221  }
222  }
223  }
224 }
vector< PndFtsHit * > getHits()
Int_t res
Definition: anadigi.C:166
Int_t i
Definition: run_full.C:25
PndTransMap * map
Definition: sim_emc_apd.C:99
TVector3 getDir()
Definition: PndLine.h:34
__m128 v
Definition: P4_F32vec4.h:4
void AddHit(UInt_t detId, UInt_t hitId, Double_t rho)
vector< PndLineApproximation > getLineApproximations()
PndSdsMCPoint * hit
Definition: anasim.C:70
TVector3 getP1()
Definition: PndLine.h:32
void PndForwardTrackFinderTask::saveTrackCollection ( vector< PndTrackCollection coll,
Bool_t  withOrgHits 
)

Definition at line 226 of file PndForwardTrackFinderTask.cxx.

References a, PndTrackCand::AddHit(), c, fIoman, fOriginalHits, PndTrackCollection::getCurrLine(), PndLine::getDir(), PndLineApproximation::getHits(), PndLineApproximation::getLine(), PndTrackCollection::getLines(), PndLine::getP1(), PndTrackCollection::getPndTrack(), hit, i, and v.

Referenced by Exec().

226  {
227  Int_t trackNum = 0;
228  Int_t hitNum = 0;
229  TVector3 v(1, 1, 1);
230  for(size_t k=0;k<coll.size();k++){
231  PndTrackCollection c = coll[k];
232  if(withOrgHits){
233  new ((*fFinalSolution)[trackNum++]) PndTrack(c.getPndTrack(fOriginalHits));//PndTrack* myCand = //[R.K.03/2017] unused variable
234  } else {
235  vector<PndLineApproximation> *approx = c.getLines();
236  for(size_t i=0;i<approx->size();i++){
237  PndLineApproximation a = (*approx)[i];
238  PndTrackCand trackCand;
239  for(size_t j=0;j<a.getHits().size();j++){
240  PndFtsHit* hit = a.getHits()[j];
241  hit->SetEntryNr(FairLink(-1, fIoman->GetEntryNr(),fIoman->GetBranchId("TrackCollectionHits"),hitNum));
242  new ((*fTrackCollectionHits)[hitNum++]) PndFtsHit(*hit);//PndFtsHit* myHit = //[R.K.03/2017] unused variable
243  trackCand.AddHit(hit->GetEntryNr(), j);
244  }
245  FairTrackParP tp1(a.getLine().getP1(),3 * a.getLine().getDir().Unit(), v, v, 1, v, v, v);
246  FairTrackParP tp2(v, 2 * v, v, v, 1, v, v, v);
247  new ((*fTrackCollection)[trackNum++]) PndTrack(tp1, tp2, trackCand);//PndTrack* myCand = //[R.K.03/2017] unused variable
248  }
249  FairTrackParP tp1(c.getCurrLine().getP1(),3 * c.getCurrLine().getDir().Unit(), v, v, 1, v, v, v);
250  FairTrackParP tp2(v, 2 * v, v, v, 1, v, v, v);
251  PndTrackCand trackCand;
252  new ((*fTrackCollection)[trackNum++]) PndTrack(tp1, tp2, trackCand);//PndTrack* myCand = //[R.K.03/2017] unused variable
253  }
254  }
255 }
vector< PndFtsHit * > getHits()
Int_t i
Definition: run_full.C:25
TVector3 getDir()
Definition: PndLine.h:34
__m128 v
Definition: P4_F32vec4.h:4
Int_t a
Definition: anaLmdDigi.C:126
void AddHit(UInt_t detId, UInt_t hitId, Double_t rho)
map< Int_t, PndFtsHit * > fOriginalHits
vector< PndLineApproximation > * getLines()
PndTrack getPndTrack(map< Int_t, PndFtsHit * > orgHits)
PndSdsMCPoint * hit
Definition: anasim.C:70
TVector3 getP1()
Definition: PndLine.h:32
void PndForwardTrackFinderTask::SetParContainers ( )
virtual

Definition at line 9 of file PndForwardTrackFinderTask.cxx.

9  {
10 
11 }

Member Data Documentation

Int_t PndForwardTrackFinderTask::angles[20]
private

Definition at line 93 of file PndForwardTrackFinderTask.h.

Referenced by createStatictcs(), and Init().

string PndForwardTrackFinderTask::branchName = "FTSHitErr"
private

Definition at line 60 of file PndForwardTrackFinderTask.h.

Int_t PndForwardTrackFinderTask::combinedTracksHitNum
private

Definition at line 84 of file PndForwardTrackFinderTask.h.

Referenced by Exec(), and saveCombined().

Int_t PndForwardTrackFinderTask::combinedTracksTrackNum
private

Definition at line 85 of file PndForwardTrackFinderTask.h.

Referenced by Exec(), and saveCombined().

TClonesArray* PndForwardTrackFinderTask::correctedHits
private

Definition at line 66 of file PndForwardTrackFinderTask.h.

Referenced by FinishEvent(), and Init().

TClonesArray* PndForwardTrackFinderTask::correctedTracklets
private

Definition at line 65 of file PndForwardTrackFinderTask.h.

Referenced by FinishEvent(), and Init().

Int_t PndForwardTrackFinderTask::dists[20]
private

Definition at line 92 of file PndForwardTrackFinderTask.h.

Referenced by createStatictcs(), and Init().

Int_t PndForwardTrackFinderTask::eventNumber
private

Definition at line 54 of file PndForwardTrackFinderTask.h.

Referenced by Exec().

TClonesArray* PndForwardTrackFinderTask::fFinalSolution
private

Definition at line 71 of file PndForwardTrackFinderTask.h.

Referenced by FinishEvent(), and Init().

std::vector<PndTrackCand> PndForwardTrackFinderTask::fFirstTrackCand
private

Definition at line 59 of file PndForwardTrackFinderTask.h.

Referenced by Exec().

TClonesArray* PndForwardTrackFinderTask::fFirstTrackCandArray
private

Definition at line 64 of file PndForwardTrackFinderTask.h.

Referenced by FinishEvent(), and Init().

TClonesArray* PndForwardTrackFinderTask::fGlobalTracks
private

Definition at line 69 of file PndForwardTrackFinderTask.h.

Referenced by FinishEvent(), and Init().

TClonesArray* PndForwardTrackFinderTask::fGlobalTracksHits
private

Definition at line 70 of file PndForwardTrackFinderTask.h.

Referenced by FinishEvent(), and Init().

TClonesArray* PndForwardTrackFinderTask::fHits
private

Definition at line 57 of file PndForwardTrackFinderTask.h.

Referenced by Exec(), and Init().

FairRootManager* PndForwardTrackFinderTask::fIoman
private
TClonesArray* PndForwardTrackFinderTask::fLayerTracks
private

Definition at line 67 of file PndForwardTrackFinderTask.h.

Referenced by FinishEvent(), and Init().

TClonesArray* PndForwardTrackFinderTask::fLayerTracksHits
private

Definition at line 68 of file PndForwardTrackFinderTask.h.

Referenced by FinishEvent(), and Init().

PndModuleCombiner* PndForwardTrackFinderTask::fModuleCombiner
private

Definition at line 80 of file PndForwardTrackFinderTask.h.

Referenced by Exec(), and Init().

map<Int_t,PndFtsHit*> PndForwardTrackFinderTask::fOriginalHits
private

Definition at line 87 of file PndForwardTrackFinderTask.h.

Referenced by Exec(), getMcId(), saveCombined(), and saveTrackCollection().

PndFtsCellTrackletGenerator* PndForwardTrackFinderTask::fPndFtsCellTrackletGenerator
private

Definition at line 77 of file PndForwardTrackFinderTask.h.

Referenced by Exec(), and Init().

PndFtsLineApproximator* PndForwardTrackFinderTask::fPndFtsLineApproximator
private

Definition at line 78 of file PndForwardTrackFinderTask.h.

Referenced by Exec(), and Init().

PndTrackCombiner* PndForwardTrackFinderTask::fPndTrackCombiner
private

Definition at line 79 of file PndForwardTrackFinderTask.h.

Referenced by Exec(), and Init().

TClonesArray* PndForwardTrackFinderTask::fTrackCollection
private

Definition at line 72 of file PndForwardTrackFinderTask.h.

Referenced by FinishEvent(), and Init().

TClonesArray* PndForwardTrackFinderTask::fTrackCollectionHits
private

Definition at line 73 of file PndForwardTrackFinderTask.h.

Referenced by FinishEvent(), and Init().

PndWayFollower* PndForwardTrackFinderTask::fWayFollower
private

Definition at line 81 of file PndForwardTrackFinderTask.h.

Referenced by Exec(), and Init().

TClonesArray* PndForwardTrackFinderTask::planes
private

Definition at line 62 of file PndForwardTrackFinderTask.h.

Referenced by FinishEvent(), and Init().

TClonesArray* PndForwardTrackFinderTask::planesHit
private

Definition at line 63 of file PndForwardTrackFinderTask.h.

Referenced by FinishEvent(), and Init().

TClonesArray* PndForwardTrackFinderTask::rootBranches[5]
private

Definition at line 75 of file PndForwardTrackFinderTask.h.

Referenced by Init(), and saveCombined().


The documentation for this class was generated from the following files: