14         fIoman = FairRootManager::Instance();
 
   16         fHits = (TClonesArray*) 
fIoman->GetObject(
"FTSHit"); 
 
   18         planes = 
fIoman->Register(
"Planes", 
"PndTrack",
"FTS", kTRUE);
 
   54                         << 
">>>>>>>>>>>>>>====================PndForwardTrackFinderTask::Exec====================<<<<<<<<<<<<<<" 
   56         std::cout << 
"EventNumber:" << 
eventNumber++ << std::endl;
 
   60         std::vector<PndFtsHit*> 
hits;
 
   61         for (
int i = 0; 
i < 
fHits->GetEntries(); 
i++) {
 
   63                 hit->SetEntryNr(FairLink(-1, 
fIoman->GetEntryNr(), 
fIoman->GetBranchId(
"FTSHit"), 
i));
 
   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++)
 
   84                 cout << 
"Too mutch tracks for reconstruction" << endl;
 
   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++){
 
  101                                 expandedTrackCands[it->first].push_back(c);
 
  173         if (branchID == -1) {
 
  174                 std::cout << 
"PndForwardTrackFinderTask::saveCombined branchID == -1" << std::endl;
 
  177         for (
size_t i = 0; 
i < combined.size(); 
i++) {
 
  181                 FairTrackParP tp1(v, v, v, v, 1, v, v, v);
 
  183                 for (
size_t j = 0; j < l.
getHits().size(); j++) {
 
  191                         c.
AddHit(hit->GetEntryNr(), j);
 
  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++){
 
  205                         for(
size_t j=0;j<approxs.size();j++){
 
  208                                 for (
size_t k = 0; k < approx.
getHits().size(); k++) {
 
  210                                         hit->SetEntryNr(FairLink(-1, 
fIoman->GetEntryNr(),
fIoman->GetBranchId(
"CorrectedHits"),hitNum));
 
  211                                         new ((*correctedHits)[hitNum++]) 
PndFtsHit(*hit);
 
  212                                         trackCand.
AddHit(hit->GetEntryNr(), k);
 
  217                                 FairTrackParP tp2(v, 2 * v, v, v, 1, v, v, v);
 
  219         new ((*correctedTracklets)[trackNum++]) 
PndTrack(tp1, tp2, trackCand);
 
  230         for(
size_t k=0;k<coll.size();k++){
 
  235                         vector<PndLineApproximation> *approx = c.
getLines();
 
  236                         for(
size_t i=0;
i<approx->size();
i++){
 
  239                                 for(
size_t j=0;j<a.
getHits().size();j++){
 
  241                                         hit->SetEntryNr(FairLink(-1, 
fIoman->GetEntryNr(),
fIoman->GetBranchId(
"TrackCollectionHits"),hitNum));
 
  242                                         new ((*fTrackCollectionHits)[hitNum++]) 
PndFtsHit(*hit);
 
  243                                         trackCand.
AddHit(hit->GetEntryNr(), j);
 
  246                                 FairTrackParP tp2(v, 2 * v, v, v, 1, v, v, v);
 
  247                                 new ((*fTrackCollection)[trackNum++]) 
PndTrack(tp1, tp2, trackCand);
 
  250                         FairTrackParP tp2(v, 2 * v, v, v, 1, v, v, v);
 
  252                         new ((*fTrackCollection)[trackNum++]) 
PndTrack(tp1, tp2, trackCand);
 
  259         for(
size_t i=0;
i<c.size();
i++){
 
  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)]++;
 
  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];
 
  289         Int_t mcTrackBranchId = 
fIoman->GetBranchId(
"MCTrack");
 
  290         vector<Int_t> trackIDs;
 
  291         for(
size_t i=0;
i<hits.size();
i++){
 
  293                 FairLink link = hit->GetEntryNr();
 
  295                 FairMultiLinkedData mld = p->GetLinksWithType(mcTrackBranchId);
 
  296                 FairLink linksToMc = mld.GetLink(0);
 
  297                 int trackID = linksToMc.GetIndex();
 
  298                 trackIDs.push_back(trackID);
 
  303         for(
size_t i=0;
i<trackIDs.size();
i++){
 
  305                 if(m[trackIDs[
i]] > maxVal){
 
  306                         maxVal = m[trackIDs[
i]];
 
vector< PndFtsHit * > getHits()
void setHits(std::vector< PndFtsHit * > hits)
Double_t getDist2D(TVector3 b1, TVector3 b2, TVector3 d1, TVector3 d2)
TClonesArray * fFinalSolution
map< Int_t, vector< PndTrackCand > > getTracklets()
void createStatictcs(vector< PndTrackCollection > c, vector< PndLineApproximation > a)
virtual void SetParContainers()
TClonesArray * correctedTracklets
TClonesArray * fGlobalTracks
void init(vector< PndLineApproximation > b, map< Int_t, vector< PndFtsExpandedTrackCand >> c)
void setZValue(Double_t z)
PndTrackCombiner * fPndTrackCombiner
TClonesArray * rootBranches[5]
virtual ~PndForwardTrackFinderTask()
TClonesArray * fGlobalTracksHits
PndFtsExpandedTrackCand createExpandedTrackCand(PndTrackCand &cand)
void addUnusedHits(vector< PndFtsHit * > hits, vector< PndTrackCollection > &c)
void AddHit(UInt_t detId, UInt_t hitId, Double_t rho)
TClonesArray * fTrackCollectionHits
Double_t getAngle2D(TVector3 d1, TVector3 d2)
PndWayFollower * fWayFollower
vector< PndTrackCollection > followLines(Int_t begin)
TClonesArray * fLayerTracks
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)
Int_t getMcId(vector< PndFtsHit * > hits)
void saveCombined(vector< PndLineApproximation > combined, Int_t branch, Int_t branchID, Bool_t useOrgHits)
TClonesArray * correctedHits
virtual InitStatus Init()
map< Int_t, PndFtsHit * > fOriginalHits
vector< PndLineApproximation > * getLines()
Int_t combinedTracksHitNum
void init(map< Int_t, vector< PndFtsExpandedTrackCand >> c)
PndModuleCombiner * fModuleCombiner
vector< PndLineApproximation > combine(Int_t bigLayer)
PndTrack getPndTrack(map< Int_t, PndFtsHit * > orgHits)
TClonesArray * fFirstTrackCandArray
virtual void FinishEvent()
void saveCorrectedTracklets(map< Int_t, vector< PndFtsExpandedTrackCand >>)
vector< PndFtsHit * > getHits()
virtual void Exec(Option_t *opt)
TClonesArray * fLayerTracksHits
PndFtsCellTrackletGenerator * fPndFtsCellTrackletGenerator
PndLineApproximation getBest(PndTrackCollection &c, vector< PndLineApproximation > a)
TClonesArray * fTrackCollection
Int_t combinedTracksTrackNum