SSO Logout

Subversion Repositories hepmc

Rev

Rev 92 | Rev 95 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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