//////////////////////////////////////////////////////////////////////// /// \class RAT::Gen_Null /// /// \brief Top Level Null Event Producer /// /// \author Tereza Kroupova -- contact person /// /// REVISION HISTORY\n /// 14-12-2021 - T. Kroupova - New file /// /// \details This generator simulates empty events with no primary particles /// nor vertices. Allows "standalone" application of processors. /// //////////////////////////////////////////////////////////////////////// #ifndef __RAT_Gen_Null__ #define __RAT_Gen_Null__ #include #include class G4ParticleDefinition; namespace RAT { class Gen_NullMessenger; class Gen_Null : public GLG4Gen { public: Gen_Null(); virtual ~Gen_Null(); // Main function - Calls nothing in this case virtual void GenerateEvent(G4Event *event); // Required by GLG4 - Always returns true virtual bool IsRepeatable() const { return true; }; // Set the state - only specifying time generator in this case // @param[in] state SetState state virtual void SetState(G4String state); // Return the set time generator virtual G4String GetState() const; // Specify the type of time generator to use to give time events Null events, default is Poisson // @param[in] state the time generator virtual void SetTimeGen(G4String generator); // Specify parameters for time generator for between null events (eg from generator/rate/ commands) // @param[in] state the time generator state virtual void SetTimeState(G4String state); // get parameters for time generator for between events (eg from generator/rate/ commands) virtual G4String GetTimeState() const; // Reset the event time, overwritting virtual GLG4Gen::ResetTime // @param[in] offset to be applied to the next event time virtual void ResetTime(double offset=0.0); protected: G4String fStateStr; }; } // namespace RAT #endif