hepmc - Blame information for rev 54

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