Skip to content

GSI HADES Pluto - A Monte Carlo simulation tool for hadronic physics

Notifications You must be signed in to change notification settings

A2-Collaboration/gsi-pluto

Repository files navigation

Oliver Steffen's unofficial PLUTO Fork

This code was forked from development release Version 5.42.4 of 17/07/2013.
Official Web: http://www-hades.gsi.de/?q=pluto

Installation:
_____________________________________________________

Standard installation:
The Pluto package comes with a Makefile. ROOT must be installed
before, of course, and the $ROOTSYS must be set properly.

The object code is stored in a sub-directory "lib", this allows
to set a symbolic link somewhere.

Just type "make" - there is no "make install". The libPluto.so stays
in the main path.

In the macro path there are a lot of examples - and a rootlogon.C loading
the libPluto.so

Customized installation:
Pluto can be combined with local add-ons. To make use of this, the
environment variable PLUTO_USER_PLUGINS has to be defined. To 
overwrite the plugin settings of Pluto completely, use the
variable PLUTO_PLUGINS

Example:
PLUTO_PLUGINS="" PLUTO_USER_PLUGINS="plugins/nucleus_fermi" make


Release Notes:
_____________________________________________________

v3.54:
======

1) Starting with this release Pluto++ is entirely ROOT based.
   The CLHEP library is no longer explicitly implemented, except
   for those packages included in ROOT (i.e. vector and Lorentz-
   vector algebra, random-number generators). You need to have
   ROOT (Version 223-06 and higher) installed before you can
   compile and use Pluto++.

2) The "Makefile" included is optimized for Linux. Type "make"
   to compile, from the directory that contains the Makefile.
   A proper installation of ROOT is required. A shared-object
   file (pluto.so) is produced, for loading to ROOT. Look at
   the documentation for instructions on how to load Pluto++.

3) A data base is included in the class PData, as well as functions
   for user I/O of additional particle data. Refer to the documentation
   for the rules on how to load user-defined particles.

4) The decay-manager class (PDecayManager) has been written by Volker
   Hejny together with the accompanying documentation. It can be used
   for "cocktails" consisting of many reactions.
   This class supports two sampling modes: 1) correct statistics is generated
   for each reaction (resulting in low count numbers for weak branches), and
   2) a weighted mode, where each reaction is generated with equal number of
   events, but the correct weights are propagated into the output(s). 

5) The thermal model has been implemented by Romain Holzmann (see
   classes PThermal and PFireball). Hot quasi-particles with multi-
   hadron thermal decays can be constructed using these classes.
   Look at the examples contained in the "macros" directory, and
   comments in the "Readme" file there.

6) Reactions involving deuterons are supported (p+d and d+p) in an
   participant/spectator scheme. The deuteron g.s. wave function is used
   to sample a Fermi momentum for both nucleons; proper energy and momentum
   conservation is applied.

7) The classes PTrackH (HADES) and PTrack (Crystal Barrel) in the "ana"
   directory have been written by Jim Ritman and Marc Andre Pleier 
   (undocumented). These are examples of implementing detailed detector
   geometries (e.g. MDC planes, momentum "kick" for the magnetic-field
   effect etc. in PTrackH). Macros using PTrackH are included.

8) A universal selection function has been implemented. It is (optionally)
   called for each tracked particle and it is freely coded by the user.
   If this function returns <0, the particle is skipped on output.
   The function can be defined on interpreter level.

9) A mode has been implemented in PReaction::loop() to decay all particles
   stochastically; this increases execution time by factors 4-6.

10) The vertex has been moved into the PParticle class and is calculated in
    PCannel::decay() now; it uses up < 10% of CPU time.

11) External tracking is possible now through information (decay time and
    indexing) added to PParticle (J. Ritman). This is illustrated in macros
    gen_test.C and ana_test.C for the K0S and Lambda decays. 

12) For updates and future releases look at
   http://www-hades.gsi.de/computing/pluto/html/PlutoIndex.html


					R. Holzmann
					GSI,  08/09/2000

13) Move to gcc v2.95.2.

14) mt scaling in PFireball class for rho, omega, phi, Delta, etc. mass distr.

15) Ebeam required in PFireball constructor now.

16) V. Hejny generalized p+d/d+p reactions to X+d/d+X.

17) Optionally random generators can be initialized at startup from system
    clock (recompile with "#define SEED 0" in PUtisl.h).


					R. Holzmann
					GSI,  17/10/2000

 
18) J/Psi and Psi' production in p-pbar reactions handled with gen_psiphi.C
    and ana_JPsi.C by J. Ritman.

19) pn bremstrahlung handled schematically with a Delta form factor.

                                        R. Holzmann
                                        GSI, 6/11/2000


20) pn particle included in PData class.

21) PData::setMass() and PData::setWidth() methods implemented.

22) Mod in PChannel.cc to allow for d+p->N+X with X more than 2 particles

                                        R. Holzmann
                                        GSI, 5/12/2000 



v3.57:
======

22) Adapted to Root 300 (no libNew.so anymore)

23) Pythia6 support optional via compiler switch (see Makefile)


                                        R. Holzmann
                                        GSI, 13/6/2001 



v3.58:
======
 
24) Class PDiLepton added to implement a source of dilepton (e+e-)
    uniformly distributed in m, y and pt, useful e.g. for acceptance studies.

25) Added the possibility to pass pointers to user selection and analysis
    functions to PReaction. These functions are called in PReaction::loop()
    per individual particle and per event, respectively, allowing for
    versatile filtering and analysis within the Pluto event loop.

26) Added PReaction constructor with reaction parser (V. Hejny).
    See macro new_w_dalitz.C for an illustration.

27) Utility class PCross added to compute HI meson production cross sections
    from data and mt scaling (K. Tyminska)
    Use with:  PCross::setSystem(Ap,Zp,At,Zt,Ebeam);
               PCross::print(ID);
               PCross::plot(ID,Emin,Emax);
               Double_t sigma=PCross::cross(ID,blow,bup);

    A sample macro is PCross_example.C.

