StRoot
1
|
IO_HERWIG is used to get Herwig information. More...
#include <IO_HERWIG.h>
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 | |
GenEvent * | read_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 | |
GenParticle * | build_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... | |
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.
|
protected |
make a decay vertex
for particle in HEPEVT with index i, build an end vertex if appropriate, and add that vertex to the event
Definition at line 304 of file IO_HERWIG.cc.
References HepMC::GenVertex::add_particle_in(), HepMC::GenVertex::add_particle_out(), HepMC::GenEvent::add_vertex(), HepMC::GenParticle::end_vertex(), HepMC::HEPEVT_Wrapper::event_number(), HepMC::HEPEVT_Wrapper::first_child(), HepMC::HEPEVT_Wrapper::last_child(), HepMC::HEPEVT_Wrapper::number_children(), HepMC::GenVertex::position(), HepMC::GenParticle::production_vertex(), HepMC::GenVertex::set_position(), HepMC::HEPEVT_Wrapper::t(), HepMC::HEPEVT_Wrapper::x(), HepMC::HEPEVT_Wrapper::y(), and HepMC::HEPEVT_Wrapper::z().
Referenced by fill_next_event().
|
protected |
make a particle
Builds a particle object corresponding to index in HEPEVT
Definition at line 372 of file IO_HERWIG.cc.
References HepMC::HEPEVT_Wrapper::e(), HepMC::HEPEVT_Wrapper::id(), HepMC::HEPEVT_Wrapper::m(), HepMC::HEPEVT_Wrapper::px(), HepMC::HEPEVT_Wrapper::py(), HepMC::HEPEVT_Wrapper::pz(), HepMC::GenParticle::setGeneratedMass(), HepMC::HEPEVT_Wrapper::status(), and HepMC::GenParticle::suggest_barcode().
Referenced by fill_next_event().
|
protected |
make a production vertex
for particle in HEPEVT with index i, build a production vertex if appropriate, and add that vertex to the event
Definition at line 231 of file IO_HERWIG.cc.
References HepMC::GenVertex::add_particle_in(), HepMC::GenVertex::add_particle_out(), HepMC::GenEvent::add_vertex(), HepMC::HEPEVT_Wrapper::event_number(), HepMC::HEPEVT_Wrapper::first_parent(), HepMC::HEPEVT_Wrapper::last_parent(), HepMC::HEPEVT_Wrapper::number_parents(), HepMC::GenVertex::position(), HepMC::GenVertex::print(), HepMC::GenParticle::production_vertex(), HepMC::GenVertex::set_position(), HepMC::HEPEVT_Wrapper::t(), HepMC::HEPEVT_Wrapper::x(), HepMC::HEPEVT_Wrapper::y(), and HepMC::HEPEVT_Wrapper::z().
Referenced by fill_next_event().
|
virtual |
get the next event
read one event from the Herwig HEPEVT common block and fill GenEvent return T/F =success/failure
sufficient to do one or the other.
Implements HepMC::IO_BaseClass.
Definition at line 96 of file IO_HERWIG.cc.
References HepMC::GenVertex::add_particle_in(), HepMC::GenVertex::add_particle_out(), HepMC::GenEvent::add_vertex(), build_end_vertex(), build_particle(), build_production_vertex(), HepMC::HEPEVT_Wrapper::event_number(), HepMC::HEPEVT_Wrapper::first_parent(), HepMC::HEPEVT_Wrapper::number_entries(), repair_hepevt(), HepMC::GenEvent::set_beam_particles(), HepMC::GenEvent::set_event_number(), HepMC::GenEvent::set_signal_process_vertex(), and HepMC::HEPEVT_Wrapper::status().
|
protected |
deal with artifacts of repairing HEPEVT
in this scenario, we do not allow there to be zero-ed entries in the HEPEVT common block, and so be reshuffle the common block, removing the zeero-ed entries as we go and making sure we keep the mother/daughter relationships appropriate
Definition at line 682 of file IO_HERWIG.cc.
References HepMC::HEPEVT_Wrapper::e(), 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::m(), HepMC::HEPEVT_Wrapper::number_entries(), HepMC::HEPEVT_Wrapper::px(), HepMC::HEPEVT_Wrapper::py(), HepMC::HEPEVT_Wrapper::pz(), HepMC::HEPEVT_Wrapper::set_children(), HepMC::HEPEVT_Wrapper::set_id(), HepMC::HEPEVT_Wrapper::set_mass(), HepMC::HEPEVT_Wrapper::set_momentum(), HepMC::HEPEVT_Wrapper::set_number_entries(), HepMC::HEPEVT_Wrapper::set_parents(), HepMC::HEPEVT_Wrapper::set_position(), HepMC::HEPEVT_Wrapper::set_status(), HepMC::HEPEVT_Wrapper::status(), HepMC::HEPEVT_Wrapper::t(), HepMC::HEPEVT_Wrapper::x(), HepMC::HEPEVT_Wrapper::y(), and HepMC::HEPEVT_Wrapper::z().
Referenced by repair_hepevt().
|
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:
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().
|
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.
|
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().