hepmc - Blame information for rev 39

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