//----------------------------------------------------------- // File and Version Information: // $Id$ // // Description: // Kalman Filter Task // // Environment: // Software developed for the PANDA Detector at FAIR. // // Author List: // Sebastian Neubert TUM (original author) // Felix Boehmer E18, TUM // //----------------------------------------------------------- #ifndef KALMANTASK_HH #define KALMANTASK_HH // Base Class Headers ---------------- #include "FairTask.h" // Collaborating Class Headers ------- #include "TString.h" #include // Collaborating Class Declarations -- class TClonesArray; class GFRecoHitFactory; class TH1D; class TGeoManager; class GFAbsFitter; class KalmanTask : public FairTask { public: // Constructors/Destructors --------- KalmanTask(); ~KalmanTask(); // Operators // Accessors ----------------------- // Modifiers ----------------------- void SetTrackBranchName(const TString& name) {_trackBranchName=name;} void SetOutBranchName(const TString& name) {_outBranchName=name;} //void SetPixelBranchName(const TString& name) {fMVDPixelBranchName=name;} //void SetStripBranchName(const TString& name) {fMVDStripBranchName=name;} void SetFopiCDCBranchName(const TString& name) {fFopiCDCBranchName=name;} //obsolete, will be removed soon void SetCdcHitBranchName(const TString& name) {fFopiCDCBranchName=name;} void SetTpcClusterBranchName(const TString& name) {fTpcClusterBranchName=name;} //obsolete, will be removed soon void SetTpcHitBranchName(const TString& name) {fTpcClusterBranchName=name;} void SetRpcHitBranchName(const TString& name) {fRpcPixHitBranchName=name;} void SetBarHitBranchName(const TString& name) {fBarPixHitBranchName=name;} void SetPersistence(Bool_t opt=kTRUE) {_persistence=opt;} void SetUseDAF(Bool_t opt=kTRUE) {fUseDAF=opt;} void SetLazy(Bool_t opt){_lazy=opt;} void SetNumIterations(Int_t it){_numIt=it;} void SetVerbose(int opt=1) {fVerbose=opt;} void AddIgnorePDG(int f){ fIgnorePDGs.push_back(f); } // Operations ---------------------- virtual InitStatus Init(); virtual void Exec(Option_t* opt); void WriteHistograms(const TString& filename); private: // Private Data Members ------------ TClonesArray* _trackArray; TClonesArray* _clusterArray; TClonesArray* _trackOutArray; TClonesArray* _rpcHitArray; TClonesArray* _barHitArray; TString _trackBranchName; TString _outBranchName; TString fMVDPixelBranchName; TString fMVDStripBranchName; TString fFopiCDCBranchName; TString fTpcClusterBranchName; TString fRpcPixHitBranchName; TString fBarPixHitBranchName; Bool_t _persistence; Bool_t _lazy; Bool_t fUseDAF; Int_t _numIt; // number of fitting iterations (back and forth) GFRecoHitFactory* _theRecoHitFactory; TH1D* _pH; // momentum histo; TH1D* _chi2H; // chi2 histo; TH1D* _massV0; // chi2 histo; TH1D* _massETAC; // chi2 histo; int _trackcount; GFAbsFitter* fFitter; std::vector fIgnorePDGs; //list of PDGs to be ignored during fit, statusflag=1 instead // Private Methods ----------------- public: ClassDef(KalmanTask,2) }; #endif //-------------------------------------------------------------- // $Log$ //--------------------------------------------------------------