Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2024-09-27 07:03:38

0001 /*
0002     <one line to give the library's name and an idea of what it does.>
0003     Copyright (C) 2011  Oystein Djuvsland <oystein.djuvsland@gmail.com>
0004 
0005     This library is free software; you can redistribute it and/or
0006     modify it under the terms of the GNU Lesser General Public
0007     License as published by the Free Software Foundation; either
0008     version 2.1 of the License, or (at your option) any later version.
0009 
0010     This library is distributed in the hope that it will be useful,
0011     but WITHOUT ANY WARRANTY; without even the implied warranty of
0012     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0013     Lesser General Public License for more details.
0014 
0015     You should have received a copy of the GNU Lesser General Public
0016     License along with this library; if not, write to the Free Software
0017     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
0018 */
0019 
0020 
0021 #ifndef STARLIGHTPYTHIA_H
0022 #define STARLIGHTPYTHIA_H
0023 
0024 #include "eXevent.h"
0025 #include "inputParameters.h"
0026 #include "beambeamsystem.h"
0027 #include "eventchannel.h"
0028 
0029 class spectrum;
0030 
0031 class starlightPythia : public eventChannel
0032 {
0033 
0034 public:
0035 
0036     starlightPythia(const inputParameters& input, beamBeamSystem& bbsystem);
0037     virtual ~starlightPythia();
0038 
0039     int init(std::string pythiaParams, bool fullEventRecord = false);
0040 
0041     virtual eXEvent produceEvent();
0042 
0043     virtual eXEvent produceSingleEvent(int /*zdirection*/, float /*egamma*/){return eXEvent();}
0044 
0045     virtual eXEvent produceDoubleEvent(){return eXEvent();}
0046 
0047     virtual starlightConstants::event produceEvent(int& /*ievent*/){ return starlightConstants::event();}
0048 
0049     void setSingleMode() {
0050         _doDoubleEvent = false;
0051     }
0052 
0053     void setDoubleMode() {
0054         _doDoubleEvent = true;
0055     }
0056 
0057     void setMinGammaEnergy(double energy) {
0058         _minGammaEnergy = energy;
0059     }
0060 
0061     void setMaxGammaEnergy(double energy) {
0062         _maxGammaEnergy = energy;
0063     }
0064 
0065     void setFullEventRecord(bool fer = true) { _fullEventRecord = fer; }
0066     
0067 private:
0068 
0069     /** Contains the photon spectrum */
0070     spectrum *_spectrum;
0071 
0072     /** Should we produce a double event? */
0073     bool _doDoubleEvent;
0074 
0075     /** Min gamma energy */
0076     double _minGammaEnergy;
0077 
0078     /** Max gamma energy */
0079     double _maxGammaEnergy;
0080 
0081     /** Full event record or not */
0082     bool _fullEventRecord;
0083     
0084     /** Prohibited */
0085     starlightPythia();
0086     starlightPythia(const starlightPythia& other);
0087     starlightPythia& operator=(const starlightPythia& other);
0088     bool operator==(const starlightPythia& other) const;
0089 
0090 };
0091 
0092 #endif // STARLIGHTPYTHIA_H