17        HEPMC3_ERROR( 
"WriterDOT: could not open output file: "<<filename )
 
 
   31    auto* ofs = 
dynamic_cast<std::ofstream*
>(
m_stream);
 
   32    if (ofs && !ofs->is_open()) 
return;
 
   34    if (ofs) ofs->close();
 
 
   41    if (pd==81||pd==82||pd<25) parton=
true;
 
   43        (pd/1000==1||pd/1000==2||pd/1000==3||pd/1000==4||pd/1000==5)
 
   44        &&(pd%1000/100==1||pd%1000/100==2||pd%1000/100==3||pd%1000/100==4)
 
   45        &&(pd%100==1||pd%100==3)
 
 
   62                if (v->status() == 2) {
m_cursor += sprintf(
m_cursor, 
"node [color=\"green\"];\n");}
 
   70    for(
auto p: evt.
beams() ) {
 
   71        if (!p->end_vertex()) 
continue;
 
   73        m_cursor += sprintf(
m_cursor, 
"v0 -> v%d [label=\"%d(%d)\"];\n", -p->end_vertex()->id(),p->id(),p->pid());
 
   77        for(
auto p: v->particles_out() ) {
 
   90                    m_cursor += sprintf(
m_cursor, 
"v%d -> o%d [label=\"%d(%d)\"];\n", -v->id(), p->id(), p->id(), p->pid());
 
   95                m_cursor += sprintf(
m_cursor, 
"v%d -> v%d [label=\"%d(%d)\"];\n", -v->id(), -p->end_vertex()->id(), p->id(), p->pid());
 
 
  109        }     
catch (
const std::bad_alloc& e) {
 
  117        HEPMC3_ERROR( 
"WriterDOT::allocate_buffer: could not allocate buffer!" )
 
 
#define HEPMC3_WARNING(MESSAGE)
Macro for printing HEPMC3_HEPMC3_WARNING messages.
#define HEPMC3_ERROR(MESSAGE)
Macro for printing error messages.
Definition of class WriterDOT.
Stores event-related information.
int event_number() const
Get event number.
std::vector< ConstGenParticlePtr > beams() const
Vector of beam particles.
const std::vector< ConstGenVertexPtr > & vertices() const
Get list of vertices (const)
const std::vector< ConstGenParticlePtr > & particles() const
Get list of particles (const)
void allocate_buffer()
allocates buffer for output
char * m_cursor
Cursor inside stream buffer.
char * m_buffer
Stream buffer.
void close() override
Close file stream.
std::ofstream m_file
Output file.
unsigned long m_buffer_size
Buffer size.
void write_event(const GenEvent &evt) override
Write event to file.
void flush()
flushes output buffer
void forced_flush()
flushes output buffer
std::ostream * m_stream
Output stream.
int m_style
style of dot file
WriterDOT(const std::string &filename, std::shared_ptr< GenRunInfo > run=std::shared_ptr< GenRunInfo >())
Constructor.
bool is_parton(const int &pd)
Detects if particle is parton. Might be used to draw partons different from hadrons.