Subversion Repositories hepmc

Rev

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

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