8 #ifndef PNDTOOLS_TRACKINGQA_PNDTRACKFUNCTOR_H_ 
    9 #define PNDTOOLS_TRACKINGQA_PNDTRACKFUNCTOR_H_ 
   11 #include "FairMultiLinkedData.h" 
   12 #include "FairRootManager.h" 
   16 class PndTrackFunctor : 
public std::binary_function<FairMultiLinkedData* , Bool_t, Bool_t>
 
   22     virtual void Print() = 0;
 
   31                 FairRootManager* ioman = FairRootManager::Instance();
 
   32                 Bool_t possibleTrack = kFALSE;
 
   33                 possibleTrack = (possibleTrack | ((a->GetLinksWithType(ioman->GetBranchId(
"MVDHitsPixel")).GetNLinks() +
 
   34                                                                                  a->GetLinksWithType(ioman->GetBranchId(
"MVDHitsStrip")).GetNLinks()) > 3));
 
   36                 possibleTrack = (possibleTrack | ((a->GetLinksWithType(ioman->GetBranchId(
"MVDHitsPixel")).GetNLinks() +
 
   37                                                                                  a->GetLinksWithType(ioman->GetBranchId(
"MVDHitsStrip")).GetNLinks() +
 
   38                                                                                  a->GetLinksWithType(ioman->GetBranchId(
"STTHit")).GetNLinks() +
 
   39                                                                                  a->GetLinksWithType(ioman->GetBranchId(
"GEMHit")).GetNLinks()) > 5));
 
   45                 std::cout << 
"StandardTrackFunctor: > 3 Hits in MVD or > 5 Hits in (MVD+Stt+GEM)" << std::endl;
 
   52                 FairRootManager* ioman = FairRootManager::Instance();
 
   53                 Bool_t possibleTrack = kFALSE;
 
   55                 possibleTrack = (possibleTrack | (a->GetLinksWithType(ioman->GetBranchId(
"STTHit")).GetNLinks() > 5));
 
   60                 std::cout << 
"OnlySttFunctor: > 5 Hits in Stt" << std::endl;
 
   67                 FairRootManager* ioman = FairRootManager::Instance();
 
   68                 Bool_t possibleTrack = kFALSE;
 
   69                 Bool_t mvdHits =  ((a->GetLinksWithType(ioman->GetBranchId(
"MVDHitsPixel")).GetNLinks() +
 
   70                                                         a->GetLinksWithType(ioman->GetBranchId(
"MVDHitsStrip")).GetNLinks()) > 2);
 
   73                         possibleTrack = (a->GetLinksWithType(ioman->GetBranchId(
"STTHit")).GetNLinks() > 1)
 
   74                                                         | (a->GetLinksWithType(ioman->GetBranchId(
"GEMHit")).GetNLinks() > 1);
 
   79                 std::cout << 
"RiemannMvdSttGemFunctor: > 2 Hits in MVD and >0 Hits in (Stt+Gem)" << std::endl;
 
   87                 if (primary == kFALSE) 
return kFALSE;
 
   88                 FairRootManager* ioman = FairRootManager::Instance();
 
   89                 Bool_t possibleTrack = kFALSE;
 
   91                 Int_t nHitsMvdPixel = a->GetLinksWithType(ioman->GetBranchId(
"MVDHitsPixel")).GetNLinks();
 
   92                 Int_t nHitsMvdStrip = a->GetLinksWithType(ioman->GetBranchId(
"MVDHitsStrip")).GetNLinks();
 
   93                 if (nHitsMvdPixel + nHitsMvdStrip > 2) {  
 
   96                         possibleTrack = kTRUE;
 
  102                 std::cout << 
"CircleHoughTrackFunctor: >= 3 Hits in MVD and primary track" << std::endl;
 
  110                 FairRootManager* ioman = FairRootManager::Instance();
 
  111                 Bool_t possibleTrack = kFALSE;
 
  113                 possibleTrack = (possibleTrack | (a->GetLinksWithType(ioman->GetBranchId(
"FTSHit")).GetNLinks() > 5));
 
  115                 return possibleTrack;
 
  118                 std::cout << 
"FTSTrackFunctor: > 5 Hits in Fts" << std::endl;
 
  125                 FairRootManager* ioman = FairRootManager::Instance();
 
  126                 Bool_t possibleTrack = kFALSE;
 
  128                 possibleTrack = (possibleTrack | !(a->GetLinksWithType(ioman->GetBranchId(
"FTSHit")).GetNLinks() > 0));
 
  129                 if (possibleTrack == kFALSE) 
return kFALSE;
 
  131                 possibleTrack = kFALSE;
 
  132                 possibleTrack = (possibleTrack | standard(a, primary));
 
  134                 return possibleTrack;
 
  137                 std::cout << 
"noFTSTrackFunctor: no Hits in Fts + standardFunctor!" << std::endl;
 
  147                 std::cout << 
"AllTracksFunctor: take everything" << std::endl;
 
Bool_t Call(FairMultiLinkedData *a, Bool_t primary)
Bool_t Call(FairMultiLinkedData *a, Bool_t primary)
virtual ~PndTrackFunctor()
Bool_t Call(FairMultiLinkedData *a, Bool_t)
static PndTrackFunctor * make_PndTrackFunctor(std::string functorName)
Bool_t Call(FairMultiLinkedData *a, Bool_t)
Bool_t Call(FairMultiLinkedData *a, Bool_t)
Bool_t Call(FairMultiLinkedData *a, Bool_t)
Bool_t Call(FairMultiLinkedData *, Bool_t)
virtual Bool_t operator()(FairMultiLinkedData *a, Bool_t primary)
virtual Bool_t Call(FairMultiLinkedData *a, Bool_t primary)=0