Main Page
Namespaces
Classes
Package Documentation
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
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
}
List_t
std::list< Particle > List_t
Definition:
Particle.h:174
ParticleAllocator
Definition:
Particle.h:177
Decay
void Decay(List_t &output, Particle &p, ParticleAllocator &allocator, DatabasePDG *database)
Definition:
HadronDecayer.cc:56
InitialState::Evolve
virtual void Evolve(List_t &secondaries, ParticleAllocator &allocator, double weakDecayLimit)
Definition:
InitialState.cc:13
alignCSCRings.e
list e
Definition:
alignCSCRings.py:91
GetDecayTime
double GetDecayTime(const Particle &p, double weakDecayLimit)
Definition:
HadronDecayer.cc:34
InitialState.h
InitialState::fDatabase
DatabasePDG * fDatabase
Definition:
InitialState.h:16
HadronDecayer.h
edm::shift
static unsigned int const shift
Definition:
LuminosityBlockID.cc:7
LPIT_t
std::list< Particle >::iterator LPIT_t
Definition:
Particle.h:175
Generated for CMSSW Reference Manual by
1.8.5