hepmc - Blame information for rev 53

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