hepmc - Blame information for rev 49

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