//-*- Mode: C++ -*- // ************************************************************************ // This file is property of and copyright by the ALICE HLT Project * // ALICE Experiment at CERN, All rights reserved. * // See cxx source for full Copyright notice * // * //************************************************************************* #ifdef DO_TPCCATRACKER_EFF_PERFORMANCE #ifndef ALIHLTTPCTOPOPERFORMANCE_H #define ALIHLTTPCTOPOPERFORMANCE_H #include "AliHLTTPCParticlePerformanceBase.h" #include "AliHLTTPCCADef.h" #include "AliHLTArray.h" #include "AliHLTTPCCAMCTrack.h" #include "AliHLTTPCCAMCPoint.h" #include "AliHLTTPCCAMCVertex.h" #include #include #include #include "KFPartMatch.h" #include "KFMCParticle.h" class TObject; class TParticle; class AliHLTTPCCAMCPoint; class AliHLTTPCCAGBTracker; class AliHLTTPCTopoReconstructor; class TDirectory; class TH1D; class TH2D; class TProfile; class TFile; class AliHLTTPCCATracker; /** * @class AliHLTTPCTopoPerformance. Don't use w\o GlobalPerformance */ class AliHLTTPCTopoPerformance: public AliHLTTPCParticlePerformanceBase { public: AliHLTTPCTopoPerformance(); virtual ~AliHLTTPCTopoPerformance(){}; virtual void SetNewEvent( const AliHLTTPCCAGBTracker * const Tracker, AliHLTResizableArray *hitLabels, AliHLTResizableArray *mcTracks, AliHLTResizableArray *localMCPoints); void SetNewEvent2( const AliHLTTPCTopoReconstructor * const TopoReconstructor ); // use together with SetNewEvent !!! /// Efficiency // Check if MC track is reconstructable. Calculate set of MC track. Etc. virtual void CheckMCTracks(); // fill mcData. // Find reco-MCTracks correspondence virtual void MatchTracks(); // fill recoData. // Calculate efficiencies virtual void EfficiencyPerformance(){}; // current don't use eff virtual void PrintEfficiencyStatistic(){}; // current don't use eff virtual void PrintEfficiency() {}; /// Histograms // virtual void CreateHistos(string histoDir); virtual void FillHistos(); private: void GetMCParticles(); void MatchParticles(); void CalculateEfficiency(); void FindReconstructableMCParticles(); void CheckMCParticleIsReconstructable(KFMCParticle &part); const AliHLTTPCTopoReconstructor *fTopoReconstructor; vector fPrimVertices; // primary vertex positions (currently only one vertex is implemented) vector vMCParticles; // MC particles vector MCtoRParticleId; // array for match MC and reco particles vector RtoMCParticleId; //defines the mode of an efficiency calculation //1 - efficiency is normalized on the all MCParticles //2 - efficiency is normalized on the MCParticles, which has all daughters reconstructable //3 - efficiency is normalized on the MCParticles, which has all daughters reconstructed by the track finder const int fFindParticlesMode; }; #endif #endif //DO_TPCCATRACKER_EFF_PERFORMANCE