+++ /dev/null
-///////////////////////////////////////////////////////////////////////////
-//
-// 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:: 102 $: revision of last commit
-// $Author:: odjuvsla $: author of last commit
-// $Date:: 2012-10-22 16:25:54 -0500 #$: date of last commit
-//
-// Description:
-//
-//
-//
-///////////////////////////////////////////////////////////////////////////
-
-
-#include <iostream>
-
-#include "reportingUtils.h"
-#include "starlight.h"
-#include "inputParameters.h"
-#include "eventfilewriter.h"
-#include "starlightStandalone.h"
-
-
-using namespace std;
-
-
-starlightStandalone::starlightStandalone()
- : _configFileName ("slight.in"),
- _eventDataFileName("slight.out"),
- _starlight (0),
- _inputParameters (0),
- _nmbEventsTot (1),
- _nmbEventsPerFile (_nmbEventsTot)
-{ }
-
-
-starlightStandalone::~starlightStandalone()
-{ }
-
-
-bool
-starlightStandalone::init()
-{
- // read input parameters from config file
- inputParametersInstance.configureFromFile(_configFileName);
- if (!inputParametersInstance.init()) {
- printWarn << "problems initializing input parameters. cannot initialize starlight." << endl;
- return false;
- }
-
- // get the number of events
- // for now we write everything to one file
- _nmbEventsTot = inputParametersInstance.nmbEvents();
- _nmbEventsPerFile = _nmbEventsTot;
-
- // create the starlight object
- _starlight = new starlight();
-
- // initialize starlight
- return _starlight->init();
-}
-
-
-bool
-starlightStandalone::run()
-{
- if (!_starlight) {
- printWarn << "null pointer to starlight object. make sure that init() was called. "
- << "cannot generate events." << endl;
- return false;
- }
-
- // open output file
- eventFileWriter fileWriter;
- fileWriter.writeFullPythiaInfo(inputParametersInstance.pythiaFullEventRecord());
- fileWriter.open(_eventDataFileName);
-
- printInfo << "generating events:" << endl;
- unsigned int nmbEvents = 0;
- while (nmbEvents < _nmbEventsTot) {
- for (unsigned int iEvent = 0; (iEvent < _nmbEventsPerFile) && (nmbEvents < _nmbEventsTot);
- ++iEvent, ++nmbEvents) {
- progressIndicator(iEvent, _nmbEventsTot, true, 4);
- upcEvent event = _starlight->produceEvent();
- // Boost event from CMS system to lab system
- boostEvent(event);
- fileWriter.writeEvent(event, iEvent);
- }
- }
- printInfo << "number of attempts = " << _starlight->nmbAttempts() << ", "
- << "number of accepted events = " << _starlight->nmbAccepted() << endl;
- fileWriter.close();
-
- return true;
-}
-void starlightStandalone::boostEvent(upcEvent &event)
-{
-
- // Should probably move this calculation to inputParameters (and remove from bbs)
- // Calculate CMS boost
- double rap1 = acosh(inputParametersInstance.beam1LorentzGamma());
- double rap2 = -acosh(inputParametersInstance.beam2LorentzGamma());
- double boost = (rap1+rap2)/2.;
-
- event.boost(boost);
-}
-