Subversion Repositories hepmc

Rev

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

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