//----------------------------------------------------------- // File and Version Information: // $Id$ // // Description: // Tpc Drifter reads in TpcPrimaryClusters and produces drifted electrons // // // Environment: // Software developed for the PANDA Detector at FAIR. // // Author List: // Sebastian Neubert TUM (original author) // // //----------------------------------------------------------- #ifndef TPCDRIFTTASK_HH #define TPCDRIFTTASK_HH // Base Class Headers ---------------- #include "FairTask.h" #include "TH1.h" #include "TH2.h" #include "QAPlotCollection.h" #include "TMatrixDSym.h" #include "RooDataSet.h" #include "TVector3.h" // Collaborating Class Headers ------- // Collaborating Class Declarations -- class TClonesArray; class TpcGas; class TpcDevmapCyl; class TpcDigiPar; //class QAPlotCollection; class TpcDriftTask : public FairTask { public: // Constructors/Destructors --------- TpcDriftTask(); ~TpcDriftTask(); // Operators // Accessors ----------------------- // Modifiers ----------------------- void SetPrimBranchName(const TString& name) {fprimBranchName=name;} void SetPersistence(Bool_t opt=kTRUE) {fpersistence=opt;} void SetDistort(Bool_t opt=kTRUE, double scale=1) {fdistort=opt;fscale=scale;} void SetDeviationFile(const char* file) {fdevFile = file;} void SetPhiCut(double phimin, double phimax){fphicut=true;fphimin=phimin;fphimax=phimax;} void SetQAPlotCol(QAPlotCollection* col){fqa=col;} void ForceManualDriftVel(Bool_t opt=true) {fForceManDrift=opt;} // Operations ---------------------- virtual InitStatus Init(); virtual void Exec(Option_t* opt); virtual void SetParContainers(); void FillHistograms(double, double, double); //to keep track of the drifts void WriteHistograms(); //has to be called in Digi macro private: // Private Data Members ------------ TString fprimBranchName; TClonesArray* fprimArray; TClonesArray* fdriftedArray; QAPlotCollection* fqa; TH1D* fxVariation; TH1D* fyVariation; TH2D* fxVarAndDriftL; TH2D* fyVarAndDriftL; const TpcGas* fgas; TpcDigiPar* fpar; TpcDevmapCyl* fdevmap; Double_t fDriftVel; Bool_t fphicut; Bool_t fForceManDrift; double fphimin, fphimax; Bool_t fpersistence; Bool_t fattach; Bool_t fdiffuseL; Bool_t fdiffuseT; Bool_t fdistort; Double_t fscale; /// scaling factor for the distortions Bool_t finitialized; const char* fdevFile; // Private Methods ----------------- std::vector MakeDiffusion(Int_t nSamples); public: ClassDef(TpcDriftTask,2) }; #endif //-------------------------------------------------------------- // $Log$ //--------------------------------------------------------------