8 #ifndef PndTrackingQA_H_
9 #define PndTrackingQA_H_
11 #include "FairMultiLinkedData.h"
12 #include "FairRootManager.h"
19 #include <TClonesArray.h>
84 if (qNumber ==
kGhost)
return "Ghost";
85 if (qNumber ==
kNotFound)
return "NotFound";
86 if (qNumber ==
kFound)
return "Found";
87 return std::to_string(qNumber);
156 virtual Int_t
AnalyseTrackInfo(std::map<TString, FairMultiLinkedData>& trackInfo, Int_t trackId);
157 virtual void CalcEfficiencies(Int_t mostProbableTrack, std::map<TString, FairMultiLinkedData>& trackInfo);
void PrintTrackDataSummary(FairMultiLinkedData &trackData, Bool_t detailedInfo=kFALSE)
std::map< Int_t, Int_t > GetMCTrackFound()
std::map< Int_t, Int_t > fMapTrackQualification
! TrackId vs TrackStatus after analysis of track finding
std::map< Int_t, Double_t > fMapPt
virtual Int_t AnalyseTrackInfo(std::map< TString, FairMultiLinkedData > &trackInfo, Int_t trackId)
Bool_t IsBetterTrackExisting(Int_t &mcIndex, int quality)
std::string fPossibleTrackName
static const int kMcAtLeastThreeSec
Bool_t fPndTrackOrTrackCand
std::map< Int_t, Double_t > fMapPlResolution
std::map< Int_t, Double_t > GetPlResolution()
void AnalyseEvent(TClonesArray *recoTrackInfo)
Bool_t fUseCorrectedSkewedHits
Double_t val[nBoxes][nFEBox]
static const int kLessThanThreePrim
void SetHitsBranchNames(std::vector< TString > names)
static const int kPossiblePrim
static const int kAtLeastThreeSec
std::map< Int_t, Double_t > GetPResolution()
std::map< Int_t, Double_t > GetPResolutionRel()
std::map< Int_t, Int_t > fMCIdIdealTrackId
! map between MC id and ideal track id
TClonesArray * fIdealTrackCand
FairMultiLinkedData GetMCInfoForBranch(TString branchName, PndTrackCand *trackCand)
returns which MCTracks and how often (marked by a FairLink) they were seen by the hits of a PndTrackC...
PndTrackFunctor * fPossibleTrack
static const int kPartiallyFound
static const int kMcPossibleSec
std::vector< TString > fBranchNames
! branch names of hits taken into account in the analysis (e.g. MVDHitsPixel, STTHit, ...)
std::map< Int_t, TVector3 > fMapP
std::map< Int_t, Double_t > fMapPl
void AddHitsBranchName(TString name)
Adds branch names of detector data which should be taken into account in the analysis.
TClonesArray * fIdealTrack
std::map< Int_t, Double_t > fMapPlResolutionRel
void PrintTrackMCStatusMap()
Int_t GetSumOfAllValidMCHits(FairMultiLinkedData *trackData)
virtual void CalcEfficiencies(Int_t mostProbableTrack, std::map< TString, FairMultiLinkedData > &trackInfo)
static std::string QualityNumberToString(int qNumber)
static const int kPossibleSec
std::map< TString, FairMultiLinkedData > AnalyseTrackCand(PndTrackCand *trackCand)
returns a map<BranchNameOfHits, MCTrackLinks> which returns the FairLinks to MCTracks grouped by hit ...
std::map< Int_t, Int_t > GetTrackMCStatus()
std::map< Int_t, Int_t > fMCTrackFound
! How often was a MC Track (key) found
void PrintTrackDataSummaryCompare(FairMultiLinkedData &recoTrackData, FairMultiLinkedData &idealTrackData)
void PrintTrackInfo(std::map< TString, FairMultiLinkedData > info)
static const int kAtLeastThreePrim
std::map< Int_t, TVector3 > GetP()
std::map< Int_t, std::map< TString, std::pair< Double_t, Int_t > > > GetEfficiencies()
virtual void FillMapTrackQualifikation()
std::map< Int_t, Double_t > GetPt()
std::map< Int_t, Double_t > fMapPResolution
std::map< Int_t, Double_t > fMapPResolutionRel
Holding statically callable quality numbers.
std::map< Int_t, Double_t > GetPlResolutionRel()
std::map< Int_t, Double_t > GetPtResolution()
void SetVerbose(Int_t val)
static const int kMcLessThanThreePrim
PndTrackingQA(TString trackBranchName, TString idealTrackName, Bool_t pndTrackData=kTRUE)
PndTrackingQualityRecoInfo GetRecoInfoFromRecoTrack(Int_t trackId, Int_t mctrackId)
static const int kMcAllTracksWithHits
std::map< Int_t, Int_t > GetTrackQualification()
std::map< Int_t, Int_t > fMapTrackMCStatus
! TrackId vs TrackStatus from MC
static const int kFullyFound
std::map< Int_t, Double_t > fMapPtResolutionRel
std::map< Int_t, Int_t > fTrackIdMCId
! map between track id and most probable MC track id
static const int kMcAllTracks
std::map< Int_t, Int_t > fMCIdTrackId
! map between MC id and track id
Int_t GetIdealTrackIdFromMCTrackId(int mctrackid)
std::map< Int_t, std::map< TString, std::pair< Double_t, Int_t > > > fMapEfficiencies
! MostProbable TrackId, BranchName, Efficiency (#FoundHits / #MCHits), #MCHits
static const int kMcAtLeastThreePrim
Int_t GetNIdealHits(FairMultiLinkedData &track, TString branchName)
std::map< Int_t, Double_t > GetPtResolutionRel()
void PrintTrackQualityMap(Bool_t detailedInfo=kFALSE)
std::map< Int_t, Double_t > GetPl()
std::map< Int_t, Double_t > fMapPtResolution
static const int kMcPossiblePrim
static const int kSpuriousFound
static const int kNotFound
Int_t GetIdealTrackIdFromRecoTrackId(int trackid)
std::map< Int_t, Int_t > GetTrackIdMCId()