hepmc - Blame information for rev 30

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