Subversion Repositories hepmc

Rev

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

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