EIC Software
Reference for
EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
DecayFinder.h
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file DecayFinder.h
1
#ifndef DECAYFINDER_DECAYFINDER_H
2
#define DECAYFINDER_DECAYFINDER_H
3
4
//sPHENIX stuff
5
#include <
fun4all/SubsysReco.h
>
6
7
#include <cstddef>
// for NULL
8
#include <string>
9
#include <vector>
10
#include <utility>
// for pair
11
12
class
DecayFinderContainer_v1
;
13
class
PHCompositeNode
;
14
class
PHHepMCGenEvent
;
15
class
PHHepMCGenEventMap
;
16
namespace
HepMC {
class
GenParticle; }
17
18
class
DecayFinder
:
public
SubsysReco
19
{
20
public
:
21
typedef
std::vector<std::pair<int, int>>
Decay
;
22
23
DecayFinder
();
24
25
explicit
DecayFinder
(
const
std::string &
name
);
26
27
virtual
~DecayFinder
() {}
28
29
int
Init
(
PHCompositeNode
*topNode);
30
31
int
process_event
(
PHCompositeNode
*topNode);
32
33
int
End
(
PHCompositeNode
*topNode);
34
35
int
parseDecayDescriptor
();
36
37
bool
findDecay
(
PHCompositeNode
*topNode);
38
39
bool
findParticle
(std::string
particle
);
40
41
int
checkIfCorrectParticle
(HepMC::GenParticle *
particle
,
bool
&trackFailedPT,
bool
&trackFailedETA);
42
43
int
deleteElement
(
int
arr[],
int
n
,
int
x
);
44
45
void
multiplyVectorByScalarAndSort
(std::vector<int> &
v
,
int
k
);
46
47
int
get_pdgcode
(std::string
name
);
48
49
int
get_charge
(std::string
name
);
50
51
int
createDecayNode
(
PHCompositeNode
*topNode);
52
53
void
fillDecayNode
(
PHCompositeNode
* topNode,
Decay
decay);
54
55
void
printInfo
();
56
57
void
printNode
(
PHCompositeNode
*topNode);
58
59
//User configuration
81
void
setDecayDescriptor
(
const
std::string &decayDescriptor) {
m_decayDescriptor
= decayDescriptor; }
87
void
triggerOnDecay
(
bool
trigger) {
m_triggerOnDecay
= trigger; }
91
void
allowPhotons
(
bool
allow) {
m_allowPhotons
= allow; }
95
void
allowPi0
(
bool
allow) {
m_allowPi0
= allow; }
100
void
saveDST
(
bool
save) {
m_save_dst
= save; }
105
void
setNodeName
(
const
std::string &
name
) {
m_container_name
=
name
; }
106
107
private
:
108
PHHepMCGenEventMap
*
m_geneventmap
=
nullptr
;
109
PHHepMCGenEvent
*
m_genevt
=
nullptr
;
110
111
int
m_counter
= 0;
112
int
m_nCandFail_pT
= 0;
113
int
m_nCandFail_eta
= 0;
114
int
m_nCandFail_pT_and_eta
= 0;
115
int
m_nCandReconstructable
= 0;
116
117
bool
m_getChargeConjugate
=
false
;
118
119
std::string
m_decayDescriptor
;
120
bool
m_triggerOnDecay
=
false
;
121
bool
m_allowPi0
=
false
;
122
bool
m_allowPhotons
=
false
;
123
124
int
m_mother_ID
= 0;
125
std::vector<int>
m_intermediates_ID
;
126
std::vector<int>
m_daughters_ID
;
127
128
int
m_nTracksFromMother
= 0;
129
std::vector<int>
m_nTracksFromIntermediates
;
130
131
std::vector<int>
m_motherDecayProducts
;
132
133
bool
m_save_dst
;
134
DecayFinderContainer_v1
*
m_decayMap
=
nullptr
;
135
Decay
decayChain
;
136
std::string
m_nodeName
;
137
std::string
m_container_name
;
138
};
139
140
#endif //DECAYFINDER_DECAYFINDER_H
fun4all_coresoftware
blob
master
generators
decayFinder
DecayFinder.h
Built by
Jin Huang
. updated:
Mon Jan 22 2024 12:43:38
using
1.8.2 with
EIC GitHub integration