Main Page
Namespaces
Classes
Package Documentation
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
SimDataFormats
GeneratorProducts
interface
HepMCProduct.h
Go to the documentation of this file.
1
#ifndef SimDataFormats_GeneratorProducts_HepMCProduct_h
2
#define SimDataFormats_GeneratorProducts_HepMCProduct_h
3
9
#include "
DataFormats/Common/interface/Ref.h
"
10
#include <TMatrixD.h>
11
#include <HepMC/GenEvent.h>
12
#include <cstddef>
13
14
namespace
HepMC {
15
class
FourVector;
16
class
GenParticle
;
17
class
GenVertex;
18
}
// namespace HepMC
19
20
namespace
edm {
21
class
HepMCProduct
{
22
public
:
23
HepMCProduct
() :
evt_
(nullptr),
isVtxGenApplied_
(
false
),
isVtxBoostApplied_
(
false
),
isPBoostApplied_
(
false
) {}
24
25
explicit
HepMCProduct
(
HepMC::GenEvent
*evt);
26
virtual
~HepMCProduct
();
27
28
void
addHepMCData
(
HepMC::GenEvent
*evt);
29
30
void
applyVtxGen
(HepMC::FourVector
const
*vtxShift) {
applyVtxGen
(*vtxShift); }
31
void
applyVtxGen
(HepMC::FourVector
const
&vtxShift);
32
33
void
boostToLab
(TMatrixD
const
*lorentz,
std::string
const
&
type
);
34
35
const
HepMC::GenEvent
&
getHepMCData
()
const
;
36
37
const
HepMC::GenEvent
*
GetEvent
()
const
{
return
evt_
; }
38
39
bool
isVtxGenApplied
()
const
{
return
isVtxGenApplied_
; }
40
bool
isVtxBoostApplied
()
const
{
return
isVtxBoostApplied_
; }
41
bool
isPBoostApplied
()
const
{
return
isPBoostApplied_
; }
42
43
HepMCProduct
(
HepMCProduct
const
&orig);
44
HepMCProduct
&
operator=
(
HepMCProduct
const
&other);
45
HepMCProduct
(
HepMCProduct
&&orig);
46
HepMCProduct
&
operator=
(
HepMCProduct
&&other);
47
void
swap
(
HepMCProduct
&other);
48
49
private
:
50
HepMC::GenEvent
*
evt_
;
51
52
bool
isVtxGenApplied_
;
53
bool
isVtxBoostApplied_
;
54
bool
isPBoostApplied_
;
55
};
56
57
// This allows edm::Refs to work with HepMCProduct
58
namespace
refhelper {
59
template
<>
60
struct
FindTrait
<edm::
HepMCProduct
,
HepMC::GenParticle
> {
61
struct
Find {
62
using
first_argument_type
=
edm::HepMCProduct
const
&;
63
using
second_argument_type
= int;
64
using
result_type
=
HepMC::GenParticle
const
*;
65
66
result_type
operator()
(
first_argument_type
iContainer,
second_argument_type
iBarCode) {
67
return
iContainer.getHepMCData().barcode_to_particle(iBarCode);
68
}
69
};
70
71
typedef
Find
value
;
72
};
73
74
template
<>
75
struct
FindTrait
<edm::
HepMCProduct
, HepMC::GenVertex> {
76
struct
Find {
77
using
first_argument_type
=
edm::HepMCProduct
const
&;
78
using
second_argument_type
= int;
79
using
result_type
= HepMC::GenVertex
const
*;
80
81
result_type
operator()
(
first_argument_type
iContainer,
second_argument_type
iBarCode) {
82
return
iContainer.getHepMCData().barcode_to_vertex(iBarCode);
83
}
84
};
85
86
typedef
Find
value
;
87
};
88
}
// namespace refhelper
89
}
// namespace edm
90
91
#endif // SimDataFormats_GeneratorProducts_HepMCProduct_h
GenParticle.GenParticle
GenParticle
Definition:
GenParticle.py:18
edm::HepMCProduct::HepMCProduct
HepMCProduct()
Definition:
HepMCProduct.h:23
edm::refhelper::FindTrait< edm::HepMCProduct, HepMC::GenParticle >::Find::result_type
HepMC::GenParticle const * result_type
Definition:
HepMCProduct.h:64
edm::HepMCProduct::~HepMCProduct
virtual ~HepMCProduct()
Definition:
HepMCProduct.cc:20
edm::HepMCProduct::isVtxBoostApplied
bool isVtxBoostApplied() const
Definition:
HepMCProduct.h:40
funct::false
false
Definition:
Factorize.h:29
edm::HepMCProduct::swap
void swap(HepMCProduct &other)
Definition:
HepMCProduct.cc:133
edm::HepMCProduct::addHepMCData
void addHepMCData(HepMC::GenEvent *evt)
Definition:
HepMCProduct.cc:28
edm::HepMCProduct::evt_
HepMC::GenEvent * evt_
Definition:
HepMCProduct.h:50
edm::refhelper::FindTrait< edm::HepMCProduct, HepMC::GenVertex >::Find::first_argument_type
edm::HepMCProduct const & first_argument_type
Definition:
HepMCProduct.h:77
edm::refhelper::FindTrait< edm::HepMCProduct, HepMC::GenVertex >::Find::second_argument_type
int second_argument_type
Definition:
HepMCProduct.h:78
edm::HepMCProduct::isPBoostApplied_
bool isPBoostApplied_
Definition:
HepMCProduct.h:54
type
type
Definition:
SiPixelVCal_PayloadInspector.cc:39
edm::refhelper::FindTrait< edm::HepMCProduct, HepMC::GenParticle >::Find::first_argument_type
edm::HepMCProduct const & first_argument_type
Definition:
HepMCProduct.h:62
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition:
AlCaHLTBitMon_QueryRunRegistry.py:256
edm::HepMCProduct::operator=
HepMCProduct & operator=(HepMCProduct const &other)
Definition:
HepMCProduct.cc:142
HepMC::GenEvent
Definition:
hepmc_rootio.cc:9
edm::HepMCProduct::getHepMCData
const HepMC::GenEvent & getHepMCData() const
Definition:
HepMCProduct.cc:120
edm::HepMCProduct::isVtxGenApplied_
bool isVtxGenApplied_
Definition:
HepMCProduct.h:52
edm::refhelper::FindTrait< edm::HepMCProduct, HepMC::GenVertex >::value
Find value
Definition:
HepMCProduct.h:86
edm::HepMCProduct::applyVtxGen
void applyVtxGen(HepMC::FourVector const *vtxShift)
Definition:
HepMCProduct.h:30
edm::HepMCProduct::isPBoostApplied
bool isPBoostApplied() const
Definition:
HepMCProduct.h:41
edm::refhelper::FindTrait< edm::HepMCProduct, HepMC::GenParticle >::Find::second_argument_type
int second_argument_type
Definition:
HepMCProduct.h:63
edm::HepMCProduct::GetEvent
const HepMC::GenEvent * GetEvent() const
Definition:
HepMCProduct.h:37
edm::HepMCProduct::boostToLab
void boostToLab(TMatrixD const *lorentz, std::string const &type)
Definition:
HepMCProduct.cc:58
Ref.h
edm::HepMCProduct::isVtxGenApplied
bool isVtxGenApplied() const
Definition:
HepMCProduct.h:39
edm::HepMCProduct::isVtxBoostApplied_
bool isVtxBoostApplied_
Definition:
HepMCProduct.h:53
edm::HepMCProduct
Definition:
HepMCProduct.h:21
edm::refhelper::FindTrait< edm::HepMCProduct, HepMC::GenVertex >::Find::operator()
result_type operator()(first_argument_type iContainer, second_argument_type iBarCode)
Definition:
HepMCProduct.h:81
edm::refhelper::FindTrait< edm::HepMCProduct, HepMC::GenParticle >::value
Find value
Definition:
HepMCProduct.h:71
edm::refhelper::FindTrait< edm::HepMCProduct, HepMC::GenVertex >::Find::result_type
HepMC::GenVertex const * result_type
Definition:
HepMCProduct.h:79
edm::refhelper::FindTrait
Definition:
RefTraits.h:41
edm::refhelper::FindTrait< edm::HepMCProduct, HepMC::GenParticle >::Find::operator()
result_type operator()(first_argument_type iContainer, second_argument_type iBarCode)
Definition:
HepMCProduct.h:66
Generated for CMSSW Reference Manual by
1.8.5