hepmc - Blame information for rev 23

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