hepmc - Blame information for rev 282

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