hepmc - Blame information for rev 115

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