28) Decay branches for the sigma meson (id=54) added in PData.cc. This is
    a preparation for S. Timoshenko's work on the sigma->e+e- in-medium decay.



v3.59:
======

29) Adapted to Root 3.03 (fixing mostly class init problems)


                                        R. Holzmann
                                        GSI, 14/5/2003 



v3.60:
======


30) Create static instance of class PSaid (pp elastic scattering) on load
    of Pluto.so.  Use via global pointer gSaid->f().

31) Allow reactions via decay of doorway state, in particular also
    pp->doorway->pp with correct dsdw.
    This feature can be used to decay reactions in random order.
    Dsdw of e.g. NN->NDelta not supported yet.



                                        R. Holzmann
                                        GSI, 19/8/2003 

v3.61:
======


32) Support of setDecayAll() in PDecayManager.  This is a factor 2-3 slower
    than full decay by PDecayManager::loop(),  tested on pp->ppeta->ppge+e-,
    but can probably be improved by making the particle stack in
    PReaction::loop() static.

33) Support in PDecayManager of ascii output to a common file (f4=2).

34) Support in PDecayManager of trully random decay via random selection
    in reaction list. Performance is comparable to derandomized mode (+10%).

35) Partial support of Dalitz mu+mu- decays.  This needs more work in
    PData::sampleMD() for e.g. eta->gmumu.


                                        R. Holzmann
                                        GSI, 28/8/2003 

v4.00:
======

36) Corrected unexpected behaviour in Gamma(M) for Dalitz and ll decays
    (correct BR if Gamma_tot is scaled with setBR())


37) Ingo's angular distributions implemented

38) Support of Root 4.00


                                        R. Holzmann
                                        GSI, 7/5/2004


v4.01:
======

39) Fixed a serious bug in PData::sampleM1(), in case sqrt(s)<M(pole)

40) Implemented 3-body phase-space weighting in PChannel::genbod()

41) Updated behaviour of PData::getEmin(idx) and PData::LMass(id)


                                        R. Holzmann
                                        GSI, 26/5/2004


v4.02:
======

42) Optimized sampling in PData::sampleM2() for 2 broad states

43) Optimized adjustment of scaling factor "scale" in PData::sampleM1()
    and PData::sampleM2().

44) Fixed bug in PFireball (multiple allocation of TF1 objects with same name)

45) Implemented PData::listBR(id,m) function to list branching ratios


                                        R. Holzmann
                                        GSI, 16/6/2004
v4.03:
======

46) Vertex calculation allowed for PDilepton class with given lifetime
    set for dilepton (or dimuon) particle, to simulate e.g. off-vertex
    K0 -> pi+ + pi- acceptances.

47) 2 bugs in ascii output fixed: 1) wrong switch and 2) event numbering for
    PDecayManager with single ascii output file

48) Introduced static PUtils::SetSeed(seed) to allow setting the random seed
    in macros, without need to recompile.  With seed=0 -> random init of seed.
    This needs a call of PUtils::SetSeed(0) at start of macro.

49) PFireball calculates now Prob/participant in setRandomB() from Mult.

                                        R. Holzmann
                                        GSI, 5/8/2004

v4.04:
======

50) Support for call of compiled user selection and analysis functions
    in PReaction:loop().

51) In PFireball::sampleNpart(b) uses now a surface-smeared distribution.

52) Fixed 2 severe bugs in PData::Width1() in case a resonance decays
    into another resonance: (a) in dynamic table allocation and (b) in the
    recursive creation of TF1 or TF2 objects with same name.

                                        R. Holzmann
                                        GSI, 9/9/2004



v4.05:
======

53) Implemented PData::plotRes(id) function for interactive drawing of
    resonance shapes (BW with mass-dependent width).

54) Fixed a bug in phi meson shape.

55) Optimized handling of TF1 creation and deletion (in PData::sampleN())
    in case of more than 1 broad resonance/event -> large increase in speed.


                                        R. Holzmann
                                        GSI, 13/10/2004

v4.06:
======

56) Added support in PData::setBR() and PData::EEWidth() for treating direct
    ee decays such that the correct 1/M**3 behavior is obtained in sampling
    VM masses with PData::sampleM(), PData::plotRes(), etc., e.g. for channels
    set up to do explicitely rho0 -> e+e-.

57) Added support for beam skewing and smearing in PReaction and PDecayManager,
    i.e. allow for incoming beam off z axis (theta and phi) and/or gaussian
    smearing of polar angle (sigma) via PReaction::setBeamParameters(th,ph,sig).

58) Added some more printout info for b sampling in PFireball::Print().


                                        R. Holzmann
                                        GSI, 20/01/2005

v4.07:
======

59) Added support for mumu direct decays and eta->mumugamma.

60) Renamed Pluto.so to libPluto.so in Makefile and rootlogon.C

61) Added PData::setM3ee(id) function to set 1/M**3 (=VDM) behavior
    in VM direct decays.

62) Added support for writing parent index to ascii file via
    PReaction::setWriteIndex() and PDeacyManager::setWriteIndex() functions.

63) Changes made in the coding of parent id for Dalitz decays:
    id=51 -> id=grandparent*1000+51
    e.g.  pi0 :    7051
          eta :   17051
          omega : 52051

    and parent index of e+ and e- = index of actually decaying particle
    and not of the dilepton!.

    Same for Dalitz muon decays (id=50 - > id=grandparent*1000+50).

64) Set a reactionID in PReaction::setUp() computed from the list of
    product ids of the 1st reaction channel:
    sourceId=reactionId=id1+100*id2+[10000*id3+[1000000*id4+[100000000*id5]]]

    If source is a PFireball or PDiLepton the sourceId is kept at 500+id.


                                        R. Holzmann
                                        GSI, 22/04/2005


v4.08:
======

65) Added directory with Jacek Otwinowski's cocktail-generating code
    including Marcin Wisniewski's conversion-pair producer.

