7#ifndef MISSINGETEVENT_MISSINGETCOMPOSITION_H
8#define MISSINGETEVENT_MISSINGETCOMPOSITION_H
51 {
return (tag & test) == test; }
65 {
return tag &
TRACK; }
71 {
return tag &
MUID; }
125 { tag = tag |
TRACK;}
181 typedef std::tuple<float,float,float,unsigned short int>
struct_t;
189 template <
typename PERS>
196 std::cerr <<
"Rolf: calling general template for Weight c'tor ! You need to specialize it for " <<
typeid(
PERS).name() <<
" !\n";
210 float wpx()
const {
return (
float)std::get<0>(*
this); }
211 float wpy()
const {
return (
float)std::get<1>(*
this); }
212 float wet()
const {
return (
float)std::get<2>(*
this); }
213 unsigned short int statusWord()
const {
return (
unsigned short int)std::get<3>(*
this); }
218 void setStatusWord(
unsigned short int status) { std::get<3>(*
this) = status; }
255 isEqual(w.wpx(),this->wpx()) &&
256 isEqual(w.wpy(),this->wpy()) &&
261 {
return !(this->operator==)(w); }
264 {
return y != 0. ?
x /
y : 0.; }
274Weight
operator*(
const Weight& w,
double scale);
275Weight
operator*(
double scale,
const Weight& w);
289 public Navigable<INavigable4MomentumCollection,MissingETHandlers::Weight>
300 template<
class OBJECT>
358 {
return !(this->operator==)(iter); }
363 return dynamic_cast<const OBJECT*
>(*m_actual);
367 if (
dynamic_cast<const OBJECT*
>(*
m_actual)==0) {
368 std::cout <<
"dynamic cast==0 in operator*" << std::endl;
371 return dynamic_cast<const OBJECT*
>(*m_actual);
400 template<
class OBJECT>
406 template<
class OBJECT>
411 if ((*temp)==0) {++temp;
return temp;}
417 template<
class OBJECT>
423 template<
class OBJECT>
428 while ( fObj != lObj && pObj != *fObj ) { ++fObj; }
433 template<
class OBJECT>
439 if ( pMET == 0 )
return false;
448 for ( ; fObj != lObj; ++fObj )
461 eta = e != 0. ?
eta/e : 0.;
468 template<
class OBJECT>
477 if ( pMET != 0 )
delete pMET;
Scalar eta() const
pseudorapidity method
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
DataVector< INavigable4Momentum > INavigable4MomentumCollection
float et(const xAOD::jFexSRJetRoI *j)
Athena::TPCnvVers::Old Athena::TPCnvVers::Old MissingET
RpcSectorLogicContainer_p1 PERS
INavigable4Momentum base_value_type
const OBJECT * operator*() const
const_iterator operator++()
const_iterator operator=(const const_iterator &iter)
const_iterator(const const_iterator &iter)
const_iterator operator++(int)
const weight_t getParameter() const
bool operator==(const const_iterator &iter) const
const OBJECT *& operator->() const
const_iterator operator--()
bool operator!=(const const_iterator &iter) const
const OBJECT * getObject() const
const INavigable4MomentumCollection * getContainer() const
const_iterator operator--(int)
const_iterator(const base_t *store, iiterator_t iiter)
virtual ~const_iterator()
void insert(const collection_t *pColl, const object_t *pObj, weight_t weight)
const_iterator< OBJECT > endIterator() const
bool fillMissingET(MissingET *pMET, unsigned short rejectTag=(MissingETtags::PILEUP_CORRECTED|MissingETtags::REMOVED_CLUSTER)) const
base_t::object_iter iiterator_t
weight_t getWeight(const object_t *pObj) const
MissingETHandlers::Weight weight_t
collection_t::base_value_type object_t
INavigable4MomentumCollection collection_t
weight_t getWeight(const_iterator< OBJECT > fObj) const
Navigable< collection_t, weight_t > base_t
const_iterator< OBJECT > find(const OBJECT *pObj) const
MissingET * getMissingET(unsigned short rejectTag=(MissingETtags::PILEUP_CORRECTED|MissingETtags::REMOVED_CLUSTER)) const
const_iterator< OBJECT > beginIterator() const
virtual ~MissingETComposition()
Weight & operator=(Weight &&w)=default
virtual ~Weight()=default
Weight & operator-=(const Weight &w)
Weight & operator+=(const Weight &w)
Weight(Weight &&w)=default
bool operator==(const Weight &w) const
bool operator!=(const Weight &w) const
static bool isEqual(float x, float y)
unsigned short int statusWord() const
static float divide(float x, float y)
Weight(const Weight &w)=default
void setStatusWord(unsigned short int status)
Weight & operator/=(const Weight &w)
Weight & operator=(const Weight &w)=default
Weight & operator*=(const Weight &w)
Weight(float wpx, float wpy, float wet)
Weight(float wpx, float wpy, float wet, unsigned short int status)
virtual void add(double theEx, double theEy, double theEt, double theEta, double weight)
virtual object_iter begin() const
NavigableIterator< collection_t, weight_t, typename NavigationDefaults::DefaultChildColl< collection_t, weight_t >::type > object_iter
MissingETHandlers::Weight getParameter(const constituent_type *aConstituent) const
void insertElement(const INavigable4MomentumCollection *objectContainer, const constituent_type *constituentObject, const MissingETHandlers::Weight &objectParameter=MissingETHandlers::Weight(), size_t sizeHint=0)
virtual object_iter end() const
Weight operator+(const Weight &w1, const Weight &w2)
std::tuple< float, float, float, unsigned short int > struct_t
Weight operator/(const Weight &w1, const Weight &w2)
Weight operator-(const Weight &w1, const Weight &w2)
Weight operator*(const Weight &w1, const Weight &w2)
Extra patterns decribing particle interation process.