hepmc - Blame information for rev 26

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