hepmc - Blame information for rev 15

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