SSO Logout

Subversion Repositories hepmc

Rev

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

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