Subversion Repositories hepmc

Rev

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

Rev Author Line No. Line
355 garren 1
  --------------------------  HepMC-2.04.00  --------------------------
332 garren 2
 
354 garren 3
2008-06-04  Lynn Garren
4
 
5
	* doc/HepMC2_user_manual.tex: expand description of Ascii IO format
6
 
350 garren 7
2008-05-29  Lynn Garren
8
 
9
	* configure.ac: Use libtool versioning for libraries
10
 
346 garren 11
2008-05-27  Lynn Garren
12
 
13
	* configure.ac: Throw an error immediately if units are not specified.
14
 
343 garren 15
  --------------------------  HepMC-2.04.00.beta2  --------------------------
16
 
340 garren 17
2008-05-21  Lynn Garren
345 garren 18
 
19
	* HepMC/GenEvent.h: Duplicate the existing constructors with new
20
	constructors that have momentum and length as the first 2 arguments.
340 garren 21
 
22
	* examples: all examples except example_BuildEventFromScratch,
342 garren 23
        testHerwigCopies, and testPythiaCopies use default units
24
 
25
	* HepMC/IO_GenEvent.h: add use_input_units() method
26
	This method is needed ONLY if a) the input stream has no
27
	unit information and b) it is known that the units of the input
28
	stream do not match the default units.
340 garren 29
 
336 garren 30
2008-05-20  Lynn Garren
31
 
32
	* revamp Units design completely
33
	Replace MomentumUnits.h and PositionUnits.h with Units.h
34
	Allowed unit designations are GEV, MEV, MM, and CM
35
 
36
	* configure.ac: User MUST specify both --with-momentum_units=XX
37
	and --with-length_units=YY.  There are no defaults.
38
 
39
	* HepMC/GenEvent.h: unit data members are now enums
40
 
332 garren 41
2008-05-12  Lynn Garren
42
 
43
	* HepMC/Pdfinfo.h: Input parton flavour codes id1 and id2 are expected
44
	to obey the PDG code conventions, especially g = 21.
45
 
330 garren 46
  --------------------------  HepMC-2.04.00.beta  --------------------------
278 garren 47
 
321 garren 48
2008-05-05  Lynn Garren
49
 
50
	* configure.ac: use separate makefiles (VCMakefile.in) for Visual C++
51
	The custom makefiles are invoked by default when using Visual C++.
329 garren 52
	* doc: Stop building postscript copies of the manuals, just
53
	build and distribute PDF copies of the manuals.
321 garren 54
 
317 garren 55
2008-04-29  Lynn Garren
56
 
57
	* remove deprecated IO_ExtendedAscii
58
 
308 garren 59
2008-04-25  Lynn Garren
60
 
317 garren 61
	* cleanup examples: combine example_MyPythia.cc,
62
	example_MyPythiaRead.cc, example_MyPythiaWithEventSelection.cc,
63
	example_PythiaParticle.cc, and example_ReadMyPythia.cc into one example with multiple subsets.
309 garren 64
	* add tests to list of examples in the reference manual
308 garren 65
 
301 garren 66
2008-04-23  Lynn Garren
67
 
68
	* src/GenVertex.cc: fix bug in edge_iterator operator++
305 garren 69
        * src/IO_Ascii.cc: fix for VC9
70
        * src/IO_ExtendedAscii.cc: fix for VC9
71
        * src/IO_AsciiParticle.cc: fix for VC9
301 garren 72
 
286 garren 73
2008-04-18  Lynn Garren
74
 
297 garren 75
	* HepMC/GenEvent.h: minor bug fix for gcc 4.3.0
76
	* HepMC/IO_ExtendedAscii.h: minor bug fix for gcc 4.3.0
77
	* HepMC/IO_GenEvent.h: minor bug fix for gcc 4.3.0
78
	* src/IO_ExtendedAscii.cc: minor bug fix for gcc 4.3.0
79
	* src/IO_GenEvent.cc: minor bug fix for gcc 4.3.0
80
 
81
2008-04-18  Lynn Garren
82
 
286 garren 83
	* ReadMe.cygwin: changing cygwin directions for new versions of VC
84
 
291 garren 85
	* HepMC/MomentumUnits.h: enum HepMCmomentumUnits{ UNKNOWN = 0, MEV, GEV };
86
	Recommended usage: MomentumUnits::GEV
87
	* HepMC/PositionUnits.h: enum HepMCpositionUnits{ unknown = 0, MM, CM }
88
	Recommended usage: PositionUnits::MM
89
 
285 garren 90
2008-04-17  Lynn Garren
91
 
92
	* Rename configure.in to configure.ac, which is now the common usage.
93
	* configure.ac: Major restructuring.  Using libtool.
94
	Only Linux, MacOSX, and Windows are explicitly supported.
95
	All Makefile.am's have been restructured to use libtool.
96
 
284 garren 97
2008-04-01  Lynn Garren
98
 
99
 
100
	* HepMC/IO_GenEvent.h: replace const char* filename with
101
	  const std::string& in the constructor accepting a filename.
102
 
282 garren 103
2008-03-31  Lynn Garren
104
 
105
	* HepMC/GenEvent.h: random_states() now returns const std::vector<long>&
106
	  HepMC/GenVertex.h: position() now returns a const FourVector&
107
	  HepMC/GenParticle.h: flow() now returns const Flow&
108
	  and polarization() now returns const Polarization&
109
 
283 garren 110
	* HepMC/IO_GenEvent.h: add a constructor that accepts the filename
111
	  as a string.
112
 
281 garren 113
2008-03-28  Lynn Garren
114
 
115
	* HepMC/GenParticle.h: The momentum() method now returns a const
116
	  reference to a FourVector instead of a copy of a FourVector.
117
	  This change should be backwards compatible.
118
 
280 garren 119
2008-03-27  Lynn Garren
120
 
121
	* examples: set Herwig and Pythia units to GeV and mm
122
 
278 garren 123
2008-03-26  Lynn Garren
124
 
125
	* HepMC/MomentumUnits.h: new class to encapsulate momentum units,
126
	  which are represented by a single enum
127
	* HepMC/PositionUnits.h: new class to encapsulate position units,
128
	  which are represented by a single enum
129
	* GenEvent: add MomentumUnits and PositionUnits data members and
130
	  associated methods
131
	* GenVertex: add protected convert_position method
132
	* GenParticle: add protected convert_momentum method
133
 
134
	* HepMC/PdfInfo.h: add pdf_id1(), pdf_id2(), set_pdf_id1(), and
135
	  set_pdf_id2() for the pdf set id numbers
136
 
137
	* IO_GenEvent: get and put unit information in a new line
138
	  The first character of the unit line is "U".
139
	* IO_GenEvent: process the new PdfInfo data members
140
 
141
	* test/testUnits.cc: new test for MomentumUnits and PositionUnits
142
 
333 garren 143
  --------------------------  HepMC-2.03.08  --------------------------
144
 
145
2008-04-23  Lynn Garren
146
 
147
	* src/GenVertex.cc: fix bug in edge_iterator operator++
148
        * src/IO_Ascii.cc: minor fix for VC9
149
        * src/IO_ExtendedAscii.cc: minor fix for VC9
150
        * src/IO_AsciiParticle.cc: minor fix for VC9
151
 
152
  --------------------------  HepMC-2.03.07  --------------------------
153
 
154
2008-04-18  Lynn Garren
155
 
156
	* HepMC/GenEvent.h: minor bug fix for gcc 4.3.0
157
	* HepMC/IO_ExtendedAscii.h: minor bug fix for gcc 4.3.0
158
	* HepMC/IO_GenEvent.h: minor bug fix for gcc 4.3.0
159
	* HepMC/ParticleData.h: minor bug fix for gcc 4.3.0
160
	* src/IO_ExtendedAscii.cc: minor bug fix for gcc 4.3.0
161
	* src/IO_GenEvent.cc: minor bug fix for gcc 4.3.0
162
 
271 garren 163
  --------------------------  HepMC-2.03.06  --------------------------
263 garren 164
 
269 garren 165
2008-03-12  Lynn Garren
166
 
167
	* test: reduce size of input files
270 garren 168
 
169
	* IO_HEPEVT: add trust_beam_particles and set_trust_beam_particles
170
	  methods so the user can specify that no beam particles are available.
171
	  This fixes a problem with pythia6 input when the user chooses "none".
269 garren 172
 
264 garren 173
2008-03-11  Lynn Garren
263 garren 174
 
175
	* src/GenEvent.cc: The GenVertex pointer to the parent event was
176
	  not properly moved when the operator= method was used to copy
177
	  a GenEvent.  That bug is now fixed.
264 garren 178
	* GenVertex: added protected change_parent_event_ method for swap
179
	  as part of bug fix.
180
	* test/testMultipleCopies.cc.in: Add explicit tests for operator=
181
	  and swap.
268 garren 182
 
183
	* examples: minor tweaks for readability
263 garren 184
 
261 garren 185
  --------------------------  HepMC-2.03.05  --------------------------
260 garren 186
 
187
2008-02-22  Lynn Garren
188
 
189
	* fio/IO_HEPEVT.cc:  According to standard HepMC design, all vertices