66) Implement Boltzmann-weighting of rho line shape in PData::BreitWigner()
    using mt-scaling integrals.  Can be used together with the 1/M3 flag.
    The temperature is set via PData::setMtScalingTemp().

67) Inclusion in PFireball and PThermal of non-isotropic source temperatures.
    This is switched on with PFireball::setTrueThermal(kFALSE).


v4.09:
======

68) Added option in PData::sampleMD() to sample Dalitz mass flat for testing
    purposes or acceptance calculations.  Use PData::setFlatMD(1) to select.

69) I. Froehlich added in PChannel::decay() support for pseudoscalar meson
    helicity angles (needs aflag to be set).

70) I. Froehlich corrected in PChannel::decay() sampling of intermediate state
    in case an angular distribution is requested with respect to lab frame.

71) I. Froehlich added in PDecayChannel support for setting reference frame
    to be used with angular distributions (similar to PChannel behavior).
    However, setting the 2nd reference is still not supported.

72) I. Froehlich added in PChannel::decay() support for eta->3pi Dalitz
    matrix element.



                                        R. Holzmann
                                        GSI, 09/01/2006

v4.10:
======

73) Changed PThermal and PFireball to have true support for resonance
    sampling, i.e. d2N/dEdM = Boltzmann x Breit-Wigner.
    (Implemented as TF2 objects; for quasistable particles, mass dim = dummy).


Remark:  Slow init of TF1 and TF2 objects is due to a change in the Root
         TF1::Integral() default precision introduced in Root 401-01.


                                        R. Holzmann
                                        GSI, 28/03/2006


v4.11:
======

74) Changes to compile with gcc 3.3.5.

75) Fixed bug in PChannel::ds_dt() handling of Delta resonance angular
    distribution.


                                        R. Holzmann
                                        GSI, 12/07/2006



v4.12:
======

76) Moved includes to *.h files to comply with gcc 4.0.

77) Fixed reinit bug (e_cm) in PChannel::getNN_DeltaN_param()
    in case of multiple reactions with same ecm (PDecayManager).

78) Added static method PData::mtScaleFactor(id,T) to compute the thermal
    enhancement factor for broad resonances (e.g. rho).

79) Changed in PCross::calcT() the fireball temperature to Cleymans et al.
    parametrization of PRC 73 (2006) 034905.


                                        R. Holzmann
                                        GSI, 05/09/2006




v4.13:
======

80) Added PData::freezeBR() to set branching static.

81) Updated cocktails directory.


                                        R. Holzmann
                                        GSI, 09/01/2007




v4.14:
======

82) Fixed bug in PSaid::dsdw() to return correct dSigma/dOmega
    for pp elastic scattering (curtesy A. Kupsc).

83) Added support for N(1535) Dalitz decay in PData class.

84) Added support in PThermal and PFireball for thermal sampling
    according to dN2/dEdThetaCM = E p**n exp(-E/T) where T and n
    are function of ThetaCM. Cannot be used together with blast.

85) Added in PFireball support for sampling E and thetaCM from
    a 2-d histogram TH2F(momCM,thetaCM), with momCM in GeV/c and
    thetaCM in deg.

    
                                        R. Holzmann
                                        GSI, 21/02/2007





v5.01:
======

86) Ingo's redesign of distribution handling (Dalitz, scattering, angular)
    implemented.  Macros need now to have a line inserted creating a
    PDistributionManager singleton before distributions can be manipulated.
    E.g.:
      .
      .
      .
      PDistributionManager *dm = makeDistributionManager();
      dm->Disable("helicity_angles");
      .
      .
      .



                                        R. Holzmann
                                        GSI, 22/02/2007




V5.02:
======


87) Added in PFireball support for non-linear Apart(b).

88) Some bug fixes by Ingo in his new code.


                                        R. Holzmann
                                        GSI, 02/07/2007

v5.11:
======

Major redesign of the package, e.g.:

89) PDataBase: can handle new decays and particles more flexible

90) PStaticData: interface for users to access "static" particle values in the
    PDataBase

91) PStdData: filler singleton to create standard physics in the PDataBase

92) PDynamicData: access to "dynamic" part of the data base

93) Slight changes in the decay manager to link to the new data base scheme

94) PChannel is now linked to the data base key, avoiding to use undefined
    channels. 

95) All physics moved out of the PChannel, interfacing to physics is done via
    the base class PDistribution

96) Created some new classes to incorporate the old angular distributions:
    PAngularDistribution (base class for angular distributions)
    PDeltaAngularDistribution
    PPiOmegaAngularDistribution
    
97) PChannelModel: Base class for coupled-channel calculations. All
    implemenations must be bound to a data base key to identify the particles
    and theit decay

98) Mass-dependent widths calculations of decays moved to:
    PDalitzDecay
    PEEDirectDecay
    PFixedDecay	
    PHadronDecay(M1,M2,M3)

99) Breit-Wigner mass sampling moved to PBreitWigner

100) Creation of PComplexBreitWigner for mixing effects

101) Moved pluto adaption of genbod routing to PGenBod

102) Created PStdModels which fills all model instances mentioned above to the
     PDistributionManager.

103) Interface PFileOutput can be used for 3rd party collaborations to change
     the file output to own structure

104) Interface PBulkInterface can be used for bulk interactions (changing
     particle array after normal decay routine)

105) PPlutoBulkDecay replaces the old DecayAll() method using change 104

106) PPythiaBulkDecay uses Pythia and change 104 (untested!)

107) PEmbeddedParticles uses change 104 to throw particles in the detector

108) PBeamSmearing replaces old beam smearing scheme but is more flexible

109) Fermi scattering treated now as a 2-step process (backward compatibility
     ensured)

110) Decay daughters can be composites (needed for change 109)

111) PValues container can be used to transport any value from one PChannel to
     a consecutive one.

112) When mass sampling is done, the partial decay width is used of the target
     decay index. Corrects for the mass-dependent branching ratio, which was
     never used in Pluto
     This has major consequences on the shape of resonances!
     (Disabled when the PPlutoBulkDecay is used)

     ...... and a lot of changes here and there.....

                                        I. Froehlich
                                        IKF, 11/11/2007


