// ------------------------------------------------------------------------- // ----- PndFwdPrepareKalmanTracks header file ----- // ----- Created 30.09.2008 by A. Wronska ----- // ----- based on the recotasks/demo code by S.Neubert ----- // ------------------------------------------------------------------------- /** \class PndFwdPrepareKalmanTracks2 * \author A.Wronska * \date 15.05.2008 * \modified by Radoslaw Karabowicz for GEM on 03/04/2009 * \brief PndFwdPrepareKalmanTracks2 creates and initializes Tracks and is a pre-step for genfit **/ #ifndef PNDFWDPREPAREKALMANTRACKS_H #define PNDFWDPREPAREKALMANTRACKS_H // Pnd Headres #include "FairTask.h" // c++ headers #include class TClonesArray; class RecoHitFactory; class AbsBFieldIfc; class FairField; class FairGeanePro; class PndFwdPrepareKalmanTracks : public FairTask { public: /** Constructor **/ PndFwdPrepareKalmanTracks(); /** Destructor **/ ~PndFwdPrepareKalmanTracks(); /** public method SetPersistence(Bool_t opt) **/ void SetPersistence(Bool_t opt=kTRUE) {fPersistence=opt;} /** public method SetField(FairField* f) to keep pointer to the B field **/ void SetField(FairField* f){fField=f;} /** public method UseGeane(Bool_t f) to switch on the use of Geane **/ void UseGeane(Bool_t f=kTRUE){fUseGeane=f;} /** public method UseMC(Bool_t f) to switch on init from mc or to 0 if not needed**/ void UseMC(Bool_t f=kTRUE){fUseMC=f;} /** public method UseGemDchMC(Bool_t f, Bool_t h) to in/exclude one of the detectors from reco**/ void UseGemDch(Bool_t f, Bool_t h){fUseGem=f; fUseDch=h;} /** public method SetMinNuOfHits(Int_t nu) sets lower limit for number of hits in a processable track **/ void SetMinNofGemHits(Int_t nu=6){fMinNofGemHits=nu;} void SetMinNofDchHits(Int_t nu=6){fMinNofDchHits=nu;} /** public method SetPDG(Int_t f) if useMC == kTRUE it is ignored **/ void SetPDG(Int_t f=11){fPDG=f;} /** public method Init() fetches and creates all necessary arrays, creates Geane **/ virtual InitStatus Init(); /** public method Exec(Option_t* opt) creates TrackCands, find starting values for Kalman and creates Track objects **/ virtual void Exec(Option_t* opt); private: TClonesArray* fTrackArray; ///< output array of genfit Tracks TClonesArray* fGemPointArray; ///< input array of PndGemPoints (needed for initialization of parameters) TClonesArray* fGemTrackArray; ///< input array of PndGemTracks to be processed by this task TClonesArray* fDchPointArray; ///< input array of PndDchPoints (needed for initialization of parameters) TClonesArray* fDchTrackArray; ///< input array of PndDchTracks to be processed by this task TClonesArray* fDchTrackMatchArray; ///