hepmc - Blame information for rev 52

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