V5.12:
======


113) Some bug fixes by Ingo in the new code (PFireball).

114) Memory leak fixed in PReaction/PParticle

115) Fixed bug when using a "NULL" (=empty) PChannel list in PReaction

                                        I. Froehlich
                                        IKF, 27/11/2007

V5.21:
======

116) Fixed bug in PSplash

117) Bulk interface added _before_ the decay() is called

118) PVertexFile added to set a global reaction vertex. User may also
     set the global vertex via a dedicated class and PData::gVertexX/Y/Z

119) PFileOutput inherited from PBulkInterface (to use full PParticle stack)
     PFileOutput can use PReaction flags

120) J. Markert added PHGeantOutput for a new definition of the ASCII file
     which contains the seqNr as well. See makeEmbeddedParticlesVertexHGeant.C for
     details

121) Added the TGraph option to the PAngularDistribution sampling, e.g. to
     use angular distributions from papers. See also
     the new macros use/anaAngularDistribution for handling

122) Fixed bug in angular distribution sampling (GetDaughter bug)

123) Support for weight-based event sampling added (very preliminary!)
     See weights.tex in doc/
     The thermal macros have to be changed:
     old: source2->SetW(br*mult);
     new: source2->SetMultiplicity(mult);
     <Update: This has been disabled - there were too many complaints>

124) Fixed bug in SetDecayAll() (conversion in ns used 2times)

125) Fixed bug in PSaid (boost to get kinetic energy, most prominent when
     using deuterons), found by P. Salabura

126) Added Delta-pion-pw decay also for D0 and D-, and the dilepton pw angle
     for D0

127) PBremsstrahlung added (parameterization from Kaptari/Kaempfer) by
     J. Wuestenfeld, F. Dohrmann et al.

128) For the sampling of TF1 functions (motivated by 127) a class
     "PAdaptiveMesh" has been developed which used the rejection method but on
     self-adaptive meshs. The TF1->GetRandom() was too slow when parameters
     (e.g. cm energy like in the pd case) are changing.

129) Analogue to 128 also a mult-dimensional mesh sampling has been developed
     (PAdaptiveMeshN) which can sample any PChannelModel (very
     preliminary). Needed for the 2dim sampling of the pd reaction when
     p+participant goes into a final state near threshold (e.g. sub-threshold
     eta production)

130) Added some features to the PDataBase to deal with "directories", where
     the entries are linked-lists. Very useful for a lot of new
     implementations (see below)

131) Added support for multi-models (more than one model per decay): Each
     sub-model has to be linked to an entry in a dedicated directory, thus it is clear
     for the user-models for what the model is good for and how the mass array
     is defined. Example: Total cross section like they have to be used in the
     pd reaction
     <Update: I call these "seconday models">

132) Another very nice feature is the small batch script language

133) One more bugfix in the Delta-partial wave calculation: The exchange of
     beam/target was done in the wrong way, leading to flat Dalitz plots

134) Re-Structured the event loop in PReaction: The tparticle array has been
     removed, the role of decay_done[] enhanced. This had to be done because
     when writing only stable particles, the Modify() function did not used
     the unstable one.

135) Allowing for having *no* root files when using the reaction parser. Done
     in the framework of 132)

136) Automatically adding particle template when using the PChannelModel
     parser. Makes macros shorter. In the same direction: Set-method in
     PDistribution overwrites private flag.

137) PDalitzDecay looks into /formfactor path to apply new form factors
     
138) Re-organized groups in the distribution manager to have sub-groups.

139) Fixed bug in PChannel (ecm was set before the Prepare())
 
140) Fixed bug in PBeamSmearing (TF1 and not TH1F, reconstruct parent, etc...)

141) Re-organized distribution manager (added util class) to allow the writing
     for plugins

142) Added bremsstrahlung plugin + FSI class

143) The decays are added now automatically when using the PChannelModel
     parser. This makes macros shorter

144) Added the class PDeltaDalitzKrivoruchenko for a new Delta Dalitz
     description.

145) PDeltaDalitzKrivoruchenko is activated by the Dalitz-mod class
     PDalitzModPlugin. Same class provides also a generator mod. The correct
     form factor (G_M = 3) is applied as well (see 146).

146) Added PDeltaDalitzFF for the form factors. Iachello VMD models is
     included as well

147) Fixed g++-warnings "deprecated conversion from string constant to
     char*" (rep. by R. Salmin)

148) Fixed bug in PParticle::SetProperTime()
     -> Composites decayed with endless vertex (rep. by V. Hejny)

149) Fixed (very old!) bug in eta->mumu gamma, by replacing the Kagarlis
     sampling by the ROOT sampling  (rep. by  C.-O. Gullström, Uppsala)

150) For the PBatch scripting, all browsable methods of the class
     TLorentzVectors are now working (like Px(), Py(), ....)

     		     	     	       (after all this work it is time
					for a freeze-out....)
                                        I. Froehlich
                                        IKF, 21/01/2009

V5.22:
======

151) Cleaned up SetDecayBR() in PStaticData

152) Merged the TFormula with PBatch.
     This is a major step and adds a lot of features
     thereby making the old PFilter unnecessary

153) Reading and writing TNtuple with PProjector/PPBatch is
     now possible. Take a look to the examples

154) Added some helper functions to add commands/histos/ntuples
     to a PReaction

155) Allow for dummy reactions (for 153)

                                        I. Froehlich
                                        IKF, 27/02/2009


V5.23:
======

156) I added some more features for the beam smearing.
     see tutorial macro beamsmearing_example.C

157) Fixed bug in PReaction: In the fireball macros,
     the first fireball was written into the PParticle
     event loop array. This caused trouble when checking
     for empty events and the multiplicities were wrong.
     Now, the fireballs do not appear in the loop
     They are neither stable nor unstable

158) Fixed one more (severe!) bug in PThermal, which
     lead to the appearance of a delta function

