//----------------------------------------------------------- // File and Version Information: // $Id$ // // Description: // Correction of cluster positions based on fit of // aquired data // // Environment: // Software developed for the PANDA Detector at FAIR. // // Author List: // Felix Boehmer TUM (original author) // Martin Berger // //----------------------------------------------------------- #ifndef TPCCLUSTERCORRTASK_H #define TPCCLUSTERCORRTASK_H // Base Class Headers ---------------- #include "FairTask.h" // Collaborating Class Headers ------- #include // remove if you do not need streaming op // Collaborating Class Declarations -- #include "TpcCluster.h" #include "TpcDevmapCyl.h" class TClonesArray; class TpcDigiPar; class TpcPadPlane; //class TpcDevmapCyl; class TF1; class TpcClusterCorrectionTask : public FairTask { public: // Constructors/Destructors --------- TpcClusterCorrectionTask(); ~TpcClusterCorrectionTask(); // Operators // Accessors ----------------------- // Modifiers ----------------------- void SetClusterBranchName(const TString& name) {_clusterBranchName=name;} void SetDigiBranchName(const TString& name) {_digiBranchName=name;} void SetClusterOutBranchName(const TString& name) {_clusterOutName=name;} void SetPersistence(Bool_t opt=kTRUE) {_persistence=opt;} void GetParameters(std::vector) const; void SetParameters(double* parArr); void SetDevMap(const TString& name) {_devMapName=name; _useDevMap=kTRUE;} void SetUseDevMap(Bool_t opt=kTRUE){_useDevMap=opt;} void SetUseDigis(Bool_t opt=kTRUE){_useDigis=opt;} // Operations ---------------------- virtual InitStatus Init(); virtual void Exec(Option_t* opt); virtual void ExecPar(Option_t * opt); virtual void ExecMap(Option_t * opt); virtual void ExecMapDigi(Option_t * opt); virtual void SetParContainers(); void WriteHistograms(const TString& filename); private: // Private Data Members ------------ TString _clusterBranchName; TString _digiBranchName; TString _clusterOutName; TString _devMapName; TClonesArray* _clusterArray; TClonesArray* _digiArray; TClonesArray* _outArray; Bool_t _persistence; Bool_t _useDevMap; Bool_t _forceManDrift; Bool_t _useDigis; bool _parSet; //flag if corrFunc's pars have been set std::vector _pars; //coefficients of 5th order polynomial //used for cluster position correction TpcDigiPar* fpar; TpcPadPlane* fpadplane; const TpcGas* fgas; TpcDevmapCyl * _devMap; Double_t _driftVel; TF1* corrFunc; // Private Methods ----------------- public: ClassDef(TpcClusterCorrectionTask,1) }; #endif //-------------------------------------------------------------- // $Log$ //--------------------------------------------------------------