hepmc - Blame information for rev 67

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