|
ATLAS Offline Software
|
Go to the documentation of this file.
34 AsgPhotonIsEMSelector::AsgPhotonIsEMSelector(
const std::string& myname)
42 declareProperty(
"WorkingPoint", m_WorkingPoint =
"",
"The Working Point");
45 "The config file to use (if not setting cuts one by one)");
50 m_rootTool->m_isEMMask =
56 m_rootTool->m_forceConvertedPhotonPID =
false,
57 "boolean to force to test converted photon hypothesis");
61 m_rootTool->m_forceNonConvertedPhotonPID =
false,
62 "boolean to force to test non converted photon hypothesis");
66 declareProperty(
"useF3core", m_useF3core =
false,
"Cut on f3 or f3core?");
71 "Flag to tell the tool if its a calo only cutbase");
75 "If true, it will skip the ambiguity cut. This is useful for HLT photon emulation");
78 "boolean to treat barrel standalone TRT conversion as unconverted for Run3 ");
101 return StatusCode::FAILURE;
196 ATH_MSG_ERROR(
"Could not initialize the TPhotonIsEMSelector!");
197 return StatusCode::FAILURE;
210 return StatusCode::SUCCESS;
243 "AsgElectronIsEMSelector::could not convert argument to Photon/Electron");
252 unsigned int isEM = ~0;
254 if (
sc.isFailure()) {
261 ATH_MSG_ERROR(
"AsgElectronIsEMSelector::accept was given a bad argument");
307 return "No cuts applied";
310 ATH_MSG_ERROR(
"Didn't recognize the given operating point with mask: "
320 unsigned int& isEM)
const
336 return StatusCode::SUCCESS;
341 if (cluster ==
nullptr) {
342 ATH_MSG_ERROR(
"exiting because cluster is NULL " << cluster);
345 return StatusCode::SUCCESS;
350 const float eta2 = fabsf(cluster->
etaBE(2));
352 const double energy = cluster->
e();
355 const double cosheta = cosh(
eta2);
356 et = (cosheta != 0.) ?
energy / cosheta : 0.;
425 bool excludeTRT =
false;
461 return StatusCode::SUCCESS;
std::vector< float > m_cutBinMuStrips_photonsNonConverted
binning in pielup in strips for photons
virtual StatusCode initialize()
AlgTool initialize method.
Extra patterns decribing particle interation process.
const unsigned int PhotonTight
Tight photon selection.
Electron_v1 Electron
Definition of the current "egamma version".
std::vector< float > m_cutBinEta_photonsNonConverted
range of eta bins for photon-ID
const std::map< std::string, unsigned int > PhotonCutPointToMask
Helper class to provide type-safe access to aux data.
const unsigned int PhotonLoose
Loose photon selection.
std::vector< float > m_f1_photonsConverted
Cut on fraction of energy rec.
std::vector< float > m_e277_photonsNonConverted
Cut in E277 for photons.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
std::vector< float > m_deltae_photonsNonConverted
Cut on Demax2 for photons.
std::vector< float > m_cutBinMuStrips_photonsConverted
binning in pileup in strips for photons
std::vector< float > m_cutBinEnergyStrips_photonsNonConverted
Root::TPhotonIsEMSelector * m_rootTool
Pointer to the underlying ROOT based tool.
std::vector< float > m_cutminEp_photonsConverted
cut min on E/p for e-ID
std::vector< float > m_wtot_photonsConverted
Cut on total width in strips for photons.
bool m_caloOnly
Flag for calo only cut-base.
std::vector< float > m_cutBinEnergy_photonsConverted
range of ET bins for photon-ID
std::vector< float > m_Rphi33_photonsNonConverted
ratio E233/E237
std::vector< float > m_Reta37_photonsNonConverted
ratio E237/E277
std::vector< float > m_fracm_photonsNonConverted
Cut on fraction of energy outside core for photons.
StatusCode initialize()
Initialize this class.
Class providing the definition of the 4-vector interface.
std::string m_WorkingPoint
Working Point.
@ wtots1
shower width is determined in a window detaxdphi = 0,0625 ×~0,2, corresponding typically to 20 strips...
uint32_t runNumber() const
The current event's run number.
std::vector< float > m_Reta37_photonsConverted
ratio E237/E277
unsigned int calcIsEm(float eta2, double et, float Rhad1, float Rhad, float e277, float Reta, float Rphi, float weta2c, float f1, float Eratio, float DeltaE, float weta1c, float wtot, float fracm, float f3, double ep, bool isConversion, float mu) const
std::vector< float > m_cutBinEtaStrips_photonsConverted
binning in eta in strips for photons
const unsigned int EgPidUndefined
std::vector< float > m_DEmaxs1_photonsNonConverted
cut on (Emax1-Emax2)/(Emax1-Emax2) for photons
@ f3
fraction of energy reconstructed in 3rd sampling
float etaBE(const unsigned layer) const
Get the eta in one layer of the EM Calo.
Description of a calorimeter cluster.
bool isConvertedPhoton(const xAOD::Egamma *eg, bool excludeTRT=false)
is the object a converted photon
std::vector< float > m_cutHadLeakage_photonsNonConverted
Cut on hadronic leakage for photons.
@ f1
E1/E = fraction of energy reconstructed in the first sampling, where E1 is energy in all strips belon...
bool m_useF3core
use f3core or f3 (default: use f3)
std::vector< float > m_cutF3_photonsConverted
cut values for cut on f3 or f3core
virtual asg::AcceptData accept(const xAOD::IParticle *part) const
Accept with generic interface.
std::vector< float > m_deltae_photonsConverted
Cut on Demax2 for photons.
std::vector< float > m_cutBinEtaStrips_photonsNonConverted
binning in eta in strips for photons
const uint16_t AuthorAmbiguous
Object Reconstructed by standard cluster-based algorithm.
::StatusCode StatusCode
StatusCode definition for legacy code.
virtual std::string getOperatingPointName() const
Method to get the operating point.
const unsigned int PhotonLooseEF
TrigEgamma Pid Definitions.
virtual const asg::AcceptInfo & getAcceptInfo() const
Method to get the plain AcceptInfo.
std::vector< float > m_cutBinEnergyStrips_photonsConverted
Amg::Vector3D momentumAtVertex(const xAOD::Photon *, bool debug=false)
return the momentum at the vertex (which can be 0)
MsgStream & msg() const
The standard message stream.
@ AmbiguityResolution_Photon
ambiguity resolution for photon (vs electron)
std::vector< float > m_cutBinMu_photonsConverted
range of mu bins for photon-ID
std::vector< float > m_wtot_photonsNonConverted
Cut on total width in strips for photons.
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
std::vector< float > m_cutBinEta_photonsConverted
range of eta bins for photon-ID
virtual bool isValid() override final
Can the handle be successfully dereferenced?
@ ClusterEtaRange_Photon
cluster eta range
std::vector< float > m_f1_photonsNonConverted
Cut on fraction of energy rec.
unsigned int m_isEMMask
which subset of cuts to apply
std::vector< float > m_weta2_photonsNonConverted
Cut on width in 2nd sampling for photons.
std::string m_configFile
Config File.
std::vector< float > m_cutBinEnergy_photonsNonConverted
range of ET bins for photon-ID
std::vector< float > m_weta2_photonsConverted
Cut on width in 2nd sampling for photons.
asg::AcceptData accept(float eta2, double et, float Rhad1, float Rhad, float e277, float Reta, float Rphi, float weta2c, float f1, float Eratio, float DeltaE, float weta1c, float wtot, float fracm, float f3, double ep, bool isConversion, float mu)
The main accept method: the actual cuts are applied here.
Photon_v1 Photon
Definition of the current "egamma version".
int RunNumber(const EventContext &ctx) const
std::string PathResolverFindCalibFile(const std::string &logical_file_name)
std::vector< float > m_cutBinMu_photonsNonConverted
range of mu bins for photon-ID
const unsigned int PhotonMedium
Medium photon selection.
std::vector< float > m_cutmaxEp_photonsConverted
cut max on E/p for e-ID
const std::map< std::string, std::string > PhotonCutPointToConfFile
const unsigned int PhotonMediumEF
Medium photon selection for online EF.
#define ATH_MSG_WARNING(x)
std::vector< float > m_w1_photonsConverted
Cut on width in 3 strips for photons.
virtual StatusCode execute(const EventContext &ctx, const xAOD::Egamma *eg, unsigned int &isEM) const
The basic isem.
SG::ReadHandleKey< xAOD::EventInfo > m_EvtInfoKey
std::vector< float > m_w1_photonsNonConverted
Cut on width in 3 strips for photons.
const asg::AcceptInfo & getAcceptInfo() const
accesss to the accept info object
std::vector< float > m_fracm_photonsConverted
Cut on fraction of energy outside core for photons.
unsigned int findMask(const std::string &input, const std::map< std::string, unsigned int > &maskmap)
ASG_TOOL_CLASS3(AsgPhotonIsEMSelector, IAsgPhotonIsEMSelector, IAsgEGammaIsEMSelector, IAsgSelectionTool) public ~AsgPhotonIsEMSelector()
Default constructor.
@ e277
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 7x7
std::vector< float > m_e277_photonsConverted
Cut in E277 for photons.
@ weta1
shower width using +/-3 strips around the one with the maximal energy deposit: w3 strips = sqrt{sum(E...
@ Eratio
(emaxs1-e2tsts1)/(emaxs1+e2tsts1)
bool m_removeTRTConversion
std::vector< float > HelperFloat(const std::string &input, TEnv &env)
@ f3core
E3(3x3)/E fraction of the energy reconstructed in the third compartment of the electromagnetic calori...
std::vector< float > m_cutF3_photonsNonConverted
cut values for cut on f3 or f3core
std::vector< float > m_Rphi33_photonsConverted
ratio E233/E237
asg::AcceptData fillAccept(unsigned int isEM) const
virtual double e() const
The total energy of the particle.
std::vector< float > m_cutHadLeakage_photonsConverted
Cut on hadronic leakage for photons.
float getMu(const EventContext &ctx) const
@ fracs1
shower shape in the shower core : [E(+/-3)-E(+/-1)]/E(+/-1), where E(+/-n) is the energy in ± n strip...
float actualInteractionsPerCrossing() const
Average interactions per crossing for the current BCID - for in-time pile-up.
std::vector< float > m_DEmaxs1_photonsConverted
cut on (Emax1-Emax2)/(Emax1-Emax2) for photons
@ weta2
the lateral width is calculated with a window of 3x5 cells using the energy weighted sum over all cel...
std::string findConfigFile(const std::string &input, const std::map< std::string, std::string > &configmap)