//----------------------------------------------------------- // File and Version Information: // $Id$ // // Description: // Tpc PSA: Pulse shape analysis // // // Environment: // Software developed for the PANDA Detector at FAIR. // // Author List: // Sebastian Neubert TUM (original author) // // //----------------------------------------------------------- #ifndef TPCELECTRONICSTASK_HH #define TPCELECTRONICSTASK_HH // Base Class Headers ---------------- #include "FairTask.h" // Collaborating Class Headers ------- #include // Collaborating Class Declarations -- class TClonesArray; class TpcFrontend; class TpcAbsPulseshape; class TpcAbsPSAStrategy; class TpcDigiPar; class TpcSample; class TH1D; class QAPlotCollection; class TpcElectronicsTask : public FairTask { public: // Constructors/Destructors --------- TpcElectronicsTask(); ~TpcElectronicsTask(); // Operators // Accessors ----------------------- // Modifiers ----------------------- void SetSignalBranchName(const TString& name) {fsignalBranchName=name;} void SetSampleBranchName(const TString& name) {fsampleBranchName=name;} void SetDigiBranchName(const TString& name) {fdigiBranchName=name;} void SetPersistence(Bool_t opt=kTRUE) {fpersistence=opt;} void SetShaper(const TString& opt){fshaper=opt;} void SetPSATimeCalib(Double_t c){fPSATimeCalib=c;} void SetZDepTimeCalib(Double_t p1, Double_t p2, Double_t p3,Double_t p4, Double_t p5, Double_t p6){fzdepTimeCalib=kTRUE;fp1=p1;fp2=p2;fp3=p3;fp4=p4;fp5=p5;fp6=p6;} void SetSamplePersistence(Bool_t opt=kTRUE) {fsamplePersistence=opt;} void SetQAPlotCol(QAPlotCollection* col){fqa=col;} void SetPSA(Int_t p){fpsai=p;} // Operations ---------------------- virtual InitStatus Init(); virtual void Exec(Option_t* opt); virtual void SetParContainers(); void WriteHistograms(); private: unsigned int fCount; //event counter // Private Data Members ------------ TString fsignalBranchName; TString fsampleBranchName; TString fdigiBranchName; TString fshaper; TClonesArray* fsignalArray; TClonesArray* fsampleArray; TClonesArray* fdigiArray; Bool_t fpersistence; Bool_t fsamplePersistence; Bool_t fzdepTimeCalib; Double_t fPSATimeCalib; // [0..1] Double_t fp1,fp2,fp3,fp4,fp5,fp6; Int_t fpsai; const TpcFrontend* ffrontend; TpcAbsPulseshape* fpulseshape; TpcAbsPSAStrategy* fpsa; TpcDigiPar* fpar; //! QA Histograms QAPlotCollection* fqa; //! Sample amplitudes TH1D* fsampleAmpH; TH1D* fmeanDigiTH; //! number samples recorded per number of signals TH1D* fnSampRelSig; Bool_t finitialized; // Private Methods ----------------- void PresetNullSample(std::vector *samplelist); void StoreSamples(std::vector *samplelist); public: ClassDef(TpcElectronicsTask,1) }; #endif //-------------------------------------------------------------- // $Log$ //--------------------------------------------------------------