hepmc - Blame information for rev 58

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