hepmc - Blame information for rev 306

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