/////////////////////////////////////////////////////////////////////////// // // Copyright 2010 // // This file is part of starlight. // // starlight is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // starlight is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with starlight. If not, see . // /////////////////////////////////////////////////////////////////////////// // // File and Version Information: // $Rev:: 164 $: revision of last commit // $Author:: odjuvsla $: author of last commit // $Date:: 2013-10-06 16:18:08 +0200 #$: date of last commit // // Description: // // // /////////////////////////////////////////////////////////////////////////// #ifndef STARLIGHT_H #define STARLIGHT_H #include #include "upcevent.h" #include "eventchannel.h" class inputParameters; class beam; class beamBeamSystem; class starlight { public: starlight(); ~starlight(); bool init(); upcEvent produceEvent(); std::string configFileName() const { return _configFileName; } unsigned long nmbAttempts () const { return _eventChannel->nmbAttempts(); } unsigned long nmbAccepted () const { return _eventChannel->nmbAccepted(); } private: bool luminosityTableIsValid() const; bool createEventChannel(); beam* _beam0; beam* _beam1; beamBeamSystem* _beamSystem; eventChannel* _eventChannel; unsigned int _nmbEventsPerFile; unsigned long long _nmbEventsToGenerate; std::string _configFileName; std::string _eventDataFileName; std::string _lumLookUpTableFileName; bool _isInitialised; }; #endif // STARLIGHT_H