/** * CbmDeviceStsHitProducerIdeal.h * * @since 2019-08-28 * @author F. Uhlig */ #ifndef CBMDEVICEMSTSHITPRODUCERIDEAL_H_ #define CBMDEVICEMSTSHITPRODUCERIDEAL_H_ #include "FairMQDevice.h" #include "CbmMQChannels.h" #include "CbmStsHitProducerIdealAlgo.h" #include "TMessage.h" #include #include class CbmTrdParSetGas; class CbmDeviceStsHitProducerIdeal: public FairMQDevice { public: CbmDeviceStsHitProducerIdeal(); virtual ~CbmDeviceStsHitProducerIdeal(); protected: virtual void InitTask(); bool HandleData(FairMQMessagePtr&, int); private: uint64_t fMaxEvents; uint64_t fNumMessages; std::string fRunId; std::string fvmcworkdir; CbmTrdParSetGas* fTrdGasPar; std::vector fAllowedChannels = {"StsPoint","parameters"}; std::vector> fChannelsToSend = { {} }; std::vector fComponentsToSend {}; CbmMQChannels fChan{fAllowedChannels}; CbmStsHitProducerIdealAlgo* fAlgo{new CbmStsHitProducerIdealAlgo()}; bool IsChannelNameAllowed(std::string channelName); bool InitContainers(); bool DoWork(); bool SendData(); void Finish(); }; // special class to expose protected TMessage constructor class CbmMQTMessage : public TMessage { public: CbmMQTMessage(void* buf, Int_t len) : TMessage(buf, len) { ResetBit(kIsOwner); } }; #endif /* CBMDEVICESTSLOCALRECO_H_ */