Subversion Repositories hepmc

Rev

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

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