#ifndef PNDMVDRATESTASK_H #define PNDMVDRATESTASK_H 1 #include "FairTask.h" #include "PndSdsMCPoint.h" #include "PndMvdDigiStrip.h" #include "PndMvdDigiPixel.h" #include "PndMvdRatesStrip.h" #include "PndMvdRatesPixel.h" #include "PndGeoHandling.h" #include "TH1F.h" #include "TRandom.h" #include #include class TClonesArray; class PndMvdRatesTask : public FairTask { public: PndMvdRatesTask(); PndMvdRatesTask(TH1F *h); // PndMvdStripHitProducer(Double_t topPitch, Double_t botPitch, // Double_t ori, Double_t skew, // TVector2 topAnchor, TVector2 botAnchor, // Int_t nrTopFE, Int_t nrBotFE, Int_t nrFECh, // Double_t threshold, Double_t noise, // TString sensorType="Rect", TString feType="APV25"); // /** Destructor **/ virtual ~PndMvdRatesTask(); /** Virtual method Init **/ virtual InitStatus Init(); virtual InitStatus ReInit(); /** Virtual method Exec **/ virtual void Exec(Option_t* opt); Double_t GetEventStep(); Double_t GenEvtStart(); Double_t GenDeadTimeStrip(Double_t charge); // returns the absolute time until which the // the channel will be unable to accept a new "digi" Double_t GenDeadTimePixel(Double_t charge); // returns the absolute time until which the private: // PndGeoHandling *fGeoH; TString fBranchMCName; TString fBranchStripDigiName; TString fBranchPixelDigiName; // TString fNameHisto; /** Input array of PndSdsMCPoints **/ TClonesArray* fPointArray; /** Input array of PndMvdDigiStrip **/ TClonesArray* fDigiStripArray; /** Input array of PndMvdDigiPixel **/ TClonesArray* fDigiPixelArray; //! Output array of PndMvdRates TClonesArray* fRatesStripArray; TClonesArray* fRatesPixelArray; TH1F *fTimeDistr; Double_t fAbsEvtTime; // absolute time of event start Int_t nEv; // event number std::map fStripDeadTime; std::map fPixelDeadTime; ClassDef(PndMvdRatesTask,5); }; #endif