SSO Logout

Subversion Repositories hepmc

Rev

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

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