hepmc - Blame information for rev 34

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