ATLAS Offline Software
Loading...
Searching...
No Matches
Trigger/TrigEvent/TrigParticle/TrigParticle/TrigPhoton.h
Go to the documentation of this file.
1// -*- C++ -*-
2
3/*
4 Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
5*/
6
7
25
26#ifndef TRIG_PHOTON
27#define TRIG_PHOTON
28
29#include <vector>
30#include <iostream>
31#include <string>
32
33#include "FourMom/P4PtEtaPhiM.h"
36
37#include "AthLinks/ElementLink.h"
38
40
41
42class TrigPhoton : public P4PtEtaPhiM,
44 virtual public INavigable4Momentum {
45
46 public:
47
49 TrigPhoton();
50
51 // Oct. 2009 - Valerio Dao replace previous constructor to set dEta and dPhi
52 //TrigPhoton(int roi,
53 // const TrigEMClusterContainer* cluster_cont,
54 // unsigned int cluster_index );
55
56
57 TrigPhoton(int roi, float dphi, float deta,
58 const TrigEMClusterContainer* cluster_cont,
59 unsigned int cluster_index );
60
62 TrigPhoton(float pt,
63 float eta,
64 float phi,
65
66 // roi word
67 unsigned int roi,
68 bool valid,
69
70 // Cluster
72 float HadEt,
73 float energyRatio,
74 float rCore,
75 float deta,
76 float dphi,
77 float Fside,
78 float Weta2,
79 float F0,
80 float F1,
81 float F2,
82 float F3);
83
84
85
86 TrigPhoton(const TrigPhoton& te);
87
88 TrigPhoton& operator=(const TrigPhoton& te) = default;
89
90 ~TrigPhoton() = default;
91
92 void validate(bool v) { m_valid = v; } // OBSOLETE!: to disappear in next iteration
93 bool isValid() const { return m_valid; }
94
96 int roiId() const { return m_roiID; }// OBSOLETE!: to disappear in next iteration
97 int roiWord() const { return m_roiID; }
98
100 float Et() const { return this->pt(); }// OBSOLETE!: to disappear in next iteration
101
103 float HadEt() const { return m_HadEt; }// OBSOLETE!: to disappear in next iteration
104 float HadEt1() const { return m_HadEt; }
105
107 float energyRatio() const { return m_energyRatio; }// OBSOLETE!: to disappear in next iteration
108 float Eratio() const { return m_energyRatio; }
109
111 float rCore() const { return m_rCore; }// OBSOLETE!: to disappear in next iteration
112 float Reta() const { return m_rCore; }
113
116 float Fside() const { return m_Fside; }
117
119 float Weta2() const { return m_Weta2; }
120
122 float dPhi() const { return m_dPhi; }
123
125 float dEta() const { return m_dEta; }
126
128 // float E() const;
129 float F0() const { return m_cl_e_frac_S0; }
130 float F1() const { return m_cl_e_frac_S1; }
131 float F2() const { return m_cl_e_frac_S2; }
132 float F3() const { return m_cl_e_frac_S2; }
133
135
137 const TrigEMCluster* cluster() const;
140
141 private:
142 // private data members
144 float m_HadEt;
146 float m_rCore;
147 float m_dPhi;
148 float m_dEta;
149 // float m_cl_energy;
150 float m_cl_e_frac_S0; // Calibrated energy per-sampling
154 float m_Fside; // fracs1 from TrigEMCluster
155 float m_Weta2; // weta2 from TrigEMCluster
157
159
160};
161
163bool operator==( const TrigPhoton& tp1, const TrigPhoton& tp2 );
164
165inline bool operator!=( const TrigPhoton& tp1, const TrigPhoton& tp2 ) {
166 return !( tp1 == tp2 );
167}
168
169void diff( const TrigPhoton& tp1, const TrigPhoton& tp2, std::map<std::string, double>& v_diff );
170
172MsgStream& operator<< ( MsgStream& msg, const TrigPhoton& tp );
173
174CLASS_DEF( TrigPhoton , 203968502 , 1 )
175
176#endif // TRIG_PHOTON
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
MsgStream & operator<<(MsgStream &msg, const TrigPhoton &tp)
overloaded << opetrator to print TrigPhoton quantities
void diff(const TrigPhoton &tp1, const TrigPhoton &tp2, std::map< std::string, double > &v_diff)
Function compares two objects and returns "semi verbose" output in the form of map v_diff where varai...
bool operator!=(const TrigPhoton &tp1, const TrigPhoton &tp2)
bool operator==(const TrigPhoton &tp1, const TrigPhoton &tp2)
comparison operators
P4PtEtaPhiM(const double pt, const double eta, const double phi, const double m)
constructor with all data members
Definition P4PtEtaPhiM.h:29
virtual double pt() const
get pt data member
virtual double eta() const
get eta data member
virtual double phi() const
get phi data member
Class with calibrated variables for egamma clustering.
float HadEt() const
accessor for hadronic energy in 1st hadronic sampling behind cluster
float Fside() const
energy in a 7 strips (around hottest strip) minus energy in 3 strips divided by energy in 3 strips
float rCore() const
cluster energy in 3x7 cells / energy in 7x7 cells in 2nd sampling
float F0() const
accessors for calibrated energy and energy fraction in calo samples
int roiId() const
accessor to get RoI ID (should also introduce roiWord
float energyRatio() const
accessor for fraction difference of EM cluster emaxs1 and e2tsts1
float dEta() const
accessor for difference between cluster and Roi eta
TrigPhoton()
constructors; note: default constructor needed by POOL
~TrigPhoton()=default
float dPhi() const
accessor for difference between cluster and Roi phi
TrigPhoton & operator=(const TrigPhoton &te)=default
float Weta2() const
cluster width (based on a 3x5 cluster - 2nd layer)
ElementLink< TrigEMClusterContainer > m_cluster
const TrigEMCluster * cluster() const
other accessors for shower shapes
const ElementLink< TrigEMClusterContainer > & clusterLink() const
MsgStream & msg
Definition testRead.cxx:32