Subversion Repositories hepmc

Rev

Rev 11 | Go to most recent revision | Details | Last modification | View Log | RSS feed

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