hepmc - Blame information for rev 431

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