190
	in an event are expected to contain particles.  If, for instance, the
191
	first two particles have no parents, then they should simply not have
192
	a production vertex.  However, in at least one instance empty production
193
	vertices were created for the first two particles. IO_HEPEVT now
194
	protects against this.
195
 
196
 
197
2008-02-18  Lynn Garren
198
 
199
	* HepMC/HEPEVT_Wrapper.h: fix calculation of the total size
200
	of the common block
201
 
256 garren 202
  --------------------------  HepMC-2.03.04  --------------------------
203
 
204
2008-02-05  Lynn Garren
205
 
206
	* test: use /bin/bash instead of /bin/sh in shell scripts
207
 
208
	* GenEvent, GenVertex, GenParticle: remove static counters
209
	These counters were only for the debugging convenience of the
210
	HepMC code developer.  They were not accessible by users.
211
 
212
2008-02-04  Lynn Garren
213
 
214
	* fio/IO_HERWIG.cc: fix for Z0 mother-daughter problem (from Atlas)
215
 
216
	* HepMC/SimpleVector.h: Remove simple math methods
217
 
218
2007-01-29  Lynn Garren
219
 
220
	* examples/testHerwigCopies.cc: compare copies of Herwig events
221
 
222
	* examples/testPythiaCopies.cc: compare copies of Pythia events
223
 
224
2007-01-15  Lynn Garren
225
 
226
	* TempParticleMap.h: use barcode instead of counter for ordering
227
	to solve a problem with changed order of particles when making copies
228
 
229
2007-01-14  Lynn Garren
230
 
231
	* HepMC/CompareGenEvent.h: new utility to compare two
232
	copies of a GenEvent object
233
 
234
	* test/testMultipleCopies.cc.in: verify that two copies of
235
	the same GenEvent object are, indeed, the same
236
 
237
	* test/testHepMCIteration: use a different output file name so the
238
	test will work if you build on top of the source code
239
 
240
 
214 garren 241
  --------------------------  HepMC-2.03.03  --------------------------
209 garren 242
 
243
2007-12-17  Lynn Garren
244
 
245
	* HepMC/SimpleVector.h: Add simple math methods:
246
	FourVector   operator +  (const FourVector &) const;
247
	FourVector & operator += (const FourVector &);
248
	FourVector   operator -  (const FourVector &) const;
249
	FourVector & operator -= (const FourVector &);
250
	FourVector   operator -  () const;
251
	FourVector & operator *= (double);
252
	The same methods were also added to ThreeVector.
253
 
205 garren 254
  --------------------------  HepMC-2.03.02  --------------------------
190 garren 255
 
204 garren 256
2007-12-14  Lynn Garren
257
 
258
	* doc: The HepMC 1 and HepMC 2 user manuals have been merged
259
	into a single manual.
260
 
261
	* HepMC/IO_GenEvent.h: check operator methods for consistency
262
 
201 garren 263
2007-12-07  Lynn Garren
264
 
265
	* HepMC/IO_GenEvent.h: fix problem with rdstate() and clear()
266
 
194 garren 267
2007-12-04  Lynn Garren
268
 
269
	* HepMC/IO_Ascii.h, IO_ExtendedAscii.h, IO_GenEvent.h and
270
	  src/IO_Ascii.cc, IO_ExtendedAscii.cc, IO_GenEvent.cc:
271
	  common input methodologies now handled by CommonIO
272
 
190 garren 273
2007-12-03  Lynn Garren
274
 
275
	* HepMC/CommonIO.h, src/CommonIO.cc:
276
	  new header for shared IO methods and keys
277
 
278
	* src/IO_GenEvent.cc: use CommonIO
279
	  search for any of several allowed input data types
280
 
192 garren 281
	* HepMC/IO_GenEvent.h: disable write_particle_data_table and
282
	  fill_particle_data_table - that is best done outside HepMC
283
 
186 garren 284
  --------------------------  HepMC-2.03.01  --------------------------
183 garren 285
 
286
2007-11-26  Lynn Garren
287
 
185 garren 288
	* configure.in: add support for g++-*
289
 
290
2007-11-26  Lynn Garren
291
 
183 garren 292
	* src/IO_GenEvent.cc: bug fix - fill event scale, alphaQED, and alphaQCD
293
 
178 garren 294
  --------------------------  HepMC-2.03.00  --------------------------
183 garren 295
 
177 garren 296
2007-10-30  Lynn Garren
297
 
298
	* examples/example_ReadMyPythia.cc: New example to read the file
299
	  written by example_MyPythia.
300
 
301
	* doc: remove the latex subdirectory after building the reference library
302
 
180 garren 303
	* GenEvent: add print_version( std::ostream& ) method.
304
	  If you don't specify an ostream, the default is std::cout.
305
 
177 garren 306
	* GenVertex: Store particles in vectors instead of sets.
307
	  Root IO does not properly restore the state of the particle
308
	  serial number counter, so the previous solution to retaining
309
	  consistent particle ordering within a vertex had to be revisited.
310
 
311
	* IO_GenEvent: Replace the temparary particle map with TempParticleMap.
312
 
313
	* HepMC/SearchVector.h: Utilities to facilitate working with the
314
	  vector of particles.
315
 
316
	* HepMC/TempParticleMap.h: Temporary particle container that
317
	  allows us to maintain particle ordering when reading an event
318
	  with IO_Ascii and IO_ExtendedAscii.
319
 
320
	* Use fully qualified names (e.g., HepMC::GenParticle) inside class
321
	  templates (e.g., std::map<>) wherever they are used within a
322
	  header so that rootcint can make the dictionary.
323
 
157 garren 324
  --------------------------  HepMC-2.02.01  --------------------------
150 garren 325
 
326
2007-10-16  Lynn Garren
327
 
328
	* configure.in: build dynamic libraries for MacOSX - thanks to James Monk
329
 
148 garren 330
  --------------------------  HepMC-2.02.00  --------------------------
147 garren 331
 
148 garren 332
2007-07-19  Lynn Garren
333
 
334
	* IO_GenEvent: uses input and output streams
335
	  IO_GenEvent can be constructed with a file, an input stream, or
336
	  an output stream.
337
	* IO_Ascii and IO_ExtendedAscii are deprecated.
338
	* examples use IO_GenEvent
339
 
256 garren 340
  --------------------------  HepMC-2.01.10  --------------------------
341
 
342
2008-02-05  Lynn Garren
343
 
344
	* test: use /bin/bash instead of /bin/sh in shell scripts
345
 
346
	* doc: The HepMC 1 and HepMC 2 user manuals have been merged
347
	into a single manual.
348
 
349
2008-02-04  Lynn Garren
350
 
351
	* fio/IO_HERWIG.cc: fix for Z0 mother-daughter problem (from Atlas)
352
 
353
2008-01-14  Lynn Garren
354
 
355
	* test/testHepMCIteration: use a different output file name so the
356
	test will work if you build on top of the source code
357
 
358
2007-12-17  Lynn Garren
359
 
360
	* HepMC/Flow.h: comment changes for doxygen
361
 
362
	* HepMC/GenParticle.h, src/GenParticle.cc: remove remnant static counter
363
 
364
        * Use fully qualified names (e.g., HepMC::GenParticle) inside class
365
          templates (e.g., std::map<>) wherever they are used within a
366
          header so that rootcint can make the dictionary.
367
 
368
	* src/IO_ExtendedAscii.cc: make sure all info is filled when reading
369
 
370
	* configure.in: add support for g++-*
371
	build dynamic libraries for MacOSX - thanks to James Monk
372
 
177 garren 373
  --------------------------  HepMC-2.01.08  --------------------------
374
 
375
2007-10-23  Lynn Garren
376
 
377
	* GenVertex: Store particles in vectors instead of sets.
378
	  Root IO does not properly restore the state of the particle
379
	  serial number counter, so the previous solution to retaining
380
	  consistent particle ordering within a vertex had to be revisited.
381
 
382
	* IO_Ascii, IO_ExtendedAscii: Replace the temparary particle map
383
	  with the more sophisticated TempParticleMap.
384
 
385
	* HepMC/SearchVector.h: Utilities to facilitate working with the
386
	  vector of particles.
387
 
388
	* HepMC/TempParticleMap.h: Temporary particle container that
389
	  allows us to maintain particle ordering when reading an event
390
	  with IO_Ascii and IO_ExtendedAscii.
391
 
392
  --------------------------  HepMC-2.01.07  --------------------------
393
 
394
2007-10-19  Lynn Garren
395
 
396
	* Use fully qualified names (e.g., HepMC::GenParticle) inside class
397
	  templates (e.g., std::map<>) wherever they are used within a
398
	  header so that rootcint can make the dictionary.
399
 
148 garren 400
  --------------------------  HepMC-2.01.06  --------------------------
401
 
147 garren 402
2007-08-07  Lynn Garren
403
 
404
	* HepMC/GenEvent.h, GenVertex.h,GenParticle.h : add swap method
405
	* src/GenEvent.cc, GenVertex.cc, GenParticle.cc:
406
	  use best practices for assignment and copy constructor
407
 
408
	* HepMC/SimpleVector.h: add swap method
409
	* HepMC/Flow.h: add swap method
