SSO Logout

Subversion Repositories hepmc

Rev

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

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