//----------------------------------------------------------- // File and Version Information: // $Id$ // // Description: // GENFIT-based dEdx // // Environment: // Software developed for the PANDA Detector at FAIR. // // Author List: // Felix Boehmer, Christian Hoeppner TUM // // //----------------------------------------------------------- #ifndef DEDXTASK_HH #define DEDXTASK_HH // Base Class Headers ---------------- #include "FairTask.h" // Collaborating Class Headers ------- #include #include #include "TString.h" // Collaborating Class Declarations -- class TClonesArray; class TH1D; class TpcDigiPar; class TpcPadPlane; class TpcdEdxTask : public FairTask { public: // Constructors/Destructors --------- TpcdEdxTask(); ~TpcdEdxTask(); // Operators // Accessors ----------------------- // Modifiers ----------------------- void SetTrackBranchName(const TString& name) {_trackBranchName=name;} void SetClusterBranchName(const TString& clname) {_clusterBranchName=clname;} void SetOutBranchName(const TString& obname) {_outBranchName=obname;} //void UseSPHitTracks(const TString& t, Bool_t opt=kTRUE) {_spHitBranchName=t; _useSPHits=opt;} void SetDigiBranchName(const TString& diginame) {_digiBranchName=diginame;} void SetPersistence(Bool_t opt=kTRUE) {_persistence=opt;} void SetIdealdEdx(Bool_t opt=kTRUE) {_idealdEdx=opt;} void SetDXgrid(double dx) {_DX = dx;} //instead of track start position, use position of farthest digi opposed to track direction void SetUseFirstDigiPos(Bool_t opt=kTRUE) {fUseFirstDigiPos = opt;} //ignore digis liying inside radii r1 / outside r2 (due to bad gain calibration on edge pad rows) void SetIgnoreEdgeDigis(double r1, double r2, Bool_t opt=kTRUE); //void SetPadPlaneFile(const TString& psf) {fPadPlaneFile=psf;} //void SetPadShapeFile(const TString& psf) {fShapeFile=psf;} // Operations ---------------------- virtual InitStatus Init(); virtual void SetParContainers(); virtual void Exec(Option_t* opt); void WriteHistograms(const TString& filename); private: // Private Data Members ------------ TClonesArray* _trackArray; TClonesArray* _dEdxOutArray; TClonesArray* _dEdxMCOutArray; TClonesArray* _mcTrackArray; TClonesArray* _pointArray; TClonesArray* _clusterArray; TClonesArray* _digiArray; //TClonesArray* _spHitArray; TString _trackBranchName; TString _outBranchName; TString _clusterBranchName; TString _digiBranchName; //TString fPadPlaneFile; //TString fShapeFile; //TString _spHitBranchName; Bool_t _persistence; Bool_t _idealdEdx; Bool_t fUseFirstDigiPos; Bool_t fIgnoreEdgeDigis; //Bool_t _useSPHits; double _DX; //dx slice size TH1D* _distHist; TH1D* _dirHist; TpcDigiPar* fPar; TpcPadPlane* fPlane; int _hitBranchID; double fRMin; //from parfile. Needed for step out-of-volume checks double fRMax; double fRCutoff1; //cutoff radii for edge digis double fRCutoff2; // Private Methods ----------------- public: ClassDef(TpcdEdxTask,2) }; #endif //-------------------------------------------------------------- // $Log$ //--------------------------------------------------------------