StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | Protected Member Functions | List of all members
HepMC::IO_HERWIG Class Reference

IO_HERWIG is used to get Herwig information. More...

#include <IO_HERWIG.h>

Inheritance diagram for HepMC::IO_HERWIG:
HepMC::IO_BaseClass

Public Member Functions

bool fill_next_event (GenEvent *)
 get the next event More...
 
void print (std::ostream &ostr=std::cout) const
 write to ostr
 
double interfaces_to_version_number () const
 this information is dubious
 
bool print_inconsistency_errors () const
 default is true
 
void set_print_inconsistency_errors (bool b=true)
 decide whether or not to print inconsistency errors
 
bool no_gaps_in_barcodes () const
 ask how to deal with extra non-physical pseudo particles
 
void set_no_gaps_in_barcodes (bool a)
 
- Public Member Functions inherited from HepMC::IO_BaseClass
GenEventread_next_event ()
 do not over-ride More...
 
virtual GenEvent *& operator>> (GenEvent *&)
 the same as read_next_event
 
virtual const GenEvent *& operator<< (const GenEvent *&)
 the same as write_event
 
virtual GenEvent *& operator<< (GenEvent *&)
 the same as write_event
 

Protected Member Functions

bool trust_both_mothers_and_daughters () const
 default is true
 
bool trust_mothers_before_daughters () const
 default is false
 
void set_trust_mothers_before_daughters (bool b=true)
 define mother daughter trust rules
 
void set_trust_both_mothers_and_daughters (bool b=false)
 define mother daughter trust rules
 
GenParticlebuild_particle (int index)
 make a particle More...
 
void build_production_vertex (int i, std::vector< GenParticle * > &hepevt_particle, GenEvent *evt)
 make a production vertex More...
 
void build_end_vertex (int i, std::vector< GenParticle * > &hepevt_particle, GenEvent *evt)
 make a decay vertex More...
 
int find_in_map (const std::map< GenParticle *, int > &m, GenParticle *p) const
 find this particle in the map
 
void repair_hepevt () const
 make the HERWIG HEPEVT common block look like the standard More...
 
void remove_gaps_in_hepevt () const
 deal with artifacts of repairing HEPEVT More...
 
void zero_hepevt_entry (int i) const
 zero out a HEPEVT pseudo particle
 
int translate_herwig_to_pdg_id (int i) const
 translate particle ID More...
 

Detailed Description

IO_HERWIG is used to get Herwig information.

IO class for reading the HEPEVT common block from the Herwig monte carlo program.

Definition at line 56 of file IO_HERWIG.h.

Member Function Documentation

void HepMC::IO_HERWIG::build_end_vertex ( int  i,
std::vector< GenParticle * > &  hepevt_particle,
GenEvent evt 
)
protected
GenParticle * HepMC::IO_HERWIG::build_particle ( int  index)
protected
void HepMC::IO_HERWIG::build_production_vertex ( int  i,
std::vector< GenParticle * > &  hepevt_particle,
GenEvent evt 
)
protected
bool HepMC::IO_HERWIG::fill_next_event ( GenEvent evt)
virtual
void HepMC::IO_HERWIG::remove_gaps_in_hepevt ( ) const
protected
void HepMC::IO_HERWIG::repair_hepevt ( ) const
protected

make the HERWIG HEPEVT common block look like the standard

This routine takes the HEPEVT common block as used in HERWIG, and converts it into the HEPEVT common block in the standard format

This means it:

  • removes the color structure, which herwig overloads into the mother/daughter fields
  • zeros extra entries for hard subprocess, etc.

Special HERWIG status codes 101,102 colliding beam particles 103 beam-beam collision CMS vector 120 hard subprocess CMS vector 121,122 hard subprocess colliding partons 123-129 hard subprocess outgoing particles 141-149 (ID=94) mirror image of hard subrpocess particles 100 (ID=0 cone)

Special HERWIG particle id's 91 clusters 94 jets 0 others with no pdg code

Definition at line 394 of file IO_HERWIG.cc.

References HepMC::HEPEVT_Wrapper::first_child(), HepMC::HEPEVT_Wrapper::first_parent(), HepMC::HEPEVT_Wrapper::id(), HepMC::HEPEVT_Wrapper::last_child(), HepMC::HEPEVT_Wrapper::last_parent(), HepMC::HEPEVT_Wrapper::number_entries(), remove_gaps_in_hepevt(), HepMC::HEPEVT_Wrapper::set_children(), HepMC::HEPEVT_Wrapper::set_id(), HepMC::HEPEVT_Wrapper::set_parents(), HepMC::HEPEVT_Wrapper::status(), translate_herwig_to_pdg_id(), and zero_hepevt_entry().

Referenced by fill_next_event().

void HepMC::IO_HERWIG::set_no_gaps_in_barcodes ( bool  a)
inline

The HERWIG HEPEVT common block has some EXTRA non-physical ENTRIES (such as CMS frame, HARD subprocess, and CONE). These are removed by IO_HERWIG. Thus the HepMC event will APPEAR to have fewer particles in it that herwig did. There is a switch m_no_gaps_in_barcodes. For true - then the extra particles are removed from HEPEVT, with the result that the HepMC barcodes will be sequential, with no gaps. false - the barcodes will correspond directly to the HEPEVT index, but there will be gaps ... ie some barcodes will be unassigned. this switch requested by I Hinchliffe, October 31, 2002

Definition at line 87 of file IO_HERWIG.h.

int HepMC::IO_HERWIG::translate_herwig_to_pdg_id ( int  i) const
protected

translate particle ID

This routine is copied from Lynn Garren's stdhep 5.01. see http:///cepa.fnal.gov/psm/stdhep/

Definition at line 753 of file IO_HERWIG.cc.

Referenced by repair_hepevt().


The documentation for this class was generated from the following files: