hepmc - Blame information for rev 11

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