hepmc - Blame information for rev 117

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