hepmc - Rev 75
Subversion Repositories:
-------------------------- HepMC-2.00.02 --------------------------2007-02-12 Lynn Garren* test/testHepMC.sh.in: works on Windows (Cygwin), MacOSX, and Linux2007-02-07 Lynn Garren* doc/doxygen-template: provide an html template2007-01-30 Lynn Garren* doc/doxygen.conf: use doxygen 1.5.12007-01-30 Lynn Garren* examples/example_BuildEventFromScratch.cc: add example ofconversion from SimpleVector to HepLorentzVector* examples/VectorConversion.h: VectorConversion.h is meant as atemplate for user code converting to the vector of your choice.2007-01-29 Lynn Garren* fix everything so doxygen will create a useful reference manualnearly every file has been touched, but only the comments changed2007-01-25 Lynn Garren* examples/example_MyPythiaRead.cc: read in the events you just wrote* examples/*.cc: put all uses of IO_Ascii within an explicit scope* configure.in, doc/Makefile.am: if latex is found, get the path* test/testHepMC.sh.in: make the diff work for MacOSX-------------------- HepMC-02-00-01 ---------------------------------2007-01-17 Lynn Garren* test/testSimpleVector.cc: exercise the vector methods2007-01-16 Lynn Garren* HepMC/SimpleVector.icc: implement ThreeVector::set(x,y,z)2006-08-23 Lynn Garren* install examples in $(prefix)/examples/HepMC* check for latex and build documents if latex is present-------------------- HepMC-02-00-00 ---------------------------------2006-08-22 Lynn Garren* src/IO_ExtendedAscii.cc: read and write generated mass as part ofparticle line.2006-08-18 Lynn Garren* doc/HepMC2_user_manual.tex documentation for HepMC 22006-08-01 Lynn Garren* HepMC/is_arithmetic.h, HepMC/enable_if.h supplied by Walter Brownfor a clean template constructor implementation.2006-07-23 Lynn Garren* HepMC/SimpleVector.h: add a templated constructor for both FourVectorand ThreeVector that will take any lorentz vector which has thex(), y(), z(), and t() methods. This should enable existing codethat uses CLHEP Vector classes to keep working.2006-07-19 Lynn Garren* replace CLHEP/Vector/LorentzVector.h and CLHEP/Vector/ThreeVector.hwith HepMC/SimpleVector.himplement some of the basic vector properties so user code won't break-------------------- HepMC-01-28-00 ---------------------------------2006-08-08 Lynn Garren* HepMC/IO_ExtendedAscii.h: Extended format writes PdfInfo and HeavyIonif they are present in the event. This is otherwise identicalto IO_Ascii.h.2006-07-30 Lynn Garren* HepMC/HEPEVT_Wrapper.h: fix for 64bit machines2006-07-26 Lynn Garren* HepMC/PdfInfo.h implements information requested by CMS* GenEvent.h, GenEvent.cc make sure m_pdf_info is initialized to 0-------------------- HepMC-01-27-02 ---------------------------------2006-06-19 Lynn Garren* fix test for Windows* add ReadMe.cygwin-VC71 and setup.cygwin-VC712006-06-14 Lynn Garren* GenEvent.cc, GenParticle.cc, GenVertex.cc use standard C++ output* testPrintBug new test for output problems with gcc 4.x* HepMC/HepMC_CLHEP20.h defines several typedefs needed when compilingwith CLHEP 2.0.x* HEPEVT_Wrapper.h, HerwigWrapper6_4.h, PythiaWrapper6_2.hneed extern "C" statements for gcc 4.x* HepMC_CLHEP20.h, Polarization.h, GenVertex.h, GenParticle.hHepMC will work with both CLHEP 1.9.x and 2.0.x-------------------- HepMC-01-27-01 ---------------------------------2006-03-31 Lynn Garren* GenEvent.h, GenEvent.cc make sure m_heavy_ion is initialized to 02006-03-29 Lynn Garren* HepMC/ParticleData.h remove dependency on CLHEP/Units by HepMC_hbarc* HepMC/Polarization.h remove dependency on CLHEP/Units by HepMC_pi-------------------- HepMC-01-27-00 ---------------------------------2006-03-07 Lynn Garren* add simple check in the test subdirectory2006-02-17 Lynn Garren* HepMC/HeavyIon.h names have been changed to match both HepMC andwishes of heavy ion users2006-01-12 Lynn GarrenHepPDT 1.26 is available at https://savannah.cern.ch/projects/hepmc/* HepMC/HeavyIon.h implements information requested by CMS* HepMC/GenParticle.h has pointer (null by default) to HeavyIon* code providing interfaces to Fortran common blocks has been movedout of libHepMC and into libHepMCfio-------------------- HepMC-01-02-26 ----------------------------------------------------- HepMC-01-02-21 ---------------------------------2005-04-27 Matt Dobbs and Giorgos* src/IO_HERWIG.cxx implemented a bug fix suggested by borut,which keeps the remapping of daughters/motherrs from going "overthe end" on herwig events (was noticed in the tauola events forrome DC).2004-08-04 David Quarrie <David.Quarrie@cern.ch>* cmt/requirements: Change dependencies on CERNLIB and CLHEPto AtlasCERNLIB and AtlasCLHEP to avoid name clashes-------------------- HepMC-01-02-19 ----(gcc 3.2 compatible)---------2004-04-22 Matt Dobbs <Matt.Dobbs@Cern.CH>* src/IO_HERWIG.cxx (HepMC): fixed bug reported by Hinchliffe inIO_HERWIG wherein (for the special case of min bias events only)number of entries in HEPEVT was being zero-ed by the IO_HERWIGclass. Added extra protection in HEPEVT_Wrapper for this as well.-------------------- HepMC-01-02-18 ----(gcc 3.2 compatible)---------2004-03-27 Matt Dobbs <Matt.Dobbs@Cern.CH>Removed the #define statements that allow backwards compatibilitywith gcc 2.95, and specialized the 3.2 compliant iterators to beforward iterators such that they work properly with stdalgorithms.Thanks to Ulrik Egede for pointing this out.* HepMC/GenVertex.h, .cxx HepMC/GenEvent.h, .cxx: changedstd::forward_iterator<GenParticle*,ptrdiff_t>tostd::iterator<std::forward_iterator_tag,GenParticle*,ptrdiff_t>for standardcompliance, and removed #define statements.* HepMC/IO_Ascii.h,.cxx: changed open_mode to openmode for standardcompliance, and removed #define statements.2003-12-17 David Rousseau <droussea@lxplus072.cern.ch>* cmt/requirements: remove HepMC_libraries2003-10-22 Matt Dobbs <Matt.Dobbs@Cern.CH>* src/GenEvent.cxx and lots of other files + latex documentation.REmoved any mention of units--- GeV, MeV etc, since HepMC merelyaccepts whatever is put in. I do this because, though HEPEVT hasused GeV/mm, ATLAS plans to use CLHEP units of MeV/mm.2003-10-15 Matt Dobbs <Matt.Dobbs@Cern.CH>* src/GenParticle.cxx (HepMC): added a default constructor forGenParticle as requested by Giorgos S.-------------------- HepMC-01-02-14 ----(gcc 3.2 compatible)---------2003-04-21 Matt Dobbs <Matt.Dobbs@Cern.CH>* src/IO_HERWIG.cxx:minor changes to handling of herwig event record-------------------- HepMC-01-02-11 ----(gcc 3.2 compatible)---------2003-03-10 Matt Dobbs <Matt.Dobbs@Cern.CH>* HepMC/IO_BaseClass.h:Fixed bug reported by Peter Loch, wherein the virtual destructorfor IO_BaseClass was missing.-------------------- HepMC-01-02-10 ----(gcc 3.2 compatible)---------2003-03-03 Matt Dobbs <Matt.Dobbs@Cern.CH>* HepMC/GenVertex.h: added extra ifdef statement to allowcompilation on gcc 3.2. (forward_iterator and open_mode problems).* HepMC/IO_Ascii.h: as above.* src/IO_Ascii.cxx (HepMC): as above.2003-01-17 Matt Dobbs <Matt.Dobbs@Cern.CH>* src/IO_PDG_ParticleDataTable.cxx (HepMC): if the PDG table doesnot exist, we abort, rather than just returning false.-------------------- HepMC-01-02-04 ----(5.0.0)------------2002-11-04 Matt Dobbs <Matt.Dobbs@Cern.CH>* src/GenEvent.cxx (HepMC): set_barcode(particle, barcode),set_barcode(vertex, barcode) Fixed a bug reported by Giorgos S.For this bug, a user suggests a barcode for a vertex that isalready part of an event... the vertex is inserted in the vertexmap with the new barcode, but HepMC forgets to erase the oldentry... such that the vertex now appears twice in the map. Thisis fixed, and the corresponding error for particles is also fixed.2002-10-31 Matt Dobbs <Matt.Dobbs@Cern.CH>* HepMC/IO_HERWIG.h: modified IO_HERWIG to include a switch(default m_no_gaps_in_barcodes=on) which removes null entries fromHerwig HEPEVT and reshuffles the common block2002-10-22 Matt Dobbs <Matt.Dobbs@Cern.CH>* HepMC/HerwigWrapper6_4.h, HepMC/HerwigWrapper.h: new interfaceto HERWIG Version 6.4 is added. There is an example for using itat examples/example_MyHerwig.cxx. To use this example you willhave to download HERWIG version 6.4 and modify the Makefile tolink it.* HepMC/IO_HERWIG.h: New class for reading the Herwig version ofthe HEPEVT common block is added. READ THE COMMENTS IN THE .h filecarefully before using it!2002-07-29 Matt Dobbs <Matt.Dobbs@Cern.CH>-------------------- HepMC-01-02-03 ----(4.0.2)------------* src/GenVertex.cxx (HepMC): remove_particle()* HepMC/GenVertex.h:removed confusing comment about the use of GenVertex::remove_particle()in .h file, and clarified the comment in .cxx file.* src/GenEvent.cxx (HepMC): operator=bug discovered by <Malte.Muller@cern.ch>.Formerly, the GenEvent::operator= method relied on the particlesattached to each vertex to always be in the same order. However,since the particles are stored in set<>, this is not always true-- making the results of the operator= method unreliable.This is fixed by mapping the vertices explicitly.* src/IO_PDG_ParticleDataTable.cxx (HepMC):added a line in read_entry that ignores empty lines (previouslyempty lines in the pdg data table generated a cerr message).This change was requested by Davida Costanzo.2002-03-02 Matt Dobbs <Matt.Dobbs@Cern.CH>-------------------- HepMC-01-02-02 ----(3.0.1)------------* src/GenVertex.cxx (HepMC):GenVertex::edge_iterator::edge_iterator( .. )Extra error protection added in the constructor.Sometimes the edge_iterator fails when we have a vertex with noin_particles. This never happens in standalone mode, but when ranwith the ATLAS framework, it does happen. New code identifies thescenario explicitly, and catches the error, which has to do withthe past-the-end value of the edge_iterator.* test/test_iterators.cxx: new test program added for iterators,to test for the above problems.2002-02-19 Matt Dobbs <Matt.Dobbs@Cern.CH>CHANGES TO ALLOW HEPMC TO COMPILE WITH SOLARIS CC 5.2* cmt/requirements: added the linemacro_append cppflags "" Solaris " -D__SUNPRO_CC "to handle Solaris CC 5.2 features.* HepMC/ParticleDataTable.h:turns on MISSING_FORWARD_ITERATOR when __SUNPRO_CC is defined.This defines forward_iterator as iterator* HepMC/GenVertex.h:same as ParticleDataTable.h, but also turns onNEED_SOLARIS_FRIEND_FEATURE when __SUNPRO_CC is defined.* src/Polarization.cxx (HepMC):replaced abs() with theta = ( theta>0 ? theta : -theta );for compatibility with Solaris.2002-02-15 Matt Dobbs <Matt.Dobbs@Cern.CH>-------------------- HepMC-01-02-01 ----(3.0.0)------------* HepMC/GenEvent.h: bug discovered by <srinir@bnl.gov> with helpfrom Paolo and Hong.The GenEvent::particle_iterator, const_particle_iterator,vertex_iterator, const_vertex_iteratorhad methods like:bool operator !=(const particle_iterator& a) const{ return !(**this == *a); }which doesn't work because you are not allowed to de-referencethe end() iterator [the above coding is a relic of the oldwalking iterators which did not inherit fromforward_iterstor, and for which *end() was welldefined.]The correct usage is:{ return m_map_iterator == a.m_map_iterator; }Note: this does NOT affect the GenVertex::***_iterator's, sincefor those iterators *end() is well defined.2002-01-23 Matt Dobbs <Matt.Dobbs@Cern.CH>-------------------- HepMC-01-02-00 --------------------( Public Version 1.2 )User manual, webpage, and public version updated.The CLHEP names branch, called HepMC-00-00-96-CLHEP, hasbeen moved to the head of the main trunk in cvs, and commited.Thus the main trunk is the only development branch.2002-01-22 Matt Dobbs <Matt.Dobbs@Cern.CH>-------------------- HepMC-01-01-12 --------------------* src/GenEvent.cxx (HepMC): delete_all_vertices()modified the increment of the vertex iterator when looping oververtices for deletion.* src/GenVertex.cxx (HepMC): delete_adopted_particles()modified the increment of the particle iterator when looping overparticles for deletion.2002-01-21 Matt Dobbs <Matt.Dobbs@Cern.CH>-------------------- HepMC-01-01-07 --------------------* HepMC/GenEvent.cxx (delete_all_vertices):Possible bug reported here by ATLfast group. Added extra errorchecking, and changed the deleting of the vertices such that eachone is explicitly erased from the map.2002-01-18 Matt Dobbs <Matt.Dobbs@Cern.CH>More changes for Windoes MS Visual C++ compatibility:* HepMC/PythiaWrapper6_2.h, HepMC/PythiaWrapper6_152.h:included new wrapper methods like call_pyinit, which hide thefunny syntax necessary to call fortran routines from C++.* examples/example_MyPythiaWithEventSelection.cxx:* examples/example_MyPythiaOnlyToHepMC.cxx:* examples/example_MyPythia.cxx:* examples/Benchmarks_f77/example_PythiaToLCWrite.cxx:modified to use the call_*** pythia methods.2002-01-15 Matt Dobbs <Matt.Dobbs@Cern.CH>-------------------- HepMC-01-01-06 --------------------* Makefile.standalone: updated to use cernlib 2001 and pythia6152* examples/example_UsingIterators.cxx:The input file was from the old non-barcodes version, and sodidn't work. Replaced it with a proper input file.These changes suggested by Witold Pokorski <Witold.Pokorski@Cern.Ch> fromLHCb to allow for Windows Visual C++ compliance. All of these changes arefully backwards compatible(!).* HepMC/GenEvent.h, HepMC/GenVertex.h: change forward_iterator tosimply iterator (which in the STL standard apparently impliesforward_iterator)In Visual c++, a for (int i ... ) {} statement does not scope outthe i variable ... so had to modify the code to ensure novariables were used twice in the same method:* src/IO_Ascii.cxx (HepMC):in lines 155, 161, 175 "int i" is repeatedin lines 293, 314, 321 "int i" is repeatedin lines 293, 314, 321 "p" is repeated* src/IO_HEPEVT.cxx (HepMC):in lines 59,65,88 "i" is repeatedin lines 118, 129 "p" is repeated* src/IO_PDG_ParticleDataTable.cxx (HepMC):in lines 80, 103, 124 "id_i" is repeated* src/GenVertex.cxx (HepMC):in lines: 64 and 72; 168 and 178; 195 and 201; 260 and 273;322 and 331 variable "part" is repeated* have verified all STL calls for set, map, less, greater, cout,endl, list, cerr, ios, iostream, flush are properly prefixed withstd::* HepMC/GenEvent.h: bug fix:added a std::greater<int> qualifier to the m_map_iterator of thevertex iterators.* HepMC/GenVertex.h: bug fix:made the GenVertex::particle_iterator a friend of GenVertex.* HepMC/GenEvent.h, HepMC/GenVertex.h:move all of the friend class declarationsinto statements separate from the class declaration, i.e.class edge_iterator { ... };friend class edge_iterator;instead offriend class edge_iterator{ ... };Change all std::ptrdiff_t to ptrdiff_t* HepMC/IO_Ascii.h: ios::openmode changed to ios::open_mode in theconstructor, for compatibility with windows Visual C++.* Change #include <iostream.h> to #include <iostream>Note: this will spoil compatibility with HPUX 10.2 CC.2001-11-29 Matt Dobbs <Matt.Dobbs@Cern.CH>-------------------- HepMC-01-01-05 --------------------* Fix typo in user manual "particle barcodes are positive"2001-11 Matt Dobbs <Matt.Dobbs@Cern.CH>-------------------- HepMC-01-01-04 --------------------* update user manual to explain barcodes. NO changes to code.2001-11-10 Matt Dobbs <Matt.Dobbs@Cern.CH>-------------------- HepMC-01-01-03 --------------------* cmt/requirements: jetset74 requirement removed, as requested byI.Hinchliffe.2001-11-04 Matt Dobbs <Matt.Dobbs@Cern.CH>-------------------- HepMC-01-01-02 --------------------* HepMC/GenVertex.h: removed merge_vertex() method.* HepMC/IO_HEPEVT.h:removed the merge_vertices possibility, but added abuild_production_vertex possibility to build_end_vertex.-------------------- HepMC-01-01-01 --------------------* src/HEPEVT_Wrapper.cxx (HepMC):new method check_hepevt_consistency() added.new method zero_everything() added.2001-11-02 Matt Dobbs <Matt.Dobbs@Cern.CH>-------------------- HepMC-01-01-00 --------------------* src/IO_HEPEVT.cxx (HepMC):Modified such that the HEPEVT indices are used for the particlebarcodes.* HepMC/IO_Ascii.h:Modifed to properly read/write the barcodes and theGenEvent new data members.Unique reference numbers called "barcodes" are added as datamembers to GenParticles and GenVertices.They are cross-referenced in GenEvent via a map<int,GenXXX>.The GenEvent::m_vertices container of vertices is then no longernecessary, so it is removed.The GenEvent::particle_iterator and GenEvent::vertex_iteratorare updated to walk over the maps. The iterator change should betransparent to the user.Constant versions of both iterators are included.The old GenEvent::vertex_iterator was a typedef of the set:typedef std::set<GenVertex*>::iterator vertex_iterator;The maps get filled via the:set_barcode( GenXXX* x, int suggested_barcode )methods, which in turn are called only by the vertex and particle:GenVertex::set_parent_event_()GenPartcle::set_production_vertex_()GenPartcle::set_end_vertex_(}* HepMC/GenEvent.h:New data members and access methods are added for consistency withthe HepUP standard, see hep-ph/0109068double GenEvent::m_event_scaledouble GenEvent::m_alphaQCDdouble GenEvent::m_alphaQED* src/IO_HEPEVT.cxx (HepMC): Fixed some const warnings with theGenEvent::vertex_iterator usage.2001-10-11 Matt Dobbs <Matt.Dobbs@Cern.CH>-------------------- HepMC-01-00-01 --------------------* cmt/requirements: changed use CERNLIB v2001 External to useCERNLIB CERNLIB-01-* External as per r.d.'s request2001-10-10 Matt Dobbs <Matt.Dobbs@Cern.CH>-------------------- HepMC-01-00-00 --------------------Identical to HepMC-00-03-08. This tag name follows atlasnaming conventions ... increment the major tag when code is NOTbackwards compatible. Since Atlas is moving from tagHepMC-00-01-12 (old atlas names) to HepMC-00-03-08 (clhep names)this change is not backwards compatible.2001-09-05 Matt Dobbs <Matt.Dobbs@Cern.CH>------- below this line is tag HepMC-00-03-08 ----------(clhep names version to be used in atlas. The changes have notbeen made in the HepMC-00-01-** branch)* src/IO_HEPEVT.h (HepMC):* src/IO_HEPEVT.cxx (HepMC): When inconsistent info betweenmother and daughters is found in theIO_HEPEVT::build_production_vertex method, IO_HEPEVT will nolonger merge_vertex (the 2001-03-29 "fix") by default. In order toget this behaviour you have to explicitly ask for it with theIO_HEPEVT::set_merge_vertex_switch() method.2001-09-05 Matt Dobbs <Matt.Dobbs@Cern.CH>* cmt/requirements: added to the CLHEP names branch (its just adirect copy of what is in the trunk ATLAS names).2001-07-17 Matt Dobbs <Matt.Dobbs@Cern.CH>(note: HepMC-00-01-24 is an accidental tag which should be ignored)----- below this line is HepMC-00-01-23, HepMC-00-03-07 -----* src/GenVertex.cxx (HepMC):GenVertex::vertex_iterator::follow_edge_() added extra errorchecking for the very special-rare case where a particle mightpoint to the same vertex for both production and end.Meant to handle Ian H.'s bug of 02 Jul 20012001-06-28 Matt Dobbs <Matt.Dobbs@Cern.CH>-------------------- HepMC-00-03-06 --------------------* examples/GNUmakefile.in:updated the makefile to link to cernlib 2001 version of pythia.This involves a change -lpythia6136 to -lpythia6152 -lpythiadNote that for xample_MyPythiaWithEventSelection.cxx 1/100 or36/1000 events pass cuts (with 6.136 it was 3/100 or 37/1000).* HepMC/GenParticle.h: now has a parent_event() access method,which returns the parent_event of the particle's containervertex's event.2001-06-27 Matt Dobbs <Matt.Dobbs@Cern.CH>---> Make the Vertex know which event it in in. <---* HepMC/GenVertex.h: added private data member m_event, publicaccess method parent_event() and protected access methodset_parent_event, which is only to be used by GenEvent. ThusGenEvent is made to be a friend of GenVertex.* HepMC/GenEvent.h, src/GenEvent.cxx (HepMC): added logic toGenEvent::remove_vertex and GenEvent::add_vertex. The vtx'sm_event pointer is set to point back to the event.* HepMC/ParticleData.h:* HepMC/GenEvent.h:* HepMC/GenParticle.h:* HepMC/GenVertex.h: made method counter() protected. It was neverintended as public, merely as a method for detecting memoryleaks. If no-one complains (they shouldn't, it was commented"temporary for debugging") I'll remove it entirely later.2001-03-29 Matt Dobbs <Matt.Dobbs@Cern.CH>* src/IO_HEPEVT.cxx (HepMC):When m_trust_mothers_before_daughters=0, the vertex position isnow filled. In ISAJET sometimes disjoint vertex structures exist,in this case a merger of vertices is done, which accounts for it.* HepMC/GenVertex.h:* src/GenVertex.cxx (HepMC):Added a void merge_vertex_contents( GenVertex* v_in );method which takes all the contents of v_in and places it inthe vertex. It does not delete v_in, nor does it removev_in from an event.It will mainly be used by IO_HEPEVT, but it is forseen that usersmay want to use it when reducing the overall size of the event(deleting intermediate vertices) such as will be done by atlas.2001-02-28 Matt Dobbs <Matt.Dobbs@Cern.CH>* Makefile.standalone:usingHepMCdir = $(shell pwd)instead ofHepMCdir = /afs/cern.ch/user/m/mdobbs/HepMC/myCheckoutV1.01for better portability.* src/GenVertex.cxx (HepMC): added extra protection to theGenVertex::edge_iterator::edge_iterator constructor to givesensible result for the special case when a vertex has incomingparticles, but none outgoing and the user requests a childreniterator. The old version would havem_set_iter points to m_particles_in.begin() and so the firstdereference might be wrong.* HepMC/IO_HEPEVT.h: Two new switches are added to give moreflexibility in handling the possible inconsistencies arrisingfrom the bi-directional pointers in HEPEVT. The switches are:bool m_trust_mothers_before_daughters;bool m_print_inconsistency_errors;which are described by comments in the code. Also makes minorchanges to src/IO_HEPEVT.cxx* HepMC/Typedef_Version0names.h:This header file added. It contains typedef statements whichshould allow the new version 1.XX class names to be used with codewritten with the old version 0.XX class names.If the user wants to take advantage of these typedefs he needs todefine type variable HEPMC_SHORT_NAMES in his compiler options asfollows: -DHEPMC_SHORT_NAMESor in his code using #define HEPMC_SHORT_NAMESNote that since the header file names also changed, this ALSOrequires changing the include statements in the user code.* doc/latex_user_manual/physicist_visualization.epsfixed a mis-labelling in this figure... the labels were allshifted and intermingled... its now right. Unfortunatelythe mislabelled version appears in the CPC publication.also affects doc/latex_user_manual/HepMC_user_manual.ps******************************************************Everything below this line corresponds to Version 1.01******************************************************2001-01-11 Matt Dobbs <Matt.Dobbs@Cern.CH>* examples/example_UsingIterators.cxx:Changed the class IsFinalState such that a particle must have noend vertex AND have status==1 to be considered stable.Does not effect package, only this specific example.* HepMC/IO_BaseClass.h:Bug reported by Lynn Garren"There appears to be a problem with const-ness in HepMC/IO_BaseClass.h.I have made the following changes in order to compile HepMC 1.0with g++.virtual const GenEvent*& operator<<( GenEvent*& );becomesvirtual GenEvent*& operator<<( GenEvent*& );virtual const ParticleDataTable*& operator<<( ParticleDataTable*& )becomesvirtual ParticleDataTable*& operator<<( ParticleDataTable*& )In other words, I have made the const-ness match."...These changes are implemented by Matt in the atlas repository.* HepMC/HEPEVT_Wrapper.h:Bug reported by Andreas Dell'AcquaHEPEVT_Wrapper::last_childHEPEVT_Wrapper::last_parentThere methods were returning 0 when exactly one parent exists. Thiscaused the number_children and number_parent methods to return 0every time there was exactly 1 parent/child. This error causedmajor problems in the IO_HEPEVT class, with the end result thatthe HEPEVT graphs were interpretted incorrectly [all particles arecorrectly interpretted, but their relationships are incorrect forthe case where a particle has exactly ONE mother: in this case theparticles appeared as orphans.]This bug wasintroduced in version HepMC-00-00-94, so it has been present forsome time. This fix is for HEPEVT_Wrapper::last_child():// Returns the Index of the LAST child in the HEPEVT record// for particle with Index index.// If there is only one child, the last child is forced to// be the same as the first child.// If there are no children for this particle, both the first_child// and the last_child with return 0.// Error checking is done to ensure the child is always// within range ( 0 <= parent <= nhep )* src/IO_HEPEVT.cxx (HepMC):only comments in IO_HEPEVT::build_particle have changed. No changeto code.******************************************************Everything below this line corresponds to Version 1.0******************************************************2000-11-10 Matt Dobbs <Matt.Dobbs@Cern.CH>MAJOR NAME CHANGES AFFECT ALMOST ALL FILES:GeneratorEvent --> GenEventParticle --> GenParticleVertex --> GenVertexuser manual and online documentaion are updated to reflect this.* HepMC/PythiaWrapper6_152.h:A new wrapper for Pythia 6.1 is created to replace the old Pythia5.7 wrapper. It works with the versions of Pythia in bothCERNlib2000 and CERNlib2001 (versions 6.136 and 6.152 and probablyany Pythia 6).A pointer file:* HepMC/PythiaWrapper.h:is created so the used doesn't have to worry about pythia versionnumbers. A test file is located at:* test/test_PythiaWrapper.cxxAll examples are updated to use Pythia 6.2000-11-09 Matt Dobbs <Matt.Dobbs@Cern.CH>* HepMC/WeightContainer.h:Created this class to house the weights in the vertex and eventclasses. It is just an interface to std::vertex<double>.The vertex class is modifid to use this. Required changes to:* HepMC/Vertex.h:* src/Vertex.cxx:* src/IO_Ascii.cxx (HepMC):******************************************************Everything below this line corresponds to Version 0.94******************************************************2000-07-05 Matt Dobbs <Matthew.Adam.Dobbs@Cern.CH>* HepMC/HEPEVT_Wrapper.h: Completely new wrapper for HEPEVT_Commonis implemented. This wrapper treats the common as a series ofbytes and interprets them "on the fly". The user can set the size(in bytes) of the integer and real numbers to be interpretted fromHEPEVT, and also the total number of entries in HEPEVT. Thisallows the user to interface to two applications which usedifferent HEPEVT definitions.Benchmarks: 1000 events pythia only 34 seconds.1000 events Pythia+HepMC(using this new wrapper) 40son my particular machine. (extra time is 6 seconds.) Compare thisto the extra 5 seconds reported in the HepMC user manual for theold HEPEVT wrapper ... so the difference is small compared to theold wrapper considering the added functionality.(all examples have been tested and they Run!)* HepMC/HEPEVT_Common.h: Deleted, this common is now definedinside HEPEVT_Wrapper.h* src/HEPEVT_Wrapper.cxx (HepMC): This file is created since it isnecessary to instantiate the static members of HEPEVT_Wrapper in a.cxx file.* Makefile.Standalone: modified to build src/HEPEVT_Wrapper.cxx intothe HepMC library* HepMC/IO_HEPEVT.h: Comment modified only so as to treatHEPEVT_Wrapper consistently.* examples/example_MyPythiaWithEventSelection.cxx: Modified to use newHEPEVT_Wrapper* examples/example_MyPythia.cxx: Modified to use newHEPEVT_Wrapper* examples/example_MyPythiaOnlyToHepMC.cxx (main): Modified to use newHEPEVT_Wrapper* PACKAGE: added linkset HepMC -lib:HepMC(Modified GNUmakefile.in to use libHepMC.so as HepMC linkset)2000-07-04 Matt Dobbs <Matthew.Adam.Dobbs@Cern.CH>* examples/GNUmakefile.in: $(top_srcdir) replaced by$(srcdir)* GNUmakefile.in (libHepMC.so_SRC): The location of src .cxx filesis now explicitly specified with $(top_srcdir)/src/*.cxxThis makefile now builds oth a shared library libHepMC.so andlibHepMC.a (requested by Ian H.)* the initpydata.f routine is no longer compiled into the theHepMC library, but is still packaged with the other routines.The user needs to link to it explicitly. See the GNUmakefile.inin the examples directory for an example of how to do this.(requested by Ian H.)* ./src is replaced with $(top_srcdir)/src everywhere in theGNUmakefile.inFiles changed this time:GNUmakefile.in, examples/GNUmakefile.in, Makefile.standalone,Changelog2000-05-18 Matt Dobbs <Matthew.Adam.Dobbs@Cern.CH>* HepMC/IO_BaseClass.h: There is now a fill_next_event method.- bool fill_next_event( GeneratorEvent* evt ) is a new abstract methodwhich fills the passed event, and also returns true if successful.- GeneratorEvent* read_next_event() is now make concrete. itcreates a new event, fills it using the above abstract method,and returns the eventThis change is backwards compatible since the methodread_next_event() has identical behavior.Identical changes are made for the methods:- bool fill_particle_data_table( ParticleDataTable* pdt )- ParticleDataTable* read_particle_data_table()The methods are updated [ i.e. GeneratorEvent* read_next_event()is changed to bool fill_next_event( GeneratorEvent* evt ), etc. ]in:- IO_HEPEVT.h- IO_Ascii.h- IO_PDG_ParticleDataTable.h- IO_HEPEVT.cxx- IO_Ascii.cxx- IO_PDG_ParticleDataTable.cxx(This change requested by Ian Hinchliffe and Marjorie Shapiro.)2000-04-24 Matt Dobbs <Matthew.Adam.Dobbs@Cern.CH>* HepMC/HEPEVT_Wrapper.h: set_momentum and set_position nowproperly cast input doubles as type HEPEVT_Precision,previously they were hardwired as cast to double, thismeant writing to real*4 hepevt would fail.******************************************************Everything below this line corresponds to Version 0.91******************************************************2000-04-11 Matt Dobbs <Matthew.Adam.Dobbs@Cern.CH>* doc/latex_user_manual/HepMC_user_manual.tex: User manual isupdated to replect changes since V0.9- HEPEVT and position in [mm]2000-04-06 Matt Dobbs <Matthew.Adam.Dobbs@Cern.CH>* examples/example_MyPythia.cxx* examples/example_MyPythiaOnlyToHepMC.cxx* examples/example_MyPythiaWithEventSelection.cxx:By commenting out the initpydata call (which may be required onsome systems to initialize the Pythia PYDATA block data asexternal) the MyPythia examples now run on HPUX (and still onLinux). Have not tested other platforms.* Makefile: HPUX with gcc requires the -lf library which containsthe fortran intrinsic function.2000-04-05 Matt Dobbs <Matthew.Adam.Dobbs@Cern.CH>The changes below will have no effect on the user or package, theyjust serve to remove warnings when compiling.* HepMC/Vertex.h: 313:342:364: warning: unused parameter `enum::HepMC::IteratorRange dummy_range' (all dummy range parametersnow appear as particles_end( IteratorRange /* dummy_range */ ) )* src/IO_Ascii.cxx (HepMC): 506: warning: ANSI C++ forbidsvariable-size array `c' (the array is now declared as char* c =new char[key_length +1]; and deleted before returning)* HepMC/IO_PDG_ParticleDataTable.h: 53: warning: control reachesend of non-void function read_next_event()(this is a dummy function anyway -- return 0)* HepMC/IO_HEPEVT.h:55: (as above)* src/Flow.cxx (HepMC): 26: warning: default argument given forparameter 1 of `void ::HepMC::Flow::print(class ostream & = cout)const' (done)* HepMC/IO_HEPEVT.h:57: warning: base class `class::HepMC::IO_BaseClass' should be explicitly initialized in thecopy constructor (done)* HepMC/IO_Ascii.h: 98: (as above)* HepMC/IO_PDG_ParticleDataTable.h: 56: (as above)* HepMC/ParticleDataTable.h: 155: warning: suggest parenthesesaround assignment used as truth value (done)* src/IO_Ascii.cxx (HepMC): 37: warning: default argument given(removed default argument)* HepMC/Flow.h:21: warning: multiline `//' comment(added space after \ to remove compiler warning)* HepMC/Particle.h: removed =0 in the inline declarationinline void Particle::set_flow( int code_index, int code = 0 )(caused warning).2000-04-04 Matt Dobbs <Matthew.Adam.Dobbs@Cern.CH>* HepMC/HEPEVT_Wrapper.h: HepMC/HEPEVT_Common.h:replace the classes HEPEVT_BaseClass.h HEPEVT_Double2000.hHEPEVT_Double4000.h HEPEVT_Real2000.h HEPEVT_Real4000.hUsing different classes for each of the HEPEVT common blockvarieties proved very troublesome - users had trouble and 4similar classes were being maintained. The new version uses onlystatic methods and cannot be instantiated (logical since it hasno data members). The HEPEVT common block is contained in theHepMC/HEPEVT_Common.h header. The precision and number of entriesis specified using #define commands, default is double precision,2000 entries. The user will see only one change - the IO_HEPEVTconstructor now has no arguments, so he need not define theany HEPEVT_XXX class. He may need to set the precision and numberof entries. See the header for instructions, andexamples/example_MyPythia.cxx for an example.example_MyPythia.cxx, example_MyPythiaOnlyToHepMC.cxx,example_MyPythiaWithEventSelection.cxx are modified to take thisinto account.* HepMC/IO_HEPEVT.h: This class now extracts information from thefortran HEPEVT common using HEPEVT_Wrapper instead of having topass it a class which inherits from the obsolete HEPEVT_BaseClass.2000-04-03 Matt Dobbs <Matthew.Adam.Dobbs@Cern.CH>* HepMC/PythiaWrapper5_720.h: Credit for writing the wrapper isto Silvia Resconi.Inclusion of HEPEVT wrapper header file is not necessary --- henceremoved.2000-03-31 Matt Dobbs <Matthew.Adam.Dobbs@Cern.CH>* HepMC/ParticleData.h: clifetime is now represented in [mm]instead of [cm] ... previously HepMC had internal inconsistenciesin this --- it claimed to use [cm], but sometimes used [mm] (aswhen it read from HEPEVT, and othertimes used [cm] (as when ittransformed a width into a lifetime. Now all is consitent and [mm]is used everywhere as it should be.* HepMC/Vertex.h: src/ParticleData.cxx:Changed comments which say clifetime is in [cm], to sayclifetime is in [mm].* Makefile (CLHEPdir):ChangedCLHEPdir = /afs/cern.ch/sw/lhcxx/specific/Linux/CLHEP/protoCLHEPdir = /afs/cern.ch/sw/lhcxx/specific/@sys/CLHEP/devto make it platform independent for CERN users.And some cosmetic changes to the Makefile.* HepMC/IO_BaseClass.h:Using the compiler options -ansi -pedantic cause this error:no match for `::HepMC::IO_Ascii & << ::HepMC::GeneratorEvent *&'Even though it recognizes:operator <<(::HepMC::IO_BaseClass &,const ::HepMC::GeneratorEvent *&) <near match>as the "best <near match>".To fix this I make operator<<, operator>> members of theIO_BaseClass rather than friends, and I add versions where theargument of operator<< is not constant.This will not affect users in any way (unless they were usingthese compiler options, in which case HepMC didn't work anyway...)2000-02-16 Matt Dobbs <Matthew.Adam.Dobbs@Cern.CH>* GeneratorEvent.h: set_signal_process_vertex() modified to ensurethat any vertex specified as signal process is ALSO in them_vertices set.* This change log documents changes since Version 9 of HepMC was"released" February 11, 2000pre 2000-02-16 Matt Dobbs <Matthew.Adam.Dobbs@Cern.CH>Changes Before Version 0.9 (i.e. changes in going from V0.1 -->0.9)HepMC improvements:+backup V0.1 (done)+save particle data as id in Particle (done)+update IO strategies (done)+test (done)+backup (done)-change set<Vertex*> in event to include all vertices (done)+change iterators to reflect this (done)+update IO strategies (done)+test (done)-fix all operator= to first destruct dependents. (done)-access functions to iterate over all flows (done)-check for stl namespace (done)grep -n cout HepMC/*.h src/*.cxx | grep -v std::cout |less-add Hepevt:write event (done)-implement lujet strategy (not done!)-update documentation -- enumerating recent changes. (done)-user manual written
