12 bool ,
bool doTrigMuonL1Validation,
bool doTrigMuonL2Validation,
13 bool doTrigMuonEFValidation, std::vector<std::vector<std::string>> ChainSeed,
14 std::vector<std::string> L1MuonItems) :
22 for (
unsigned int i = 0; i <
m_ChainSeed.size(); i++) {
32 std::make_unique<ResoTriggerMuonPlots>(
this,
"trigger/L2/StandAlone/Resolution/BARREL/",
""));
35 std::make_unique<ResoTriggerMuonPlots>(
this,
"trigger/L2/StandAlone/Resolution/ENDCAPS/",
""));
37 std::make_unique<ResoTriggerMuonPlots>(
this,
"trigger/L2/Combined/Resolution/ENDCAPS/",
""));
39 std::make_unique<ResoTriggerMuonPlots>(
this,
"trigger/L2/StandAlone/Resolution/WHOLE_DETECT/",
""));
45 auto sAuthor = xAOD::Muon::toString(
static_cast<xAOD::Muon::Author
>(
m_selectedAuthors[i]));
49 std::make_unique<ResoTriggerMuonPlots>(
this, std::format(
"trigger/EF/{:}/Resolution/BARREL/", sAuthor ),
""));
52 std::make_unique<ResoTriggerMuonPlots>(
this, std::format(
"trigger/EF/{:}/Resolution/ENDCAPS/", sAuthor),
""));
55 std::make_unique<ResoTriggerMuonPlots>(
this, std::format(
"trigger/EF/{:}/Resolution/WHOLE_DETECT/", sAuthor),
""));
61 std::make_unique<TriggerEfficiencyPlots>(
this,
"trigger/" +
m_L1MuonItems[i] +
"_Efficiency/BARREL/"));
64 std::make_unique<TriggerEfficiencyPlots>(
this,
"trigger/" +
m_L1MuonItems[i] +
"_Efficiency/ENDCAPS/"));
67 std::make_unique<TriggerEfficiencyPlots>(
this,
"trigger/" +
m_L1MuonItems[i] +
"_Efficiency/WHOLE_DETECT/"));
69 for (
unsigned int i = 0; i <
m_chains.size(); i++) {
72 std::make_unique<TriggerEfficiencyPlots>(
this,
"trigger/" +
m_chains[i] +
"_Efficiency/BARREL/"));
75 std::make_unique<TriggerEfficiencyPlots>(
this,
"trigger/" +
m_chains[i] +
"_Efficiency/ENDCAPS/"));
78 std::make_unique<TriggerEfficiencyPlots>(
this,
"trigger/" +
m_chains[i] +
"_Efficiency/WHOLE_DETECT/"));
80 for (
unsigned int i = 0; i <
m_chains.size(); i++) {
83 std::make_unique<TriggerEfficiencyPlots>(
this,
"trigger/" +
m_chains[i] +
"_wrt_" +
m_seeds[i] +
"_Efficiency/BARREL/"));
86 std::make_unique<TriggerEfficiencyPlots>(
this,
"trigger/" +
m_chains[i] +
"_wrt_" +
m_seeds[i] +
"_Efficiency/ENDCAPS/"));
89 std::make_unique<TriggerEfficiencyPlots>(
this,
"trigger/" +
m_chains[i] +
"_wrt_" +
m_seeds[i] +
"_Efficiency/WHOLE_DETECT/"));
155 for (
unsigned int i = 0; i <
m_chains.size(); i++) {
167 for (
unsigned int i = 0; i <
m_chains.size(); i++) {
170 if (((mu.eta()) > -1.05) && ((mu.eta()) < 1.05))
172 if (((mu.eta()) < -1.05) || ((mu.eta()) > 1.05))
181 for (
unsigned int i = 0; i <
m_chains.size(); i++) {
208 if (((mu.eta()) > -1.05) && ((mu.eta()) < 1.05))
210 if (((mu.eta()) < -1.05) || ((mu.eta()) > 1.05))
220 ROIinMuons->setStore(ROIinMuonsAux);
228 if (((TrigL1mu.
eta()) > -1.05) && ((TrigL1mu.
eta()) < 1.05))
230 if (((TrigL1mu.
eta()) < -1.05) || ((TrigL1mu.
eta()) > 1.05))
235 delete ROIinMuonsAux;
241 for (
unsigned int i = 0; i <
m_chains.size(); i++) {
244 if (((mu.eta()) > -1.05) && ((mu.eta()) < 1.05))
246 if (((mu.eta()) < -1.05) || ((mu.eta()) > 1.05))
255 for (
unsigned int i = 0; i <
m_chains.size(); i++) {
258 if (((mu.eta()) > -1.05) && ((mu.eta()) < 1.05))
260 if (((mu.eta()) < -1.05) || ((mu.eta()) > 1.05))
268 std::string
str(chain);
270 if (
str.find(
"HLT_") != std::string::npos) {
271 for (
unsigned int l = 0; l <
str.size(); l++) {
272 if (isdigit(
str[l])) {
273 for (
unsigned int a = l;
a <
str.size();
a++) {
275 if ((isdigit(
str[
a])) == 0)
break;
282 if (
str.find(
"L1_MU") != std::string::npos) {
283 for (
unsigned int l = 0; l <
str.size(); l++) {
284 if ((
str[l]) ==
'U') {
285 for (
unsigned int a = l + 1;
a <
str.size();
a++) {
value_type push_back(value_type pElem)
Add an element to the end of the collection.
PlotBase(PlotBase *parent, std::string_view sDir)
void fillNumEff(const xAOD::Muon &Trigmu, const std::string &selectedChain)
bool m_doTrigMuonL1Validation
std::vector< std::unique_ptr< TriggerEfficiencyPlots > > m_oL1TriggerChainBarrelEfficiencyPlots
std::vector< std::unique_ptr< ResoTriggerMuonPlots > > m_oL2TriggerMuonBarrelResolutionPlots
std::vector< std::unique_ptr< ResoTriggerMuonPlots > > m_oEFTriggerMuonBarrelResolutionPlots
TriggerMuonValidationPlots(PlotBase *pParent, const std::string &sDir, std::set< int > authors, bool isData, bool doTrigMuonL1Validation, bool doTrigMuonL2Validation, bool doTrigMuonEFValidation, std::vector< std::vector< std::string > > ChainSeed, std::vector< std::string > L1MuonItems)
std::vector< std::unique_ptr< ResoTriggerMuonPlots > > m_oEFTriggerMuonResolutionPlots
std::vector< std::unique_ptr< ResoTriggerMuonPlots > > m_oL2TriggerMuonEndcapsResolutionPlots
std::vector< std::unique_ptr< HLTriggerMuonPlots > > m_oL2TriggerMuonPlots
void fillDenRELEff(const xAOD::Muon &Trigmu, const std::string &selectedChain)
std::vector< std::unique_ptr< TriggerEfficiencyPlots > > m_oEFTriggerChainRELEfficiencyPlots
bool m_doTrigMuonL2Validation
void fillNumL1Eff(const xAOD::Muon &Trigmu, const std::string &selectedChain)
void fillTriggerMuonPlots(const xAOD::Muon &Trigmu)
virtual ~TriggerMuonValidationPlots()
std::vector< std::unique_ptr< HLTriggerMuonPlots > > m_oEFTriggerMuonPlots
std::vector< std::string > m_seeds
std::vector< std::unique_ptr< TriggerEfficiencyPlots > > m_oEFTriggerChainBarrelEfficiencyPlots
void fillDenEff(const xAOD::Muon &Trigmu, const std::string &selectedChain)
std::vector< std::unique_ptr< TriggerEfficiencyPlots > > m_oEFTriggerChainEfficiencyPlots
void fillFeatPlots(const xAOD::Muon &Trigmu, const std::string &selectedChain)
std::vector< unsigned int > m_selectedAuthors
std::vector< std::unique_ptr< TriggerEfficiencyPlots > > m_oEFTriggerChainEndcapsEfficiencyPlots
std::vector< std::string > m_chains
std::vector< std::vector< std::string > > m_ChainSeed
std::vector< std::unique_ptr< TriggerEfficiencyPlots > > m_oL1TriggerChainEndcapsEfficiencyPlots
bool m_doTrigMuonEFValidation
void fillDenL1Eff(const xAOD::Muon &Trigmu, const std::string &selectedChain)
std::vector< std::unique_ptr< TriggerEfficiencyPlots > > m_oEFTriggerChainEndcapsRELEfficiencyPlots
float findTrigTreshold(const TString &chain)
std::vector< std::unique_ptr< ResoTriggerMuonPlots > > m_oEFTriggerMuonEndcapsResolutionPlots
std::vector< std::string > m_L1MuonItems
void fill(const xAOD::MuonRoI &TrigL1mu)
std::vector< std::unique_ptr< TriggerEfficiencyPlots > > m_oL1TriggerChainEfficiencyPlots
std::unique_ptr< L1TriggerMuonPlots > m_oL1TriggerMuonPlots
std::vector< std::unique_ptr< ResoTriggerMuonPlots > > m_oL2TriggerMuonResolutionPlots
std::vector< std::unique_ptr< TriggerEfficiencyPlots > > m_oEFTriggerChainBarrelRELEfficiencyPlots
void fillNumRELEff(const xAOD::Muon &Trigmu, const std::string &selectedChain)
float eta() const
The pseudorapidity ( ) of the muon candidate.
float thrValue() const
The highest threshold value (in MeV) passed by the muon candidate.
float phi() const
The azimuthal angle ( ) of the muon candidate.
bool isAuthor(const Author author) const
Returns 'true' if 'author' is the an author of this muon.
virtual double eta() const override
The pseudorapidity ( ) of the particle.
void setP4(double pt, double eta, double phi)
Set method for IParticle values.
L2CombinedMuon_v1 L2CombinedMuon
Define the latest version of the muon CB class.
MuonAuxContainer_v5 MuonAuxContainer
Definition of the current Muon auxiliary container.
Muon_v1 Muon
Reference the current persistent version:
L2StandAloneMuon_v2 L2StandAloneMuon
Define the latest version of the muon SA class.
MuonContainer_v1 MuonContainer
Definition of the current "Muon container version".