#ifndef CBM_RICH_MCBM_HIT_PRODUCER #define CBM_RICH_MCBM_HIT_PRODUCER #include "FairTask.h" #include "CbmRichRecGeoPar.h" //class CbmGeoRichPar; class TClonesArray; class TVector3; class CbmEvent; class CbmRichMCbmMappingData { public: UInt_t fTrbId; UInt_t fChannel; Double_t fX; Double_t fY; }; class CbmRichMCbmHitProducer : public FairTask { public: /** * \brief Default constructor. */ CbmRichMCbmHitProducer(); /** * \brief Destructor. */ virtual ~CbmRichMCbmHitProducer(); /** * \brief Inherited from FairTask. */ virtual void SetParContainers(); /** * \brief Inherited from FairTask. */ virtual InitStatus Init(); /** * \brief Inherited from FairTask. */ virtual void Exec( Option_t* option); /** * \brief Inherited from FairTask. */ virtual void Finish(); /** * Process RichDigi. */ void ProcessDigi(Int_t digiIndex); /** * Set mapping file path. */ void SetMappingFile(const string& mappingFile){fMappingFile = mappingFile;} private: TClonesArray* fRichDigis; // RICH digis TClonesArray* fRichHits; // RICH hits map fRichMapping; Int_t fEventNum; // event number Double_t fHitError; string fMappingFile; void InitMapping(); /** * \brief Add hit to the output array (and) CbmEvent if it is not NULL. */ void AddHit( TVector3 &posHit, Double_t time, Int_t index); /** * \brief Copy constructor. */ CbmRichMCbmHitProducer(const CbmRichMCbmHitProducer&); /** * \brief Assignment operator. */ CbmRichMCbmHitProducer& operator=(const CbmRichMCbmHitProducer&); ClassDef(CbmRichMCbmHitProducer,1) }; #endif