410
	* HepMC/WeightContainer.h: add swap method
411
 
412
	* HepMC/Polarization.h: add swap method
413
	  add private valid_theta and valid_phi methods for use by constructors
414
	  src/Polarization.cc: use best practices for assignment and copy constructor
415
 
134 garren 416
  --------------------------  HepMC-2.01.05  --------------------------
117 garren 417
 
134 garren 418
2007-07-19  Lynn Garren
419
 
420
	* HepMC/HeavyIon.h: make it nice for rootcint
421
 
422
  --------------------------  HepMC-2.01.04  --------------------------
423
 
128 garren 424
2007-07-18  Lynn Garren
425
 
134 garren 426
	* various bug fixes and protections
427
 
117 garren 428
  --------------------------  HepMC-2.01.03  --------------------------
429
 
430
2007-07-11  Lynn Garren
431
 
432
	* src/IO*.cc: write HepMC version number
433
 
115 garren 434
  --------------------------  HepMC-2.01.02  --------------------------
101 garren 435
 
113 garren 436
2007-07-10  Lynn Garren
437
 
438
	* HepMC/Version.h: add the ability to print the HepMC version number
439
	* src/IO_ExtendedAscii.cc: write HepMC version number
440
 
107 garren 441
2007-07-09  Lynn Garren
442
 
109 garren 443
	* src/IO_ExtendedAscii.cc: read/write beam particle information
444
	  fix a problem with reading optional info
107 garren 445
	* test/testMass.*: compare generated and calculated masses
446
 
104 garren 447
2007-06-29  Lynn Garren
448
 
105 garren 449
	* HepMC/GenEvent.h, src/GenEvent.cc: define beam process methods
450
	   bool valid_beam_particles() const;
451
	   std::pair<GenParticle*,GenParticle*> beam_particles() const;
452
	   bool set_beam_particles(GenParticle*, GenParticle*);
453
	   bool set_beam_particles(std::pair<GenParticle*,GenParticle*> const &);
454
 
455
	* fio/IO_HEPEVT.cc, fio/IO_HERWIG.cc: set incoming beam particles
456
 
104 garren 457
	* HepMC/PythiaWrapper*: remove old process struct
458
 
102 garren 459
2007-06-21  Lynn Garren
460
 
461
	* HepMC/GenEvent.h: add methods to set and access the number of
462
	  multi particle interactions in the event.
463
	  The default value of this number is -1.
103 garren 464
	* src/IO_ExtendedAscii.cc: read and write MPI information
102 garren 465
 
101 garren 466
2007-06-19  Lynn Garren
467
 
468
	* HepMC/GenParticle.h: use uint64_t for the serial number counter
469
 
97 garren 470
  --------------------------  HepMC-2.01.00  --------------------------
95 garren 471
 
472
2007-06-08  Lynn Garren
473
 
96 garren 474
	* HepMC/GenEvent.h, src/GenEvent.cc: add clear() method
475
 
95 garren 476
	* HepMC/GenParticleComparison.h:
477
	  define a GenParticle comparator
478
	* HepMC/GenParticle.h, src/GenParticle.cc:
479
	  set a serial number to be used by GenParticleComparison
480
	* HepMC/Flow.h, HepMC/GenVertex.h, src/Flow.cc, src/GenVertex.cc:
481
	  use std::set<GenParticle*,GenParticleComparison>
482
	* test: automatic comparison of output files is now possible
483
 
93 garren 484
  --------------------------  HepMC-2.00.04  --------------------------
79 garren 485
 
92 garren 486
2007-06-01  Lynn Garren
487
 
488
	* HepMC/GenEvent.h, src/GenEvent.cc: change interface such that
489
	  GenEvent makes its own copy of HeavyIon and PdfInfo
490
 
491
 
85 garren 492
2007-05-29  Lynn Garren
493
 
494
	* src/GenVertex.cc: initialize range in default constructor
87 garren 495
	* src/IO_Ascii*.cc: make sure every object is properly deleted
88 garren 496
	* test/testHepMCIteration.cc: add iterator test
85 garren 497
 
79 garren 498
  --------------------------  HepMC-2.00.03  --------------------------
499
 
78 garren 500
2007-04-23  Lynn Garren
501
 
502
	* bootstrap, configure.in, doc/Makefile.am:
503
	  To avoid problems with different versions of latex, just build
504
	  the documents during the bootstrap step.
505
	* doc/buildDoc.sh: builds the documents if doxygen and latex are present
506
 
77 garren 507
2007-04-20  Lynn Garren
508
 
509
        * HepMC/include/PythiaWrapper*.h:
510
          inline the method definitions to avoid conflicts
511
	* examples/initPythia.cc: put pythia intialization in a separate
512
	  file so we can test PythiaWrapper
513
 
71 garren 514
  --------------------------  HepMC-2.00.02  --------------------------
47 garren 515
 
73 garren 516
2007-02-12 Lynn Garren
517
 
518
	* test/testHepMC.sh.in: works on Windows (Cygwin), MacOSX, and Linux
519
 
71 garren 520
2007-02-07 Lynn Garren
521
 
522
	* doc/doxygen-template: provide an html template
523
 
67 garren 524
2007-01-30 Lynn Garren
525
 
69 garren 526
	* doc/doxygen.conf: use doxygen 1.5.1
527
 
528
2007-01-30 Lynn Garren
529
 
67 garren 530
	* examples/example_BuildEventFromScratch.cc: add example of
531
	  conversion from SimpleVector to HepLorentzVector
532
	* examples/VectorConversion.h: VectorConversion.h is meant as a
533
	  template for user code converting to the vector of your choice.
534
 
65 garren 535
2007-01-29 Lynn Garren
536
 
537
	* fix everything so doxygen will create a useful reference manual
538
	  nearly every file has been touched, but only the comments changed
539
 
540
 
61 garren 541
2007-01-25 Lynn Garren
542
 
67 garren 543
	* examples/example_MyPythiaRead.cc: read in the events you just wrote
