hepmc - Blame information for rev 355

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