File indexing completed on 2025-01-18 10:01:10
0001
0002 #ifndef HEPMC_STREAM_INFO_H
0003 #define HEPMC_STREAM_INFO_H
0004
0005
0006
0007
0008
0009
0010
0011 #include <string>
0012 #include "HepMC/Units.h"
0013
0014 namespace HepMC {
0015
0016
0017 enum known_io { gen=1, ascii, extascii, ascii_pdt, extascii_pdt };
0018
0019
0020
0021
0022
0023
0024
0025
0026 class StreamInfo {
0027 public:
0028
0029 StreamInfo( );
0030
0031 ~StreamInfo() {}
0032
0033
0034 std::string IO_GenEvent_Key() const { return m_io_genevent_start; }
0035
0036 std::string IO_GenEvent_End() const { return m_io_genevent_end; }
0037
0038
0039
0040
0041 std::string IO_Ascii_Key() const { return m_io_ascii_start; }
0042
0043 std::string IO_Ascii_End() const { return m_io_ascii_end; }
0044
0045 std::string IO_Ascii_PDT_Key() const { return m_io_ascii_pdt_start; }
0046
0047 std::string IO_Ascii_PDT_End() const { return m_io_ascii_pdt_end; }
0048
0049
0050
0051
0052 std::string IO_ExtendedAscii_Key() const { return m_io_extendedascii_start; }
0053
0054 std::string IO_ExtendedAscii_End() const { return m_io_extendedascii_end; }
0055
0056 std::string IO_ExtendedAscii_PDT_Key() const { return m_io_extendedascii_pdt_start; }
0057
0058 std::string IO_ExtendedAscii_PDT_End() const { return m_io_extendedascii_pdt_end; }
0059
0060
0061 int io_type() const { return m_io_type; }
0062
0063 void set_io_type( int );
0064
0065
0066
0067 bool has_key() const { return m_has_key; }
0068
0069 void set_has_key( bool );
0070
0071
0072 Units::MomentumUnit io_momentum_unit() const { return m_io_momentum_unit; }
0073
0074 Units::LengthUnit io_position_unit() const { return m_io_position_unit; }
0075
0076
0077
0078 int stream_id() const { return m_stream_id; }
0079
0080
0081 bool finished_first_event() const { return m_finished_first_event_io; }
0082
0083 void set_finished_first_event( bool b ) { m_finished_first_event_io = b; }
0084
0085
0086
0087
0088
0089 void use_input_units( Units::MomentumUnit, Units::LengthUnit );
0090
0091
0092
0093 bool reading_event_header();
0094
0095 void set_reading_event_header(bool);
0096
0097 private:
0098 bool m_finished_first_event_io;
0099
0100 std::string m_io_genevent_start;
0101 std::string m_io_ascii_start;
0102 std::string m_io_extendedascii_start;
0103 std::string m_io_genevent_end;
0104 std::string m_io_ascii_end;
0105 std::string m_io_extendedascii_end;
0106
0107 std::string m_io_ascii_pdt_start;
0108 std::string m_io_extendedascii_pdt_start;
0109 std::string m_io_ascii_pdt_end;
0110 std::string m_io_extendedascii_pdt_end;
0111
0112 int m_io_type;
0113 bool m_has_key;
0114
0115 Units::MomentumUnit m_io_momentum_unit;
0116 Units::LengthUnit m_io_position_unit;
0117
0118 unsigned int m_stream_id;
0119 static unsigned int m_stream_counter;
0120
0121 bool m_reading_event_header;
0122
0123 };
0124
0125 }
0126
0127 #endif
0128