hepmc - Blame information for rev 40

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