Functions used for Container (mainly std::vector) manipulation. More...

Collaboration diagram for Vector:

Classes

class  boca::Close< Multiplet_1_ >
 
struct  boca::function_traits< Function_ >
 
struct  boca::function_traits< Result_(Class_::*)(Arguments_...) const >
 

Functions

template<typename Multiplet_ >
std::vector< Multiplet_ > boca::RemoveIfOutsidePtWindow (std::vector< Multiplet_ > jets, Momentum const &lower_cut, Momentum const &upper_cut)
 
template<typename Multiplet_ >
std::vector< Multiplet_ > boca::CopyIfTag (std::vector< Multiplet_ > const &multiplets, double value=0)
 Copy if Bdt value of multiplet is larger than value (default = 0) More...
 
template<typename Multiplet_ >
std::vector< Multiplet_ > boca::RemoveIfSoft (std::vector< Multiplet_ > multiplets, Momentum const &pt_min)
 
template<typename Multiplet_ >
std::vector< Multiplet_ > boca::RemoveIfHard (std::vector< Multiplet_ > multiplets, Momentum const &pt_max)
 
template<typename Multiplet_ >
int boca::CountIfHard (std::vector< Multiplet_ > multiplets, Momentum const &pt_min)
 
template<typename Multiplet_ >
auto boca::CountIfBottom (std::vector< Multiplet_ > const &jets)
 
template<typename Multiplet_1_ , typename Multiplet_2_ >
std::vector< Multiplet_1_ > boca::RemoveIfClose (std::vector< Multiplet_1_ > jets, std::vector< Multiplet_2_ > const &particles)
 
template<typename Multiplet_1_ , typename Multiplet_2_ >
bool boca::CrossComparison (Multiplet_1_ const &multiplet, std::pair< Multiplet_2_, Multiplet_2_ > const &particles)
 
template<typename Multiplet_1_ , typename Multiplet_2_ >
std::vector< Multiplet_1_ > boca::RemoveIfClose (std::vector< Multiplet_1_ > jets, std::vector< std::pair< Multiplet_2_, Multiplet_2_ >> const &particles)
 
template<typename Multiplet_1_ , typename Multiplet_2_ >
std::vector< Multiplet_1_ > boca::CopyIfClose (std::vector< Multiplet_1_ > const &multiplets, std::vector< Multiplet_2_ > const &particles)
 
template<typename Multiplet_1_ , typename Multiplet_2_ >
std::vector< Multiplet_1_ > boca::CopyIfClose (std::vector< Multiplet_1_ > const &multiplets, Multiplet_2_ const &particle)
 
template<typename Multiplet_1_ , typename Multiplet_2_ >
std::vector< Multiplet_1_ > boca::CopyIfClose (std::vector< Multiplet_1_ > const &multiplets, std::pair< Multiplet_2_, Multiplet_2_ > const &particle)
 
template<typename Input_ , typename Function_ >
auto boca::Transform (Input_ const &inputs, Function_ function)
 
template<typename Result_ , typename Input_ , typename Function_ >
std::vector< Result_ > boca::TransformIf (Input_ const &inputs, Function_ const &function_1, Function_ const &function_2)
 
template<typename Elements_ , typename Function_ >
std::vector< Elements_ > boca::CopyIf (std::vector< Elements_ > const &inputs, Function_ function)
 
template<typename Element_ >
std::size_t boca::Position (std::vector< Element_ > const &vector, Element_ const &element)
 
template<typename Element_ , unsigned long size_>
std::size_t boca::Position (std::array< Element_, size_ > const &array, Element_ const &element)
 
template<typename Element_ >
bool boca::FindInVector (const std::vector< Element_ > vector, const Element_ element)
 
template<typename Multiplet_1_ , typename Multiplet_2_ >
Multiplet_1_ boca::ClosestJet (std::vector< Multiplet_1_ > const &multiplets, Multiplet_2_ const &multiplet)
 
template<typename Element_ >
std::vector< Element_ > boca::Combine (std::vector< Element_ > const &vector_1, std::vector< Element_ > const &vector_2)
 Combine two std::vector. More...
 
template<typename Element_ >
std::vector< Element_ > boca::Combine (std::vector< Element_ > const &vector_1, std::vector< Element_ > const &vector_2, std::vector< Element_ > const &vector_3)
 Combine three std::vector. More...
 
template<typename Element_ >
void boca::Insert (std::vector< Element_ > &vector_1, std::vector< Element_ > const &vector_2)
 Insert two std::vector. More...
 
template<typename Element_ >
void boca::Insert (std::vector< Element_ > &vector_1, std::vector< Element_ > const &vector_2, std::vector< Element_ > const &vector_3)
 Insert three std::vector. More...
 
