ATLAS Offline Software
Loading...
Searching...
No Matches
PhotonAssociation.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{
11 {
12 this->setName(name);
13 }
14
16 {
17 return new PhotonAssociation( *this );
18 }
19
21 {
22 //get photon 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 Photon* the_photon,
34 double weight)
35 {
36 double newWeight = weight;
37 // photon already in collection
38 if ( this->contains(the_photon) )
39 {
40 // update weight
41 newWeight *= this->getPhotonWeight(the_photon);
42 // remove the previous photon
43 this->remove(the_photon);
44 }
45
46 // from Navigable base
47 this->putElement(theContainer,the_photon,newWeight);
48 }
49
51 const index_type& theIndex,
52 double weight)
53 {
54 double newWeight = weight;
55 // photon already in collection
56 if ( this->contains(theContainer,theIndex) )
57 {
58 // update weight
59 newWeight *= this->getPhotonWeight(theContainer,theIndex);
60 // remove the previous photon
61 this->remove(theContainer,theIndex);
62 }
63
64 // from Navigable base
65 this->putElement(theContainer,theIndex,newWeight);
66 }
67
68 double PhotonAssociation::getPhotonWeight(const Photon* the_photon) const
69 {
70 // from Navigable
71 return (this->contains(the_photon) )
72 ? this->getParameter(the_photon)
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}
const Photon * photon() const
get photon directly without token
void set_photon(const PhotonContainer *theContainer, const Photon *the_photon, double weight=1)
virtual JetAssociationBase * clone() const
a clone method for the proper workings of the copy constructor
PhotonAssociation()=default
constructor
double getPhotonWeight(const Photon *the_photon) const
Navigable< PhotonContainer, double >::external_index_type index_type
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 PhotonContainer *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.