Subversion Repositories hepmc

Rev

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

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