hepmc - Blame information for rev 281

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