544
	* examples/*.cc: put all uses of IO_Ascii within an explicit scope
62 garren 545
 
61 garren 546
	* configure.in, doc/Makefile.am: if latex is found, get the path
547
 
548
	* test/testHepMC.sh.in: make the diff work for MacOSX
549
 
58 garren 550
	--------------------  HepMC-02-00-01  ---------------------------------
551
 
55 garren 552
2007-01-17 Lynn Garren
553
 
554
	* test/testSimpleVector.cc: exercise the vector methods
555
 
54 garren 556
2007-01-16 Lynn Garren
557
 
558
	* HepMC/SimpleVector.icc: implement ThreeVector::set(x,y,z)
559
 
52 garren 560
2006-08-23 Lynn Garren
561
 
53 garren 562
	* install examples in $(prefix)/examples/HepMC
563
 
564
	* check for latex and build documents if latex is present
52 garren 565
 
49 garren 566
	--------------------  HepMC-02-00-00  ---------------------------------
567
 
48 garren 568
2006-08-22 Lynn Garren
569
 
49 garren 570
	* src/IO_ExtendedAscii.cc: read and write generated mass as part of
48 garren 571
	  particle line.
572
 
47 garren 573
2006-08-18 Lynn Garren
574
 
575
	* doc/HepMC2_user_manual.tex documentation for HepMC 2
576
 
43 garren 577
2006-08-01 Lynn Garren
19 garren 578
 
43 garren 579
	* HepMC/is_arithmetic.h, HepMC/enable_if.h supplied by Walter Brown
580
	  for a clean template constructor implementation.
581
 
582
2006-07-23 Lynn Garren
583
 
584
	* HepMC/SimpleVector.h: add a templated constructor for both FourVector
585
          and ThreeVector that will take any lorentz vector which has the
586
          x(), y(), z(), and t() methods.  This should enable existing code
587
          that uses CLHEP Vector classes to keep working.
588
 
589
2006-07-19 Lynn Garren
590
 
591
	* replace CLHEP/Vector/LorentzVector.h and CLHEP/Vector/ThreeVector.h
592
	  with HepMC/SimpleVector.h
593
	  implement some of the basic vector properties so user code won't break
594
 
595
 
39 garren 596
	--------------------  HepMC-01-28-00  ---------------------------------
597
 
40 garren 598
2006-08-08 Lynn Garren
599
 
600
	* HepMC/IO_ExtendedAscii.h: Extended format writes PdfInfo and HeavyIon
601
	  if they are present in the event.  This is otherwise identical
602
	  to IO_Ascii.h.
603
 
37 garren 604
2006-07-30 Lynn Garren
605
 
40 garren 606
	* HepMC/HEPEVT_Wrapper.h: fix for 64bit machines
37 garren 607
 
36 garren 608
2006-07-26 Lynn Garren
609
 
610
	* HepMC/PdfInfo.h implements information requested by CMS
611
	* GenEvent.h, GenEvent.cc make sure m_pdf_info is initialized to 0
612
 
30 garren 613
	--------------------  HepMC-01-27-02  ---------------------------------
614
 
34 garren 615
2006-06-19 Lynn Garren
616
 
617
	* fix test for Windows
618
	* add ReadMe.cygwin-VC71 and setup.cygwin-VC71
619
 
620
 
26 garren 621
2006-06-14 Lynn Garren
622
 
623
	* GenEvent.cc, GenParticle.cc,  GenVertex.cc use standard C++ output
624
	* testPrintBug new test for output problems with gcc 4.x
29 garren 625
	* HepMC/HepMC_CLHEP20.h defines several typedefs needed when compiling
626
	   with CLHEP 2.0.x
627
	* HEPEVT_Wrapper.h, HerwigWrapper6_4.h, PythiaWrapper6_2.h
628
	   need extern "C" statements for gcc 4.x
629
	* HepMC_CLHEP20.h, Polarization.h, GenVertex.h, GenParticle.h
630
	   HepMC will work with both CLHEP 1.9.x and 2.0.x
26 garren 631
 
29 garren 632
 
23 garren 633
	--------------------  HepMC-01-27-01  ---------------------------------
634
 
22 garren 635
2006-03-31 Lynn Garren
636
 
637
	* GenEvent.h, GenEvent.cc make sure m_heavy_ion is initialized to 0
638
 
639
 
21 garren 640
2006-03-29 Lynn Garren
641
 
642
	* HepMC/ParticleData.h remove dependency on CLHEP/Units by HepMC_hbarc
643
	* HepMC/Polarization.h remove dependency on CLHEP/Units by HepMC_pi
644
 
19 garren 645
	--------------------  HepMC-01-27-00  ---------------------------------
646
 
647
2006-03-07 Lynn Garren
648
 
649
	* add simple check in the test subdirectory
650
 
15 garren 651
2006-02-17 Lynn Garren
652
 
653
	* HepMC/HeavyIon.h names have been changed to match both HepMC and
654
	wishes of heavy ion users
655
 
11 garren 656
2006-01-12 Lynn Garren
657
 
658
	HepPDT 1.26 is available at https://savannah.cern.ch/projects/hepmc/
659
 
660
	* HepMC/HeavyIon.h implements information requested by CMS
661
	* HepMC/GenParticle.h has pointer (null by default) to HeavyIon
662
	* code providing interfaces to Fortran common blocks has been moved
663
	out of libHepMC and into libHepMCfio
664
 
665
	--------------------  HepMC-01-02-26  ---------------------------------
666
 
2 garren 667
	--------------------  HepMC-01-02-21  ---------------------------------
668
 
669
2005-04-27 Matt Dobbs and Giorgos
670
	* src/IO_HERWIG.cxx implemented a bug fix suggested by borut,
671
	which keeps the remapping of daughters/motherrs from going "over
672
	the end" on herwig events (was noticed in the tauola events for
673
	rome DC).
674
 
675
2004-08-04  David Quarrie  <David.Quarrie@cern.ch>
676
 
677
	* cmt/requirements: Change dependencies on CERNLIB and CLHEP
678
        to AtlasCERNLIB and AtlasCLHEP to avoid name clashes
679
 
680
 
681
	--------------------  HepMC-01-02-19  ----(gcc 3.2 compatible)---------
682
 
683
 
684
2004-04-22  Matt Dobbs  <Matt.Dobbs@Cern.CH>
685
 
686
	* src/IO_HERWIG.cxx (HepMC): fixed bug reported by Hinchliffe in
687
	IO_HERWIG wherein (for the special case of min bias events only)
688
	number of entries in HEPEVT was being zero-ed by the IO_HERWIG
689
	class. Added extra protection in HEPEVT_Wrapper for this as well.
690
 
691
 
692
	--------------------  HepMC-01-02-18  ----(gcc 3.2 compatible)---------
693
 
694
2004-03-27  Matt Dobbs  <Matt.Dobbs@Cern.CH>
695
 
696
        Removed the #define statements that allow backwards compatibility
697
	with gcc 2.95, and specialized the 3.2 compliant iterators to be
698
	forward iterators such that they work properly with std
699
	algorithms.
700
 
701
	Thanks to Ulrik Egede for pointing this out.
702
 
703
	* HepMC/GenVertex.h, .cxx HepMC/GenEvent.h, .cxx: changed
704
	std::forward_iterator<GenParticle*,ptrdiff_t>
705
	to
706
	std::iterator<std::forward_iterator_tag,GenParticle*,ptrdiff_t>
707
	for standard
708
	compliance, and removed #define statements.
709
 
710
	* HepMC/IO_Ascii.h,.cxx: changed open_mode to openmode for standard
711
	compliance, and removed #define statements.
712
 
713
 
714
2003-12-17  David Rousseau  <droussea@lxplus072.cern.ch>
715
 
716
	* cmt/requirements: remove HepMC_libraries
717
 
718
2003-10-22  Matt Dobbs  <Matt.Dobbs@Cern.CH>
719
 
720
	* src/GenEvent.cxx and lots of other files + latex documentation.
721
	REmoved any mention of units--- GeV, MeV etc, since HepMC merely
722
	accepts whatever is put in. I do this because, though HEPEVT has
723
	used GeV/mm, ATLAS plans to use CLHEP units of MeV/mm.
724
 
725
2003-10-15  Matt Dobbs  <Matt.Dobbs@Cern.CH>
726
 
727
	* src/GenParticle.cxx (HepMC): added a default constructor for
728
	GenParticle as requested by Giorgos S.
729
 
730
	--------------------  HepMC-01-02-14  ----(gcc 3.2 compatible)---------
731
 
732
2003-04-21  Matt Dobbs  <Matt.Dobbs@Cern.CH>
733
 
734
	* src/IO_HERWIG.cxx:
735
	minor changes to handling of herwig event record
736
 
737
	--------------------  HepMC-01-02-11  ----(gcc 3.2 compatible)---------
738
 
739
2003-03-10  Matt Dobbs  <Matt.Dobbs@Cern.CH>
740
 
741
	* HepMC/IO_BaseClass.h:
742
	Fixed bug reported by Peter Loch, wherein the virtual destructor
743
	for IO_BaseClass was missing.
744
 
745
	--------------------  HepMC-01-02-10  ----(gcc 3.2 compatible)---------
746
 
747
2003-03-03  Matt Dobbs  <Matt.Dobbs@Cern.CH>
748
 
749
	* HepMC/GenVertex.h: added extra ifdef statement to allow
750
	compilation on gcc 3.2. (forward_iterator and open_mode problems).
751
	* HepMC/IO_Ascii.h: as above.
752
	* src/IO_Ascii.cxx (HepMC): as above.
753
 
754
2003-01-17  Matt Dobbs  <Matt.Dobbs@Cern.CH>
755
 
756
	* src/IO_PDG_ParticleDataTable.cxx (HepMC): if the PDG table does
757
	not exist, we abort, rather than just returning false.
758
 
759
	--------------------  HepMC-01-02-04  ----(5.0.0)------------
760
2002-11-04  Matt Dobbs  <Matt.Dobbs@Cern.CH>
761
 
762
	* src/GenEvent.cxx (HepMC): set_barcode(particle, barcode),
763
	set_barcode(vertex, barcode) Fixed a bug reported by Giorgos S.
764
	For this bug, a user suggests a barcode for a vertex that is
765
	already part of an event... the vertex is inserted in the vertex
766
	map with the new barcode, but HepMC forgets to erase the old
767
	entry... such that the vertex now appears twice in the map.  This
768
	is fixed, and the corresponding error for particles is also fixed.
769
 
770
2002-10-31  Matt Dobbs  <Matt.Dobbs@Cern.CH>
771
 
772
	* HepMC/IO_HERWIG.h: modified IO_HERWIG to include a switch
773
	(default m_no_gaps_in_barcodes=on) which removes null entries from
774
	Herwig HEPEVT and reshuffles the common block
775
 
776
2002-10-22  Matt Dobbs  <Matt.Dobbs@Cern.CH>
777
 
778
	* HepMC/HerwigWrapper6_4.h, HepMC/HerwigWrapper.h: new interface
779
	to HERWIG Version 6.4 is added. There is an example for using it
780
	at examples/example_MyHerwig.cxx. To use this example you will
781
	have to download HERWIG version 6.4 and modify the Makefile to
782
	link it.
783
 
784
	* HepMC/IO_HERWIG.h: New class for reading the Herwig version of
785
	the HEPEVT common block is added. READ THE COMMENTS IN THE .h file
786
	carefully before using it!
787
 
788
 
789
2002-07-29  Matt Dobbs  <Matt.Dobbs@Cern.CH>
790
	--------------------  HepMC-01-02-03  ----(4.0.2)------------
791
 
792
	* src/GenVertex.cxx (HepMC): remove_particle()
793
	* HepMC/GenVertex.h:
794
	removed confusing comment about the use of GenVertex::remove_particle()
795
	in .h file, and clarified the comment in .cxx file.
796
 
797
	* src/GenEvent.cxx (HepMC): operator=
798
	bug discovered by <Malte.Muller@cern.ch>.
799
	Formerly, the GenEvent::operator= method relied on the particles
800
	attached to each vertex to always be in the same order. However,
801
	since the particles are stored in set<>, this is not always true
802
	-- making the results of the operator= method unreliable.
803
	This is fixed by mapping the vertices explicitly.
804
 
805
	* src/IO_PDG_ParticleDataTable.cxx (HepMC):
806
	added a line in read_entry that ignores empty lines (previously
807
	empty lines in the pdg data table generated a cerr message).
808
	This change was requested by Davida Costanzo.
809
 
810
 
811
2002-03-02  Matt Dobbs  <Matt.Dobbs@Cern.CH>
812
	--------------------  HepMC-01-02-02  ----(3.0.1)------------
813
 
814
	* src/GenVertex.cxx (HepMC):
815
	GenVertex::edge_iterator::edge_iterator( .. )
816
	Extra error protection added in the constructor.
817
	Sometimes the edge_iterator fails when we have a vertex with no
818
	in_particles. This never happens in standalone mode, but when ran
819
	with the ATLAS framework, it does happen. New code identifies the
820
	scenario explicitly, and catches the error, which has to do with
821
	the past-the-end value of the edge_iterator.
822
 
823
	* test/test_iterators.cxx: new test program added for iterators,
824
	to test for the above problems.
825
 
826
 
827
2002-02-19  Matt Dobbs  <Matt.Dobbs@Cern.CH>
828
 
829
        CHANGES TO ALLOW HEPMC TO COMPILE WITH SOLARIS CC 5.2
830
 
831
	* cmt/requirements: added the line
832
	macro_append cppflags "" Solaris      " -D__SUNPRO_CC "
833
	to handle Solaris CC 5.2 features.
834
 
835
	* HepMC/ParticleDataTable.h:
836
	turns on MISSING_FORWARD_ITERATOR when __SUNPRO_CC is defined.
837
	This defines forward_iterator as iterator
838
 
839
	* HepMC/GenVertex.h:
840
	same as ParticleDataTable.h, but also turns on
841
	NEED_SOLARIS_FRIEND_FEATURE when __SUNPRO_CC is defined.
842
 
843
	* src/Polarization.cxx (HepMC):
844
	replaced abs() with theta = ( theta>0 ? theta : -theta );
845
	for compatibility with Solaris.
846
 
847
2002-02-15  Matt Dobbs  <Matt.Dobbs@Cern.CH>
848
	--------------------  HepMC-01-02-01  ----(3.0.0)------------
849
 
850
	* HepMC/GenEvent.h: bug discovered by <srinir@bnl.gov> with help
851
	from Paolo and Hong.
852
	The GenEvent::particle_iterator, const_particle_iterator,
853
	              vertex_iterator, const_vertex_iterator
854
	had methods like:
855
	  bool operator !=(const particle_iterator& a) const
856
	  {  return !(**this == *a); }
857
	which doesn't work because you are not allowed to de-reference
858
	the end() iterator  [the above coding is a relic of the old
859
	              walking iterators which did not inherit from
860
	              forward_iterstor, and for which *end() was well
861
	              defined.]
862
	The correct usage is:
863
	{ return m_map_iterator == a.m_map_iterator; }
864
 
865
	Note: this does NOT affect the GenVertex::***_iterator's, since
866
	for those iterators *end() is well defined.
867
 
868
 
869
2002-01-23  Matt Dobbs  <Matt.Dobbs@Cern.CH>
870
	--------------------  HepMC-01-02-00  --------------------
871
	                  ( Public Version 1.2 )
872
 
873
	User manual, webpage, and public version updated.
874
 
875
	The CLHEP names branch, called HepMC-00-00-96-CLHEP, has
876
	been moved to the head of the main trunk in cvs, and commited.
877
	Thus the main trunk is the only development branch.
878
 
879
 
880
2002-01-22  Matt Dobbs  <Matt.Dobbs@Cern.CH>
881
	--------------------  HepMC-01-01-12  --------------------
882
 
883
	* src/GenEvent.cxx (HepMC): delete_all_vertices()
884
	modified the increment of the vertex iterator when looping over
885
	vertices for deletion.
886
	* src/GenVertex.cxx (HepMC): delete_adopted_particles()
887
	modified the increment of the particle iterator when looping over
888
	particles for deletion.
889
 
890
2002-01-21  Matt Dobbs  <Matt.Dobbs@Cern.CH>
891
	--------------------  HepMC-01-01-07  --------------------
892
 
893
	* HepMC/GenEvent.cxx (delete_all_vertices):
894
	Possible bug reported here by ATLfast group. Added extra error
895
	checking, and changed the deleting of the vertices such that each
896
	one is explicitly erased from the map.
897
 
898
 
899
2002-01-18  Matt Dobbs  <Matt.Dobbs@Cern.CH>
900
 
901
  More changes for Windoes MS Visual C++ compatibility:
902
 
903
	* HepMC/PythiaWrapper6_2.h, HepMC/PythiaWrapper6_152.h:
904
	included new wrapper methods like call_pyinit, which hide the
905
	funny syntax necessary to call fortran routines from C++.
906
	* examples/example_MyPythiaWithEventSelection.cxx:
907
	* examples/example_MyPythiaOnlyToHepMC.cxx:
908
	* examples/example_MyPythia.cxx:
909
	* examples/Benchmarks_f77/example_PythiaToLCWrite.cxx:
910
	modified to use the call_*** pythia methods.
911
 
912
 
913
2002-01-15  Matt Dobbs  <Matt.Dobbs@Cern.CH>
914
	--------------------  HepMC-01-01-06  --------------------
915
 
916
	* Makefile.standalone: updated to use cernlib 2001 and pythia6152
917
 
918
	* examples/example_UsingIterators.cxx:
919
	The input file was from the old non-barcodes version, and so
920
	didn't work. Replaced it with a proper input file.
921
 
922
 
923
These changes suggested by Witold Pokorski <Witold.Pokorski@Cern.Ch> from
924
LHCb to allow for Windows Visual C++ compliance. All of these changes are
925
fully backwards compatible(!).
926
 
927
	* HepMC/GenEvent.h, HepMC/GenVertex.h: change forward_iterator to
928
	simply iterator (which in the STL standard apparently implies
929
	forward_iterator)
930
 
931
	In Visual c++, a for (int i ... ) {} statement does not scope out
932
	the i variable ... so had to modify the code to ensure no
933
	variables were used twice in the same method:
934
	* src/IO_Ascii.cxx (HepMC):
935
	  in lines 155, 161, 175 "int i" is repeated
936
	  in lines 293, 314, 321 "int i" is repeated
937
          in lines 293, 314, 321 "p" is repeated
938
	* src/IO_HEPEVT.cxx (HepMC):
939
	  in lines 59,65,88 "i" is repeated
940
          in lines 118, 129 "p" is repeated
941
	* src/IO_PDG_ParticleDataTable.cxx (HepMC):
942
	  in lines 80, 103, 124 "id_i" is repeated
943
	* src/GenVertex.cxx (HepMC):
944
	  in lines: 64 and 72; 168 and 178; 195 and 201; 260 and 273;
945
	            322 and 331   variable "part" is repeated
946
 
947
	* have verified all STL calls for set, map, less, greater, cout,
948
	endl, list, cerr, ios, iostream, flush are properly prefixed with
949
	std::
950
 
951
	* HepMC/GenEvent.h: bug fix:
952
	added a std::greater<int> qualifier to the m_map_iterator of the
953
	vertex iterators.
954
 
955
	* HepMC/GenVertex.h: bug fix:
956
	made the GenVertex::particle_iterator a friend of GenVertex.
957
 
958
	* HepMC/GenEvent.h, HepMC/GenVertex.h:
959
	move all of the friend class declarations
960
	into statements separate from the class declaration, i.e.
961
	  class edge_iterator { ... };
962
	  friend class edge_iterator;
963
	instead of
964
	  friend class edge_iterator{ ... };
965
	Change all   std::ptrdiff_t   to  ptrdiff_t
966
 
967
	* HepMC/IO_Ascii.h: ios::openmode changed to ios::open_mode in the
968
	constructor, for compatibility with windows Visual C++.
969
 
970
	* Change #include <iostream.h> to #include <iostream>
971
	Note: this will spoil compatibility with HPUX 10.2 CC.
972
 
973
 
974
2001-11-29  Matt Dobbs  <Matt.Dobbs@Cern.CH>
975
	--------------------  HepMC-01-01-05  --------------------
976
	* Fix typo in user manual "particle barcodes are positive"
977
 
978
 
979
2001-11  Matt Dobbs  <Matt.Dobbs@Cern.CH>
980
	--------------------  HepMC-01-01-04  --------------------
981
	* update user manual to explain barcodes. NO changes to code.
982
 
983
 
984
2001-11-10  Matt Dobbs  <Matt.Dobbs@Cern.CH>
985
	--------------------  HepMC-01-01-03  --------------------
986
	* cmt/requirements: jetset74 requirement removed, as requested by
987
	I.Hinchliffe.
988
 
989
2001-11-04  Matt Dobbs  <Matt.Dobbs@Cern.CH>
990
	--------------------  HepMC-01-01-02  --------------------
991
	* HepMC/GenVertex.h: removed merge_vertex() method.
992
 
993
	* HepMC/IO_HEPEVT.h:
994
	removed the merge_vertices possibility, but added a
995
	build_production_vertex possibility to build_end_vertex.
996
 
997
	--------------------  HepMC-01-01-01  --------------------
998
	* src/HEPEVT_Wrapper.cxx (HepMC):
999
	new method check_hepevt_consistency() added.
1000
	new method zero_everything() added.
1001
 
1002
2001-11-02  Matt Dobbs  <Matt.Dobbs@Cern.CH>
1003
 
1004
	--------------------  HepMC-01-01-00  --------------------
1005
	* src/IO_HEPEVT.cxx (HepMC):
1006
	Modified such that the HEPEVT indices are used for the particle
1007
	barcodes.
1008
	* HepMC/IO_Ascii.h:
1009
	Modifed to properly read/write the barcodes and the
1010
	GenEvent new data members.
1011
 
1012
        Unique reference numbers called "barcodes" are added as data
1013
	members to GenParticles and GenVertices.
1014
	They are cross-referenced in GenEvent via a map<int,GenXXX>.
1015
	The GenEvent::m_vertices container of vertices is then no longer
1016
	necessary, so it is removed.
1017
	The GenEvent::particle_iterator and GenEvent::vertex_iterator
1018
	are updated to walk over the maps. The iterator change should be
1019
	transparent to the user.
1020
	Constant versions of both iterators are included.
1021
	The old GenEvent::vertex_iterator was a typedef of the set:
1022
	  typedef std::set<GenVertex*>::iterator vertex_iterator;
1023
 
1024
	The maps get filled via the:
1025
		set_barcode( GenXXX* x, int suggested_barcode )
1026
	methods, which in turn are called only by the vertex and particle:
1027
	GenVertex::set_parent_event_()
1028
	GenPartcle::set_production_vertex_()
1029
	GenPartcle::set_end_vertex_(}
1030
 
1031
	* HepMC/GenEvent.h:
1032
	New data members and access methods are added for consistency with
1033
	the HepUP standard, see hep-ph/0109068
1034
	double GenEvent::m_event_scale
1035
	double GenEvent::m_alphaQCD
1036
	double GenEvent::m_alphaQED
1037
 
1038
	* src/IO_HEPEVT.cxx (HepMC): Fixed some const warnings with the
1039
	 GenEvent::vertex_iterator usage.
1040
 
1041
2001-10-11  Matt Dobbs  <Matt.Dobbs@Cern.CH>
1042
 
1043
	--------------------  HepMC-01-00-01  --------------------
1044
	* cmt/requirements: changed use CERNLIB v2001 External  to  use
1045
	CERNLIB CERNLIB-01-* External   as per r.d.'s request
1046
 
1047
2001-10-10  Matt Dobbs  <Matt.Dobbs@Cern.CH>
1048
 
1049
        --------------------  HepMC-01-00-00  --------------------
1050
	Identical to HepMC-00-03-08.  This tag name follows atlas
1051
	naming conventions ... increment the major tag when code is NOT
1052
        backwards compatible. Since Atlas is moving from tag
1053
	HepMC-00-01-12 (old atlas names) to HepMC-00-03-08 (clhep names)
1054
	this change is not backwards compatible.
1055
 
1056
2001-09-05  Matt Dobbs  <Matt.Dobbs@Cern.CH>
1057
        ------- below this line is tag HepMC-00-03-08 ----------
1058
	(clhep names version to be used in atlas. The changes have not
1059
	been made in the HepMC-00-01-** branch)
1060
 
1061
	* src/IO_HEPEVT.h (HepMC):
1062
	* src/IO_HEPEVT.cxx (HepMC): When inconsistent info between
1063
	mother and daughters is found in the
1064
	IO_HEPEVT::build_production_vertex method, IO_HEPEVT will no
1065
	longer merge_vertex (the 2001-03-29 "fix") by default. In order to
1066
	get this behaviour you have to explicitly ask for it with the
1067
	IO_HEPEVT::set_merge_vertex_switch() method.
1068
 
1069
2001-09-05  Matt Dobbs  <Matt.Dobbs@Cern.CH>
1070
	* cmt/requirements: added to the CLHEP names branch (its just a
1071
	direct copy of what is in the trunk ATLAS names).
1072
 
1073
 
1074
2001-07-17  Matt Dobbs  <Matt.Dobbs@Cern.CH>
1075
	(note: HepMC-00-01-24 is an accidental tag which should be ignored)
1076
	----- below this line is  HepMC-00-01-23, HepMC-00-03-07 -----
1077
 
1078
	* src/GenVertex.cxx (HepMC):
1079
	GenVertex::vertex_iterator::follow_edge_()  added extra error
1080
	checking for the very special-rare case where a particle might
1081
	point to the same vertex for both production and end.
1082
	Meant to handle Ian H.'s bug of 02 Jul 2001
1083
 
1084
2001-06-28  Matt Dobbs  <Matt.Dobbs@Cern.CH>
1085
        --------------------  HepMC-00-03-06  --------------------
1086
 
1087
	* examples/GNUmakefile.in:
1088
	updated the makefile to link to  cernlib 2001 version of pythia.
1089
	This involves a change -lpythia6136 to -lpythia6152 -lpythiad
1090
	Note that for xample_MyPythiaWithEventSelection.cxx 1/100 or
1091
	36/1000 events pass cuts (with 6.136 it was 3/100 or 37/1000).
1092
 
1093
	* HepMC/GenParticle.h: now has a parent_event() access method,
1094
	which returns the parent_event of the particle's container
1095
	vertex's event.
1096
 
1097
2001-06-27  Matt Dobbs  <Matt.Dobbs@Cern.CH>
1098
 
1099
	---> Make the Vertex know which event it in in. <---
1100
	* HepMC/GenVertex.h: added private data member m_event, public
1101
	access method parent_event() and protected access method
1102
	set_parent_event, which is only to be used by GenEvent. Thus
1103
	GenEvent is made to be a friend of GenVertex.
1104
	* HepMC/GenEvent.h, src/GenEvent.cxx (HepMC): added logic to
1105
	GenEvent::remove_vertex and GenEvent::add_vertex. The vtx's
1106
	m_event pointer is set to point back to the event.
1107
 
1108
	* HepMC/ParticleData.h:
1109
	* HepMC/GenEvent.h:
1110
	* HepMC/GenParticle.h:
1111
	* HepMC/GenVertex.h: made method counter() protected. It was never
1112
	intended as public, merely as a method for detecting memory
1113
	leaks. If no-one complains (they shouldn't, it was commented
1114
	"temporary for debugging") I'll remove it entirely later.
1115
 
1116
2001-03-29  Matt Dobbs  <Matt.Dobbs@Cern.CH>
1117
 
1118
	* src/IO_HEPEVT.cxx (HepMC):
1119
	When m_trust_mothers_before_daughters=0, the vertex position is
1120
	now filled. In ISAJET sometimes disjoint vertex structures exist,
1121
	in this case a merger of vertices is done, which accounts for it.
1122
 
1123
	* HepMC/GenVertex.h:
1124
	* src/GenVertex.cxx (HepMC):
1125
	Added a            void merge_vertex_contents( GenVertex* v_in );
1126
	method which takes all the contents of v_in and places it in
1127
	the vertex. It does not delete v_in, nor does it remove
1128
	v_in from an event.
1129
	It will mainly be used by IO_HEPEVT, but it is forseen that users
1130
	may want to use it when reducing the overall size of the event
1131
	(deleting intermediate vertices) such as will be done by atlas.
1132
 
1133
2001-02-28  Matt Dobbs  <Matt.Dobbs@Cern.CH>
1134
 
1135
	* Makefile.standalone:
1136
	using
1137
	  HepMCdir = $(shell pwd)
1138
	instead of
1139
	  HepMCdir = /afs/cern.ch/user/m/mdobbs/HepMC/myCheckoutV1.01
1140
	for better portability.
1141
 
1142
	* src/GenVertex.cxx (HepMC): added extra protection to the
1143
	GenVertex::edge_iterator::edge_iterator constructor to give
1144
	sensible result for the special case when a vertex has incoming
1145
	particles, but none outgoing and the user requests a children
1146
	iterator.  The old version would have
1147
	m_set_iter points to m_particles_in.begin() and so the first
1148
	dereference might be wrong.
1149
 
1150
	* HepMC/IO_HEPEVT.h: Two new switches are added to give more
1151
	flexibility in handling the possible inconsistencies arrising
1152
	from the bi-directional pointers in HEPEVT. The switches are:
1153
		bool m_trust_mothers_before_daughters;
1154
		bool m_print_inconsistency_errors;
1155
	which are described by comments in the code. Also makes minor
1156
	changes to src/IO_HEPEVT.cxx
1157
 
1158
	* HepMC/Typedef_Version0names.h:
1159
	This header file added. It contains typedef statements which
1160
	should allow the new version 1.XX class names to be used with code
1161
	written with the old version 0.XX class names.
1162
	If the user wants to take advantage of these typedefs he needs to
1163
	define type variable HEPMC_SHORT_NAMES in his compiler options as
1164
	follows: -DHEPMC_SHORT_NAMES
1165
	or in his code using #define HEPMC_SHORT_NAMES
1166
	Note that since the header file names also changed, this ALSO
1167
	requires changing the include statements in the user code.
1168
 
1169
	* doc/latex_user_manual/physicist_visualization.eps
1170
	fixed a mis-labelling in this figure... the labels were all
1171
	shifted and intermingled... its now right. Unfortunately
1172
	the mislabelled version appears in the CPC publication.
1173
	also affects doc/latex_user_manual/HepMC_user_manual.ps
1174
 
1175
******************************************************
1176
Everything below this line corresponds to Version 1.01
1177
******************************************************
1178
 
1179
2001-01-11  Matt Dobbs  <Matt.Dobbs@Cern.CH>
1180
 
1181
	* examples/example_UsingIterators.cxx:
1182
	Changed the class IsFinalState such that a particle must have no
1183
	end vertex AND have status==1 to be considered stable.
1184
	Does not effect package, only this specific example.
1185
 
1186
	* HepMC/IO_BaseClass.h:
1187
	Bug reported by Lynn Garren
1188
	"There appears to be a problem with const-ness in HepMC/IO_BaseClass.h.
1189
	I have made the following changes in order to compile HepMC 1.0
1190
	with g++.
1191
	virtual const GenEvent*& operator<<( GenEvent*& );
1192
		becomes
1193
	virtual       GenEvent*& operator<<( GenEvent*& );
1194
 
1195
	virtual const ParticleDataTable*& operator<<( ParticleDataTable*& )
1196
	        becomes
1197
	virtual       ParticleDataTable*& operator<<( ParticleDataTable*& )
1198
	In other words, I have made the const-ness match."
1199
	...
1200
	These changes are implemented by Matt in the atlas repository.
1201
 
1202
	* HepMC/HEPEVT_Wrapper.h:
1203
	Bug reported by Andreas Dell'Acqua
1204
		HEPEVT_Wrapper::last_child
1205
		HEPEVT_Wrapper::last_parent
1206
	There methods were returning 0 when exactly one parent exists. This
1207
	caused the number_children and number_parent methods to return 0
1208
	every time there was exactly 1 parent/child. This error caused
1209
	major problems in the IO_HEPEVT class, with the end result that
1210
	the HEPEVT graphs were interpretted incorrectly [all particles are
1211
	correctly interpretted, but their relationships are incorrect for
1212
	the case where a particle has exactly ONE mother: in this case the
1213
	particles appeared as orphans.]
1214
	This bug was
1215
	introduced in version HepMC-00-00-94, so it has been present for
1216
	some time. This fix is for HEPEVT_Wrapper::last_child():
1217
	// Returns the Index of the LAST child in the HEPEVT record
1218
	// for particle with Index index.
1219
	// If there is only one child, the last child is forced to
1220
	// be the same as the first child.
1221
	// If there are no children for this particle, both the first_child
1222
	// and the last_child with return 0.
1223
	// Error checking is done to ensure the child is always
1224
	// within range ( 0 <= parent <= nhep )
1225
 
1226
	* src/IO_HEPEVT.cxx (HepMC):
1227
	only comments in IO_HEPEVT::build_particle have changed. No change
1228
	to code.
1229
 
1230
******************************************************
1231
Everything below this line corresponds to Version 1.0
1232
******************************************************
1233
 
1234
2000-11-10  Matt Dobbs  <Matt.Dobbs@Cern.CH>
1235
 
1236
	MAJOR NAME CHANGES AFFECT ALMOST ALL FILES:
1237
	GeneratorEvent --> GenEvent
1238
	Particle       --> GenParticle
1239
	Vertex         --> GenVertex
1240
 
1241
	user manual and online documentaion are updated to reflect this.
1242
 
1243
	* HepMC/PythiaWrapper6_152.h:
1244
	A new wrapper for Pythia 6.1 is created to replace the old Pythia
1245
	5.7 wrapper. It works with the versions of Pythia in both
1246
	CERNlib2000 and CERNlib2001 (versions 6.136 and 6.152 and probably
1247
	any Pythia 6).
1248
	A pointer file:
1249
	* HepMC/PythiaWrapper.h:
1250
	is created so the used doesn't have to worry about pythia version
1251
	numbers. A test file is located at:
1252
	* test/test_PythiaWrapper.cxx
1253
 
1254
	All examples are updated to use Pythia 6.
1255
 
1256
 
1257
2000-11-09  Matt Dobbs  <Matt.Dobbs@Cern.CH>
1258
 
1259
	* HepMC/WeightContainer.h:
1260
	Created this class to house the weights in the vertex and event
1261
	classes. It is just an interface to std::vertex<double>.
1262
 
1263
	The vertex class is modifid to use this. Required changes to:
1264
	* HepMC/Vertex.h:
1265
	* src/Vertex.cxx:
1266
	* src/IO_Ascii.cxx (HepMC):
1267
 
1268
******************************************************
1269
Everything below this line corresponds to Version 0.94
1270
******************************************************
1271
 
1272
 
1273
2000-07-05  Matt Dobbs  <Matthew.Adam.Dobbs@Cern.CH>
1274
 
1275
	* HepMC/HEPEVT_Wrapper.h: Completely new wrapper for HEPEVT_Common
1276
	is implemented. This wrapper treats the common as a series of
1277
	bytes and interprets them "on the fly". The user can set the size
1278
	(in bytes) of the integer and real numbers to be interpretted from
1279
	HEPEVT, and also the total number of entries in HEPEVT. This
1280
	allows the user to interface to two applications which use
1281
	different HEPEVT definitions.
1282
	Benchmarks: 1000 events pythia only 34 seconds.
1283
	            1000 events Pythia+HepMC(using this new wrapper) 40s
1284
        on my particular machine. (extra time is 6 seconds.) Compare this
1285
	to the extra 5 seconds reported in the HepMC user manual for the
1286
	old HEPEVT wrapper ... so the difference is small compared to the
1287
	old wrapper considering the added functionality.
1288
	(all examples have been tested and they Run!)
1289
 
1290
	* HepMC/HEPEVT_Common.h: Deleted, this common is now defined
1291
	inside HEPEVT_Wrapper.h
1292
 
1293
	* src/HEPEVT_Wrapper.cxx (HepMC): This file is created since it is
1294
	necessary to instantiate the static members of HEPEVT_Wrapper in a
1295
	.cxx file.
1296
 
1297
	* Makefile.Standalone: modified to build src/HEPEVT_Wrapper.cxx into
1298
	the HepMC library
1299
 
1300
	* HepMC/IO_HEPEVT.h: Comment modified only so as to treat
1301
	HEPEVT_Wrapper consistently.
1302
 
1303
	* examples/example_MyPythiaWithEventSelection.cxx: Modified to use new
1304
	HEPEVT_Wrapper
1305
 
1306
	* examples/example_MyPythia.cxx: Modified to use new
1307
	HEPEVT_Wrapper
1308
 
1309
	* examples/example_MyPythiaOnlyToHepMC.cxx (main): Modified to use new
1310
	HEPEVT_Wrapper
1311
 
1312
	* PACKAGE: added linkset HepMC -lib:HepMC
1313
	(Modified GNUmakefile.in to use libHepMC.so as HepMC linkset)
1314
 
1315
2000-07-04  Matt Dobbs  <Matthew.Adam.Dobbs@Cern.CH>
1316
 
1317
	* examples/GNUmakefile.in: $(top_srcdir) replaced by
1318
	$(srcdir)
1319
 
1320
	* GNUmakefile.in (libHepMC.so_SRC): The location of src .cxx files
1321
	is now explicitly specified with $(top_srcdir)/src/*.cxx
1322
	This makefile now builds oth a shared library libHepMC.so and
1323
	libHepMC.a (requested by Ian H.)
1324
	* the initpydata.f routine is no longer compiled into the the
1325
	HepMC library, but is still packaged with the other routines.
1326
	The user needs to link to it explicitly. See the GNUmakefile.in
1327
	in the examples directory for an example of how to do this.
1328
	(requested by Ian H.)
1329
	* ./src is replaced with $(top_srcdir)/src everywhere in the
1330
	GNUmakefile.in
1331
 
1332
	Files changed this time:
1333
	GNUmakefile.in, examples/GNUmakefile.in, Makefile.standalone,
1334
	Changelog
1335
 
1336
2000-05-18  Matt Dobbs  <Matthew.Adam.Dobbs@Cern.CH>
1337
 
1338
	* HepMC/IO_BaseClass.h: There is now a fill_next_event method.
1339
	- bool fill_next_event( GeneratorEvent* evt ) is a new abstract method
1340
	  which fills the passed event, and also returns true if successful.
1341
	- GeneratorEvent* read_next_event() is now make concrete. it
1342
	  creates a new event, fills it using the above abstract method,
1343
	  and returns the event
1344
	This change is backwards compatible since the method
1345
	read_next_event() has identical behavior.
1346
	Identical changes are made for the methods:
1347
	- bool fill_particle_data_table( ParticleDataTable* pdt )
1348
	- ParticleDataTable* read_particle_data_table()
1349
	The methods are updated [ i.e. GeneratorEvent* read_next_event()
1350
	is changed to bool fill_next_event( GeneratorEvent* evt ), etc. ]
1351
	in:
1352
	- IO_HEPEVT.h
1353
	- IO_Ascii.h
1354
	- IO_PDG_ParticleDataTable.h
1355
	- IO_HEPEVT.cxx
1356
	- IO_Ascii.cxx
1357
	- IO_PDG_ParticleDataTable.cxx
1358
	(This change requested by Ian Hinchliffe and Marjorie Shapiro.)
1359
 
1360
 
1361
2000-04-24  Matt Dobbs  <Matthew.Adam.Dobbs@Cern.CH>
1362
 
1363
	* HepMC/HEPEVT_Wrapper.h: set_momentum and set_position now
1364
	properly cast input doubles as type HEPEVT_Precision,
1365
	previously they were hardwired as cast to double, this
1366
	meant writing to real*4 hepevt would fail.
1367
 
1368
******************************************************
1369
Everything below this line corresponds to Version 0.91
1370
******************************************************
1371
 
1372
2000-04-11  Matt Dobbs  <Matthew.Adam.Dobbs@Cern.CH>
1373
 
1374
	* doc/latex_user_manual/HepMC_user_manual.tex: User manual is
1375
	updated to replect changes since V0.9
1376
	- HEPEVT and position in [mm]
1377
 
1378
2000-04-06  Matt Dobbs  <Matthew.Adam.Dobbs@Cern.CH>
1379
 
1380
	* examples/example_MyPythia.cxx
1381
	* examples/example_MyPythiaOnlyToHepMC.cxx
1382
	* examples/example_MyPythiaWithEventSelection.cxx:
1383
	By commenting out the initpydata call (which may be required on
1384
	some systems to initialize the Pythia PYDATA block data as
1385
	external) the MyPythia examples now run on HPUX (and still on
1386
	Linux). Have not tested other platforms.
1387
	* Makefile: HPUX with gcc requires the -lf library which contains
1388
	the fortran intrinsic function.
1389
 
1390
2000-04-05  Matt Dobbs  <Matthew.Adam.Dobbs@Cern.CH>
1391
 
1392
	The changes below will have no effect on the user or package, they
1393
	just serve to remove warnings when compiling.
1394
 
1395
	* HepMC/Vertex.h: 313:342:364: warning: unused parameter `enum
1396
	::HepMC::IteratorRange dummy_range' (all dummy range parameters
1397
	now appear as particles_end( IteratorRange /* dummy_range */ ) )
