ATLAS Offline Software
Loading...
Searching...
No Matches
ElectronAssociation.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
5
7
8namespace Analysis
9{
14
16 {
17 return new ElectronAssociation( *this );
18 }
19
21 {
22 //get electron from Navigable
23 if (this->size() ==0)
24 return nullptr;
25 if (this->size() > 1)
26 return nullptr;
27 // this shouldn't happen
28 else
29 return getConstituentPtr((this->getConstituents()).begin());
30 }
31
33 const Electron* the_electron,
34 double weight)
35 {
36 double newWeight = weight;
37 // electron already in collection
38 if ( this->contains(the_electron) )
39 {
40 // update weight
41 newWeight *= this->getElectronWeight(the_electron);
42 // remove the previous electron
43 this->remove(the_electron);
44 }
45
46 // from Navigable base
47 this->putElement(theContainer,the_electron,newWeight);
48 }
49
51 const index_type& theIndex,
52 double weight)
53 {
54 double newWeight = weight;
55 // electron already in collection
56 if ( this->contains(theContainer,theIndex) )
57 {
58 // update weight
59 newWeight *= this->getElectronWeight(theContainer,theIndex);
60 // remove the previous electron
61 this->remove(theContainer,theIndex);
62 }
63
64 // from Navigable base
65 this->putElement(theContainer,theIndex,newWeight);
66 }
67
68 double ElectronAssociation::getElectronWeight(const Electron* the_electron) const
69 {
70 // from Navigable
71 return (this->contains(the_electron) )
72 ? this->getParameter(the_electron)
73 : 0.;
74 }
75
77 const index_type& theIndex) const
78 {
79 // from Navigable
80 return (this->contains(theContainer,theIndex))
81 ? this->getParameter(theContainer,theIndex)
82 : 0.;
83 }
84}
void set_electron(const ElectronContainer *theContainer, const Electron *the_electron, double weight=1)
virtual JetAssociationBase * clone() const
a clone method for the proper workings of the copy constructor
Navigable< ElectronContainer, double >::external_index_type index_type
const Electron * electron() const
get electron directly without token
double getElectronWeight(const Electron *the_electron) const
ElectronAssociation()=default
constructor
void setName(const name_t &name)
const name_t & name() const
const constituent_coll & getConstituents() const
Definition Navigable.h:290
virtual unsigned int size() const
virtual object_iter begin() const
bool remove(const constituent_type *aConstituent)
void putElement(const ElectronContainer *objectContainer, const constituent_type *constituentObject, const double &objectParameter=double(), size_t sizeHint=0)
double getParameter(const constituent_type *aConstituent) const
bool contains(const constituent_type *aConstituent) const
virtual const constituent_type * getConstituentPtr(constituent_iter iter) const
The namespace of all packages in PhysicsAnalysis/JetTagging.