24 numberOfParticles( (int)
BOL::UsefulStuff::notANumber ),
25 eventId( (int)
BOL::UsefulStuff::notANumber ),
26 eventWeight(
BOL::UsefulStuff::notANumber ),
27 eventScale(
BOL::UsefulStuff::notANumber ),
28 alphaQed(
BOL::UsefulStuff::notANumber ),
29 alphaQcd(
BOL::UsefulStuff::notANumber ),
31 eventNumberInFile( 0 ),
33 lineAsNumbersAsStrings( 6 ),
34 recordingSucceeded( false ),
36 motherLineNumber( 0 ),
37 primaryMotherLinePointer( NULL ),
38 secondaryMotherLinePointer( NULL ),
39 isVerbose( isVerbose ),
41 optionalInformation(
"" )
47 numberOfParticles( copySource.numberOfParticles ),
48 eventId( copySource.eventId ),
49 eventWeight( copySource.eventWeight ),
50 eventScale( copySource.eventScale ),
51 alphaQed( copySource.alphaQed ),
52 alphaQcd( copySource.alphaQcd ),
53 particleLines( copySource.particleLines,
55 eventNumberInFile( copySource.eventNumberInFile ),
57 lineAsNumbersAsStrings( 6 ),
58 recordingSucceeded( copySource.recordingSucceeded ),
60 motherLineNumber( 0 ),
61 primaryMotherLinePointer( NULL ),
62 secondaryMotherLinePointer( NULL ),
63 isVerbose( trueForVerbosity ),
64 eventAsString( copySource.eventAsString ),
65 optionalInformation( copySource.optionalInformation )
95 size_t startOfOptionalInformation( this->eventAsString.find(
'#' ) );
96 if( std::string::npos != startOfOptionalInformation )
99 this->eventAsString.substr( startOfOptionalInformation ) );
102 this->eventAsString.substr( 0,
103 startOfOptionalInformation ),
126 <<
" as invalid because only " <<
eventAsLines.getSize()
127 <<
" lines were found in the event, which is not enough for a header"
128 <<
" line + at least 1 particle line.";
129 std::cout << std::endl;
153 <<
" numbers were found for the header line, instead of exactly 6"
154 <<
" numbers, as required.";
155 std::cout << std::endl;
173 <<
" as invalid because the header line declared "
175 << (
eventAsLines.getSize() - 1 ) <<
" lines were found for the"
177 std::cout << std::endl;
198 for(
int lineCount( 1 );
217 <<
" as invalid because particle line " << lineCount
219 <<
" numbers rather than the required 13 numbers.";
220 std::cout << std::endl;
251 for(
int lineCount( 0 );
static std::string const whitespaceChars
static std::string const newlineChars
static std::string trimFromFrontAndBack(std::string const &stringToTrim, std::string const &charsToTrim=whitespaceAndNewlineChars)
static double stringToDouble(std::string const &stringToInterpret)
static int stringToInt(std::string const &stringToInterpret)
static void parseByChar(std::string const &stringToParse, VectorlikeArray< std::string > &destinationArray, std::string const &divisionCharSet=whitespaceChars)
std::string eventAsString
ParticleLine * secondaryMotherLinePointer
BOL::VectorlikeArray< ParticleLine > particleLines
void setUpPointersBetweenParticleLines()
BOL::VectorlikeArray< std::string > eventAsLines
bool recordEvent(std::string const &eventAsString)
std::string optionalInformation
LhefEvent(bool const isVerbose)
static bool const trueForVerbosity
static std::string const trimmingChars
ParticleLine * primaryMotherLinePointer
BOL::VectorlikeArray< std::string > lineAsNumbersAsStrings