159) Moved the batch values/particles to dedicated params

                                        I. Froehlich
                                        IKF, 17/04/2009

V5.24:
======


160) Changed PChannelModel slightly, that pid/channel idx
     is set also for secondary models

161) Added PPropagator Class implementation file
     To be used for Pion-Nucleon-simulations (see ref. 23)

162) Added one more error flag (=81) for pseudo-empty
     events: Real empty events (avoiding double counting)
     are only these with error code =80

163) small bug-fix in PReaction (num_filters),
     small bug-fix in PBatch which did not allow to use
     	   2 PProjectors

                                        I. Froehlich
                                        IKF, 18/05/2009


V5.25:
======

164) Fixed bug in PAngularDistribution (wrong order
     of rotations) which lead to the appearance
     of a non-flat distribution in quasi-free pp 
     collisions (rep. by Mirian Tabidze, ANKE)

165) Adapted ang_reference in PAngularDistribution.
     In addition, beam is ang_reference by default.
     Moved beam & target from PSaid to PAngularDistribution
     Removed beam & target from PDelta/PPiOmegaAngularDistribution

166) Improved speed in M3-decay by adding a condition on
     unvalid masses

167) Fixed bug in PBatch::GetMethodHandle() which
     was reading ->P() as ->Px()

168) Fixed bug in PFireball: npx, npy was too low.
     Added SetNpy/y for more flexibility w/o need
     to change the source code again.

                                        I. Froehlich
                                        IKF, 11/06/2009


V5.31:
======

169) Restricted the use of TFormula to ROOT versions > 4
     as it does not compile

170) Added bulk-classes to PReaction::Print()

171) Small improvement of PBatch & PFormula:
     if ([p + p] ...)->M() < 3.;
     does work now

172) Labels & gotos in PBatch -> started some preparation

173) Allow to access PValues from PBatch (like "[D+].t")

174) Changed PBatch objects from TLorentzVector to PParticle
     (done for 173)

175) Small bugfixes for Printings in PDistributionManager and data base

176) Redesigned Makefile. Added plugin directory to allow for
     local plugin implementations. Removed really old
     directories like PLUTO, ANALYSIS, CLHEP

177) Moved new Bremsstrahlung to the "brems" plugin. Added R. Shyams
     dat files.

178) Added demo macro for user mass sampling,
     added one more option (ForceRejectionMethod) for exotic
     samplings in PAngularDistribution

179) Added content in plugins/pion_beam

180) Added Manuel Dieterles work for nuclear targets into
     nucleus_fermi

181) In this (but not only) context finally enables the 
     option to add alias names to particles, e.g.
     makeStaticData()->AddAlias("alpha","4He");

182) Moved some files into brems, dalitz_mod, elementary, hades 

183) Bugfix in PScatterDistribution for reactions without t/u-calculations
     (e.g. pp -> D+D+)

184) Added plugin for rare eta decays, one (simple) version for
     eta double dalitz decay has already been activated

185) Fixed bug in PChannel: emin was not initialized

186) When using the decay parser for quasi-free reactions, it
     is now obligatory to use brackets for the last particle
     if it should be a spectator, e.g.:
     "d","p","p p (n)"

187) Added the proton beam feature in nucleus_fermi

188) In this context: changed PChannel such that it 
     can recognize specators which are not nucleons
     In this case, the participant has be in brackets as well
     (see macro in nucleus_fermi)

189) Fixed bug in PUtils: ctor was never called, thus
     the SEED never set correctly
     Kept backward compatibilty via new class PUtilsREngine

190) In this context: removed private REngine in PSaid

191) added the alias "x+y" for composites in addition to the
     primary name "x + y" to make the PBatch scripts more save

192) Added in PReaction::Do() the check for more then one PProjector

193) Fixed deadlock in PHadronDecayM3

                                        I. Froehlich
                                        IKF, 28/09/2009

V5.32:
======

194) Added parent-reconstruct and material guess in nucleus_fermi

195) Moved energy conservation calculations in PChannel after
     mass sampling to allow for parent reconstruct

196) Added Scatter method in PParticle to keep pointers
     for composites

197) Brought list entries into correct order

198) Added feature to change/include particles into streams via:
     [X,1] = batch_vector , or
     [X,+] = batch_vector,
     see ntuple_to_pparticle.C

199) Added reaction parser with seed PParticle in the PReaction

200) Removed content from PFilter (this class is obsolete),
     removed link from PReaction to PFilter

201) More features in PBatch: 
     Added absolute position of a label
     Added "echo"     
     Added "Eval()" which uses "tool" objects like TH1, TH2, ...
     Methods of PParticle with return value Double_t and void
     	     have been enabled to be used in PBatch

202) In this context: added unique number in bulk base class

203) Added goto inside the PProjector
     Added fillflag for histo commands
     Added 3dim histos

204) Used 201-203 for a "formore" command which can be used
     for inclusive batch analysis / combinatorial background

205) Added "foreach" command in PBatch: for each particle of
     the defined species, the line will be called

206) Added Startup() function, which can be steered via the
     distribution manager, called each time before the event loop

207) Added new class "PCommandList" which is a parameter
     container for commands and objects, which can
     be stored and recovered in a ROOT file (only by their names)
     (will be called "batch pack")

208) Added Unpack() function in PDistributionManager, which can
     unpack and execute the stored batch packs

209) Features 201-208 will be used for a general purpose filter
     file format in future
     --> Still under test!

210) Added some more Isotopes in <nucleus_fermi> required for the p+p
     quasi-free reaction

211) Added eta -> pi pi gamma matrix element in <eta_decays>

212) Fixed bug in PBulkDecay: Sometimes the parent particles have 
     been overwritten.
     Changed in this contex the printout of the new distributions

213) Added a priority to each bulk class, which is used in 
     PReaction::AddBulk() to shift the file inputs to be called
     before the unpacked filter of feature 209)

214) Very important notice:
     Changed PProjector loop such that only active particles are 
     considered. This is important for fireball macros (multiplicity
     sampling). Then, unstable particles are used for online histograms
     only if allParticles=true.
     Therefore, the default value of allParticles in the PReaction ctor 
     has been set to 1.