1398
 
1399
	* src/IO_Ascii.cxx (HepMC): 506: warning: ANSI C++ forbids
1400
	variable-size array `c' (the array is now declared as char* c =
1401
	new char[key_length +1]; and deleted before returning)
1402
 
1403
	* HepMC/IO_PDG_ParticleDataTable.h: 53: warning: control reaches
1404
	end of non-void function read_next_event()
1405
	(this is a dummy function anyway -- return 0)
1406
	* HepMC/IO_HEPEVT.h:55: (as above)
1407
 
1408
	* src/Flow.cxx (HepMC): 26: warning: default argument given for
1409
	parameter 1 of `void ::HepMC::Flow::print(class ostream & = cout)
1410
	const' (done)
1411
 
1412
	* HepMC/IO_HEPEVT.h:57: warning: base class `class
1413
	::HepMC::IO_BaseClass' should be explicitly initialized in the
1414
	copy constructor (done)
1415
	* HepMC/IO_Ascii.h: 98: (as above)
1416
	* HepMC/IO_PDG_ParticleDataTable.h: 56: (as above)
1417
 
1418
	* HepMC/ParticleDataTable.h: 155: warning: suggest parentheses
1419
	around assignment used as truth value (done)
1420
 
1421
	* src/IO_Ascii.cxx (HepMC): 37: warning: default argument given
1422
	(removed default argument)
1423
 
1424
	* HepMC/Flow.h:21: warning: multiline `//' comment
