Main Page
Namespaces
Classes
Package Documentation
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
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
25
// if the decay procedure was applied already skip ... (e.g. particles from pythia history information)
26
if
(it->GetDecayed()) {
27
continue
;
28
}
29
30
// generate the decay time; if particle is stable or set to stable decayTime=0
31
double
decayTime =
GetDecayTime
(*it, weakDecayLimit);
32
it->SetLastInterTime(it->T() + decayTime);
33
TVector3
shift
(it->Mom().BoostVector());
34
shift
*= decayTime;
35
it->SetDecayed();
36
37
// if decayTime>0 then apply the decay procedure (only 2 or 3 body decays)
38
if
(decayTime > 0.) {
39
40
it->Pos(it->Pos() += TLorentzVector(shift, 0.));
41
it->T(it->T() + decayTime);
42
Decay
(secondaries, *it, allocator,
fDatabase
);
43
}
44
// if particle is stable just continue
45
}
46
}
List_t
std::list< Particle > List_t
Definition:
Particle.h:143
ParticleAllocator
Definition:
Particle.h:146
Decay
void Decay(List_t &output, Particle &p, ParticleAllocator &allocator, DatabasePDG *database)
Definition:
HadronDecayer.cc:57
InitialState::Evolve
virtual void Evolve(List_t &secondaries, ParticleAllocator &allocator, double weakDecayLimit)
Definition:
InitialState.cc:13
alignCSCRings.e
list e
Definition:
alignCSCRings.py:90
GetDecayTime
double GetDecayTime(const Particle &p, double weakDecayLimit)
Definition:
HadronDecayer.cc:35
InitialState.h
InitialState::fDatabase
DatabasePDG * fDatabase
Definition:
InitialState.h:16
HadronDecayer.h
edm::shift
static unsigned int const shift
Definition:
LuminosityBlockID.cc:9
LPIT_t
std::list< Particle >::iterator LPIT_t
Definition:
Particle.h:144
Generated for CMSSW Reference Manual by
1.8.5