-
Notifications
You must be signed in to change notification settings - Fork 0
/
AnalysisMCTree.h
95 lines (77 loc) · 2.66 KB
/
AnalysisMCTree.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/**
* @file PandoraAnalysis/include/AnalysisMCTree.h
*
* @brief Header file for the analysis mc tree class.
*
* $Log: $
*/
#ifndef ANALYSIS_MC_TREE_H
#define ANALYSIS_MC_TREE_H 1
#include "EVENT/LCCollection.h"
#include "EVENT/MCParticle.h"
#include "lcio.h"
namespace pandora_analysis
{
typedef std::vector<lcio::MCParticle *> MCParticleVector;
/**
* @brief analysis mc tree class
*/
class AnalysisMCTree
{
public:
/**
* @brief Constructor
*
* @param pLCCollection address of the lc collection
* @param lookForQuarksWithMother flag to look for quarks with mother (by default, the primary quarks are the ones having
* no parents; but in the SLIC framework, there are no such quarks; enable this flag if you are working with files
* generated in the SLIC environment)
*/
AnalysisMCTree(const EVENT::LCCollection *const pLCCollection, const bool lookForQuarksWithMotherZ);
/**
* @brief Destructor
*/
~AnalysisMCTree();
/**
* @brief Get mc quarks
*
* @return the mc quark vector
*/
const MCParticleVector &GetMCQuarks() const;
/**
* @brief Get mc pfos
*
* @return the mc pfo vector
*/
const MCParticleVector &GetMCPfos() const;
private:
/**
* @brief Store mc quarks
*
* @param pLCCollection address of the lc collection
* @param lookForQuarksWithMother flag to look for quarks with mother (by default, the primary quarks are the ones having
* no parents; but in the SLIC framework, there are no such quarks; enable this flag if you are working with files
* generated in the SLIC environment)
*/
void StoreMCQuarks(const EVENT::LCCollection *const pLCCollection, const bool lookForQuarksWithMotherZ);
/**
* @brief Store mc pfos
*
* @param pLCCollection address of the lc collection
*/
void StoreMCPfos(const EVENT::LCCollection *const pLCCollection);
MCParticleVector m_mcQuarks; ///< The mc quark vector
MCParticleVector m_mcPFOs; ///< The mc pfo vector
};
//------------------------------------------------------------------------------------------------------------------------------------------
inline const MCParticleVector &AnalysisMCTree::GetMCQuarks() const
{
return m_mcQuarks;
}
//------------------------------------------------------------------------------------------------------------------------------------------
inline const MCParticleVector &AnalysisMCTree::GetMCPfos() const
{
return m_mcPFOs;
}
} // namespace pandora_analysis
#endif // #ifndef ANALYSIS_MC_TREE_H