hepmc - Blame information for rev 214

Subversion Repositories:
Rev:
Rev Author Line No. Line
214 garren 1 -------------------------- HepMC-2.03.03 --------------------------
209 garren 2  
3 2007-12-17 Lynn Garren
4  
5 * HepMC/SimpleVector.h: Add simple math methods:
6 FourVector operator + (const FourVector &) const;
7 FourVector & operator += (const FourVector &);
8 FourVector operator - (const FourVector &) const;
9 FourVector & operator -= (const FourVector &);
10 FourVector operator - () const;
11 FourVector & operator *= (double);
12 The same methods were also added to ThreeVector.
13  
205 garren 14 -------------------------- HepMC-2.03.02 --------------------------
190 garren 15  
204 garren 16 2007-12-14 Lynn Garren
17  
18 * doc: The HepMC 1 and HepMC 2 user manuals have been merged
19 into a single manual.
20  
21 * HepMC/IO_GenEvent.h: check operator methods for consistency
22  
201 garren 23 2007-12-07 Lynn Garren
24  
25 * HepMC/IO_GenEvent.h: fix problem with rdstate() and clear()
26  
194 garren 27 2007-12-04 Lynn Garren
28  
29 * HepMC/IO_Ascii.h, IO_ExtendedAscii.h, IO_GenEvent.h and
30 src/IO_Ascii.cc, IO_ExtendedAscii.cc, IO_GenEvent.cc:
31 common input methodologies now handled by CommonIO
32  
190 garren 33 2007-12-03 Lynn Garren
34  
35 * HepMC/CommonIO.h, src/CommonIO.cc:
36 new header for shared IO methods and keys
37  
38 * src/IO_GenEvent.cc: use CommonIO
39 search for any of several allowed input data types
40  
192 garren 41 * HepMC/IO_GenEvent.h: disable write_particle_data_table and
42 fill_particle_data_table - that is best done outside HepMC
43  
186 garren 44 -------------------------- HepMC-2.03.01 --------------------------
183 garren 45  
46 2007-11-26 Lynn Garren
47  
185 garren 48 * configure.in: add support for g++-*
49  
50 2007-11-26 Lynn Garren
51  
183 garren 52 * src/IO_GenEvent.cc: bug fix - fill event scale, alphaQED, and alphaQCD
53  
178 garren 54 -------------------------- HepMC-2.03.00 --------------------------
183 garren 55  
177 garren 56 2007-10-30 Lynn Garren
57  
58 * examples/example_ReadMyPythia.cc: New example to read the file
59 written by example_MyPythia.
60  
61 * doc: remove the latex subdirectory after building the reference library
62  
180 garren 63 * GenEvent: add print_version( std::ostream& ) method.
64 If you don't specify an ostream, the default is std::cout.
65  
177 garren 66 * GenVertex: Store particles in vectors instead of sets.
67 Root IO does not properly restore the state of the particle
68 serial number counter, so the previous solution to retaining
69 consistent particle ordering within a vertex had to be revisited.
70  
71 * IO_GenEvent: Replace the temparary particle map with TempParticleMap.
72  
73 * HepMC/SearchVector.h: Utilities to facilitate working with the
74 vector of particles.
75  
76 * HepMC/TempParticleMap.h: Temporary particle container that
77 allows us to maintain particle ordering when reading an event
78 with IO_Ascii and IO_ExtendedAscii.
79  
80 * Use fully qualified names (e.g., HepMC::GenParticle) inside class
81 templates (e.g., std::map<>) wherever they are used within a
82 header so that rootcint can make the dictionary.
83  
157 garren 84 -------------------------- HepMC-2.02.01 --------------------------
150 garren 85  
86 2007-10-16 Lynn Garren
87  
88 * configure.in: build dynamic libraries for MacOSX - thanks to James Monk
89  
148 garren 90 -------------------------- HepMC-2.02.00 --------------------------
147 garren 91  
148 garren 92 2007-07-19 Lynn Garren
93  
94 * IO_GenEvent: uses input and output streams
95 IO_GenEvent can be constructed with a file, an input stream, or
96 an output stream.
97 * IO_Ascii and IO_ExtendedAscii are deprecated.
98 * examples use IO_GenEvent
99  
177 garren 100 -------------------------- HepMC-2.01.08 --------------------------
101  
102 2007-10-23 Lynn Garren
103  
104 * GenVertex: Store particles in vectors instead of sets.
105 Root IO does not properly restore the state of the particle
106 serial number counter, so the previous solution to retaining
107 consistent particle ordering within a vertex had to be revisited.
108  
109 * IO_Ascii, IO_ExtendedAscii: Replace the temparary particle map
110 with the more sophisticated TempParticleMap.
111  
112 * HepMC/SearchVector.h: Utilities to facilitate working with the
113 vector of particles.
114  
115 * HepMC/TempParticleMap.h: Temporary particle container that
116 allows us to maintain particle ordering when reading an event
117 with IO_Ascii and IO_ExtendedAscii.
118  
119 -------------------------- HepMC-2.01.07 --------------------------
120  
121 2007-10-19 Lynn Garren
122  
123 * Use fully qualified names (e.g., HepMC::GenParticle) inside class
124 templates (e.g., std::map<>) wherever they are used within a
125 header so that rootcint can make the dictionary.
126  
148 garren 127 -------------------------- HepMC-2.01.06 --------------------------
128  
147 garren 129 2007-08-07 Lynn Garren
130  
131 * HepMC/GenEvent.h, GenVertex.h,GenParticle.h : add swap method
132 * src/GenEvent.cc, GenVertex.cc, GenParticle.cc:
133 use best practices for assignment and copy constructor
134  
135 * HepMC/SimpleVector.h: add swap method
136 * HepMC/Flow.h: add swap method
137 * HepMC/WeightContainer.h: add swap method
138  
139 * HepMC/Polarization.h: add swap method
140 add private valid_theta and valid_phi methods for use by constructors
141 src/Polarization.cc: use best practices for assignment and copy constructor
142  
134 garren 143 -------------------------- HepMC-2.01.05 --------------------------
117 garren 144  
134 garren 145 2007-07-19 Lynn Garren
146  
147 * HepMC/HeavyIon.h: make it nice for rootcint
148  
149 -------------------------- HepMC-2.01.04 --------------------------
150  
128 garren 151 2007-07-18 Lynn Garren
152  
134 garren 153 * various bug fixes and protections
154  
117 garren 155 -------------------------- HepMC-2.01.03 --------------------------
156  
157 2007-07-11 Lynn Garren
158  
159 * src/IO*.cc: write HepMC version number
160  
115 garren 161 -------------------------- HepMC-2.01.02 --------------------------
101 garren 162  
113 garren 163 2007-07-10 Lynn Garren
164  
165 * HepMC/Version.h: add the ability to print the HepMC version number
166 * src/IO_ExtendedAscii.cc: write HepMC version number
167  
107 garren 168 2007-07-09 Lynn Garren
169  
109 garren 170 * src/IO_ExtendedAscii.cc: read/write beam particle information
171 fix a problem with reading optional info
107 garren 172 * test/testMass.*: compare generated and calculated masses
173  
104 garren 174 2007-06-29 Lynn Garren
175  
105 garren 176 * HepMC/GenEvent.h, src/GenEvent.cc: define beam process methods
177 bool valid_beam_particles() const;
178 std::pair<GenParticle*,GenParticle*> beam_particles() const;
179 bool set_beam_particles(GenParticle*, GenParticle*);
180 bool set_beam_particles(std::pair<GenParticle*,GenParticle*> const &);
181  
182 * fio/IO_HEPEVT.cc, fio/IO_HERWIG.cc: set incoming beam particles
183  
104 garren 184 * HepMC/PythiaWrapper*: remove old process struct
185  
102 garren 186 2007-06-21 Lynn Garren
187  
188 * HepMC/GenEvent.h: add methods to set and access the number of
189 multi particle interactions in the event.
190 The default value of this number is -1.
103 garren 191 * src/IO_ExtendedAscii.cc: read and write MPI information
102 garren 192  
101 garren 193 2007-06-19 Lynn Garren
194  
195 * HepMC/GenParticle.h: use uint64_t for the serial number counter
196  
97 garren 197 -------------------------- HepMC-2.01.00 --------------------------
95 garren 198  
199 2007-06-08 Lynn Garren
200  
96 garren 201 * HepMC/GenEvent.h, src/GenEvent.cc: add clear() method
202  
95 garren 203 * HepMC/GenParticleComparison.h:
204 define a GenParticle comparator
205 * HepMC/GenParticle.h, src/GenParticle.cc:
206 set a serial number to be used by GenParticleComparison
207 * HepMC/Flow.h, HepMC/GenVertex.h, src/Flow.cc, src/GenVertex.cc:
208 use std::set<GenParticle*,GenParticleComparison>
209 * test: automatic comparison of output files is now possible
210  
93 garren 211 -------------------------- HepMC-2.00.04 --------------------------
79 garren 212  
92 garren 213 2007-06-01 Lynn Garren
214  
215 * HepMC/GenEvent.h, src/GenEvent.cc: change interface such that
216 GenEvent makes its own copy of HeavyIon and PdfInfo
217  
218  
85 garren 219 2007-05-29 Lynn Garren
220  
221 * src/GenVertex.cc: initialize range in default constructor
87 garren 222 * src/IO_Ascii*.cc: make sure every object is properly deleted
88 garren 223 * test/testHepMCIteration.cc: add iterator test
85 garren 224  
79 garren 225 -------------------------- HepMC-2.00.03 --------------------------
226  
78 garren 227 2007-04-23 Lynn Garren
228  
229 * bootstrap, configure.in, doc/Makefile.am:
230 To avoid problems with different versions of latex, just build
231 the documents during the bootstrap step.
232 * doc/buildDoc.sh: builds the documents if doxygen and latex are present
233  
77 garren 234 2007-04-20 Lynn Garren
235  
236 * HepMC/include/PythiaWrapper*.h:
237 inline the method definitions to avoid conflicts
238 * examples/initPythia.cc: put pythia intialization in a separate
239 file so we can test PythiaWrapper
240  
71 garren 241 -------------------------- HepMC-2.00.02 --------------------------
47 garren 242  
73 garren 243 2007-02-12 Lynn Garren
244  
245 * test/testHepMC.sh.in: works on Windows (Cygwin), MacOSX, and Linux
246  
71 garren 247 2007-02-07 Lynn Garren
248  
249 * doc/doxygen-template: provide an html template
250  
67 garren 251 2007-01-30 Lynn Garren
252  
69 garren 253 * doc/doxygen.conf: use doxygen 1.5.1
254  
255 2007-01-30 Lynn Garren
256  
67 garren 257 * examples/example_BuildEventFromScratch.cc: add example of
258 conversion from SimpleVector to HepLorentzVector
259 * examples/VectorConversion.h: VectorConversion.h is meant as a
260 template for user code converting to the vector of your choice.
261  
65 garren 262 2007-01-29 Lynn Garren
263  
264 * fix everything so doxygen will create a useful reference manual
265 nearly every file has been touched, but only the comments changed
266  
267  
61 garren 268 2007-01-25 Lynn Garren
269  
67 garren 270 * examples/example_MyPythiaRead.cc: read in the events you just wrote
271 * examples/*.cc: put all uses of IO_Ascii within an explicit scope
62 garren 272  
61 garren 273 * configure.in, doc/Makefile.am: if latex is found, get the path
274  
275 * test/testHepMC.sh.in: make the diff work for MacOSX
276  
58 garren 277 -------------------- HepMC-02-00-01 ---------------------------------
278  
55 garren 279 2007-01-17 Lynn Garren
280  
281 * test/testSimpleVector.cc: exercise the vector methods
282  
54 garren 283 2007-01-16 Lynn Garren
284  
285 * HepMC/SimpleVector.icc: implement ThreeVector::set(x,y,z)
286  
52 garren 287 2006-08-23 Lynn Garren
288  
53 garren 289 * install examples in $(prefix)/examples/HepMC
290  
291 * check for latex and build documents if latex is present
52 garren 292  
49 garren 293 -------------------- HepMC-02-00-00 ---------------------------------
294  
48 garren 295 2006-08-22 Lynn Garren
296  
49 garren 297 * src/IO_ExtendedAscii.cc: read and write generated mass as part of
48 garren 298 particle line.
299  
47 garren 300 2006-08-18 Lynn Garren
301  
302 * doc/HepMC2_user_manual.tex documentation for HepMC 2
303  
43 garren 304 2006-08-01 Lynn Garren
19 garren 305  
43 garren 306 * HepMC/is_arithmetic.h, HepMC/enable_if.h supplied by Walter Brown
307 for a clean template constructor implementation.
308  
309 2006-07-23 Lynn Garren
310  
311 * HepMC/SimpleVector.h: add a templated constructor for both FourVector
312 and ThreeVector that will take any lorentz vector which has the
313 x(), y(), z(), and t() methods. This should enable existing code
314 that uses CLHEP Vector classes to keep working.
315  
316 2006-07-19 Lynn Garren
317  
318 * replace CLHEP/Vector/LorentzVector.h and CLHEP/Vector/ThreeVector.h
319 with HepMC/SimpleVector.h
320 implement some of the basic vector properties so user code won't break
321  
322  
39 garren 323 -------------------- HepMC-01-28-00 ---------------------------------
324  
40 garren 325 2006-08-08 Lynn Garren
326  
327 * HepMC/IO_ExtendedAscii.h: Extended format writes PdfInfo and HeavyIon
328 if they are present in the event. This is otherwise identical
329 to IO_Ascii.h.
330  
37 garren 331 2006-07-30 Lynn Garren
332  
40 garren 333 * HepMC/HEPEVT_Wrapper.h: fix for 64bit machines
37 garren 334  
36 garren 335 2006-07-26 Lynn Garren
336  
337 * HepMC/PdfInfo.h implements information requested by CMS
338 * GenEvent.h, GenEvent.cc make sure m_pdf_info is initialized to 0
339  
30 garren 340 -------------------- HepMC-01-27-02 ---------------------------------
341  
34 garren 342 2006-06-19 Lynn Garren
343  
344 * fix test for Windows
345 * add ReadMe.cygwin-VC71 and setup.cygwin-VC71
346  
347  
26 garren 348 2006-06-14 Lynn Garren
349  
350 * GenEvent.cc, GenParticle.cc, GenVertex.cc use standard C++ output
351 * testPrintBug new test for output problems with gcc 4.x
29 garren 352 * HepMC/HepMC_CLHEP20.h defines several typedefs needed when compiling
353 with CLHEP 2.0.x
354 * HEPEVT_Wrapper.h, HerwigWrapper6_4.h, PythiaWrapper6_2.h
355 need extern "C" statements for gcc 4.x
356 * HepMC_CLHEP20.h, Polarization.h, GenVertex.h, GenParticle.h
357 HepMC will work with both CLHEP 1.9.x and 2.0.x
26 garren 358  
29 garren 359  
23 garren 360 -------------------- HepMC-01-27-01 ---------------------------------
361  
22 garren 362 2006-03-31 Lynn Garren
363  
364 * GenEvent.h, GenEvent.cc make sure m_heavy_ion is initialized to 0
365  
366  
21 garren 367 2006-03-29 Lynn Garren
368  
369 * HepMC/ParticleData.h remove dependency on CLHEP/Units by HepMC_hbarc
370 * HepMC/Polarization.h remove dependency on CLHEP/Units by HepMC_pi
371  
19 garren 372 -------------------- HepMC-01-27-00 ---------------------------------
373  
374 2006-03-07 Lynn Garren
375  
376 * add simple check in the test subdirectory
377  
15 garren 378 2006-02-17 Lynn Garren
379  
380 * HepMC/HeavyIon.h names have been changed to match both HepMC and
381 wishes of heavy ion users
382  
11 garren 383 2006-01-12 Lynn Garren
384  
385 HepPDT 1.26 is available at https://savannah.cern.ch/projects/hepmc/
386  
387 * HepMC/HeavyIon.h implements information requested by CMS
388 * HepMC/GenParticle.h has pointer (null by default) to HeavyIon
389 * code providing interfaces to Fortran common blocks has been moved
390 out of libHepMC and into libHepMCfio
391  
392 -------------------- HepMC-01-02-26 ---------------------------------
393  
2 garren 394 -------------------- HepMC-01-02-21 ---------------------------------
395  
396 2005-04-27 Matt Dobbs and Giorgos
397 * src/IO_HERWIG.cxx implemented a bug fix suggested by borut,
398 which keeps the remapping of daughters/motherrs from going "over
399 the end" on herwig events (was noticed in the tauola events for
400 rome DC).
401  
402 2004-08-04 David Quarrie <David.Quarrie@cern.ch>
403  
404 * cmt/requirements: Change dependencies on CERNLIB and CLHEP
405 to AtlasCERNLIB and AtlasCLHEP to avoid name clashes
406  
407  
408 -------------------- HepMC-01-02-19 ----(gcc 3.2 compatible)---------
409  
410  
411 2004-04-22 Matt Dobbs <Matt.Dobbs@Cern.CH>
412  
413 * src/IO_HERWIG.cxx (HepMC): fixed bug reported by Hinchliffe in
414 IO_HERWIG wherein (for the special case of min bias events only)
415 number of entries in HEPEVT was being zero-ed by the IO_HERWIG
416 class. Added extra protection in HEPEVT_Wrapper for this as well.
417  
418  
419 -------------------- HepMC-01-02-18 ----(gcc 3.2 compatible)---------
420  
421 2004-03-27 Matt Dobbs <Matt.Dobbs@Cern.CH>
422  
423 Removed the #define statements that allow backwards compatibility
424 with gcc 2.95, and specialized the 3.2 compliant iterators to be
425 forward iterators such that they work properly with std
426 algorithms.
427  
428 Thanks to Ulrik Egede for pointing this out.
429  
430 * HepMC/GenVertex.h, .cxx HepMC/GenEvent.h, .cxx: changed
431 std::forward_iterator<GenParticle*,ptrdiff_t>
432 to
433 std::iterator<std::forward_iterator_tag,GenParticle*,ptrdiff_t>
434 for standard
435 compliance, and removed #define statements.
436  
437 * HepMC/IO_Ascii.h,.cxx: changed open_mode to openmode for standard
438 compliance, and removed #define statements.
439  
440  
441 2003-12-17 David Rousseau <droussea@lxplus072.cern.ch>
442  
443 * cmt/requirements: remove HepMC_libraries
444  
445 2003-10-22 Matt Dobbs <Matt.Dobbs@Cern.CH>
446  
447 * src/GenEvent.cxx and lots of other files + latex documentation.
448 REmoved any mention of units--- GeV, MeV etc, since HepMC merely
449 accepts whatever is put in. I do this because, though HEPEVT has
450 used GeV/mm, ATLAS plans to use CLHEP units of MeV/mm.
451  
452 2003-10-15 Matt Dobbs <Matt.Dobbs@Cern.CH>
453  
454 * src/GenParticle.cxx (HepMC): added a default constructor for
455 GenParticle as requested by Giorgos S.
456  
457 -------------------- HepMC-01-02-14 ----(gcc 3.2 compatible)---------
458  
459 2003-04-21 Matt Dobbs <Matt.Dobbs@Cern.CH>
460  
461 * src/IO_HERWIG.cxx:
462 minor changes to handling of herwig event record
463  
464 -------------------- HepMC-01-02-11 ----(gcc 3.2 compatible)---------
465  
466 2003-03-10 Matt Dobbs <Matt.Dobbs@Cern.CH>
467  
468 * HepMC/IO_BaseClass.h:
469 Fixed bug reported by Peter Loch, wherein the virtual destructor
470 for IO_BaseClass was missing.
471  
472 -------------------- HepMC-01-02-10 ----(gcc 3.2 compatible)---------
473  
474 2003-03-03 Matt Dobbs <Matt.Dobbs@Cern.CH>
475  
476 * HepMC/GenVertex.h: added extra ifdef statement to allow
477 compilation on gcc 3.2. (forward_iterator and open_mode problems).
478 * HepMC/IO_Ascii.h: as above.
479 * src/IO_Ascii.cxx (HepMC): as above.
480  
481 2003-01-17 Matt Dobbs <Matt.Dobbs@Cern.CH>
482  
483 * src/IO_PDG_ParticleDataTable.cxx (HepMC): if the PDG table does
484 not exist, we abort, rather than just returning false.
485  
486 -------------------- HepMC-01-02-04 ----(5.0.0)------------
487 2002-11-04 Matt Dobbs <Matt.Dobbs@Cern.CH>
488  
489 * src/GenEvent.cxx (HepMC): set_barcode(particle, barcode),
490 set_barcode(vertex, barcode) Fixed a bug reported by Giorgos S.
491 For this bug, a user suggests a barcode for a vertex that is
492 already part of an event... the vertex is inserted in the vertex
493 map with the new barcode, but HepMC forgets to erase the old
494 entry... such that the vertex now appears twice in the map. This
495 is fixed, and the corresponding error for particles is also fixed.
496  
497 2002-10-31 Matt Dobbs <Matt.Dobbs@Cern.CH>
498  
499 * HepMC/IO_HERWIG.h: modified IO_HERWIG to include a switch
500 (default m_no_gaps_in_barcodes=on) which removes null entries from
501 Herwig HEPEVT and reshuffles the common block
502  
503 2002-10-22 Matt Dobbs <Matt.Dobbs@Cern.CH>
504  
505 * HepMC/HerwigWrapper6_4.h, HepMC/HerwigWrapper.h: new interface
506 to HERWIG Version 6.4 is added. There is an example for using it
507 at examples/example_MyHerwig.cxx. To use this example you will
508 have to download HERWIG version 6.4 and modify the Makefile to
509 link it.
510  
511 * HepMC/IO_HERWIG.h: New class for reading the Herwig version of
512 the HEPEVT common block is added. READ THE COMMENTS IN THE .h file
513 carefully before using it!
514  
515  
516 2002-07-29 Matt Dobbs <Matt.Dobbs@Cern.CH>
517 -------------------- HepMC-01-02-03 ----(4.0.2)------------
518  
519 * src/GenVertex.cxx (HepMC): remove_particle()
520 * HepMC/GenVertex.h:
521 removed confusing comment about the use of GenVertex::remove_particle()
522 in .h file, and clarified the comment in .cxx file.
523  
524 * src/GenEvent.cxx (HepMC): operator=
525 bug discovered by <Malte.Muller@cern.ch>.
526 Formerly, the GenEvent::operator= method relied on the particles
527 attached to each vertex to always be in the same order. However,
528 since the particles are stored in set<>, this is not always true
529 -- making the results of the operator= method unreliable.
530 This is fixed by mapping the vertices explicitly.
531  
532 * src/IO_PDG_ParticleDataTable.cxx (HepMC):
533 added a line in read_entry that ignores empty lines (previously
534 empty lines in the pdg data table generated a cerr message).
535 This change was requested by Davida Costanzo.
536  
537  
538 2002-03-02 Matt Dobbs <Matt.Dobbs@Cern.CH>
539 -------------------- HepMC-01-02-02 ----(3.0.1)------------
540  
541 * src/GenVertex.cxx (HepMC):
542 GenVertex::edge_iterator::edge_iterator( .. )
543 Extra error protection added in the constructor.
544 Sometimes the edge_iterator fails when we have a vertex with no
545 in_particles. This never happens in standalone mode, but when ran
546 with the ATLAS framework, it does happen. New code identifies the
547 scenario explicitly, and catches the error, which has to do with
548 the past-the-end value of the edge_iterator.
549  
550 * test/test_iterators.cxx: new test program added for iterators,
551 to test for the above problems.
552  
553  
554 2002-02-19 Matt Dobbs <Matt.Dobbs@Cern.CH>
555  
556 CHANGES TO ALLOW HEPMC TO COMPILE WITH SOLARIS CC 5.2
557  
558 * cmt/requirements: added the line
559 macro_append cppflags "" Solaris " -D__SUNPRO_CC "
560 to handle Solaris CC 5.2 features.
561  
562 * HepMC/ParticleDataTable.h:
563 turns on MISSING_FORWARD_ITERATOR when __SUNPRO_CC is defined.
564 This defines forward_iterator as iterator
565  
566 * HepMC/GenVertex.h:
567 same as ParticleDataTable.h, but also turns on
568 NEED_SOLARIS_FRIEND_FEATURE when __SUNPRO_CC is defined.
569  
570 * src/Polarization.cxx (HepMC):
571 replaced abs() with theta = ( theta>0 ? theta : -theta );
572 for compatibility with Solaris.
573  
574 2002-02-15 Matt Dobbs <Matt.Dobbs@Cern.CH>
575 -------------------- HepMC-01-02-01 ----(3.0.0)------------
576  
577 * HepMC/GenEvent.h: bug discovered by <srinir@bnl.gov> with help
578 from Paolo and Hong.
579 The GenEvent::particle_iterator, const_particle_iterator,
580 vertex_iterator, const_vertex_iterator
581 had methods like:
582 bool operator !=(const particle_iterator& a) const
583 { return !(**this == *a); }
584 which doesn't work because you are not allowed to de-reference
585 the end() iterator [the above coding is a relic of the old
586 walking iterators which did not inherit from
587 forward_iterstor, and for which *end() was well
588 defined.]
589 The correct usage is:
590 { return m_map_iterator == a.m_map_iterator; }
591  
592 Note: this does NOT affect the GenVertex::***_iterator's, since
593 for those iterators *end() is well defined.
594  
595  
596 2002-01-23 Matt Dobbs <Matt.Dobbs@Cern.CH>
597 -------------------- HepMC-01-02-00 --------------------
598 ( Public Version 1.2 )
599  
600 User manual, webpage, and public version updated.
601  
602 The CLHEP names branch, called HepMC-00-00-96-CLHEP, has
603 been moved to the head of the main trunk in cvs, and commited.
604 Thus the main trunk is the only development branch.
605  
606  
607 2002-01-22 Matt Dobbs <Matt.Dobbs@Cern.CH>
608 -------------------- HepMC-01-01-12 --------------------
609  
610 * src/GenEvent.cxx (HepMC): delete_all_vertices()
611 modified the increment of the vertex iterator when looping over
612 vertices for deletion.
613 * src/GenVertex.cxx (HepMC): delete_adopted_particles()
614 modified the increment of the particle iterator when looping over
615 particles for deletion.
616  
617 2002-01-21 Matt Dobbs <Matt.Dobbs@Cern.CH>
618 -------------------- HepMC-01-01-07 --------------------
619  
620 * HepMC/GenEvent.cxx (delete_all_vertices):
621 Possible bug reported here by ATLfast group. Added extra error
622 checking, and changed the deleting of the vertices such that each
623 one is explicitly erased from the map.
624  
625  
626 2002-01-18 Matt Dobbs <Matt.Dobbs@Cern.CH>
627  
628 More changes for Windoes MS Visual C++ compatibility:
629  
630 * HepMC/PythiaWrapper6_2.h, HepMC/PythiaWrapper6_152.h:
631 included new wrapper methods like call_pyinit, which hide the
632 funny syntax necessary to call fortran routines from C++.
633 * examples/example_MyPythiaWithEventSelection.cxx:
634 * examples/example_MyPythiaOnlyToHepMC.cxx:
635 * examples/example_MyPythia.cxx:
636 * examples/Benchmarks_f77/example_PythiaToLCWrite.cxx:
637 modified to use the call_*** pythia methods.
638  
639  
640 2002-01-15 Matt Dobbs <Matt.Dobbs@Cern.CH>
641 -------------------- HepMC-01-01-06 --------------------
642  
643 * Makefile.standalone: updated to use cernlib 2001 and pythia6152
644  
645 * examples/example_UsingIterators.cxx:
646 The input file was from the old non-barcodes version, and so
647 didn't work. Replaced it with a proper input file.
648  
649  
650 These changes suggested by Witold Pokorski <Witold.Pokorski@Cern.Ch> from
651 LHCb to allow for Windows Visual C++ compliance. All of these changes are
652 fully backwards compatible(!).
653  
654 * HepMC/GenEvent.h, HepMC/GenVertex.h: change forward_iterator to
655 simply iterator (which in the STL standard apparently implies
656 forward_iterator)
657  
658 In Visual c++, a for (int i ... ) {} statement does not scope out
659 the i variable ... so had to modify the code to ensure no
660 variables were used twice in the same method:
661 * src/IO_Ascii.cxx (HepMC):
662 in lines 155, 161, 175 "int i" is repeated
663 in lines 293, 314, 321 "int i" is repeated
664 in lines 293, 314, 321 "p" is repeated
665 * src/IO_HEPEVT.cxx (HepMC):
666 in lines 59,65,88 "i" is repeated
667 in lines 118, 129 "p" is repeated
668 * src/IO_PDG_ParticleDataTable.cxx (HepMC):
669 in lines 80, 103, 124 "id_i" is repeated
670 * src/GenVertex.cxx (HepMC):
671 in lines: 64 and 72; 168 and 178; 195 and 201; 260 and 273;
672 322 and 331 variable "part" is repeated
673  
674 * have verified all STL calls for set, map, less, greater, cout,
675 endl, list, cerr, ios, iostream, flush are properly prefixed with
676 std::
677  
678 * HepMC/GenEvent.h: bug fix:
679 added a std::greater<int> qualifier to the m_map_iterator of the
680 vertex iterators.
681  
682 * HepMC/GenVertex.h: bug fix:
683 made the GenVertex::particle_iterator a friend of GenVertex.
684  
685 * HepMC/GenEvent.h, HepMC/GenVertex.h:
686 move all of the friend class declarations
687 into statements separate from the class declaration, i.e.
688 class edge_iterator { ... };
689 friend class edge_iterator;
690 instead of
691 friend class edge_iterator{ ... };
692 Change all std::ptrdiff_t to ptrdiff_t
693  
694 * HepMC/IO_Ascii.h: ios::openmode changed to ios::open_mode in the
695 constructor, for compatibility with windows Visual C++.
696  
697 * Change #include <iostream.h> to #include <iostream>
698 Note: this will spoil compatibility with HPUX 10.2 CC.
699  
700  
701 2001-11-29 Matt Dobbs <Matt.Dobbs@Cern.CH>
702 -------------------- HepMC-01-01-05 --------------------
703 * Fix typo in user manual "particle barcodes are positive"
704  
705  
706 2001-11 Matt Dobbs <Matt.Dobbs@Cern.CH>
707 -------------------- HepMC-01-01-04 --------------------
708 * update user manual to explain barcodes. NO changes to code.
709  
710  
711 2001-11-10 Matt Dobbs <Matt.Dobbs@Cern.CH>
712 -------------------- HepMC-01-01-03 --------------------
713 * cmt/requirements: jetset74 requirement removed, as requested by
714 I.Hinchliffe.
715  
716 2001-11-04 Matt Dobbs <Matt.Dobbs@Cern.CH>
717 -------------------- HepMC-01-01-02 --------------------
718 * HepMC/GenVertex.h: removed merge_vertex() method.
719  
720 * HepMC/IO_HEPEVT.h:
721 removed the merge_vertices possibility, but added a
722 build_production_vertex possibility to build_end_vertex.
723  
724 -------------------- HepMC-01-01-01 --------------------
725 * src/HEPEVT_Wrapper.cxx (HepMC):
726 new method check_hepevt_consistency() added.
727 new method zero_everything() added.
728  
729 2001-11-02 Matt Dobbs <Matt.Dobbs@Cern.CH>
730  
731 -------------------- HepMC-01-01-00 --------------------
732 * src/IO_HEPEVT.cxx (HepMC):
733 Modified such that the HEPEVT indices are used for the particle
734 barcodes.
735 * HepMC/IO_Ascii.h:
736 Modifed to properly read/write the barcodes and the
737 GenEvent new data members.
738  
739 Unique reference numbers called "barcodes" are added as data
740 members to GenParticles and GenVertices.
741 They are cross-referenced in GenEvent via a map<int,GenXXX>.
742 The GenEvent::m_vertices container of vertices is then no longer
743 necessary, so it is removed.
744 The GenEvent::particle_iterator and GenEvent::vertex_iterator
745 are updated to walk over the maps. The iterator change should be
746 transparent to the user.
747 Constant versions of both iterators are included.
748 The old GenEvent::vertex_iterator was a typedef of the set:
749 typedef std::set<GenVertex*>::iterator vertex_iterator;
750  
751 The maps get filled via the:
752 set_barcode( GenXXX* x, int suggested_barcode )
753 methods, which in turn are called only by the vertex and particle:
754 GenVertex::set_parent_event_()
755 GenPartcle::set_production_vertex_()
756 GenPartcle::set_end_vertex_(}
757  
758 * HepMC/GenEvent.h:
759 New data members and access methods are added for consistency with
760 the HepUP standard, see hep-ph/0109068
761 double GenEvent::m_event_scale
762 double GenEvent::m_alphaQCD
763 double GenEvent::m_alphaQED
764  
765 * src/IO_HEPEVT.cxx (HepMC): Fixed some const warnings with the
766 GenEvent::vertex_iterator usage.
767  
768 2001-10-11 Matt Dobbs <Matt.Dobbs@Cern.CH>
769  
770 -------------------- HepMC-01-00-01 --------------------
771 * cmt/requirements: changed use CERNLIB v2001 External to use
772 CERNLIB CERNLIB-01-* External as per r.d.'s request
773  
774 2001-10-10 Matt Dobbs <Matt.Dobbs@Cern.CH>
775  
776 -------------------- HepMC-01-00-00 --------------------
777 Identical to HepMC-00-03-08. This tag name follows atlas
778 naming conventions ... increment the major tag when code is NOT
779 backwards compatible. Since Atlas is moving from tag
780 HepMC-00-01-12 (old atlas names) to HepMC-00-03-08 (clhep names)
781 this change is not backwards compatible.
782  
783 2001-09-05 Matt Dobbs <Matt.Dobbs@Cern.CH>
784 ------- below this line is tag HepMC-00-03-08 ----------
785 (clhep names version to be used in atlas. The changes have not
786 been made in the HepMC-00-01-** branch)
787  
788 * src/IO_HEPEVT.h (HepMC):
789 * src/IO_HEPEVT.cxx (HepMC): When inconsistent info between
790 mother and daughters is found in the
791 IO_HEPEVT::build_production_vertex method, IO_HEPEVT will no
792 longer merge_vertex (the 2001-03-29 "fix") by default. In order to
793 get this behaviour you have to explicitly ask for it with the
794 IO_HEPEVT::set_merge_vertex_switch() method.
795  
796 2001-09-05 Matt Dobbs <Matt.Dobbs@Cern.CH>
797 * cmt/requirements: added to the CLHEP names branch (its just a
798 direct copy of what is in the trunk ATLAS names).
799  
800  
801 2001-07-17 Matt Dobbs <Matt.Dobbs@Cern.CH>
802 (note: HepMC-00-01-24 is an accidental tag which should be ignored)
803 ----- below this line is HepMC-00-01-23, HepMC-00-03-07 -----
804  
805 * src/GenVertex.cxx (HepMC):
806 GenVertex::vertex_iterator::follow_edge_() added extra error
807 checking for the very special-rare case where a particle might
808 point to the same vertex for both production and end.
809 Meant to handle Ian H.'s bug of 02 Jul 2001
810  
811 2001-06-28 Matt Dobbs <Matt.Dobbs@Cern.CH>
812 -------------------- HepMC-00-03-06 --------------------
813  
814 * examples/GNUmakefile.in:
815 updated the makefile to link to cernlib 2001 version of pythia.
816 This involves a change -lpythia6136 to -lpythia6152 -lpythiad
817 Note that for xample_MyPythiaWithEventSelection.cxx 1/100 or
818 36/1000 events pass cuts (with 6.136 it was 3/100 or 37/1000).
819  
820 * HepMC/GenParticle.h: now has a parent_event() access method,
821 which returns the parent_event of the particle's container
822 vertex's event.
823  
824 2001-06-27 Matt Dobbs <Matt.Dobbs@Cern.CH>
825  
826 ---> Make the Vertex know which event it in in. <---
827 * HepMC/GenVertex.h: added private data member m_event, public
828 access method parent_event() and protected access method
829 set_parent_event, which is only to be used by GenEvent. Thus
830 GenEvent is made to be a friend of GenVertex.
831 * HepMC/GenEvent.h, src/GenEvent.cxx (HepMC): added logic to
832 GenEvent::remove_vertex and GenEvent::add_vertex. The vtx's
833 m_event pointer is set to point back to the event.
834  
835 * HepMC/ParticleData.h:
836 * HepMC/GenEvent.h:
837 * HepMC/GenParticle.h:
838 * HepMC/GenVertex.h: made method counter() protected. It was never
839 intended as public, merely as a method for detecting memory
840 leaks. If no-one complains (they shouldn't, it was commented
841 "temporary for debugging") I'll remove it entirely later.
842  
843 2001-03-29 Matt Dobbs <Matt.Dobbs@Cern.CH>
844  
845 * src/IO_HEPEVT.cxx (HepMC):
846 When m_trust_mothers_before_daughters=0, the vertex position is
847 now filled. In ISAJET sometimes disjoint vertex structures exist,
848 in this case a merger of vertices is done, which accounts for it.
849  
850 * HepMC/GenVertex.h:
851 * src/GenVertex.cxx (HepMC):
852 Added a void merge_vertex_contents( GenVertex* v_in );
853 method which takes all the contents of v_in and places it in
854 the vertex. It does not delete v_in, nor does it remove
855 v_in from an event.
856 It will mainly be used by IO_HEPEVT, but it is forseen that users
857 may want to use it when reducing the overall size of the event
858 (deleting intermediate vertices) such as will be done by atlas.
859  
860 2001-02-28 Matt Dobbs <Matt.Dobbs@Cern.CH>
861  
862 * Makefile.standalone:
863 using
864 HepMCdir = $(shell pwd)
865 instead of
866 HepMCdir = /afs/cern.ch/user/m/mdobbs/HepMC/myCheckoutV1.01
867 for better portability.
868  
869 * src/GenVertex.cxx (HepMC): added extra protection to the
870 GenVertex::edge_iterator::edge_iterator constructor to give
871 sensible result for the special case when a vertex has incoming
872 particles, but none outgoing and the user requests a children
873 iterator. The old version would have
874 m_set_iter points to m_particles_in.begin() and so the first
875 dereference might be wrong.
876  
877 * HepMC/IO_HEPEVT.h: Two new switches are added to give more
878 flexibility in handling the possible inconsistencies arrising
879 from the bi-directional pointers in HEPEVT. The switches are:
880 bool m_trust_mothers_before_daughters;
881 bool m_print_inconsistency_errors;
882 which are described by comments in the code. Also makes minor
883 changes to src/IO_HEPEVT.cxx
884  
885 * HepMC/Typedef_Version0names.h:
886 This header file added. It contains typedef statements which
887 should allow the new version 1.XX class names to be used with code
888 written with the old version 0.XX class names.
889 If the user wants to take advantage of these typedefs he needs to
890 define type variable HEPMC_SHORT_NAMES in his compiler options as
891 follows: -DHEPMC_SHORT_NAMES
892 or in his code using #define HEPMC_SHORT_NAMES
893 Note that since the header file names also changed, this ALSO
894 requires changing the include statements in the user code.
895  
896 * doc/latex_user_manual/physicist_visualization.eps
897 fixed a mis-labelling in this figure... the labels were all
898 shifted and intermingled... its now right. Unfortunately
899 the mislabelled version appears in the CPC publication.
900 also affects doc/latex_user_manual/HepMC_user_manual.ps
901  
902 ******************************************************
903 Everything below this line corresponds to Version 1.01
904 ******************************************************
905  
906 2001-01-11 Matt Dobbs <Matt.Dobbs@Cern.CH>
907  
908 * examples/example_UsingIterators.cxx:
909 Changed the class IsFinalState such that a particle must have no
910 end vertex AND have status==1 to be considered stable.
911 Does not effect package, only this specific example.
912  
913 * HepMC/IO_BaseClass.h:
914 Bug reported by Lynn Garren
915 "There appears to be a problem with const-ness in HepMC/IO_BaseClass.h.
916 I have made the following changes in order to compile HepMC 1.0
917 with g++.
918 virtual const GenEvent*& operator<<( GenEvent*& );
919 becomes
920 virtual GenEvent*& operator<<( GenEvent*& );
921  
922 virtual const ParticleDataTable*& operator<<( ParticleDataTable*& )
923 becomes
924 virtual ParticleDataTable*& operator<<( ParticleDataTable*& )
925 In other words, I have made the const-ness match."
926 ...
927 These changes are implemented by Matt in the atlas repository.
928  
929 * HepMC/HEPEVT_Wrapper.h:
930 Bug reported by Andreas Dell'Acqua
931 HEPEVT_Wrapper::last_child
932 HEPEVT_Wrapper::last_parent
933 There methods were returning 0 when exactly one parent exists. This
934 caused the number_children and number_parent methods to return 0
935 every time there was exactly 1 parent/child. This error caused
936 major problems in the IO_HEPEVT class, with the end result that
937 the HEPEVT graphs were interpretted incorrectly [all particles are
938 correctly interpretted, but their relationships are incorrect for
939 the case where a particle has exactly ONE mother: in this case the
940 particles appeared as orphans.]
941 This bug was
942 introduced in version HepMC-00-00-94, so it has been present for
943 some time. This fix is for HEPEVT_Wrapper::last_child():
944 // Returns the Index of the LAST child in the HEPEVT record
945 // for particle with Index index.
946 // If there is only one child, the last child is forced to
947 // be the same as the first child.
948 // If there are no children for this particle, both the first_child
949 // and the last_child with return 0.
950 // Error checking is done to ensure the child is always
951 // within range ( 0 <= parent <= nhep )
952  
953 * src/IO_HEPEVT.cxx (HepMC):
954 only comments in IO_HEPEVT::build_particle have changed. No change
955 to code.
956  
957 ******************************************************
958 Everything below this line corresponds to Version 1.0
959 ******************************************************
960  
961 2000-11-10 Matt Dobbs <Matt.Dobbs@Cern.CH>
962  
963 MAJOR NAME CHANGES AFFECT ALMOST ALL FILES:
964 GeneratorEvent --> GenEvent
965 Particle --> GenParticle
966 Vertex --> GenVertex
967  
968 user manual and online documentaion are updated to reflect this.
969  
970 * HepMC/PythiaWrapper6_152.h:
971 A new wrapper for Pythia 6.1 is created to replace the old Pythia
972 5.7 wrapper. It works with the versions of Pythia in both
973 CERNlib2000 and CERNlib2001 (versions 6.136 and 6.152 and probably
974 any Pythia 6).
975 A pointer file:
976 * HepMC/PythiaWrapper.h:
977 is created so the used doesn't have to worry about pythia version
978 numbers. A test file is located at:
979 * test/test_PythiaWrapper.cxx
980  
981 All examples are updated to use Pythia 6.
982  
983  
984 2000-11-09 Matt Dobbs <Matt.Dobbs@Cern.CH>
985  
986 * HepMC/WeightContainer.h:
987 Created this class to house the weights in the vertex and event
988 classes. It is just an interface to std::vertex<double>.
989  
990 The vertex class is modifid to use this. Required changes to:
991 * HepMC/Vertex.h:
992 * src/Vertex.cxx:
993 * src/IO_Ascii.cxx (HepMC):
994  
995 ******************************************************
996 Everything below this line corresponds to Version 0.94
997 ******************************************************
998  
999  
1000 2000-07-05 Matt Dobbs <Matthew.Adam.Dobbs@Cern.CH>
1001  
1002 * HepMC/HEPEVT_Wrapper.h: Completely new wrapper for HEPEVT_Common
1003 is implemented. This wrapper treats the common as a series of
1004 bytes and interprets them "on the fly". The user can set the size
1005 (in bytes) of the integer and real numbers to be interpretted from
1006 HEPEVT, and also the total number of entries in HEPEVT. This
1007 allows the user to interface to two applications which use
1008 different HEPEVT definitions.
1009 Benchmarks: 1000 events pythia only 34 seconds.
1010 1000 events Pythia+HepMC(using this new wrapper) 40s
1011 on my particular machine. (extra time is 6 seconds.) Compare this
1012 to the extra 5 seconds reported in the HepMC user manual for the
1013 old HEPEVT wrapper ... so the difference is small compared to the
1014 old wrapper considering the added functionality.
1015 (all examples have been tested and they Run!)
1016  
1017 * HepMC/HEPEVT_Common.h: Deleted, this common is now defined
1018 inside HEPEVT_Wrapper.h
1019  
1020 * src/HEPEVT_Wrapper.cxx (HepMC): This file is created since it is
1021 necessary to instantiate the static members of HEPEVT_Wrapper in a
1022 .cxx file.
1023  
1024 * Makefile.Standalone: modified to build src/HEPEVT_Wrapper.cxx into
1025 the HepMC library
1026  
1027 * HepMC/IO_HEPEVT.h: Comment modified only so as to treat
1028 HEPEVT_Wrapper consistently.
1029  
1030 * examples/example_MyPythiaWithEventSelection.cxx: Modified to use new
1031 HEPEVT_Wrapper
1032  
1033 * examples/example_MyPythia.cxx: Modified to use new
1034 HEPEVT_Wrapper
1035  
1036 * examples/example_MyPythiaOnlyToHepMC.cxx (main): Modified to use new
1037 HEPEVT_Wrapper
1038  
1039 * PACKAGE: added linkset HepMC -lib:HepMC
1040 (Modified GNUmakefile.in to use libHepMC.so as HepMC linkset)
1041  
1042 2000-07-04 Matt Dobbs <Matthew.Adam.Dobbs@Cern.CH>
1043  
1044 * examples/GNUmakefile.in: $(top_srcdir) replaced by
1045 $(srcdir)
1046  
1047 * GNUmakefile.in (libHepMC.so_SRC): The location of src .cxx files
1048 is now explicitly specified with $(top_srcdir)/src/*.cxx
1049 This makefile now builds oth a shared library libHepMC.so and
1050 libHepMC.a (requested by Ian H.)
1051 * the initpydata.f routine is no longer compiled into the the
1052 HepMC library, but is still packaged with the other routines.
1053 The user needs to link to it explicitly. See the GNUmakefile.in
1054 in the examples directory for an example of how to do this.
1055 (requested by Ian H.)
1056 * ./src is replaced with $(top_srcdir)/src everywhere in the
1057 GNUmakefile.in
1058  
1059 Files changed this time:
1060 GNUmakefile.in, examples/GNUmakefile.in, Makefile.standalone,
1061 Changelog
1062  
1063 2000-05-18 Matt Dobbs <Matthew.Adam.Dobbs@Cern.CH>
1064  
1065 * HepMC/IO_BaseClass.h: There is now a fill_next_event method.
1066 - bool fill_next_event( GeneratorEvent* evt ) is a new abstract method
1067 which fills the passed event, and also returns true if successful.
1068 - GeneratorEvent* read_next_event() is now make concrete. it
1069 creates a new event, fills it using the above abstract method,
1070 and returns the event
1071 This change is backwards compatible since the method
1072 read_next_event() has identical behavior.
1073 Identical changes are made for the methods:
1074 - bool fill_particle_data_table( ParticleDataTable* pdt )
1075 - ParticleDataTable* read_particle_data_table()
1076 The methods are updated [ i.e. GeneratorEvent* read_next_event()
1077 is changed to bool fill_next_event( GeneratorEvent* evt ), etc. ]
1078 in:
1079 - IO_HEPEVT.h
1080 - IO_Ascii.h
1081 - IO_PDG_ParticleDataTable.h
1082 - IO_HEPEVT.cxx
1083 - IO_Ascii.cxx
1084 - IO_PDG_ParticleDataTable.cxx
1085 (This change requested by Ian Hinchliffe and Marjorie Shapiro.)
1086  
1087  
1088 2000-04-24 Matt Dobbs <Matthew.Adam.Dobbs@Cern.CH>
1089  
1090 * HepMC/HEPEVT_Wrapper.h: set_momentum and set_position now
1091 properly cast input doubles as type HEPEVT_Precision,
1092 previously they were hardwired as cast to double, this
1093 meant writing to real*4 hepevt would fail.
1094  
1095 ******************************************************
1096 Everything below this line corresponds to Version 0.91
1097 ******************************************************
1098  
1099 2000-04-11 Matt Dobbs <Matthew.Adam.Dobbs@Cern.CH>
1100  
1101 * doc/latex_user_manual/HepMC_user_manual.tex: User manual is
1102 updated to replect changes since V0.9
1103 - HEPEVT and position in [mm]
1104  
1105 2000-04-06 Matt Dobbs <Matthew.Adam.Dobbs@Cern.CH>
1106  
1107 * examples/example_MyPythia.cxx
1108 * examples/example_MyPythiaOnlyToHepMC.cxx
1109 * examples/example_MyPythiaWithEventSelection.cxx:
1110 By commenting out the initpydata call (which may be required on
1111 some systems to initialize the Pythia PYDATA block data as
1112 external) the MyPythia examples now run on HPUX (and still on
1113 Linux). Have not tested other platforms.
1114 * Makefile: HPUX with gcc requires the -lf library which contains
1115 the fortran intrinsic function.
1116  
1117 2000-04-05 Matt Dobbs <Matthew.Adam.Dobbs@Cern.CH>
1118  
1119 The changes below will have no effect on the user or package, they
1120 just serve to remove warnings when compiling.
1121  
1122 * HepMC/Vertex.h: 313:342:364: warning: unused parameter `enum
1123 ::HepMC::IteratorRange dummy_range' (all dummy range parameters
1124 now appear as particles_end( IteratorRange /* dummy_range */ ) )
1125  
1126 * src/IO_Ascii.cxx (HepMC): 506: warning: ANSI C++ forbids
1127 variable-size array `c' (the array is now declared as char* c =
1128 new char[key_length +1]; and deleted before returning)
1129  
1130 * HepMC/IO_PDG_ParticleDataTable.h: 53: warning: control reaches
1131 end of non-void function read_next_event()
1132 (this is a dummy function anyway -- return 0)
1133 * HepMC/IO_HEPEVT.h:55: (as above)
1134  
1135 * src/Flow.cxx (HepMC): 26: warning: default argument given for
1136 parameter 1 of `void ::HepMC::Flow::print(class ostream & = cout)
1137 const' (done)
1138  
1139 * HepMC/IO_HEPEVT.h:57: warning: base class `class
1140 ::HepMC::IO_BaseClass' should be explicitly initialized in the
1141 copy constructor (done)
1142 * HepMC/IO_Ascii.h: 98: (as above)
1143 * HepMC/IO_PDG_ParticleDataTable.h: 56: (as above)
1144  
1145 * HepMC/ParticleDataTable.h: 155: warning: suggest parentheses
1146 around assignment used as truth value (done)
1147  
1148 * src/IO_Ascii.cxx (HepMC): 37: warning: default argument given
1149 (removed default argument)
1150  
1151 * HepMC/Flow.h:21: warning: multiline `//' comment
1152 (added space after \ to remove compiler warning)
1153  
1154 * HepMC/Particle.h: removed =0 in the inline declaration
1155 inline void Particle::set_flow( int code_index, int code = 0 )
1156 (caused warning).
1157  
1158  
1159 2000-04-04 Matt Dobbs <Matthew.Adam.Dobbs@Cern.CH>
1160  
1161 * HepMC/HEPEVT_Wrapper.h: HepMC/HEPEVT_Common.h:
1162 replace the classes HEPEVT_BaseClass.h HEPEVT_Double2000.h
1163 HEPEVT_Double4000.h HEPEVT_Real2000.h HEPEVT_Real4000.h
1164  
1165 Using different classes for each of the HEPEVT common block
1166 varieties proved very troublesome - users had trouble and 4
1167 similar classes were being maintained. The new version uses only
1168 static methods and cannot be instantiated (logical since it has
1169 no data members). The HEPEVT common block is contained in the
1170 HepMC/HEPEVT_Common.h header. The precision and number of entries
1171 is specified using #define commands, default is double precision,
1172 2000 entries. The user will see only one change - the IO_HEPEVT
1173 constructor now has no arguments, so he need not define the
1174 any HEPEVT_XXX class. He may need to set the precision and number
1175 of entries. See the header for instructions, and
1176 examples/example_MyPythia.cxx for an example.
1177  
1178 example_MyPythia.cxx, example_MyPythiaOnlyToHepMC.cxx,
1179 example_MyPythiaWithEventSelection.cxx are modified to take this
1180 into account.
1181  
1182 * HepMC/IO_HEPEVT.h: This class now extracts information from the
1183 fortran HEPEVT common using HEPEVT_Wrapper instead of having to
1184 pass it a class which inherits from the obsolete HEPEVT_BaseClass.
1185  
1186 2000-04-03 Matt Dobbs <Matthew.Adam.Dobbs@Cern.CH>
1187  
1188 * HepMC/PythiaWrapper5_720.h: Credit for writing the wrapper is
1189 to Silvia Resconi.
1190 Inclusion of HEPEVT wrapper header file is not necessary --- hence
1191 removed.
1192  
1193 2000-03-31 Matt Dobbs <Matthew.Adam.Dobbs@Cern.CH>
1194  
1195 * HepMC/ParticleData.h: clifetime is now represented in [mm]
1196 instead of [cm] ... previously HepMC had internal inconsistencies
1197 in this --- it claimed to use [cm], but sometimes used [mm] (as
1198 when it read from HEPEVT, and othertimes used [cm] (as when it
1199 transformed a width into a lifetime. Now all is consitent and [mm]
1200 is used everywhere as it should be.
1201 * HepMC/Vertex.h: src/ParticleData.cxx:
1202 Changed comments which say clifetime is in [cm], to say
1203 clifetime is in [mm].
1204  
1205 * Makefile (CLHEPdir):
1206 Changed
1207 CLHEPdir = /afs/cern.ch/sw/lhcxx/specific/Linux/CLHEP/pro
1208 to
1209 CLHEPdir = /afs/cern.ch/sw/lhcxx/specific/@sys/CLHEP/dev
1210 to make it platform independent for CERN users.
1211 And some cosmetic changes to the Makefile.
1212  
1213 * HepMC/IO_BaseClass.h:
1214 Using the compiler options -ansi -pedantic cause this error:
1215 no match for `::HepMC::IO_Ascii & << ::HepMC::GeneratorEvent *&'
1216 Even though it recognizes:
1217 operator <<(::HepMC::IO_BaseClass &,
1218 const ::HepMC::GeneratorEvent *&) <near match>
1219 as the "best <near match>".
1220  
1221 To fix this I make operator<<, operator>> members of the
1222 IO_BaseClass rather than friends, and I add versions where the
1223 argument of operator<< is not constant.
1224 This will not affect users in any way (unless they were using
1225 these compiler options, in which case HepMC didn't work anyway...)
1226  
1227 2000-02-16 Matt Dobbs <Matthew.Adam.Dobbs@Cern.CH>
1228  
1229 * GeneratorEvent.h: set_signal_process_vertex() modified to ensure
1230 that any vertex specified as signal process is ALSO in the
1231 m_vertices set.
1232  
1233 * This change log documents changes since Version 9 of HepMC was
1234 "released" February 11, 2000
1235  
1236 pre 2000-02-16 Matt Dobbs <Matthew.Adam.Dobbs@Cern.CH>
1237 Changes Before Version 0.9 (i.e. changes in going from V0.1 -->0.9)
1238 HepMC improvements:
1239 +backup V0.1 (done)
1240 +save particle data as id in Particle (done)
1241 +update IO strategies (done)
1242 +test (done)
1243 +backup (done)
1244 -change set<Vertex*> in event to include all vertices (done)
1245 +change iterators to reflect this (done)
1246 +update IO strategies (done)
1247 +test (done)
1248 -fix all operator= to first destruct dependents. (done)
1249 -access functions to iterate over all flows (done)
1250 -check for stl namespace (done)
1251 grep -n cout HepMC/*.h src/*.cxx | grep -v std::cout |
1252 less
1253 -add Hepevt:write event (done)
1254 -implement lujet strategy (not done!)
1255 -update documentation -- enumerating recent changes. (done)
1256 -user manual written
1257