template<typename Element_ , typename Function , typename Result = typename std::result_of<Function&(Element_, Element_)>::type>
auto boca::OrderedPairs (std::vector< Element_ > const &container, Function function)
 forms all \((n^2 - n)\) ordered pairs of vector elements, applies to them the function and returns a vector of its results More...
 
template<typename Element_ , typename Function_ , typename Result_ = typename std::result_of<Function_&(Element_, Element_)>::type>
auto boca::UnorderedPairs (std::vector< Element_ > const &container, Function_ function)
 forms all \((n^2 - n) / 2\) unordered pairs, applies to them the function and returns a vector of its results More...
 
template<typename Element_1_ , typename Element_2_ , typename Function_ , typename Result_ = typename std::result_of<Function_&(Element_1_, Element_2_)>::type>
auto boca::Pairs (std::vector< Element_1_ > const &container_1, std::vector< Element_2_ > const &container_2, Function_ function)
 forms all \(n \times m\) pairs of the elements in the two containers, applies the function and returns a vector of its elements More...
 
template<typename Element_1_ , typename Element_2_ , typename Function_ , typename Result_ = typename std::result_of<Function_&(Element_1_, Element_1_, Element_2_)>::type>
auto boca::Triples (std::vector< Element_1_ > const &container_1, std::vector< Element_2_ > const &container_2, Function_ function)
 forms all \((n^2 - n) / 2 \times m\) triples, applies to them the function and returns a vector of its results More...
 
template<typename Element_1_ , typename Element_2_ , typename Element_3_ , typename Function_ , typename Result_ = typename std::result_of<Function_&(Element_1_, Element_2_, Element_3_)>::type>
auto boca::Triples (std::vector< Element_1_ > const &container_1, std::vector< Element_2_ > const &container_2, std::vector< Element_3_ > const &container_3, Function_ function)
 forms all \((n^2 - n) / 2 \times m\) triples, applies to them the function and returns a vector of its results More...
 
template<typename Element_1_ , typename Element_2_ , typename Element_3_ , typename Function_1_ , typename Function_2_ , typename Result_1_ = typename std::result_of<Function_1_&(Element_1_, Element_2_)>::type, typename Result_2_ = typename std::result_of<Function_2_&(Result_1_, Element_3_)>::type>
auto boca::Triples (std::vector< Element_1_ > const &container_1, std::vector< Element_2_ > const &container_2, std::vector< Element_3_ > const &container_3, Function_1_ function_1, Function_2_ function_2)
 forms all \((n^2 - n) / 2 \times m\) triples, applies to them the function and returns a vector of its results More...
 

Detailed Description

Functions used for Container (mainly std::vector) manipulation.

Function Documentation

template<typename Multiplet_1_ , typename Multiplet_2_ >
Multiplet_1_ boca::ClosestJet ( std::vector< Multiplet_1_ > const &  multiplets,
Multiplet_2_ const &  multiplet 
)
template<typename Element_ >
std::vector<Element_> boca::Combine ( std::vector< Element_ > const &  vector_1,
std::vector< Element_ > const &  vector_2 
)

Combine two std::vector.

template<typename Element_ >
std::vector<Element_> boca::Combine ( std::vector< Element_ > const &  vector_1,
std::vector< Element_ > const &  vector_2,
std::vector< Element_ > const &  vector_3 
)

Combine three std::vector.

template<typename Elements_ , typename Function_ >
std::vector<Elements_> boca::CopyIf ( std::vector< Elements_ > const &  inputs,
Function_  function 
)
template<typename Multiplet_1_ , typename Multiplet_2_ >
std::vector<Multiplet_1_> boca::CopyIfClose ( std::vector< Multiplet_1_ > const &  multiplets,
std::vector< Multiplet_2_ > const &  particles 
)
template<typename Multiplet_1_ , typename Multiplet_2_ >
std::vector<Multiplet_1_> boca::CopyIfClose ( std::vector< Multiplet_1_ > const &  multiplets,
Multiplet_2_ const &  particle 
)
template<typename Multiplet_1_ , typename Multiplet_2_ >
std::vector<Multiplet_1_> boca::CopyIfClose ( std::vector< Multiplet_1_ > const &  multiplets,
std::pair< Multiplet_2_, Multiplet_2_ > const &  particle 
)
template<typename Multiplet_ >
std::vector<Multiplet_> boca::CopyIfTag ( std::vector< Multiplet_ > const &  multiplets,
double  value = 0 
)

Copy if Bdt value of multiplet is larger than value (default = 0)

template<typename Multiplet_ >
auto boca::CountIfBottom ( std::vector< Multiplet_ > const &  jets)
template<typename Multiplet_ >
int boca::CountIfHard ( std::vector< Multiplet_ >  multiplets,
Momentum const &  pt_min 
)
template<typename Multiplet_1_ , typename Multiplet_2_ >
bool boca::CrossComparison ( Multiplet_1_ const &  multiplet,
std::pair< Multiplet_2_, Multiplet_2_ > const &  particles 
)
template<typename Element_ >
bool boca::FindInVector ( const std::vector< Element_ >  vector,
const Element_  element 
)
template<typename Element_ >
void boca::Insert ( std::vector< Element_ > &  vector_1,
std::vector< Element_ > const &  vector_2 
)

