hepmc - Blame information for rev 48

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