hepmc - Blame information for rev 78

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