Insert two std::vector.

template<typename Element_ >
void boca::Insert ( std::vector< Element_ > &  vector_1,
std::vector< Element_ > const &  vector_2,
std::vector< Element_ > const &  vector_3 
)

Insert three std::vector.

template<typename Element_ , typename Function , typename Result = typename std::result_of<Function&(Element_, Element_)>::type>
auto boca::OrderedPairs ( std::vector< Element_ > const &  container,
Function  function 
)

forms all \((n^2 - n)\) ordered pairs of vector elements, applies to them the function and returns a vector of its results

template<typename Element_1_ , typename Element_2_ , typename Function_ , typename Result_ = typename std::result_of<Function_&(Element_1_, Element_2_)>::type>
auto boca::Pairs ( std::vector< Element_1_ > const &  container_1,
std::vector< Element_2_ > const &  container_2,
Function_  function 
)

forms all \(n \times m\) pairs of the elements in the two containers, applies the function and returns a vector of its elements

template<typename Element_ >
std::size_t boca::Position ( std::vector< Element_ > const &  vector,
Element_ const &  element 
)
template<typename Element_ , unsigned long size_>
std::size_t boca::Position ( std::array< Element_, size_ > const &  array,
Element_ const &  element 
)
template<typename Multiplet_1_ , typename Multiplet_2_ >
std::vector<Multiplet_1_> boca::RemoveIfClose ( std::vector< Multiplet_1_ >  jets,
std::vector< Multiplet_2_ > const &  particles 
)
template<typename Multiplet_1_ , typename Multiplet_2_ >
std::vector<Multiplet_1_> boca::RemoveIfClose ( std::vector< Multiplet_1_ >  jets,
std::vector< std::pair< Multiplet_2_, Multiplet_2_ >> const &  particles 
)
template<typename Multiplet_ >
std::vector<Multiplet_> boca::RemoveIfHard ( std::vector< Multiplet_ >  multiplets,
Momentum const &  pt_max 
)
template<typename Multiplet_ >
std::vector<Multiplet_> boca::RemoveIfOutsidePtWindow ( std::vector< Multiplet_ >  jets,
Momentum const &  lower_cut,
Momentum const &  upper_cut 
)
template<typename Multiplet_ >
std::vector<Multiplet_> boca::RemoveIfSoft ( std::vector< Multiplet_ >  multiplets,
Momentum const &  pt_min 
)
template<typename Input_ , typename Function_ >
auto boca::Transform ( Input_ const &  inputs,
Function_  function 
)
template<typename Result_ , typename Input_ , typename Function_ >
std::vector<Result_> boca::TransformIf ( Input_ const &  inputs,
Function_ const &  function_1,
Function_ const &  function_2 
)
template<typename Element_1_ , typename Element_2_ , typename Function_ , typename Result_ = typename std::result_of<Function_&(Element_1_, Element_1_, Element_2_)>::type>
auto boca::Triples ( std::vector< Element_1_ > const &  container_1,
std::vector< Element_2_ > const &  container_2,
Function_  function 
)

forms all \((n^2 - n) / 2 \times m\) triples, applies to them the function and returns a vector of its results

template<typename Element_1_ , typename Element_2_ , typename Element_3_ , typename Function_ , typename Result_ = typename std::result_of<Function_&(Element_1_, Element_2_, Element_3_)>::type>
auto boca::Triples ( std::vector< Element_1_ > const &  container_1,
std::vector< Element_2_ > const &  container_2,
std::vector< Element_3_ > const &  container_3,
Function_  function 
)

forms all \((n^2 - n) / 2 \times m\) triples, applies to them the function and returns a vector of its results

template<typename Element_1_ , typename Element_2_ , typename Element_3_ , typename Function_1_ , typename Function_2_ , typename Result_1_ = typename std::result_of<Function_1_&(Element_1_, Element_2_)>::type, typename Result_2_ = typename std::result_of<Function_2_&(Result_1_, Element_3_)>::type>
auto boca::Triples ( std::vector< Element_1_ > const &  container_1,
std::vector< Element_2_ > const &  container_2,
std::vector< Element_3_ > const &  container_3,
Function_1_  function_1,
Function_2_  function_2 
)

forms all \((n^2 - n) / 2 \times m\) triples, applies to them the function and returns a vector of its results

template<typename Element_ , typename Function_ , typename Result_ = typename std::result_of<Function_&(Element_, Element_)>::type>
auto boca::UnorderedPairs ( std::vector< Element_ > const &  container,
Function_  function 
)

forms all \((n^2 - n) / 2\) unordered pairs, applies to them the function and returns a vector of its results