2 <one line to give the library's name and an idea of what it does.>
3 Copyright (C) 2011 Oystein Djuvsland <oystein.djuvsland@gmail.com>
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
15 You should have received a copy of the GNU Lesser General Public
16 License along with this library; if not, write to the Free Software
17 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 #ifndef STARLIGHTPYTHIA_H
22 #define STARLIGHTPYTHIA_H
25 #include "inputParameters.h"
26 #include "beambeamsystem.h"
27 #include "eventchannel.h"
31 class starlightPythia : public eventChannel
36 starlightPythia(beamBeamSystem& bbsystem);
37 virtual ~starlightPythia();
39 int init(std::string pythiaParams, bool fullEventRecord = false);
41 virtual upcEvent produceEvent();
43 virtual upcEvent produceSingleEvent(int /*zdirection*/, float /*egamma*/){return upcEvent();}
45 virtual upcEvent produceDoubleEvent(){return upcEvent();}
47 virtual starlightConstants::event produceEvent(int& /*ievent*/){ return starlightConstants::event();}
49 void setSingleMode() {
50 _doDoubleEvent = false;
53 void setDoubleMode() {
54 _doDoubleEvent = true;
57 void setMinGammaEnergy(double energy) {
58 _minGammaEnergy = energy;
61 void setMaxGammaEnergy(double energy) {
62 _maxGammaEnergy = energy;
65 void setFullEventRecord(bool fer = true) { _fullEventRecord = fer; }
69 /** Contains the photon spectrum */
72 /** Should we produce a double event? */
75 /** Min gamma energy */
76 double _minGammaEnergy;
78 /** Max gamma energy */
79 double _maxGammaEnergy;
81 /** Full event record or not */
82 bool _fullEventRecord;
86 starlightPythia(const starlightPythia& other);
87 starlightPythia& operator=(const starlightPythia& other);
88 bool operator==(const starlightPythia& other) const;
92 #endif // STARLIGHTPYTHIA_H