hepmc - Blame information for rev 88

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