hepmc - Blame information for rev 19

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