215) Added a lot of aliases, e.g. D0->Delta0

216) Added strangeness plugin

217) Added ExecAll("init") in PReaction/PDecayManager ctor
     -> call all enabled plugins, which allows for "tentative" plugins

218) Added fairroot directory for inline event generation

219) Added flag in PReaction for inline event generation (for 218)

                                        I. Froehlich
                                        IKF, 14/10/2009


V5.33:
======

220) Added Pluto version as batch: _system_version
     (maybe helpful for filter versions)

221) Added a define in PUtils.h for FAIRROOT

222) Fixed bug in PDecayManager (adding bulk classes),
     rep. by A. Dybczak

223) Added error check for multiple embedded particles
     (see _system_embedded_particle_projector)

                                        I. Froehlich
                                        IKF, 04/11/2009

V5.34:
======

224) Fixed bug in bulk decay (wrong pointer of parent for the
     distributions in PChannel)

225) Increased speed of thermal sampling when using more
     then one decay index by switching off the partial width

226) Added some more #include needed for new compiler versions

227) Fixed bug in PDataBase which appeared with gcc version 4.4.1

228) Added pn scattering polar angle, parameterized from SAID,
     valid between 0-3000MeV (done by Mirian Tabidze, ANKE/PAX)

                                        I. Froehlich
                                        IKF, 15/01/2010
V5.34.1:
========

229) Added the option to use arguments in the batch scripting
     e.g.: [part]->SetM(..)

230) Added class PHadronDecayM1N for the mass sampling for 
     1 unstable hadron and N stable hadrons

V5.35:
======

231) Made sure in PReaction that filter and histograms use
     two different PProjectors

232) Added UseMesh option in PFireballs (still playing)

233) Added gosub, return and exit in PBatch

234) Fixed bugs in PBatch: internal command with ->X() * x were not
     recognized correctly. CrackMethodArgs was not called for old
     methods. In the echo command, wrong variables have been taken.

235) Added a global Batch, makeGlobalBatch(), for single line execution

236) Added all PUtilsREngine commands to PBatch, such that
     x = sampleFlat(), e.g., is working

237) Added defaults() in PParticle

238) Added granddaughters to the distribution template. In this context,
     added daughter array to PParticle, and SetDaughter() method to PChannel

239) Added feature of envelope models to PReaction

240) Fixed 2 bugs:
     - In PHadronDecayM3 the 3-body p.s. was broken
     - In PBreitWigner the didx was not propagated correctly

241) Changed the number of meshpoints for the partial decay width
     to 3*Npx

242) Added "_w=..." in PProjector to overwrite weight

243) Fixed bug (incorrect sign in t/u calculation) in PDeltaAngularDistribution 
     (T. Liu and B. Ramstein). This was visible in the OBE decay angle.

244) Exchanged masses of antisigma- and antisigma+, found by V. Pechenov

245) Catched NAN in PMesh::LinearInterpolation


                                        I. Froehlich
                                        IKF, 09/07/2010

V5.36:
======

246) Added correct phase space for Resonance -> N gamma

247) Added TF1 function for customized Fermi models

248) Added: _system_weight_version, _system_unstable_width,
            _event_plane, _event_impact_param, _event_seqnr,
	    _event_vertex_x, _event_vertex_y, _event_vertex_z
     to replace the static members in PData to allow batch changes

249) Changed local variables in PParticle.h and PChannelModel.h
     to avoid hidden members

250) Added max weight value in PDistribution

251) Changed form factor link in plugins/eta_decays/PEtaPiPiGamma
     and added demo FF model PEtaPiPiGammaFF

252) First steps in PBatch to add variables as particle numbers
     (e.g. [p,num])

253) Disabled "add-warning" which was caused by auto-enabled models

254) Fixed bug in PChannel (num_not_finalized not initialized for fireballs)

255) Added PF2-class (inherited from TF2) to allow for more flexibility
     for the GetRandom2-sampling

256) In this context: added PFireball::SetEpsilon to set the resolution
     and changed the TF2 objects to PF2

257) Added more Set()-methods in PStaticData, e.g. for the mass range
     of particles

258) Added mesh in PEEDirectDecay, this speeds up the "slow w"
     in PFireballs with a factor of 100

259) Changed the ROOT-file branches "Impact" and "Phi" to Double_t
     to be compatible with the batch format

260) Added flow (v1,v2) to the independent rapitidy/mt sampling in PFireball

261) Added makefile for plugins & fairsoft

                                        I. Froehlich
                                        IKF, 24/09/2010


V5.37:
======

262) Moved the production of a single resonance from PChannel to a
     dedicated model (PFixedProduction)

263) In this context: changed PStdModels and added section for
     PFixedProduction

264) Changed the status error flags in PChannel (wip)

265) Fixed 2 bugs in PFixedDecay: ClassImp(PFixedDecay) appeared 2x, and
     primary_key had to be used instead of "key"

266) Changed PTCrossWeight such that for masses > last point the
     value of the last point fixed is used (because TGraph with 
     spline option can diverge after the last point)

267) New parser for PReaction. The energy string supports now the batch syntax
     with the options _T1, _T2, _P1, _P2 as kinetic beam energy/momentum and
     _theta1, _theta2, _phi as beam inclination. This was done (together with
     262) to support collider experiments.

268) Fixed severe bug in PBatch which neglected the numbers in 
     [p,1], [p,2], .... (this was a mistake coming with 252)
	
269) Following suggestions of V. Hejny the class PAngularDistributions has been 
     overhauled     

270) Fixed problem in PBatch with negative numbers

271) Changed goto/gosub in PBatch such that it works also with 
     standalone batches. Added update flag for variables
     used in [id,$num]. Added some more warnings and error 
     messages when handling this syntax.

272) Added link to database values in PBatch, like "eta.mass"

273) In this context: changed the position counter in PProjector/PBatch
     to npar/cpos

