/* * PndMCIdealTrackFinderNewLinks.h * * Created on: Apr 12, 2010 * Author: stockman */ #ifndef PndMCIdealTrackFinderNewLinks_H_ #define PndMCIdealTrackFinderNewLinks_H_ // framework includes #include "FairTask.h" #include "FairMCPoint.h" #include "PndTrackCand.h" #include "TClonesArray.h" #include "TDatabasePDG.h" #include class PndMCIdealTrackFinderNewLinks : public FairTask { public: PndMCIdealTrackFinderNewLinks(); virtual ~PndMCIdealTrackFinderNewLinks(); /** Virtual method Init **/ // virtual void SetParContainers(); virtual InitStatus Init(); virtual void AddBranchName(TString name){ fBranchNames.push_back(name);} virtual void SetOutputBranchName(TString name){ fOutBranchName = name; }; /** Virtual method Exec **/ virtual void Exec(Option_t* opt); // virtual void Finish(); // taken from sttmvdtracking/PndSttMvdGemTrackingIdeal.h void SetMomentumSmearing(Double_t sigmax = -1.,Double_t sigmay = -1.,Double_t sigmaz = -1.) { fMomSigma.SetXYZ(fabs(sigmax),fabs(sigmay),fabs(sigmaz)); fRelative=kFALSE; }; // in GeV void SetRelativeMomentumSmearing(Double_t dpop = -1.) { fDPoP=fabs(dpop); fRelative=kTRUE; }; // in GeV void SetVertexSmearing(Double_t sigmax = -1.,Double_t sigmay = -1.,Double_t sigmaz = -1.) { fVtxSigma.SetXYZ(fabs(sigmax),fabs(sigmay),fabs(sigmaz)); }; // in cm void SetTrackingEfficiency(Double_t eff = 1.) { fEfficiency=eff; }; protected: virtual void CreateTrackCands(); // taken from sttmvdtracking/PndSttMvdGemTrackingIdeal.h void SmearVector(TVector3 &vec, const TVector3 &sigma); private: TString fOutBranchName; TClonesArray* fTrackCand; TClonesArray* fTrack; TClonesArray* fMCTrack; std::map fBranchMap; std::vector fBranchNames; std::map fTrackCandMap; std::map fFirstPointMap; std::map fLastPointMap; TDatabasePDG *fPdg; //!