hepmc - Blame information for rev 47

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