hepmc - Blame information for rev 55

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