1425
	(added space after \ to remove compiler warning)
1426
 
1427
	* HepMC/Particle.h: removed =0 in the inline declaration
1428
	inline void Particle::set_flow( int code_index, int code = 0 )
1429
	(caused warning).
1430
 
1431
 
1432
2000-04-04  Matt Dobbs  <Matthew.Adam.Dobbs@Cern.CH>
1433
 
1434
	* HepMC/HEPEVT_Wrapper.h:  HepMC/HEPEVT_Common.h:
1435
	replace the classes HEPEVT_BaseClass.h HEPEVT_Double2000.h
1436
	HEPEVT_Double4000.h HEPEVT_Real2000.h HEPEVT_Real4000.h
1437
 
1438
	Using different classes for each of the HEPEVT common block
1439
	varieties proved very troublesome - users had trouble and 4
1440
	similar classes were being maintained. The new version uses only
1441
	static methods and cannot be instantiated (logical since it has
1442
	no data members). The HEPEVT common block is contained in the
1443
	HepMC/HEPEVT_Common.h header. The precision and number of entries
1444
	is specified using #define commands, default is double precision,
1445
	2000 entries. The user will see only one change - the IO_HEPEVT
1446
	constructor now has no arguments, so he need not define the
1447
	any HEPEVT_XXX class. He may need to set the precision and number