274) Changed "if" in PBatch such that the condition must exactly be non-zero 
     for non-execution

275) Added PSimpleVMDFF as a model for the rare eta decays

276) Start to add the decay eta -> pipi e+e- from A. Wirzba

277) Repaired the problem that templates with more than one parent-sibling
     were not regognized. In this context, the ResetRelatives in PDistribution
     and SetSiblings in PChannel have been overhauled.

278) Added Error()-message when one tries to add non-parent/daugher relatives
     of a primary model. Moved some private members from PChannelModel to
     PDistribution Removed this feature for fermi models.

279) One can use "makeDistributionManager()->ExecAll();" to activate all
     plugins and therefore aviod conflicts with AddParticle()

280) Added form factor input to PEtaDoubleDalitz

281) Improved printout in PChannel, catched some more special cases in PBatch
     
282) Added automatic increase of max_weight in PAngularDistribution

283) Separated name-space of the linked-lists of batch_commands and
     model_defs. This should avoid possible conflicts and mistakes
     done in the future. 

284) Changed PDalitzDecay to use GetSecondaryModel

285) Cleaned up MakeDirectoryEntry in StaticData and AddListEntry to allow 
     the addition of already existing data base entries.

286) Added "AddEquation" in PSimpleVMDFF for custom form factors

287) Added "AddEquation" in PDalitzDistribution for customization

288) In this context: added GetBatchParticle in PDynamicData

289) Added (g+p)-Versions in nucleus_fermi (problem rep. by
     M. Dieterle). Fixed the wrong masses for B, K and Zr.

290) Added "absolute" beam momentum function in PBeamSmearing (suggested by M. Dieterle)

291) Check in PChannel for the proper decay key in IdChannel(), and print
     a meaningfull error message

292) The error messages in PChannel::Decay for the  momentum sampling model 
     are now more meaningfull as well

293) Changes in PGenBod: 2 particle identifier (corr1+2) have been
     added. Together with the model "/correlation", these are sampled
     to obtain this mass shape within the genbod model. This can be used
     to have mass shape models in a >2 body decay without the time-consuming
     rejection method. This new method works also in the case of divergences.

294) In this context: added SampleMass in PFunction in order to provide 
     a generic mass sampling model

295) Moved SetVertex in PReaction before the Prologue

296) Added e+e- version to SimpleVMD

297) Finished first version of eta -> pi+ pi- e+ e-

298) Fixed mistake in the angular distribution of eta -> e+ e- e+ e-  
   
                                        I. Froehlich
                                        IKF, 04/01/2011


V5.38:
======

299) Added histogram option in PDalitzDistribution

300) Added _system_max_failed_events

301) Fixed problem that the standard Breit-Wigner model was
     not attached to self-defined particles when using the
     reaction parser 

302) Added ASCII input command "readline{}"

303) Added lower mass limit for Sigma1385

304) Added break condition in PHadronDecayM1::maxBWWeight

305) Fixed the problem that alias was not recognized in the
     set-methods of PStaticData

306) Added _system_particle_stacksize

307) Added UniGen/pdg input -> By using the unigen input
     almost all event generators can be used as an input 
     (for a complete list see the web-page of UniGen).
     The PDG plugin adds the particle codes required
     for UniGen

308) Added "push" command in the batch syntax to
     have an easy method for pushing batch
     particles into the event stream

309) Added ASCII output for PProjector and PReaction

310) Improved the Print()-method for PBatch (w.i.p.)

311) Added the decay of N* resonances in dalitz_mod.	
     (provided by A. Rustamov)

312) Fixed a "deadlock" in PReaction which occured when a 
     batch script made all particles inactive and therefore
     produced an empty event. In this context, pushed
     particles in PProjector get the proper decay flag (=undecayed)

313) Changed PUtils.h (samplePoisson was not working in batch mode)

314) Changed number of lines in PDataBase to 5000

315) Added storage ("batch_models") for channel models in PDataBase.
     Changed PDistributionManagerUtil such that channel models
     are added to data base. (done for 316)

316) Added another feature to PBatch: channel model methods
     can be accessed via:
     	 {modelname}->X()
     (this works at the moment not in conjunction with PFormula
      when modelname has a '+' or '-' in its name)

317) Fixed bug in PBatch::ReplaceAll: 
     (var1 - var2) was not replaced

318) Added optional m1n model for 2 stable, 1 unstable products
     (makeStaticData()->SetBatchValue("_system_force_m1n",1);)

319) Added "hard cut" for the rho -> ee decay at 2pi 

320) Overloading for function call in PBatch implemented

321) Fixed multiple lines input/output, added corresponding
     description in script manual. Number of readline args enhanced
     to 7.

322) Also unstable (=decayed) particles are now forwarded to the PProjector,
     as requested by some users. If this is not compatible, the command
     makeStaticData()->SetBatchValue("_system_inactivate_decayed_particles",1);
     recovers the old scheme

323) Fixed memory leak in PProjector which appeared with composite particles
     
324) Added format string (the same as in the c-printf) to the echo command,
     like "echo $%i%name" for printing the variable "name" as an
     integer or "echo $%0#.8x%name" as an 8-char hex numbers.

325) Added flag to disable partial shape sampling in PChannel. Re-weighting 
     for sampling models in PChannel restricted to GetExpectedWeightMean() > 0
     
326) Fixed problem in PStaticData::AddDecay with alias names

                                        I. Froehlich
                                        IKF, 15/07/2011

V5.40:
======

327) Added "PAnyDistribution" which works as a general purpose
     rejection distribution. A batch script line can be used
     to calculate a probaility distribution for rejection.
     For non-uniform distributions a cache can be added
     to store the undistorted distribution

328) Added build-in "->GetBeam()" and "->GetTarget()" methods
     in PBatch in order to read the original beam and target
     PParticles back from the composite 
     (e.g. "beam = [p+p]->GetBeam()")

329) Overhauled in PBatch the way to determine the type of the
     constructed object. The old method was not stable when
     one used a particle name as a double (e.g. "t=...").

