//----------------------------------------------------------- // 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 TpcPSATaskALICE_HH #define TpcPSATaskALICE_HH // Base Class Headers ---------------- #include "FairTask.h" #include "TpcDigiPar.h" #include // Collaborating Class Headers ------- // Collaborating Class Declarations -- class TClonesArray; class TpcFrontend; class TpcAbsPSAStrategy; class TpcDigiPar; class TpcAbsPulseshape; class TpcSample; class TpcPadPlane; class TpcPSATaskALICE : public FairTask { public: // Constructors/Destructors --------- TpcPSATaskALICE(); ~TpcPSATaskALICE(); // Operators // Accessors ----------------------- // Modifiers ----------------------- void SetSampleBranchName(const TString& name) {fsampleBranchName=name;} void SetDigiBranchName(const TString& name) {fDigiOutName=name;} void SetPersistence(Bool_t opt=kTRUE) {fpersistence=opt;} void SetSamplePersistence(Bool_t opt=kTRUE){fSamplePersistence = opt;} void SetPeakingtime(int pik) {fpeak=pik;} void SetTail(bool b){fTail=b;} void SetOpt(unsigned int b){fopt=b;} void SetVerbose(Bool_t opt){fVerbose=opt;} void SetTrivial(Bool_t opt){fTrivialPSA=opt;} void SetTimeCut(unsigned int tcutlow, unsigned int tcuthigh){fTimeCut=kTRUE; fcutlow= tcutlow; fcuthigh= tcuthigh;} void SetPadRowCut(unsigned int padrowcut){fpadrowcut= padrowcut;} // Operations ---------------------- virtual InitStatus Init(); virtual void Exec(Option_t* opt); virtual void SetParContainers(); void PresetNullSample(std::vector *samplelist); private: // Private Data Members ------------ TString fsampleBranchName; TString fDigiOutName; TClonesArray* fsampleArray; TClonesArray* fdigiArray; Bool_t fpersistence; Bool_t fSamplePersistence; Bool_t fVerbose; bool fTail; Bool_t fTrivialPSA; Bool_t fTimeCut; unsigned int fcutlow; unsigned int fcuthigh; unsigned int fpadrowcut; // 0 no cut, 1 bad row cut, 2 intermediate row cut TpcFrontend* ffrontend; TpcAbsPSAStrategy* fpsa; TpcAbsPulseshape* fpulseshape; TpcDigiPar* fpar; TpcPadPlane* fPadPlane; std::vector nullSamples; // needed to correctly delete Samples created by PresetNullSample std::map* > fSampleMap; unsigned int fPads; int fpeak; unsigned int fopt; // Private Methods ----------------- void clearSampleMap(); unsigned int GetPadRow (unsigned int padrow); public: ClassDef(TpcPSATaskALICE,1) }; #endif //-------------------------------------------------------------- // $Log$ //--------------------------------------------------------------