Subversion Repositories hepmc

Rev

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

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