2#ifndef RECONSTRUCTEDPARTICLE_ANALYZERS_H
3#define RECONSTRUCTEDPARTICLE_ANALYZERS_H
10#include "TLorentzVector.h"
11#include "ROOT/RVec.hxx"
14#include "edm4hep/ReconstructedParticleData.h"
15#include "edm4hep/ParticleIDData.h"
19namespace ReconstructedParticle{
25 ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData>
operator()(ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> legs);
32 ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData>
operator() (ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> in) ;
39 float operator() (ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> in) ;
47 ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData>
48 operator()(ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> in);
56 ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData>
57 operator()(ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> in);
64 ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData>
operator() (ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> in);
71 ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData>
operator() (ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> in);
76 sel_p(
float arg_min_p,
float arg_max_p = 1e10);
79 ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData>
operator() (ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> in);
87 ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData>
operator() (ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> in);
94 ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData>
operator()(ROOT::VecOps::RVec<float> angle, ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> in);
101 ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData>
operator() (ROOT::VecOps::RVec<bool> tags, ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> in);
105 ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData>
get(ROOT::VecOps::RVec<int> index, ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> in);
108 ROOT::VecOps::RVec<float>
get_pt(ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> in);
111 ROOT::VecOps::RVec<float>
get_p(ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> in);
114 ROOT::VecOps::RVec<float>
get_px(ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> in);
117 ROOT::VecOps::RVec<float>
get_py(ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> in);
120 ROOT::VecOps::RVec<float>
get_pz(ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> in);
123 ROOT::VecOps::RVec<float>
get_eta(ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> in);
126 ROOT::VecOps::RVec<float>
get_y(ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> in);
129 ROOT::VecOps::RVec<float>
get_theta(ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> in);
132 ROOT::VecOps::RVec<float>
get_phi(ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> in);
135 ROOT::VecOps::RVec<float>
get_e(ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> in);
138 ROOT::VecOps::RVec<float>
get_mass(ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> in);
141 ROOT::VecOps::RVec<float>
get_charge(ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> in);
144 ROOT::VecOps::RVec<int>
get_type(ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> in);
147 ROOT::VecOps::RVec<TLorentzVector>
get_tlv(ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> in);
150 TLorentzVector
get_tlv(ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> in,
int index);
153 TLorentzVector
get_tlv(edm4hep::ReconstructedParticleData in);
156 TLorentzVector
get_P4vis(ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> in);
159 ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData>
merge(ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> x, ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> y);
162 ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData>
remove( ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> x, ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> y);
165 int get_n(ROOT::VecOps::RVec<edm4hep::ReconstructedParticleData> in);
168 ROOT::VecOps::RVec<bool>
getJet_btag(ROOT::VecOps::RVec<int> index, ROOT::VecOps::RVec<edm4hep::ParticleIDData> pid, ROOT::VecOps::RVec<float> values);
TLorentzVector get_P4vis(ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > in)
return visible 4-momentum vector
Definition ReconstructedParticle.cc:306
ROOT::VecOps::RVec< float > get_pz(ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > in)
return the momenta of the input ReconstructedParticles
Definition ReconstructedParticle.cc:380
ROOT::VecOps::RVec< float > get_px(ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > in)
return the momenta of the input ReconstructedParticles
Definition ReconstructedParticle.cc:363
ROOT::VecOps::RVec< float > get_y(ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > in)
return the rapidity of the input ReconstructedParticles
Definition ReconstructedParticle.cc:396
ROOT::VecOps::RVec< float > get_phi(ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > in)
return the phi of the input ReconstructedParticles
Definition ReconstructedParticle.cc:335
ROOT::VecOps::RVec< float > get_mass(ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > in)
return the masses of the input ReconstructedParticles
Definition ReconstructedParticle.cc:317
ROOT::VecOps::RVec< float > get_p(ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > in)
return the momenta of the input ReconstructedParticles
Definition ReconstructedParticle.cc:353
ROOT::VecOps::RVec< TLorentzVector > get_tlv(ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > in)
return the TlorentzVector of the input ReconstructedParticles
Definition ReconstructedParticle.cc:416
ROOT::VecOps::RVec< float > get_eta(ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > in)
return the pseudo-rapidity of the input ReconstructedParticles
Definition ReconstructedParticle.cc:325
ROOT::VecOps::RVec< float > get_py(ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > in)
return the momenta of the input ReconstructedParticles
Definition ReconstructedParticle.cc:372
ROOT::VecOps::RVec< float > get_pt(ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > in)
return the transverse momenta of the input ReconstructedParticles
Definition ReconstructedParticle.cc:243
ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > merge(ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > x, ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > y)
concatenate both input vectors and return the resulting vector
Definition ReconstructedParticle.cc:251
ROOT::VecOps::RVec< float > get_theta(ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > in)
return the theta of the input ReconstructedParticles
Definition ReconstructedParticle.cc:406
ROOT::VecOps::RVec< float > get_e(ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > in)
return the energy of the input ReconstructedParticles
Definition ReconstructedParticle.cc:345
ROOT::VecOps::RVec< bool > getJet_btag(ROOT::VecOps::RVec< int > index, ROOT::VecOps::RVec< edm4hep::ParticleIDData > pid, ROOT::VecOps::RVec< float > values)
returns the bjet flavour
Definition ReconstructedParticle.cc:459
int get_n(ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > in)
return the size of the input collection
Definition ReconstructedParticle.cc:453
int getJet_ntags(ROOT::VecOps::RVec< bool > in)
get number of b-jets
Definition ReconstructedParticle.cc:473
ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > get(ROOT::VecOps::RVec< int > index, ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > in)
return reconstructed particles
Definition ReconstructedParticle.cc:295
ROOT::VecOps::RVec< int > get_type(ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > in)
return the type of the input ReconstructedParticles
Definition ReconstructedParticle.cc:440
ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > remove(ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > x, ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > y)
remove elements of vector y from vector x
Definition ReconstructedParticle.cc:261
ROOT::VecOps::RVec< float > get_charge(ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > in)
return the charges of the input ReconstructedParticles
Definition ReconstructedParticle.cc:388
FCC analyzers collection.
Definition Algorithms.h:15
return the angular separations (min / max / average) between a collection of particles
Definition ReconstructedParticle.h:36
angular_separationBuilder(int arg_delta)
Definition ReconstructedParticle.cc:209
float operator()(ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > in)
Definition ReconstructedParticle.cc:210
int m_delta
Definition ReconstructedParticle.h:38
build the recoil from an arbitrary list of input ReconstructedPartilces and the center of mass energy
Definition ReconstructedParticle.h:29
float m_sqrts
Definition ReconstructedParticle.h:31
recoilBuilder(float arg_sqrts)
Definition ReconstructedParticle.cc:160
ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > operator()(ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > in)
Definition ReconstructedParticle.cc:161
build the resonance from 2 particles from an arbitrary list of input ReconstructedPartilces....
Definition ReconstructedParticle.h:22
resonanceBuilder(float arg_resonance_mass)
Definition ReconstructedParticle.cc:122
float m_resonance_mass
Definition ReconstructedParticle.h:23
ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > operator()(ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > legs)
Definition ReconstructedParticle.cc:123
select ReconstructedParticles by type absolute value Note: type might not correspond to PDG ID
Definition ReconstructedParticle.h:53
const int m_type
Definition ReconstructedParticle.h:55
sel_absType(const int type)
sel_absType
Definition ReconstructedParticle.cc:38
ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > operator()(ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > in)
Definition ReconstructedParticle.cc:45
select a list of reconstructed particles depending on the angle cosTheta axis
Definition ReconstructedParticle.h:91
ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > operator()(ROOT::VecOps::RVec< float > angle, ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > in)
Definition ReconstructedParticle.cc:180
sel_axis(bool arg_pos)
Definition ReconstructedParticle.cc:179
bool m_pos
Definition ReconstructedParticle.h:92
select ReconstructedParticles with charge equal or in asolute value
Definition ReconstructedParticle.h:83
ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > operator()(ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > in)
Definition ReconstructedParticle.cc:110
float m_charge
Definition ReconstructedParticle.h:85
bool m_abs
Definition ReconstructedParticle.h:86
sel_charge(int arg_charge, bool arg_abs)
Definition ReconstructedParticle.cc:108
select ReconstructedParticles with absolute pseudorapidity less than a maximum absolute value
Definition ReconstructedParticle.h:68
sel_eta(float arg_min_eta)
Definition ReconstructedParticle.cc:76
ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > operator()(ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > in)
Definition ReconstructedParticle.cc:77
float m_min_eta
Definition ReconstructedParticle.h:70
select ReconstructedParticles with momentum greater than a minimum value [GeV]
Definition ReconstructedParticle.h:75
float m_min_p
Definition ReconstructedParticle.h:77
ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > operator()(ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > in)
Definition ReconstructedParticle.cc:93
sel_p(float arg_min_p, float arg_max_p=1e10)
Definition ReconstructedParticle.cc:92
float m_max_p
Definition ReconstructedParticle.h:78
select ReconstructedParticles with transverse momentum greater than a minimum value [GeV]
Definition ReconstructedParticle.h:61
float m_min_pt
Definition ReconstructedParticle.h:63
sel_pt(float arg_min_pt)
sel_pt
Definition ReconstructedParticle.cc:63
ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > operator()(ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > in)
Definition ReconstructedParticle.cc:64
select a list of reconstructed particles depending on the status of a certain boolean flag
Definition ReconstructedParticle.h:98
ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > operator()(ROOT::VecOps::RVec< bool > tags, ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > in)
Definition ReconstructedParticle.cc:191
sel_tag(bool arg_pass)
Definition ReconstructedParticle.cc:190
bool m_pass
Definition ReconstructedParticle.h:99
select ReconstructedParticles by type Note: type might not correspond to PDG ID
Definition ReconstructedParticle.h:44
ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > operator()(ROOT::VecOps::RVec< edm4hep::ReconstructedParticleData > in)
Definition ReconstructedParticle.cc:21
const int m_type
Definition ReconstructedParticle.h:46
sel_type(const int type)
sel_type
Definition ReconstructedParticle.cc:19