hepmc - Blame information for rev 330

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