hepmc - Blame information for rev 22

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