11 bool ,
bool doTrigMuonL1Validation,
bool doTrigMuonL2Validation,
12 bool doTrigMuonEFValidation, std::vector<std::vector<std::string>> ChainSeed,
13 std::vector<std::string> L1MuonItems) :
21 for (
unsigned int i = 0; i <
m_ChainSeed.size(); i++) {
31 std::make_unique<ResoTriggerMuonPlots>(
this,
"trigger/L2/StandAlone/Resolution/BARREL/",
""));
34 std::make_unique<ResoTriggerMuonPlots>(
this,
"trigger/L2/StandAlone/Resolution/ENDCAPS/",
""));
36 std::make_unique<ResoTriggerMuonPlots>(
this,
"trigger/L2/Combined/Resolution/ENDCAPS/",
""));
38 std::make_unique<ResoTriggerMuonPlots>(
this,
"trigger/L2/StandAlone/Resolution/WHOLE_DETECT/",
""));
48 std::make_unique<ResoTriggerMuonPlots>(
this,
"trigger/EF/" + sAuthor +
"/Resolution/BARREL/",
""));
51 std::make_unique<ResoTriggerMuonPlots>(
this,
"trigger/EF/" + sAuthor +
"/Resolution/ENDCAPS/",
""));
54 std::make_unique<ResoTriggerMuonPlots>(
this,
"trigger/EF/" + sAuthor +
"/Resolution/WHOLE_DETECT/",
""));
60 std::make_unique<TriggerEfficiencyPlots>(
this,
"trigger/" +
m_L1MuonItems[i] +
"_Efficiency/BARREL/"));
63 std::make_unique<TriggerEfficiencyPlots>(
this,
"trigger/" +
m_L1MuonItems[i] +
"_Efficiency/ENDCAPS/"));
66 std::make_unique<TriggerEfficiencyPlots>(
this,
"trigger/" +
m_L1MuonItems[i] +
"_Efficiency/WHOLE_DETECT/"));
68 for (
unsigned int i = 0; i <
m_chains.size(); i++) {
71 std::make_unique<TriggerEfficiencyPlots>(
this,
"trigger/" +
m_chains[i] +
"_Efficiency/BARREL/"));
74 std::make_unique<TriggerEfficiencyPlots>(
this,
"trigger/" +
m_chains[i] +
"_Efficiency/ENDCAPS/"));
77 std::make_unique<TriggerEfficiencyPlots>(
this,
"trigger/" +
m_chains[i] +
"_Efficiency/WHOLE_DETECT/"));
79 for (
unsigned int i = 0; i <
m_chains.size(); i++) {
82 std::make_unique<TriggerEfficiencyPlots>(
this,
"trigger/" +
m_chains[i] +
"_wrt_" +
m_seeds[i] +
"_Efficiency/BARREL/"));
85 std::make_unique<TriggerEfficiencyPlots>(
this,
"trigger/" +
m_chains[i] +
"_wrt_" +
m_seeds[i] +
"_Efficiency/ENDCAPS/"));
88 std::make_unique<TriggerEfficiencyPlots>(
this,
"trigger/" +
m_chains[i] +
"_wrt_" +
m_seeds[i] +
"_Efficiency/WHOLE_DETECT/"));
154 for (
unsigned int i = 0; i <
m_chains.size(); i++) {
166 for (
unsigned int i = 0; i <
m_chains.size(); i++) {
169 if (((mu.eta()) > -1.05) && ((mu.eta()) < 1.05))
171 if (((mu.eta()) < -1.05) || ((mu.eta()) > 1.05))
180 for (
unsigned int i = 0; i <
m_chains.size(); i++) {
207 if (((mu.eta()) > -1.05) && ((mu.eta()) < 1.05))
209 if (((mu.eta()) < -1.05) || ((mu.eta()) > 1.05))
219 ROIinMuons->setStore(ROIinMuonsAux);
227 if (((TrigL1mu.
eta()) > -1.05) && ((TrigL1mu.
eta()) < 1.05))
229 if (((TrigL1mu.
eta()) < -1.05) || ((TrigL1mu.
eta()) > 1.05))
234 delete ROIinMuonsAux;
240 for (
unsigned int i = 0; i <
m_chains.size(); i++) {
243 if (((mu.eta()) > -1.05) && ((mu.eta()) < 1.05))
245 if (((mu.eta()) < -1.05) || ((mu.eta()) > 1.05))
254 for (
unsigned int i = 0; i <
m_chains.size(); i++) {
257 if (((mu.eta()) > -1.05) && ((mu.eta()) < 1.05))
259 if (((mu.eta()) < -1.05) || ((mu.eta()) > 1.05))
267 std::string
str(chain);
269 if (
str.find(
"HLT_") != std::string::npos) {
270 for (
unsigned int l = 0; l <
str.size(); l++) {
271 if (isdigit(
str[l])) {
272 for (
unsigned int a = l;
a <
str.size();
a++) {
274 if ((isdigit(
str[
a])) == 0)
break;
281 if (
str.find(
"L1_MU") != std::string::npos) {
282 for (
unsigned int l = 0; l <
str.size(); l++) {
283 if ((
str[l]) ==
'U') {
284 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, const std::string &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
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
TriggerMuonValidationPlots(PlotBase *pParent, const std::string &sDir, std::vector< unsigned int > authors, bool isData, bool doTrigMuonL1Validation, bool doTrigMuonL2Validation, bool doTrigMuonEFValidation, std::vector< std::vector< std::string > > ChainSeed, std::vector< std::string > L1MuonItems)
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.
virtual double eta() const
The pseudorapidity ( ) of the particle.
bool isAuthor(const Author author) const
Returns 'true' if 'author' is the an author of this muon.
void setP4(double pt, double eta, double phi)
Set method for IParticle values.
static const char * toString(Muon::EnumDefs::DetRegion reg)
L2CombinedMuon_v1 L2CombinedMuon
Define the latest version of the muon CB class.
Muon_v1 Muon
Reference the current persistent version:
MuonAuxContainer_v5 MuonAuxContainer
Definition of the current Muon auxiliary container.
L2StandAloneMuon_v2 L2StandAloneMuon
Define the latest version of the muon SA class.
MuonContainer_v1 MuonContainer
Definition of the current "Muon container version".