1448
	of entries. See the header for instructions, and
1449
	examples/example_MyPythia.cxx for an example.
1450
 
1451
	example_MyPythia.cxx, example_MyPythiaOnlyToHepMC.cxx,
1452
	example_MyPythiaWithEventSelection.cxx are modified to take this
1453
	into account.
1454
 
1455
	* HepMC/IO_HEPEVT.h: This class now extracts information from the
1456
	fortran HEPEVT common using HEPEVT_Wrapper instead of having to
1457
	pass it a class which inherits from the obsolete HEPEVT_BaseClass.
1458
 
1459
2000-04-03  Matt Dobbs  <Matthew.Adam.Dobbs@Cern.CH>
1460
 
1461
	* HepMC/PythiaWrapper5_720.h: Credit for writing the wrapper is
1462
	to Silvia Resconi.
1463
	Inclusion of HEPEVT wrapper header file is not necessary --- hence
1464
	removed.
1465
 
1466
2000-03-31  Matt Dobbs  <Matthew.Adam.Dobbs@Cern.CH>
1467
 
1468
	* HepMC/ParticleData.h: clifetime is now represented in [mm]
1469
	instead of [cm] ... previously HepMC had internal inconsistencies
1470
	in this --- it claimed to use [cm], but sometimes used [mm] (as
1471
	when it read from HEPEVT, and othertimes used [cm] (as when it
1472
	transformed a width into a lifetime. Now all is consitent and [mm]
1473
	is used everywhere as it should be.
1474
	* HepMC/Vertex.h: src/ParticleData.cxx:
1475
	Changed comments which say clifetime is in [cm], to say
1476
	clifetime is in [mm].
1477
 
1478
	* Makefile (CLHEPdir):
1479
	Changed
1480
	CLHEPdir      = /afs/cern.ch/sw/lhcxx/specific/Linux/CLHEP/pro
1481
	to
1482
	CLHEPdir      = /afs/cern.ch/sw/lhcxx/specific/@sys/CLHEP/dev
1483
	to make it platform independent for CERN users.
1484
	And some cosmetic changes to the Makefile.
1485
 
1486
	* HepMC/IO_BaseClass.h:
1487
	Using the compiler options -ansi -pedantic cause this error:
1488
	no match for `::HepMC::IO_Ascii & << ::HepMC::GeneratorEvent *&'
1489
	Even though it recognizes:
1490
	operator <<(::HepMC::IO_BaseClass &,
1491
	            const ::HepMC::GeneratorEvent *&) <near match>
1492
	as the "best <near match>".
1493
 
1494
	To fix this I make operator<<, operator>> members of the
1495
	IO_BaseClass rather than friends, and I add versions where the
1496
	argument of operator<< is not constant.
1497
	This will not affect users in any way (unless they were using
1498
	these compiler options, in which case HepMC didn't work anyway...)
1499
 
1500
2000-02-16  Matt Dobbs  <Matthew.Adam.Dobbs@Cern.CH>
1501
 
1502
	* GeneratorEvent.h: set_signal_process_vertex() modified to ensure
1503
	that any vertex specified as signal process is ALSO in the
1504
	m_vertices set.
1505
 
1506
	* This change log documents changes since Version 9 of HepMC was
1507
	"released" February 11, 2000
1508
 
1509
pre 2000-02-16  Matt Dobbs  <Matthew.Adam.Dobbs@Cern.CH>
1510
Changes Before Version 0.9 (i.e. changes in going from V0.1 -->0.9)
1511
	    HepMC improvements:
1512
	        +backup V0.1  (done)
1513
	        +save particle data as id in Particle  (done)
1514
		+update IO strategies  (done)
1515
		+test  (done)
1516
		+backup  (done)
1517
	     -change set<Vertex*> in event to include all vertices (done)
1518
		+change iterators to reflect this (done)
1519
		+update IO strategies (done)
1520
		+test (done)
1521
	     -fix all operator= to first destruct dependents. (done)
1522
	     -access functions to iterate over all flows  (done)
1523
	     -check for stl namespace  (done)
1524
	      grep -n cout HepMC/*.h src/*.cxx | grep -v std::cout |
1525
	        less
1526
             -add Hepevt:write event  (done)
1527
	     -implement lujet strategy (not done!)
1528
	     -update documentation -- enumerating recent changes.  (done)
1529
	     -user manual written
1530