GeneratorInterface
Hydjet2Interface
src
InitialState.cc
Go to the documentation of this file.
1
/*
2
Ludmila Malinina malinina@lav01.sinp.msu.ru, SINP MSU/Moscow and JINR/Dubna
3
Ionut Arsene i.c.arsene@fys.uio.no, Oslo University and ISS-Bucharest
4
Date : 2007/05/30
5
*/
6
7
#include "TVector3.h"
8
#include "
GeneratorInterface/Hydjet2Interface/interface/InitialState.h
"
9
#include "
GeneratorInterface/Hydjet2Interface/interface/HadronDecayer.h
"
10
#include <iostream>
11
#include <fstream>
12
13
void
InitialState::Evolve
(
List_t
&secondaries,
ParticleAllocator
&allocator,
double
weakDecayLimit) {
14
// Particle indexes are set for primaries already from InitialStateHydjet::Initialize()
15
16
// particle list iterators
17
LPIT_t
it;
18
LPIT_t
e
;
19
20
// Decay loop
21
// Note that the decay products are always added at the end of list so the unstable products are
22
// decayed when the iterator reaches them (used for cascade decays)
23
for
(it = secondaries.begin(),
e
= secondaries.end(); it !=
e
; ++it) {
24
// if the decay procedure was applied already skip ... (e.g. particles from pythia history information)
25
if
(it->GetDecayed()) {
26
continue
;
27
}
28
29
// generate the decay time; if particle is stable or set to stable decayTime=0
30
double
decayTime =
GetDecayTime
(*it, weakDecayLimit);
31
it->SetLastInterTime(it->T() + decayTime);
32
TVector3
shift
(it->Mom().BoostVector());
33
shift
*= decayTime;
34
it->SetDecayed();
35
36
// if decayTime>0 then apply the decay procedure (only 2 or 3 body decays)
37
if
(decayTime > 0.) {
38
it->Pos(it->Pos() += TLorentzVector(
shift
, 0.));
39
it->T(it->T() + decayTime);
40
Decay
(secondaries, *it, allocator,
fDatabase
);
41
}
42
// if particle is stable just continue
43
}
44
}
ParticleAllocator
Definition:
Particle.h:177
HadronDecayer.h
List_t
std::list< Particle > List_t
Definition:
Particle.h:174
Decay
void Decay(List_t &output, Particle &p, ParticleAllocator &allocator, DatabasePDG *database)
Definition:
HadronDecayer.cc:56
InitialState::fDatabase
DatabasePDG * fDatabase
Definition:
InitialState.h:16
InitialState.h
InitialState::Evolve
virtual void Evolve(List_t &secondaries, ParticleAllocator &allocator, double weakDecayLimit)
Definition:
InitialState.cc:13
edm::shift
static unsigned const int shift
Definition:
LuminosityBlockID.cc:7
GetDecayTime
double GetDecayTime(const Particle &p, double weakDecayLimit)
Definition:
HadronDecayer.cc:34
LPIT_t
std::list< Particle >::iterator LPIT_t
Definition:
Particle.h:175
MillePedeFileConverter_cfg.e
e
Definition:
MillePedeFileConverter_cfg.py:37
Generated for CMSSW Reference Manual by
1.8.16