hepmc - Blame information for rev 63

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