Warning, file /include/HepMC/IO_HEPEVT.h was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002 #ifndef HEPMC_IO_HEPEVT_H
0003 #define HEPMC_IO_HEPEVT_H
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 #include <map>
0023 #include <vector>
0024 #include "HepMC/IO_BaseClass.h"
0025 #include "HepMC/HEPEVT_Wrapper.h"
0026
0027 namespace HepMC {
0028
0029 class GenEvent;
0030 class GenVertex;
0031 class GenParticle;
0032
0033
0034
0035
0036
0037
0038
0039 class IO_HEPEVT : public IO_BaseClass {
0040 public:
0041 IO_HEPEVT();
0042 virtual ~IO_HEPEVT();
0043 bool fill_next_event( GenEvent* );
0044 void write_event( const GenEvent* );
0045 void print( std::ostream& ostr = std::cout ) const;
0046
0047
0048
0049 bool trust_both_mothers_and_daughters() const;
0050
0051 bool trust_mothers_before_daughters() const;
0052
0053 bool print_inconsistency_errors() const;
0054
0055 bool trust_beam_particles() const;
0056
0057 void set_trust_mothers_before_daughters( bool b = true );
0058
0059 void set_trust_both_mothers_and_daughters( bool b = false );
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083 void set_print_inconsistency_errors( bool b = true );
0084
0085 void set_trust_beam_particles( bool b = true );
0086
0087 protected:
0088
0089 GenParticle* build_particle( int index );
0090
0091 void build_production_vertex(
0092 int i,std::vector<HepMC::GenParticle*>& hepevt_particle, GenEvent* evt );
0093
0094 void build_end_vertex(
0095 int i, std::vector<HepMC::GenParticle*>& hepevt_particle, GenEvent* evt );
0096
0097 int find_in_map(
0098 const std::map<HepMC::GenParticle*,int>& m, GenParticle* p) const;
0099
0100 private:
0101 IO_HEPEVT( const IO_HEPEVT& ) : IO_BaseClass() {}
0102
0103 private:
0104
0105 bool m_trust_mothers_before_daughters;
0106 bool m_trust_both_mothers_and_daughters;
0107 bool m_print_inconsistency_errors;
0108 bool m_trust_beam_particles;
0109 };
0110
0111
0112
0113
0114 inline bool IO_HEPEVT::trust_both_mothers_and_daughters() const
0115 { return m_trust_both_mothers_and_daughters; }
0116
0117 inline bool IO_HEPEVT::trust_mothers_before_daughters() const
0118 { return m_trust_mothers_before_daughters; }
0119
0120 inline bool IO_HEPEVT::print_inconsistency_errors() const
0121 { return m_print_inconsistency_errors; }
0122
0123 inline void IO_HEPEVT::set_trust_both_mothers_and_daughters( bool b )
0124 { m_trust_both_mothers_and_daughters = b; }
0125
0126 inline void IO_HEPEVT::set_trust_mothers_before_daughters( bool b )
0127 { m_trust_mothers_before_daughters = b; }
0128
0129 inline void IO_HEPEVT::set_print_inconsistency_errors( bool b )
0130 { m_print_inconsistency_errors = b; }
0131
0132 inline bool IO_HEPEVT::trust_beam_particles() const
0133 { return m_trust_beam_particles; }
0134
0135 inline void IO_HEPEVT::set_trust_beam_particles( bool b )
0136 { m_trust_beam_particles = b; }
0137
0138 }
0139
0140 #endif
0141