|
ATLAS Offline Software
|
Go to the documentation of this file.
18 unsigned int nord=
slice->etCos().size();
19 if(nord!=
slice->etSin().size())
throw std::domain_error(
"Input HIEventShape has unequal n-harmonics for Q_x and Q_y");
24 slice->etCos().assign(in_slice->
etCos().begin(),in_slice->
etCos().end());
25 slice->etSin().assign(in_slice->
etSin().begin(),in_slice->
etSin().end());
29 unsigned int in_nord=in_slice->
etCos().size();
31 if(in_nord < nord) nord=in_nord;
35 auto itr=in_slice->
etCos().begin();
36 std::advance(itr,nord);
37 slice->etCos().insert(
slice->etCos().end(),itr,in_slice->
etCos().end());
38 itr=in_slice->
etSin().begin();
39 std::advance(itr,nord);
40 slice->etSin().insert(
slice->etSin().end(),itr,in_slice->
etSin().end());
43 for(
unsigned int i=0;
i<nord;
i++)
45 float tmp_cos =
slice->etCos().at(
i);
47 float tmp_sin =
slice->etSin().at(
i);
57 for(
const auto sItr : *in )
59 if(incFunction(sItr)) addFunction(
out,sItr);
64 const std::set<unsigned int>&
indices,
74 for(
const auto sItr : *in )
83 for(
const auto itr : harmonics)
92 for(
unsigned int i=0;
i<in.size();
i++)
95 if(harmonic < 0)
return i;
constexpr AddEventShape AddES
float et() const
Transverse energy reconstructed on the slice.
std::pair< long int, long int > indices
Helper to simultaneously calculate sin and cos of the same angle.
float area() const
obtain the area of the eta slice
const std::vector< float > & etSin() const
sine (x) part of the harmonic modulation strength
void operator()(xAOD::HIEventShape *slice, const xAOD::HIEventShape *in_slice) const
Interface class for the HI reconstruction EDM.
const std::vector< float > & etCos() const
cosine (y) part of the harmonic modulation strength Following convention is used: index 0 is first ha...
int nCells() const
number of cells that were summed in slice
int setHarmonics(std::vector< unsigned int > &in)
void fillSummary(const xAOD::HIEventShapeContainer *in, xAOD::HIEventShape *out, const std::function< bool(const xAOD::HIEventShape *)> &incFunction, const std::function< void(xAOD::HIEventShape *, const xAOD::HIEventShape *)> &addFunction)
float getModulation(const xAOD::HIEventShape *es, const std::vector< unsigned int > &harmonics, float phi)
Helper to simultaneously calculate sin and cos of the same angle.
const T * at(size_type n) const
Access an element, as an rvalue.
float rho() const
energy density (et/area)