SSO Logout

Subversion Repositories hepmc

Rev

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

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