hepmc - Blame information for rev 79

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