hepmc - Blame information for rev 93

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