hepmc - Blame information for rev 43

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