hepmc - Blame information for rev 534

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