hepmc - Blame information for rev 62

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