hepmc - Blame information for rev 29

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