]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STARLIGHT/starlight/src/.svn/text-base/starlight.cpp.svn-base
Removing some SVN-related files
[u/mrichter/AliRoot.git] / STARLIGHT / starlight / src / .svn / text-base / starlight.cpp.svn-base
diff --git a/STARLIGHT/starlight/src/.svn/text-base/starlight.cpp.svn-base b/STARLIGHT/starlight/src/.svn/text-base/starlight.cpp.svn-base
deleted file mode 100644 (file)
index f6ff15b..0000000
+++ /dev/null
@@ -1,374 +0,0 @@
-///////////////////////////////////////////////////////////////////////////
-//
-//    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 <http://www.gnu.org/licenses/>.
-//
-///////////////////////////////////////////////////////////////////////////
-//
-// File and Version Information:
-// $Rev::                             $: revision of last commit
-// $Author::                          $: author of last commit
-// $Date::                            $: date of last commit
-//
-// Description:
-//
-//
-//
-///////////////////////////////////////////////////////////////////////////
-
-#include <iostream>
-#include <fstream>
-#include <cstdlib>
-
-#include "starlightconfig.h"
-
-#ifdef ENABLE_PYTHIA
-#include "PythiaStarlight.h"
-#endif
-
-#ifdef ENABLE_DPMJET
-#include "starlightdpmjet.h"
-#endif
-
-#ifdef ENABLE_PYTHIA6
-#include "starlightpythia.h"
-#endif
-
-#include "reportingUtils.h"
-#include "inputParameters.h"
-#include "eventchannel.h"
-#include "gammagammaleptonpair.h"
-#include "gammagammasingle.h"
-#include "gammaavm.h"
-#include "psifamily.h"
-#include "twophotonluminosity.h"
-#include "gammaaluminosity.h"
-#include "incoherentPhotonNucleusLuminosity.h"
-#include "upcevent.h"
-#include "eventfilewriter.h"
-#include "starlight.h"
-
-
-using namespace std;
-using namespace starlightConstants;
-
-
-starlight::starlight() :
-               _beam0                 (0),
-               _beam1                 (0),
-               _beamSystem            (0),
-               _eventChannel          (0),
-               _nmbEventsPerFile      (100),
-               _nmbEventsToGenerate   (10),
-               _configFileName        ("slight.in"),
-               _eventDataFileName     ("slight.out"),
-               _lumLookUpTableFileName("slight.txt"),
-               _isInitialised         (false)
-{ }
-
-
-starlight::~starlight()
-{ }
-
-
-bool
-starlight::init()
-{
-       if(Starlight_VERSION_MAJOR == 9999)
-       {
-               cout << "##################################" << endl
-               << " Initialising Starlight version: trunk..." << endl
-               << "##################################" << endl;
-       }
-       else
-       {
-               cout << "##################################" << endl
-               << " Initialising Starlight version: " << Starlight_VERSION_MAJOR << "."
-               << Starlight_VERSION_MINOR << "." << Starlight_VERSION_MINOR_MINOR << "..." << endl
-               << "##################################" << endl;
-       }
-
-       _nmbEventsPerFile    = inputParametersInstance.nmbEvents();  // for now we write only one file...
-
-       _beamSystem = new beamBeamSystem;
-       
-//     cout << "Created beam system with beam lorentz gamma: " << _beamSystem->beamLorentzGamma() << endl;
-
-       // streamsize precision(15);
-       cout.setf(ios_base::fixed,ios_base::floatfield);
-       cout.precision(15);
-       const bool lumTableIsValid = luminosityTableIsValid();
-       bool createChannel = true;
-       switch (inputParametersInstance.interactionType())      {
-       case PHOTONPHOTON:
-               if (!lumTableIsValid) {
-                       printInfo << "creating luminosity table for photon-photon channel" << endl;
-                       twoPhotonLuminosity(_beamSystem->beam1(), _beamSystem->beam2());
-               }
-               break;          
-       case PHOTONPOMERONNARROW:  // narrow and wide resonances use
-       case PHOTONPOMERONWIDE:    // the same luminosity function
-               if (!lumTableIsValid) {
-                       printInfo << "creating luminosity table for coherent photon-Pomeron channel" <<endl;
-                       photonNucleusLuminosity lum(*_beamSystem);
-               }
-               break;
-        case PHOTONPOMERONINCOHERENT:  // narrow and wide resonances use
-                if (!lumTableIsValid) {
-                        printInfo << "creating luminosity table for incoherent photon-Pomeron channel" << endl;
-                        incoherentPhotonNucleusLuminosity lum(*_beamSystem);
-                }
-                break;
-#ifdef ENABLE_DPMJET
-       case PHOTONUCLEARSINGLE:
-               createChannel = false;
-               _eventChannel = new starlightDpmJet(*_beamSystem);
-               std::cout << "CREATING PHOTONUCLEAR/DPMJET SINGLE" << std::endl;
-               dynamic_cast<starlightDpmJet*>(_eventChannel)->setSingleMode();
-               dynamic_cast<starlightDpmJet*>(_eventChannel)->setMinGammaEnergy(inputParametersInstance.minGammaEnergy());
-               dynamic_cast<starlightDpmJet*>(_eventChannel)->setMaxGammaEnergy(inputParametersInstance.maxGammaEnergy());
-               dynamic_cast<starlightDpmJet*>(_eventChannel)->init();
-               break;
-       case PHOTONUCLEARDOUBLE:
-               createChannel = false;
-               _eventChannel = new starlightDpmJet(*_beamSystem);
-               std::cout << "CREATING PHOTONUCLEAR/DPMJET DOUBLE" << std::endl;
-               dynamic_cast<starlightDpmJet*>(_eventChannel)->setDoubleMode();
-               dynamic_cast<starlightDpmJet*>(_eventChannel)->setMinGammaEnergy(inputParametersInstance.minGammaEnergy());
-               dynamic_cast<starlightDpmJet*>(_eventChannel)->setMaxGammaEnergy(inputParametersInstance.maxGammaEnergy());
-               dynamic_cast<starlightDpmJet*>(_eventChannel)->init();
-               break;
-       case PHOTONUCLEARSINGLEPA:
-               createChannel = false;
-               _eventChannel = new starlightDpmJet(*_beamSystem);
-               std::cout << "CREATING PHOTONUCLEAR/DPMJET SINGLE" << std::endl;
-               dynamic_cast<starlightDpmJet*>(_eventChannel)->setSingleMode();
-               dynamic_cast<starlightDpmJet*>(_eventChannel)->setProtonMode();
-               dynamic_cast<starlightDpmJet*>(_eventChannel)->setMinGammaEnergy(inputParametersInstance.minGammaEnergy());
-               dynamic_cast<starlightDpmJet*>(_eventChannel)->setMaxGammaEnergy(inputParametersInstance.maxGammaEnergy());
-               dynamic_cast<starlightDpmJet*>(_eventChannel)->init();
-               break;
-#endif
-#ifdef ENABLE_PYTHIA6
-       case PHOTONUCLEARSINGLEPAPY:
-               createChannel = false;
-               _eventChannel = new starlightPythia(*_beamSystem);
-               std::cout << "CREATING PHOTONUCLEAR/PYTHIA SINGLE" << std::endl;
-               dynamic_cast<starlightPythia*>(_eventChannel)->setSingleMode();
-               dynamic_cast<starlightPythia*>(_eventChannel)->setMinGammaEnergy(inputParametersInstance.minGammaEnergy());
-               dynamic_cast<starlightPythia*>(_eventChannel)->setMaxGammaEnergy(inputParametersInstance.maxGammaEnergy());
-               dynamic_cast<starlightPythia*>(_eventChannel)->init(inputParametersInstance.pythiaParams(), inputParametersInstance.pythiaFullEventRecord());
-               break;
-#endif
-       default:
-               {
-                       printWarn << "unknown interaction type '" << inputParametersInstance.interactionType() << "'."
-                                 << " cannot initialize starlight." << endl;
-                       return false;
-               }
-       }
-       
-       if(createChannel)
-       {
-         if (!createEventChannel())
-                 return false;
-       }
-
-       _isInitialised = true;
-       return true;
-}
-
-
-upcEvent
-starlight::produceEvent()
-{
-       if (!_isInitialised) {
-               printErr << "trying to generate event but Starlight is not initialised. aborting." << endl;
-               exit(-1);
-       }
-       return _eventChannel->produceEvent();
-}
-
-
-bool
-starlight::luminosityTableIsValid() const
-{
-       printInfo << "using random seed = " << inputParametersInstance.randomSeed() << endl;
-
-       ifstream lumLookUpTableFile(_lumLookUpTableFileName.c_str());
-       lumLookUpTableFile.precision(15);
-       if ((!lumLookUpTableFile) || (!lumLookUpTableFile.good())) {
-               // printWarn << "cannot open file '" << _lumLookUpTableFileName << "'" << endl;
-               return false;
-       }
-
-       unsigned int beam1Z, beam1A, beam2Z, beam2A;
-       double       beamLorentzGamma = 0;
-       double       maxW = 0, minW = 0;
-       unsigned int nmbWBins;
-       double       maxRapidity = 0;
-       unsigned int nmbRapidityBins;
-       int          productionMode, beamBreakupMode;
-       bool         interferenceEnabled = false;
-       double       interferenceStrength = 0;
-       bool         coherentProduction = false;
-       double       incoherentFactor = 0, deuteronSlopePar = 0, maxPtInterference = 0;
-       int          nmbPtBinsInterference;
-       std::string  validationKey;
-       if (!(lumLookUpTableFile
-             >> validationKey
-             >> beam1Z >> beam1A
-             >> beam2Z >> beam2A
-             >> beamLorentzGamma
-             >> maxW >> minW >> nmbWBins
-             >> maxRapidity >> nmbRapidityBins
-             >> productionMode
-             >> beamBreakupMode
-             >> interferenceEnabled >> interferenceStrength
-             >> coherentProduction >> incoherentFactor
-             >> deuteronSlopePar
-             >> maxPtInterference
-             >> nmbPtBinsInterference))
-               // cannot read parameters from lookup table file
-               return false;
-               
-       std::string validationKeyEnd;
-       while(!lumLookUpTableFile.eof())
-       {
-         lumLookUpTableFile >> validationKeyEnd; 
-       }
-       lumLookUpTableFile.close();
-       return (validationKey == inputParametersInstance.parameterValueKey() && validationKeyEnd == validationKey);
-       return true;
-}
-
-
-bool
-starlight::createEventChannel()
-{
-       switch (inputParametersInstance.prodParticleType()) {
-       case ELECTRON:
-       case MUON:
-       case TAUON:
-               {
-                       _eventChannel = new Gammagammaleptonpair(*_beamSystem);
-                       if (_eventChannel)
-                               return true;
-                       else {
-                               printWarn << "cannot construct Gammagammaleptonpair event channel." << endl;
-                               return false;
-                       }
-               }
-       case A2:        // jetset
-       case ETA:       // jetset
-       case ETAPRIME:  // jetset
-       case ETAC:      // jetset
-       case F0:        // jetset
-               {
-#ifdef ENABLE_PYTHIA
-                       // PythiaOutput = true;
-                       cout<<"Pythia is enabled!"<<endl;
-//                     return true;
-#else
-                       printWarn << "Starlight is not compiled against Pythia8; "
-                                 << "jetset event channel cannot be used." << endl;
-                       return false;
-#endif
-               }
-       case F2:
-       case F2PRIME:
-       case ZOVERZ03:
-               {
-                 //  #ifdef ENABLE_PYTHIA
-                       cout<<" This is f2, f2prim, zoverz03 "<<endl; 
-                       _eventChannel= new Gammagammasingle(*_beamSystem);
-                       if (_eventChannel)
-                               return true;
-                       else {
-                               printWarn << "cannot construct Gammagammasingle event channel." << endl;
-                               return false;
-                       }
-                       // #endif
-                       //                      printWarn << "Starlight is not compiled against Pythia8; "
-                       //          << "Gammagammasingle event channel cannot be used." << endl;
-                       // return false;
-               }
-       case RHO:
-       case RHOZEUS:
-       case FOURPRONG:
-       case OMEGA:  
-       case PHI:
-       case JPSI:
-       case JPSI2S:
-       case JPSI2S_ee:
-       case JPSI2S_mumu:
-       case JPSI_ee:
-       case JPSI_mumu:
-       case UPSILON:
-       case UPSILON_ee:
-       case UPSILON_mumu:
-       case UPSILON2S:
-       case UPSILON2S_ee:
-       case UPSILON2S_mumu:
-       case UPSILON3S:
-       case UPSILON3S_ee:
-       case UPSILON3S_mumu:
-               {
-                       if (inputParametersInstance.interactionType() == PHOTONPOMERONNARROW) {
-                               _eventChannel = new Gammaanarrowvm(*_beamSystem);
-                               if (_eventChannel)
-                                       return true;
-                               else {
-                                       printWarn << "cannot construct Gammaanarrowvm event channel." << endl;
-                                       return false;
-                               }
-                       }
-
-                       if (inputParametersInstance.interactionType() == PHOTONPOMERONWIDE) {
-                               _eventChannel = new Gammaawidevm(*_beamSystem);
-                               if (_eventChannel)
-                                       return true;
-                               else {
-                                       printWarn << "cannot construct Gammaawidevm event channel." << endl;
-                                       return false;
-                               }
-                       }
-
-                        if (inputParametersInstance.interactionType() == PHOTONPOMERONINCOHERENT) {
-                                _eventChannel = new Gammaaincoherentvm(*_beamSystem);
-                                if (_eventChannel)
-                                        return true;
-                                else {
-                                        printWarn << "cannot construct Gammaanarrowvm event channel." << endl;
-                                        return false;
-                                }
-                        }
-
-                       printWarn << "interaction type '" << inputParametersInstance.interactionType() << "' "
-                                 << "cannot be used with particle type '" << inputParametersInstance.prodParticleType() << "'. "
-                                 << "cannot create event channel." << endl;
-                       return false;
-               }
-       default:
-               {
-                       printWarn << "unknown event channel '" << inputParametersInstance.prodParticleType() << "'."
-                                 << " cannot create event channel." << endl;
-                       return false;
-               }
-       }
-}