hepmc - Blame information for rev 21

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