hepmc - Blame information for rev 2

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