ATLAS Offline Software
Loading...
Searching...
No Matches
TForwardElectronIsEMSelector.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
5// Dear emacs, this is -*-c++-*-
6
7#ifndef __TFORWARDELECTRONISEMSELECTOR__
8#define __TFORWARDELECTRONISEMSELECTOR__
9
20// ROOT includes
21// Include the return object and the base class
25#include "PATCore/AcceptData.h"
26#include "PATCore/AcceptInfo.h"
27#include <string>
28#include <vector>
29
31
32namespace Root {
34{
35
36 friend class ::AsgForwardElectronIsEMSelector;
37
38public:
41 const char* name = "TForwardElectronIsEMSelector");
42
45
46 // Main methods
48 StatusCode initialize();
49
52
53 // used to calcIsEm.
54 // Note that it doesn't necessarily zero all the values that pass, so
55 // make sure that the input iflag bits that you are concerned with start out
56 // with 0.
57 unsigned int calocuts_electrons(
58 // eta
59 float eta,
60 // NPV
61 float nvtx,
62 // secondlambda
63 float secondLambda,
64 // lateral
65 float lateral,
66 // lateral
67 float longitudinal,
68 // fracMax
69 float fracMax,
70 // longitudinal
71 float centerLambda,
72 // secondR
73 float secondR,
74 // the starting isEM (should be 0 if new)
75 unsigned int iflag) const;
76
77 // used internally by calcIsEm, but left public because it can be useful for
78 // users. Note that it doesn't necessarily zero all the values that pass, so
79 // make sure that the input iflag bits that you are concerned with start out
80 // with 0.
81
83 // Public members (the cut values)
85
87 unsigned int m_isEMMask;
88
90 std::vector<float> m_cutBinEta_ForwardElectron;
92 std::vector<float> m_cutVxp_ForwardElectron;
96 std::vector<float> m_cutLATERAL_ForwardElectron;
105
107 const asg::AcceptInfo& getAcceptInfo() const { return m_acceptInfo; }
108
109private:
110 // Private members
111
112 // would ideally be protected: only to be used by ARASelector
113 asg::AcceptData fillAccept(unsigned int isEM) const;
114
115 std::vector<int> findNvtxEtaBin(float nvtx, double eta) const;
116
117 template<typename T>
118 bool checkVar(const std::vector<T>& vec, int choice) const;
119
122
123 // the cut positions
124
127
128 // int m_cutPositionVxp_ForwardElectron;
129
136
137 // the cut names
138
147
148}; // End: class definition
149
150} // End: namespace Root
151
152#endif
153
Scalar eta() const
pseudorapidity method
std::vector< size_t > vec
asg::AcceptData fillAccept(unsigned int isEM) const
std::vector< float > m_cutLONGITUDINAL_ForwardElectron
cut on longitudinal
std::vector< float > m_cutCELLMAXFRAC_ForwardElectron
cut on maxFrac
unsigned int calocuts_electrons(float eta, float nvtx, float secondLambda, float lateral, float longitudinal, float fracMax, float centerLambda, float secondR, unsigned int iflag) const
bool checkVar(const std::vector< T > &vec, int choice) const
TForwardElectronIsEMSelector(const char *name="TForwardElectronIsEMSelector")
Standard constructor.
std::vector< float > m_cutLATERAL_ForwardElectron
cut on lateral
std::vector< float > m_cutCENTERLAMBDA_ForwardElectron
cut on centerlambda
std::vector< float > m_cutBinEta_ForwardElectron
range of eta bins for e-ID
unsigned int m_isEMMask
which subset of cuts to apply
std::vector< int > findNvtxEtaBin(float nvtx, double eta) const
std::vector< float > m_cutSECONDR_ForwardElectron
cut values for cut on secondR
StatusCode initialize()
Initialize this class.
std::vector< float > m_cutSECONDLAMBDA_ForwardElectron
cut on secondlambda
~TForwardElectronIsEMSelector()
Standard destructor.
const asg::AcceptInfo & getAcceptInfo() const
accesss to the accept info object
asg::AcceptData accept() const
Return dummy accept with only info.
std::vector< float > m_cutVxp_ForwardElectron
range of NPV bins for e-ID
Class mimicking the AthMessaging class from the offline software.