Skip to content
Snippets Groups Projects
HepMCDefs.h 2.37 KiB
Newer Older
  • Learn to ignore specific revisions
  • garren's avatar
    garren committed
    #ifndef HEPMC_DEFS_H
    #define HEPMC_DEFS_H
    // ----------------------------------------------------------------------
    //
    // HepMCDefs.h
    // Author:  Lynn Garren
    //
    //  Define various useful macros
    //  Most allow users to check for various code features
    //
    // ----------------------------------------------------------------------
    
    
    // the HeavyIon class is available in HepMC
    
    garren's avatar
    garren committed
    #ifndef HEPMC_HAS_HEAVY_ION
    
    garren's avatar
    garren committed
    #endif
    
    
    // the IO_Ascii class is NOT available in HepMC
    
    garren's avatar
    garren committed
    #ifndef HEPMC_IO_ASCII_REMOVED
    
    garren's avatar
    garren committed
    #endif
    
    
    // the ParticleData class is NOT available in HepMC
    
    garren's avatar
    garren committed
    #ifndef HEPMC_PARTICLE_DATA_REMOVED
    
    garren's avatar
    garren committed
    #endif
    
    
    // the IO_GenEvent class is available in HepMC
    
    garren's avatar
    garren committed
    #ifndef HEPMC_HAS_IO_GENEVENT
    
    garren's avatar
    garren committed
    #endif
    
    
    // the PdfInfo class is available in HepMC
    
    garren's avatar
    garren committed
    #ifndef HEPMC_HAS_PDF_INFO
    
    garren's avatar
    garren committed
    #endif
    
    
    // HepMC uses SimpleVector (FourVector) to store momentum and position
    
    garren's avatar
    garren committed
    #ifndef HEPMC_HAS_SIMPLE_VECTOR
    
    garren's avatar
    garren committed
    #endif
    
    
    // units are defined in HepMC
    
    garren's avatar
    garren committed
    #ifndef HEPMC_HAS_UNITS
    
    garren's avatar
    garren committed
    #endif
    
    
    // the GenCrossSection class is available in HepMC
    
    garren's avatar
    garren committed
    #ifndef HEPMC_HAS_CROSS_SECTION
    
    garren's avatar
    garren committed
    #endif
    
    
    // the iterator range classes are available in HepMC
    
    garren's avatar
    garren committed
    #ifndef HEPMC_HAS_ITERATOR_RANGES
    
    garren's avatar
    garren committed
    #endif
    
    
    // particles and vertices can be retrieved as vectors of pointers as well as the verbose iterators
    #ifndef HEPMC_HAS_SIMPLE_RANGES
    #define HEPMC_HAS_SIMPLE_RANGES 1
    #endif
    
    // particles and vertices iterators have appropriate constness in method declarations and return types
    #ifndef HEPMC_HAS_CONSISTENT_CONST
    #define HEPMC_HAS_CONSISTENT_CONST 1
    #endif
    
    
    // the HepMC::WeightContainer class allows named weights (version 2)
    
    garren's avatar
    garren committed
    #ifndef HEPMC_HAS_NAMED_WEIGHTS
    
    garren's avatar
    garren committed
    #endif
    
    
    // The HepMC::GenVertex class has a status() member
    #ifndef HEPMC_VERTEX_HAS_STATUS
    
    garren's avatar
    garren committed
    // the HepMC::HeavyIon class contains centrality
    #ifndef HEPMC_HEAVY_ION_HAS_CENTRALITY
    
    #define HEPMC_HEAVY_ION_HAS_CENTRALITY 1
    
    garren's avatar
    garren committed
    #endif
    
    
    // define the version of HepMC.
    
    garren's avatar
    garren committed
    #ifndef HEPMC_VERSION
    
    #define HEPMC_VERSION "2.07.00"
    
    garren's avatar
    garren committed
    #endif
    
    
    // define the integer version of HepMC X.Y.Z = 1000000*X + 1000*Y + Z
    #ifndef HEPMC_VERSION_CODE
    #define HEPMC_VERSION_CODE 2007000
    #endif
    
    
    garren's avatar
    garren committed
    #endif  // HEPMC_DEFS_H