330) Changed fillflag in PProjector->AddHistogram as follows:
     fillflag=0: do not fill (read-only with Eval())
             =1: fill with weight
             =2: fill without weight

331) Fixed bug: "_w" was not written back to the stream particles

332) Fixed bug that in mixed fireball modes only the first fireball
     got the defined vertex (found by L. Rehnisch)

333) Fixed bug in PResonanceDalitz: A m*m-factor was missing for
     the resonances with spin=1 (rep. by A. Dybczak)
     Same class: spin=5 resonances prepared (for the addition 
     of higher resonances in the next version)

                                        I. Froehlich
                                        IKF, 03/11/2011

V5.41:
======

334) Removed the "long double" in PSaidLowEnergy.cc as this was
     conflicting with compilation on MAC OS (rep. by Mohammad Al-Turany)

335) Added new resonances (N1680, D1700 and D1905) in PPDGPlugin.cc, which
     have been prepared by A. Dybczak and H. Kuc. Can be activated with:
     makeDistributionManager()->Exec("pdg:extend_resonances");

336) Changed PDistributionManager such that RequiresPlugin() can be used
     with a full command.

337) Found and fixed several bugs in PHadronDecayM1N: fIntegral was
     not cleaned in UpdateMesh(), old_parent_mass was never set, range
     was not defined to be the particle mass.

338) Added Get/SetMin/Max methods in PChannelModel. Added ClearIntegral for
     GetRandom update.

339) Some changes in PHadronDecayM3 to work better in near-threshold
     reactions (wip)

340) Added SetRapidityDistribution to PFireBall (not yet fully tested)

341) Added some more features in PReaction, PBulkDecay, PProjector and
     PBatch, namely to forward a number of "branch keys". This should
     allow to use a new command "Branch(newname);" in PBatch.

342) Added Set/GetEnhanceChannelBR in PStaticData which allows to
     scale the "branching ratio" for the bulk decay.

343) Fixed several bugs:
     * TF3 was not correctly implemented in PProjector.cc (rep. by
     C. Redmer) 
     * changed pow to powl in plugins/scatter_mod/PSaidLowEnergy.cc
     (rep. by M. Kunkel)
     * Increased meshsize ("maxmesh" in data base) for the total width
     of the N*1535 to 2000, because the old value (300) lead to a small spike
     close to threshold
     * Fixed bug in PFileInput (rep. by R. Holzmann)

344) Redesigned flag communication between PBatch and PProjector

345) Added multiple particle arrays in PReaction and PProjector for
     pushing particles on the new branches (see also 341 and 344)

346) Added "else" command in PBatch

347) Catched problem with out-of-bounds masses in the unigen converter
     (rep. by R. Holzmann).

348) Added global batch histograms in PDynamicData

349) Changed Eval command in PBatch such that it works with
     arguments. In addition, global histograms can be used

350) Added "==" comparator in PBatch

351) Added TGraph(2D) to PBatch and PProjector

352) Added batch evaluation to PF2

353) Added new classes PF1 and PF3 (Pluto function with dimension=1 and 3)

354) Added SetSourceId to PChannel to overwrite the source id from parent

355) Fixed bug in PHadronDecayM2 (endless loop after abort of event, 
     rep. by Hubert Kuc)

                                        I. Froehlich
                                        IKF, 13/11/2012

V5.42:
======

356) Fixed bug: bulk interfaces were not working with the decay manager 
     (rep. by R. Holzmann and M. Gumberidze)

357) Added particle reset in PChannel::Decay (rep. by S. Wagner)

                                        I. Froehlich
                                        IKF, 13/03/2013

V5.43:
======

358) Added Do() method and bulk interface also to PChannel

359) Fixed bug that PGenBod-loop was hanging in some rare cases
     (rep. by R. Lalik).

360) Fixed bug that lead to crashes for internal methods with
     number of argument zero (e.g. ->SampleTotalMass()), rep.
     by E. Krebs.

361) Added PDensityMatrix for sampling based on 1-, 2, and
     3-dimensional matrices represented by ASCII files. This work was
     triggered by E. Bratkovskaya.

362) Enabled 1-dimension functions (already defined in PThermal) for
     quasi-stable particles (solving a problem with thermal photon,
     rep. by C. Behnke).
     Added "_system_thermal_unstable_width" in this context.

363) Added beam line transport code (work done by T. Hennino) in
     plugins/beamline. Still w.i.p. Added filter variable for beam tube.

364) Fixed strange peak in dimuon spectrum in "w -> pi0 mumu" (rep. by E. Krebs)

365) Added "Delta -> N dimuon" to the list of Dalitz decays in PData::IsDalitz

366) Made enhancement configuration for free bulk decays more elegant
     (req. by J. Markert)

367) Changed file output interface and made some changes in PReaction in order
     to add the new branches.
     
369) Added template for gamma conversion
     
370) Added GetRandom function to PBatch for sampling from histograms,
     added GetRandomX/Y functions to sample from histogram slices

371) Fixed bug in PFireball (corrected by R. Holzmann and M. Lorenz)

372) Implemented gamma conversion (R. Holzmann and C. Behnke)


                                        I. Froehlich
                                        IKF, 21/07/2015
                                        
                                        
dev

373) Fixed bug in vertex setting in PReaction, rep. by J. Markert

374) Fixed bug in PSaid (double delete), rep. by J. Markert

375) Fixed bug in thermal sampling (mass out of bounds, rep. by R. Holzmann)

376) Fixed bug in random number generation (seed not used in
     TF1->GetRandom in PFireball, rep. by R. Holzmann and J. Markert)

377) Fixed bug in PDecayManager (crash seen with newer linux versions,
     rep. by K. Nowakowski) 

378) Fixed bug in PDecayChannel dtor, rep. by J. Markert

379) Fixed bug in PHUrEventHeader.h (missing TObject inheritance)

380) Added histogram smearing option in PBeamSmearing

About

GSI HADES Pluto - A Monte Carlo simulation tool for hadronic physics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages