hepmc - Blame information for rev 324

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