hepmc - Blame information for rev 96

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