Subversion Repositories hepmc

Rev

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

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