hepmc - Blame information for rev 36

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