ATLAS Offline Software
ISUSYObjDef_xAODTool.h
Go to the documentation of this file.
1 // This file's extension implies that it's C, but it's really -*- C++ -*-.
2 
3 /*
4  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 #ifndef SUSYTOOLS_SUSYOBJDEF_XAODTOOL_H
8 #define SUSYTOOLS_SUSYOBJDEF_XAODTOOL_H
9 
10 // Framework include(s) -- base class
11 #include "AsgTools/IAsgTool.h"
12 
13 // EDM include(s):
14 // Note that these are type defs, so we must include headers here
16 #include "xAODEgamma/Electron.h"
18 #include "xAODMuon/Muon.h"
19 #include "xAODMuon/MuonContainer.h"
22 #include "xAODTracking/Vertex.h"
23 #include "xAODJet/Jet.h"
24 #include "xAODJet/JetContainer.h"
25 #include "xAODEgamma/Photon.h"
27 #include "xAODTau/TauJet.h"
31 #include "xAODTruth/TruthEvent.h"
33 
34 // Needed for jet functions (take a shallow copy)
35 #include "xAODCore/ShallowCopy.h"
36 
37 // For the SystInfo struct
39 
40 // Tool handles
41 #include "AsgTools/AnaToolHandle.h"
43 
44 // For the TrigDefs
46 
47 // For string search
48 #include "TString.h"
49 #include "TRegexp.h"
50 
51 // System includes
52 #include <iostream> // For warnings in static functions
53 #include <vector>
54 #include <string>
55 
56 // Forward declarations
57 namespace Trig {
58  class ChainGroup;
59 }
60 
61 namespace ST {
62 
63  struct SystInfo{
67  unsigned int affectsType;
68  std::set<unsigned int> affectedWeights;
69  };
70 
71  // Define a more compact enum than the IParticle one
72  enum SystObjType {
73  Unknown = 0,
74  Jet,
79  Tau,
86  };
87 
88 
89  // Define types of weights
90  // This doesn't work with enums: class enums can't be assigned to an std::int8_t easily
91  // Normal enums means redefinitions of e.g. "Trigger" and "Isolation"
92  namespace Weights {
93  static const unsigned int Unknown = 0;
94 
95  namespace Jet {
96  static const unsigned int Btag = 1001;
97  static const unsigned int JVT = 1002;
98  static const unsigned int Btag_Track = 1003;
99  static const unsigned int FJVT = 1004;
100  }
101 
102  namespace Muon {
103  static const unsigned int Reconstruction = 1101;
104  static const unsigned int Isolation = 1102;
105  static const unsigned int ID = 1103;
106  static const unsigned int Trigger = 1104;
107  }
108 
109  namespace Electron {
110  static const unsigned int Reconstruction = 1201;
111  static const unsigned int Isolation = 1202;
112  static const unsigned int ID = 1203;
113  static const unsigned int Trigger = 1204;
114  static const unsigned int ChargeID = 1205;
115  }
116 
117  namespace Tau {
118  static const unsigned int Reconstruction = 1301;
119  static const unsigned int Trigger = 1302;
120  }
121 
122  namespace Photon {
123  static const unsigned int Reconstruction = 1401;
124  static const unsigned int Isolation = 1402;
125  static const unsigned int ID = 1403;
126  static const unsigned int Trigger = 1404;
127  }
128  }
129 
130  static const double DUMMYDEF = -999.;
131 
132  // Helper method for affected objects
133  static inline bool testAffectsObject(xAOD::Type::ObjectType type, unsigned int test) {
134  switch(test) {
135  case Jet: return (type==xAOD::Type::Jet);
137  case Electron: return (type==xAOD::Type::Electron);
138  case Photon: return (type==xAOD::Type::Photon);
139  case Muon: return (type==xAOD::Type::Muon);
140  case Tau: return (type==xAOD::Type::Tau);
141  case BTag: return (type==xAOD::Type::BTag);
143  default: break;
144  }
145  return false;
146  }
147 
148  // Helper method for affected objects
149  static inline std::string testAffectsObject(unsigned int test) {
150  switch(test) {
151  case Jet: return "Jet";
152  case Egamma: return "Egamma";
153  case Electron: return "Electron";
154  case Photon: return "Photon";
155  case Muon: return "Muon";
156  case Tau: return "Tau";
157  case BTag: return "BTag";
158  case MET_TST:
159  case MET_CST:
160  case MET_Track: return "MET";
161  case EventWeight: return "EventWeight";
162  case LRT_Object: return "LRT_objects";
163  default: break;
164  }
165  return "Unknown";
166  }
167 
168  static inline int getMCShowerType(const std::string& sample_name) {
170  // This needs VERY careful syncing with m_showerType in SUSYToolsInit! Change with care!
171  const static std::vector<TString> gen_mc_generator_keys = {"POWHEGHERWIG7","PHH7EG", "SHERPA_221_", "SHERPA_2210","SHERPA_2211","SHERPA_2212", "AMCATNLOPY8","AMCATNLOHERWIG7"};
172 
173  //pre-process sample name
174  TString tmp_name(sample_name);
175  if(tmp_name.Contains("Py8EG") && !tmp_name.Contains("aMcAtNloPy8EG")) tmp_name.ReplaceAll("Py8EG","PYTHIA8EVTGEN");
176  if(tmp_name.Contains("Pythia") && !tmp_name.Contains("Pythia8") && !tmp_name.Contains("EvtGen")) tmp_name.ReplaceAll("Pythia","PYTHIA8EVTGEN");
177  if(tmp_name.Contains("Pythia8") && !tmp_name.Contains("EvtGen")) tmp_name.ReplaceAll("Pythia8","PYTHIA8EVTGEN");
178  if(tmp_name.Contains("Py8") && !tmp_name.Contains("EG")) tmp_name.ReplaceAll("Py8","PYTHIA8EVTGEN");
179  if(tmp_name.Contains("Sh_2")) tmp_name.ReplaceAll("Sh_2","SHERPA_2");
180 
181  //capitalize the entire sample name
182  tmp_name.ToUpper();
183  //find shower type in name
184  unsigned int ishower = 0;
185  for( const auto & gen : gen_mc_generator_keys ){
186  if( tmp_name.Contains(gen) ){return ishower+1;}
187  ishower++;
188  }
189  if( tmp_name.Contains("PYTHIA8EVTGEN") || tmp_name.Contains("PhPy8EG") ) return 0;
190 
191  // See if they are doing something really unwise, just in case
192  TRegexp is_data("^data1[5-9]_13TeV");
193  TRegexp is_dataRun3("^data2[2-5]_13p6TeV");
194  if (tmp_name.Contains(is_data) || tmp_name.Contains(is_dataRun3)){
195  std::cout << "ST::getMCShowerType WARNING: Asking for the MC shower when running on a data file is not advised. Just returning 0." << std::endl;
196  return 0;
197  }
198 
199  std::cout << "ST::getMCShowerType WARNING: Unknown MC generator detected. Returning default 0 = PowhegPythia8 ShowerType for btagging MC/MC maps." << std::endl;
200  return 0;
201  }
202 
203 
204  // Simple interface
205  //
206  // Following the design principles outlined in the TF3 recommendations.
207  //
208  //
209  class ISUSYObjDef_xAODTool : public virtual asg::IAsgTool {
210 
211  // Declare the interface that the class provides
213 
214  public:
215  virtual StatusCode readConfig() = 0;
216 
217  virtual int getMCShowerType(const std::string& sample_name) const = 0;
218 
219  // For checking the origin of the input
220  virtual bool isData() const = 0;
221  virtual bool isAtlfast() const = 0;
222 
223  // method to access properties of the tool
224  template<typename T> const T* getProperty(const std::string& name) {
225  return dynamic_cast<asg::AsgTool&>(*this).getProperty<T>(name);
226  }
227 
228  // override the AsgTool setProperty function for booleans
229  virtual StatusCode setBoolProperty(const std::string& name, const bool& property) = 0;
230 
231  // Apply the correction on a modifyable object
232  virtual StatusCode FillMuon(xAOD::Muon& input, const float ptcut, const float etacut) = 0;
233  virtual StatusCode FillJet(xAOD::Jet& input, const bool doCalib = true, const bool isFat = false, const bool doLargeRdecorations = false) = 0;
236  virtual StatusCode FillElectron(xAOD::Electron& input, const float etcut, const float etacut) = 0;
237  virtual StatusCode FillPhoton(xAOD::Photon& input, const float ptcut, const float etacut) = 0;
238 
239  virtual const xAOD::Vertex* GetPrimVtx() const = 0;
240 
241  virtual StatusCode GetJets(xAOD::JetContainer*& copy,xAOD::ShallowAuxContainer*& copyaux,const bool recordSG=true, const std::string& jetkey="", const xAOD::JetContainer* containerToBeCopied = nullptr) = 0;
242  virtual StatusCode GetTrackJets(xAOD::JetContainer*& copy,xAOD::ShallowAuxContainer*& copyaux,const bool recordSG=true, const std::string& jetkey="", const xAOD::JetContainer* containerToBeCopied = nullptr) = 0;
243  virtual StatusCode GetJetsSyst(const xAOD::JetContainer& calibjets,xAOD::JetContainer*& copy,xAOD::ShallowAuxContainer*& copyaux, const bool recordSG=true, const std::string& jetkey="") = 0;
244  virtual StatusCode GetFatJets(xAOD::JetContainer*& copy, xAOD::ShallowAuxContainer*& copyaux, const bool recordSG = false, const std::string& jetkey = "", const bool doLargeRdecorations = false, const xAOD::JetContainer* containerToBeCopied = nullptr) = 0;
245  virtual StatusCode GetTaus(xAOD::TauJetContainer*& copy,xAOD::ShallowAuxContainer*& copyaux,const bool recordSG=true, const std::string& taukey="TauJets", const xAOD::TauJetContainer* containerToBeCopied = nullptr) = 0;
246  virtual StatusCode GetMuons(xAOD::MuonContainer*& copy,xAOD::ShallowAuxContainer*& copyaux,const bool recordSG=true, const std::string& muonkey="Muons", const std::string& lrtmuonkey = "MuonsLRT", const xAOD::MuonContainer* containerToBeCopied = nullptr) = 0;
247  virtual StatusCode GetElectrons(xAOD::ElectronContainer*& copy,xAOD::ShallowAuxContainer*& copyaux,const bool recordSG=true,const std::string& elekey="Electrons", const std::string& lrtelekey = "LRTElectrons", const xAOD::ElectronContainer* containerToBeCopied = nullptr) = 0;
248  virtual StatusCode GetPhotons(xAOD::PhotonContainer*& copy,xAOD::ShallowAuxContainer*& copyaux,const bool recordSG=true,const std::string& photonkey="Photons", const xAOD::PhotonContainer* containerToBeCopied = nullptr) = 0;
250  const xAOD::JetContainer* jet,
251  const xAOD::ElectronContainer* elec = nullptr,
252  const xAOD::MuonContainer* muon = nullptr,
253  const xAOD::PhotonContainer* gamma = nullptr,
254  const xAOD::TauJetContainer* taujet = nullptr,
255  bool doTST=true, bool doJVTCut=true,
256  const xAOD::IParticleContainer* invis = nullptr) = 0;
257 
259  const xAOD::JetContainer* jet,
260  const xAOD::ElectronContainer* elec = nullptr,
261  const xAOD::MuonContainer* muon = nullptr
262  ) = 0;
263 
265  double& metSignificance,
266  bool doTST = true, bool doJVTCut = true
267  ) = 0;
268 
269  virtual StatusCode MergeMuons(const xAOD::MuonContainer & muons, const std::vector<bool> &writeMuon, xAOD::MuonContainer* outputCol) const = 0;
270 
272 
273  virtual StatusCode MergeElectrons(const xAOD::ElectronContainer & electrons, xAOD::ElectronContainer* outputCol, const std::set<const xAOD::Electron *> &ElectronsToRemove) const = 0;
274 
276 
277  virtual StatusCode SetBtagWeightDecorations(const xAOD::Jet& input, const asg::AnaToolHandle<IBTaggingSelectionTool>& btagSelTool, const std::string& btagTagger) const = 0;
278  virtual bool IsPFlowCrackVetoCleaning(const xAOD::ElectronContainer* elec = nullptr, const xAOD::PhotonContainer* gamma = nullptr) const = 0;
279 
280  virtual bool IsSignalJet(const xAOD::Jet& input, const float ptcut, const float etacut) const = 0;
281 
282  virtual bool IsBadJet(const xAOD::Jet& input) const = 0;
283 
284  virtual bool IsBJetLoose(const xAOD::Jet& input) const = 0;
285  virtual bool JetPassJVT(xAOD::Jet& input) = 0;
286 
287  virtual bool IsHighPtMuon(const xAOD::Muon& input) const = 0;
288 
289  virtual bool IsSignalMuon(const xAOD::Muon& input, const float ptcut, const float d0sigcut, const float z0cut, const float etacut = DUMMYDEF) const = 0;
290 
291  virtual bool IsSignalElectron(const xAOD::Electron& input, const float etcut, const float d0sigcut, const float z0cut, const float etacut = DUMMYDEF) const = 0;
292 
293  virtual bool IsCosmicMuon(const xAOD::Muon& input,const float z0cut, const float d0cut) const = 0;
294 
295  virtual bool IsSignalTau(const xAOD::TauJet& input, const float ptcut, const float etacut) const = 0;
296 
297  virtual bool IsBadMuon(const xAOD::Muon& input, const float qopcut) const = 0;
298 
299  virtual bool IsSignalPhoton(const xAOD::Photon& input, const float ptcut, const float etacut = DUMMYDEF) const = 0;
300 
301  virtual bool IsBJet(const xAOD::Jet& input) const = 0;
302 
303  virtual bool IsTrackBJet(const xAOD::Jet& input) const = 0;
304 
305  virtual bool IsTruthBJet(const xAOD::Jet& input) const = 0;
306 
307  virtual int IsBJetContinuous(const xAOD::Jet& input) const = 0;
308 
309  virtual int IsTrackBJetContinuous(const xAOD::Jet& input) const = 0;
310 
311  virtual double JVT_SF(const xAOD::JetContainer* jets) = 0;
312 
313  virtual double JVT_SFsys(const xAOD::JetContainer* jets, const CP::SystematicSet& systConfig) = 0;
314 
315  virtual double FJVT_SF(const xAOD::JetContainer* jets) = 0;
316 
317  virtual double FJVT_SFsys(const xAOD::JetContainer* jets, const CP::SystematicSet& systConfig) = 0;
318 
319  virtual float BtagSF(const xAOD::JetContainer* jets) = 0;
320 
321  virtual float BtagSFsys(const xAOD::JetContainer* jets, const CP::SystematicSet& systConfig) = 0;
322 
323  virtual float BtagSF_trkJet(const xAOD::JetContainer* trkjets) = 0;
324 
325  virtual float BtagSFsys_trkJet(const xAOD::JetContainer* trkjets, const CP::SystematicSet& systConfig) = 0;
326 
327  virtual float GetSignalMuonSF(const xAOD::Muon& mu, const bool recoSF = true, const bool isoSF = true, const bool doBadMuonHP = true, const bool warnOVR = true) = 0;
328 
329  virtual float GetSignalElecSF(const xAOD::Electron& el, const bool recoSF = true, const bool idSF = true, const bool triggerSF = true, const bool isoSF = true, const std::string& trigExpr = "singleLepton", const bool ecidsSF = false, const bool cidSF = false) = 0;
330 
331  virtual double GetEleTriggerEfficiency(const xAOD::Electron& el, const std::string& trigExpr = "SINGLE_E_2015_e24_lhmedium_L1EM20VH_OR_e60_lhmedium_OR_e120_lhloose_2016_2018_e26_lhtight_nod0_ivarloose_OR_e60_lhmedium_nod0_OR_e140_lhloose_nod0") const = 0;
332 
333  virtual double GetTriggerGlobalEfficiency(const xAOD::ElectronContainer& electrons, const xAOD::MuonContainer& muons, const std::string& trigExpr = "diLepton") = 0;
334 
335  virtual double GetTriggerGlobalEfficiency(const xAOD::PhotonContainer& photons, const std::string& trigExpr = "diPhoton") = 0;
336 
337  virtual double GetEleTriggerEfficiencySF(const xAOD::Electron& el, const std::string& trigExpr = "SINGLE_E_2015_e24_lhmedium_L1EM20VH_OR_e60_lhmedium_OR_e120_lhloose_2016_2018_e26_lhtight_nod0_ivarloose_OR_e60_lhmedium_nod0_OR_e140_lhloose_nod0") const = 0;
338 
339  virtual double GetTriggerGlobalEfficiencySF(const xAOD::ElectronContainer& electrons, const xAOD::MuonContainer& muons, const std::string& trigExpr = "diLepton") = 0;
340 
341  virtual double GetTriggerGlobalEfficiencySF(const xAOD::PhotonContainer& photons, const std::string& trigExpr = "diPhoton") = 0;
342 
343  virtual double GetTriggerGlobalEfficiencySFsys(const xAOD::ElectronContainer& electrons, const xAOD::MuonContainer& muons, const CP::SystematicSet& systConfig, const std::string& trigExpr = "diLepton") = 0;
344 
345  virtual double GetTriggerGlobalEfficiencySFsys(const xAOD::PhotonContainer& photons, const CP::SystematicSet& systConfig, const std::string& trigExpr = "diPhoton") = 0;
346 
347  virtual double GetMuonTriggerEfficiency(const xAOD::Muon& mu, const std::string& trigExpr = "HLT_mu20_iloose_L1MU15_OR_HLT_mu50", const bool isdata = false) = 0;
348 
349  virtual double GetTotalMuonTriggerSF(const xAOD::MuonContainer& sfmuons, const std::string& trigExpr) = 0;
350 
351  virtual double GetTotalMuonSF(const xAOD::MuonContainer& muons, const bool recoSF = true, const bool isoSF = true, const std::string& trigExpr = "HLT_mu20_iloose_L1MU15_OR_HLT_mu50", const bool bmhptSF = true) = 0;
352 
353  virtual float GetTotalElectronSF(const xAOD::ElectronContainer& electrons, const bool recoSF = true, const bool idSF = true, const bool triggerSF = true, const bool isoSF = true, const std::string& trigExpr = "singleLepton", const bool ecidsSF = false, const bool cidSF = false) = 0; // singleLepton == Ele.TriggerSFStringSingle value
354 
355  virtual double GetTotalMuonSFsys(const xAOD::MuonContainer& muons, const CP::SystematicSet& systConfig, const bool recoSF = true, const bool isoSF = true, const std::string& trigExpr = "HLT_mu20_iloose_L1MU15_OR_HLT_mu50", const bool bmhptSF = true) = 0;
356 
357  virtual float GetTotalElectronSFsys(const xAOD::ElectronContainer& electrons, const CP::SystematicSet& systConfig, const bool recoSF = true, const bool idSF = true, const bool triggerSF = true, const bool isoSF = true, const std::string& trigExpr = "singleLepton", const bool ecidsSF = false, const bool cidSF = false) = 0; // singleLepton == Ele.TriggerSFStringSingle value
358 
359  virtual double GetSignalTauSF(const xAOD::TauJet& tau, const bool idSF = true, const bool triggerSF = true, const std::string& trigExpr = "tau25_medium1_tracktwo") = 0;
360 
361  virtual double GetSignalTauSFsys(const xAOD::TauJet& tau, const CP::SystematicSet& systConfig, const bool idSF = true, const bool triggerSF = true, const std::string& trigExpr = "tau25_medium1_tracktwo") = 0;
362 
363  virtual double GetTauTriggerEfficiencySF(const xAOD::TauJet& tau, const std::string& trigExpr = "tau25_medium1_tracktwo") = 0;
364 
365  virtual double GetTotalTauSF(const xAOD::TauJetContainer& taus, const bool idSF = true, const bool triggerSF = true, const std::string& trigExpr = "tau25_medium1_tracktwo") = 0;
366 
367  virtual double GetTotalTauSFsys(const xAOD::TauJetContainer& taus, const CP::SystematicSet& systConfig, const bool idSF = true, const bool triggerSF = true, const std::string& trigExpr = "tau25_medium1_tracktwo") = 0;
368 
369  virtual double GetSignalPhotonSF(const xAOD::Photon& ph, const bool effSF = true, const bool isoSF = true, const bool triggerSF = false) const = 0;
370 
371  virtual double GetSignalPhotonSFsys(const xAOD::Photon& ph, const CP::SystematicSet& systConfig, const bool effSF = true, const bool isoSF = true, const bool triggerSF = false) = 0;
372 
373  virtual double GetTotalPhotonSF(const xAOD::PhotonContainer& photons, const bool effSF = true, const bool isoSF = true, const bool triggerSF = false) const = 0;
374 
375  virtual double GetTotalPhotonSFsys(const xAOD::PhotonContainer& photons, const CP::SystematicSet& systConfig, const bool effSF = true, const bool isoSF = true, const bool triggerSF = false) = 0;
376 
377  virtual double GetTotalJetSF(const xAOD::JetContainer* jets, const bool btagSF = true, const bool jvtSF = true, const bool fjvtSF = false) = 0;
378 
379  virtual double GetTotalJetSFsys(const xAOD::JetContainer* jets, const CP::SystematicSet& systConfig, const bool btagSF = true, const bool jvtSF = true, const bool fjvtSF = false) = 0;
380 
381  virtual bool IsMETTrigPassed(unsigned int runnumber = 0, bool j400_OR = false) const = 0;
382  virtual bool IsMETTrigPassed(const std::string& triggerName, bool j400_OR = false) const = 0;
383 
384  virtual bool IsTrigPassed(const std::string&, unsigned int condition=TrigDefs::Physics) const = 0;
385 
386  virtual bool IsTrigMatched(const xAOD::IParticle *part, const std::string& tr_item) = 0;
387  virtual bool IsTrigMatched(const xAOD::IParticle *part1, const xAOD::IParticle *part2, const std::string& tr_item) = 0;
388  virtual bool IsTrigMatched(const std::vector<const xAOD::IParticle*>& v, const std::string& tr_item) = 0;
389  virtual bool IsTrigMatched(const std::initializer_list<const xAOD::IParticle*> &v, const std::string& tr_item) = 0;
390 
392  virtual void TrigMatch(const xAOD::IParticle* p, const std::vector<std::string>& items) = 0;
393  virtual void TrigMatch(const xAOD::IParticle* p, const std::initializer_list<std::string>& items) = 0;
394  virtual void TrigMatch(const xAOD::IParticleContainer* v, const std::vector<std::string>& items) = 0;
395  virtual void TrigMatch(const xAOD::IParticleContainer* v, const std::initializer_list<std::string>& items) = 0;
396  virtual void TrigMatch(const std::initializer_list<const xAOD::IParticle*>& v, const std::vector<std::string>& items) = 0;
397  virtual void TrigMatch(const std::initializer_list<const xAOD::IParticle*>& v, const std::initializer_list<std::string>& items) = 0;
398  virtual void TrigMatch(const xAOD::IParticle* p, const std::string& item) = 0;
399  virtual void TrigMatch(const xAOD::IParticleContainer* v, const std::string& item) = 0;
400  virtual void TrigMatch(const std::initializer_list<const xAOD::IParticle*> &v, const std::string& item) = 0;
401 
402 
403  virtual float GetTrigPrescale(const std::string&) const = 0;
404 
405  virtual const Trig::ChainGroup* GetTrigChainGroup(const std::string&) const = 0;
406 
407  virtual const xAOD::EventInfo* GetEventInfo() const = 0;
408 
409  virtual float GetPileupWeight() = 0;
410 
411  virtual float GetPileupWeightPrescaledTrigger(const std::string & trigger_expr) = 0;
412 
413  virtual ULong64_t GetPileupWeightHash( ) = 0;
414 
415  virtual float GetDataWeight(const std::string&) = 0;
416 
417  virtual float GetCorrectedAverageInteractionsPerCrossing(bool includeDataSF=false) = 0;
418 
419  virtual float GetCorrectedActualInteractionsPerCrossing(bool includeDataSF=false) = 0;
420 
421  virtual double GetSumOfWeights(int channel) = 0;
422 
423  virtual unsigned int GetRandomRunNumber(bool muDependentRRN = true) = 0;
424 
425  virtual StatusCode ApplyPRWTool(bool muDependentRRN = true) = 0;
426 
427  virtual unsigned int GetRunNumber() const = 0;
428 
429  virtual const xAOD::TrackParticleContainer& GetInDetLargeD0Tracks(const EventContext &ctx) const = 0;
430 
431  virtual const xAOD::TrackParticleContainer& GetInDetLargeD0GSFTracks(const EventContext &ctx) const = 0;
432 
434 
435  virtual int treatAsYear(const int runNumber=-1) const = 0;
436 
438  const xAOD::PhotonContainer* gamma = nullptr, const xAOD::TauJetContainer* taujet = nullptr, const xAOD::JetContainer *fatjets = nullptr) = 0;
439 
441 
443 
444  virtual StatusCode applySystematicVariation( const CP::SystematicSet& systConfig ) = 0;
445 
446  virtual bool isPrompt(const xAOD::IParticle* part) const = 0;
447 
448  virtual StatusCode FindSusyHP(const xAOD::TruthParticleContainer *truthP, int& pdgid1, int& pdgid2, bool isTruth3 = false) const = 0;
449 
450  virtual StatusCode FindSusyHP(const xAOD::TruthEvent *truthE, int& pdgid1, int& pdgid2) const = 0;
451 
453  virtual std::vector<ST::SystInfo> getSystInfoList() const = 0;
454 
455  virtual std::string TrigSingleLep() const = 0;
456 
457  // Temporary function for Sherpa 2.2 V+jets n-jets reweighting
458  // (see https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/CentralMC15ProductionList#NEW_Sherpa_v2_2_V_jets_NJet_rewe)
459  virtual float getSherpaVjetsNjetsWeight() const = 0;
460  virtual float getSherpaVjetsNjetsWeight(const std::string& jetContainer) const = 0;
461 
462  enum DataSource {
463  Undefined = -1,
466  AtlfastII
467  };
468 
469  }; // class ISUSYObjDef_xAODTool
470 
471 } // namespace ST
472 
473 #endif // SUSYTOOLS_SUSYOBJDEF_XAODTOOL_H
LArG4FSStartPointFilter.part
part
Definition: LArG4FSStartPointFilter.py:21
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
ST::ISUSYObjDef_xAODTool::JVT_SF
virtual double JVT_SF(const xAOD::JetContainer *jets)=0
ShallowCopy.h
TMDB::Weights
std::array< float, 7 > Weights
Definition: ITileCondToolTMDB.h:14
ST::ISUSYObjDef_xAODTool::BtagSFsys_trkJet
virtual float BtagSFsys_trkJet(const xAOD::JetContainer *trkjets, const CP::SystematicSet &systConfig)=0
ST::ISUSYObjDef_xAODTool::getSystInfoList
virtual std::vector< ST::SystInfo > getSystInfoList() const =0
ST::ISUSYObjDef_xAODTool::GetCorrectedActualInteractionsPerCrossing
virtual float GetCorrectedActualInteractionsPerCrossing(bool includeDataSF=false)=0
ST::ISUSYObjDef_xAODTool::GetTrackJets
virtual StatusCode GetTrackJets(xAOD::JetContainer *&copy, xAOD::ShallowAuxContainer *&copyaux, const bool recordSG=true, const std::string &jetkey="", const xAOD::JetContainer *containerToBeCopied=nullptr)=0
ST::ISUSYObjDef_xAODTool::SetBtagWeightDecorations
virtual StatusCode SetBtagWeightDecorations(const xAOD::Jet &input, const asg::AnaToolHandle< IBTaggingSelectionTool > &btagSelTool, const std::string &btagTagger) const =0
xAOD::muon
@ muon
Definition: TrackingPrimitives.h:195
ST::ISUSYObjDef_xAODTool::IsBadJet
virtual bool IsBadJet(const xAOD::Jet &input) const =0
Jet.h
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
ST::SystInfo::affectedWeights
std::set< unsigned int > affectedWeights
Definition: ISUSYObjDef_xAODTool.h:68
asg::AnaToolHandle< IBTaggingSelectionTool >
ST::ISUSYObjDef_xAODTool::FJVT_SF
virtual double FJVT_SF(const xAOD::JetContainer *jets)=0
ST::ISUSYObjDef_xAODTool::DataSource
DataSource
Definition: ISUSYObjDef_xAODTool.h:462
ST::ISUSYObjDef_xAODTool::TrigMatch
virtual void TrigMatch(const xAOD::IParticle *p, std::initializer_list< std::string >::iterator, std::initializer_list< std::string >::iterator)=0
ST::ISUSYObjDef_xAODTool::IsTruthBJet
virtual bool IsTruthBJet(const xAOD::Jet &input) const =0
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:24
ST::ISUSYObjDef_xAODTool::GetPileupWeight
virtual float GetPileupWeight()=0
ID
std::vector< Identifier > ID
Definition: CalibHitIDCheck.h:24
ST::ISUSYObjDef_xAODTool::GetTotalPhotonSF
virtual double GetTotalPhotonSF(const xAOD::PhotonContainer &photons, const bool effSF=true, const bool isoSF=true, const bool triggerSF=false) const =0
ST::ISUSYObjDef_xAODTool::GetTotalJetSFsys
virtual double GetTotalJetSFsys(const xAOD::JetContainer *jets, const CP::SystematicSet &systConfig, const bool btagSF=true, const bool jvtSF=true, const bool fjvtSF=false)=0
Trig
The common trigger namespace for trigger analysis tools.
Definition: LArCellMonAlg.h:33
ST::ISUSYObjDef_xAODTool::isAtlfast
virtual bool isAtlfast() const =0
ObjectType
ObjectType
Definition: BaseObject.h:11
ST::ISUSYObjDef_xAODTool::BtagSF_trkJet
virtual float BtagSF_trkJet(const xAOD::JetContainer *trkjets)=0
ST::MET_TST
@ MET_TST
Definition: ISUSYObjDef_xAODTool.h:81
ST::ISUSYObjDef_xAODTool::GetTotalMuonSF
virtual double GetTotalMuonSF(const xAOD::MuonContainer &muons, const bool recoSF=true, const bool isoSF=true, const std::string &trigExpr="HLT_mu20_iloose_L1MU15_OR_HLT_mu50", const bool bmhptSF=true)=0
ST::ISUSYObjDef_xAODTool::TrigMatch
virtual void TrigMatch(const xAOD::IParticleContainer *v, const std::string &item)=0
ST::ISUSYObjDef_xAODTool::prepareLRTElectrons
virtual StatusCode prepareLRTElectrons(const xAOD::ElectronContainer *inElectrons, xAOD::ElectronContainer *copy) const =0
Muon.h
ST::ISUSYObjDef_xAODTool::GetTrackMET
virtual StatusCode GetTrackMET(xAOD::MissingETContainer &met, const xAOD::JetContainer *jet, const xAOD::ElectronContainer *elec=nullptr, const xAOD::MuonContainer *muon=nullptr)=0
ST::EventWeight
@ EventWeight
Definition: ISUSYObjDef_xAODTool.h:84
ST::ISUSYObjDef_xAODTool::GetTotalTauSF
virtual double GetTotalTauSF(const xAOD::TauJetContainer &taus, const bool idSF=true, const bool triggerSF=true, const std::string &trigExpr="tau25_medium1_tracktwo")=0
ST::ISUSYObjDef_xAODTool::readConfig
virtual StatusCode readConfig()=0
ST::ISUSYObjDef_xAODTool::FillPhoton
virtual StatusCode FillPhoton(xAOD::Photon &input, const float ptcut, const float etacut)=0
ST::ISUSYObjDef_xAODTool::GetTotalTauSFsys
virtual double GetTotalTauSFsys(const xAOD::TauJetContainer &taus, const CP::SystematicSet &systConfig, const bool idSF=true, const bool triggerSF=true, const std::string &trigExpr="tau25_medium1_tracktwo")=0
ST::ISUSYObjDef_xAODTool::GetInDetLargeD0GSFTracks
virtual const xAOD::TrackParticleContainer & GetInDetLargeD0GSFTracks(const EventContext &ctx) const =0
TruthParticleContainer.h
ST::ISUSYObjDef_xAODTool::resetSystematics
virtual StatusCode resetSystematics()=0
ST
Definition: Electrons.cxx:41
ST::ISUSYObjDef_xAODTool::GetTotalElectronSF
virtual float GetTotalElectronSF(const xAOD::ElectronContainer &electrons, const bool recoSF=true, const bool idSF=true, const bool triggerSF=true, const bool isoSF=true, const std::string &trigExpr="singleLepton", const bool ecidsSF=false, const bool cidSF=false)=0
ST::SystObjType
SystObjType
Definition: ISUSYObjDef_xAODTool.h:72
ST::ISUSYObjDef_xAODTool::GetEleTriggerEfficiency
virtual double GetEleTriggerEfficiency(const xAOD::Electron &el, const std::string &trigExpr="SINGLE_E_2015_e24_lhmedium_L1EM20VH_OR_e60_lhmedium_OR_e120_lhloose_2016_2018_e26_lhtight_nod0_ivarloose_OR_e60_lhmedium_nod0_OR_e140_lhloose_nod0") const =0
asg::IAsgTool
Base class for the dual-use tool interface classes.
Definition: IAsgTool.h:41
SystematicSet.h
xAOD::ShallowAuxContainer
Class creating a shallow copy of an existing auxiliary container.
Definition: ShallowAuxContainer.h:54
ST::ISUSYObjDef_xAODTool::ApplyPRWTool
virtual StatusCode ApplyPRWTool(bool muDependentRRN=true)=0
ST::ISUSYObjDef_xAODTool::GetMET
virtual StatusCode GetMET(xAOD::MissingETContainer &met, const xAOD::JetContainer *jet, const xAOD::ElectronContainer *elec=nullptr, const xAOD::MuonContainer *muon=nullptr, const xAOD::PhotonContainer *gamma=nullptr, const xAOD::TauJetContainer *taujet=nullptr, bool doTST=true, bool doJVTCut=true, const xAOD::IParticleContainer *invis=nullptr)=0
CP::SystematicSet
Class to wrap a set of SystematicVariations.
Definition: SystematicSet.h:31
ST::ISUSYObjDef_xAODTool::TrigSingleLep
virtual std::string TrigSingleLep() const =0
ST::SystInfo::systset
CP::SystematicSet systset
Definition: ISUSYObjDef_xAODTool.h:64
ST::ISUSYObjDef_xAODTool::setBoolProperty
virtual StatusCode setBoolProperty(const std::string &name, const bool &property)=0
ST::ISUSYObjDef_xAODTool::IsBJetContinuous
virtual int IsBJetContinuous(const xAOD::Jet &input) const =0
ST::ISUSYObjDef_xAODTool::GetPileupWeightPrescaledTrigger
virtual float GetPileupWeightPrescaledTrigger(const std::string &trigger_expr)=0
ST::ISUSYObjDef_xAODTool::GetSumOfWeights
virtual double GetSumOfWeights(int channel)=0
LArG4GenerateShowerLib.condition
condition
Definition: LArG4GenerateShowerLib.py:19
asg::AsgTool::getProperty
const T * getProperty(const std::string &name) const
Get one of the tool's properties.
Tau
Definition: EfficiencyPtPlots.cxx:9
ST::ISUSYObjDef_xAODTool::GetMuons
virtual StatusCode GetMuons(xAOD::MuonContainer *&copy, xAOD::ShallowAuxContainer *&copyaux, const bool recordSG=true, const std::string &muonkey="Muons", const std::string &lrtmuonkey="MuonsLRT", const xAOD::MuonContainer *containerToBeCopied=nullptr)=0
ST::ISUSYObjDef_xAODTool::IsHighPtMuon
virtual bool IsHighPtMuon(const xAOD::Muon &input) const =0
ST::ISUSYObjDef_xAODTool::Undefined
@ Undefined
Definition: ISUSYObjDef_xAODTool.h:463
TrigInDetValidation_Base.test
test
Definition: TrigInDetValidation_Base.py:147
ST::ISUSYObjDef_xAODTool::GetTotalPhotonSFsys
virtual double GetTotalPhotonSFsys(const xAOD::PhotonContainer &photons, const CP::SystematicSet &systConfig, const bool effSF=true, const bool isoSF=true, const bool triggerSF=false)=0
ST::ISUSYObjDef_xAODTool::TrigMatch
virtual void TrigMatch(const xAOD::IParticle *p, const std::string &item)=0
ST::ISUSYObjDef_xAODTool::GetTaus
virtual StatusCode GetTaus(xAOD::TauJetContainer *&copy, xAOD::ShallowAuxContainer *&copyaux, const bool recordSG=true, const std::string &taukey="TauJets", const xAOD::TauJetContainer *containerToBeCopied=nullptr)=0
ST::ISUSYObjDef_xAODTool::IsSignalJet
virtual bool IsSignalJet(const xAOD::Jet &input, const float ptcut, const float etacut) const =0
ST::ISUSYObjDef_xAODTool::GetCorrectedAverageInteractionsPerCrossing
virtual float GetCorrectedAverageInteractionsPerCrossing(bool includeDataSF=false)=0
ST::ISUSYObjDef_xAODTool::FillTrackJet
virtual StatusCode FillTrackJet(xAOD::Jet &input)=0
CP::SystematicVariation
Definition: SystematicVariation.h:47
ST::BTag
@ BTag
Definition: ISUSYObjDef_xAODTool.h:80
Conditions.h
Muon
This class provides conversion from CSC RDO data to CSC Digits.
Definition: TrackSystemController.h:45
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:41
mapkey::sys
@ sys
Definition: TElectronEfficiencyCorrectionTool.cxx:42
Pythia8_A14_NNPDF23LO_forMGHT_EvtGen.ptcut
float ptcut
Definition: Pythia8_A14_NNPDF23LO_forMGHT_EvtGen.py:9
xAOD::Muon_v1
Class describing a Muon.
Definition: Muon_v1.h:38
ST::ISUSYObjDef_xAODTool::JetPassJVT
virtual bool JetPassJVT(xAOD::Jet &input)=0
master.gen
gen
Definition: master.py:32
ST::ISUSYObjDef_xAODTool::getMCShowerType
virtual int getMCShowerType(const std::string &sample_name) const =0
ST::ISUSYObjDef_xAODTool::IsCosmicMuon
virtual bool IsCosmicMuon(const xAOD::Muon &input, const float z0cut, const float d0cut) const =0
ST::ISUSYObjDef_xAODTool::FillElectron
virtual StatusCode FillElectron(xAOD::Electron &input, const float etcut, const float etacut)=0
MuonAuxContainer.h
ST::ISUSYObjDef_xAODTool::TrigMatch
virtual void TrigMatch(const std::initializer_list< const xAOD::IParticle * > &v, const std::initializer_list< std::string > &items)=0
ST::ISUSYObjDef_xAODTool::JVT_SFsys
virtual double JVT_SFsys(const xAOD::JetContainer *jets, const CP::SystematicSet &systConfig)=0
ST::ISUSYObjDef_xAODTool::GetRunNumber
virtual unsigned int GetRunNumber() const =0
ST::ISUSYObjDef_xAODTool::GetTriggerGlobalEfficiencySF
virtual double GetTriggerGlobalEfficiencySF(const xAOD::PhotonContainer &photons, const std::string &trigExpr="diPhoton")=0
ST::ISUSYObjDef_xAODTool::FillMuon
virtual StatusCode FillMuon(xAOD::Muon &input, const float ptcut, const float etacut)=0
ST::Egamma
@ Egamma
Definition: ISUSYObjDef_xAODTool.h:75
ST::ISUSYObjDef_xAODTool::FindSusyHP
virtual StatusCode FindSusyHP(const xAOD::TruthParticleContainer *truthP, int &pdgid1, int &pdgid2, bool isTruth3=false) const =0
part1
Definition: part1.py:1
ST::ISUSYObjDef_xAODTool::isData
virtual bool isData() const =0
ST::ISUSYObjDef_xAODTool::GetJetsSyst
virtual StatusCode GetJetsSyst(const xAOD::JetContainer &calibjets, xAOD::JetContainer *&copy, xAOD::ShallowAuxContainer *&copyaux, const bool recordSG=true, const std::string &jetkey="")=0
ST::ISUSYObjDef_xAODTool::GetSignalPhotonSF
virtual double GetSignalPhotonSF(const xAOD::Photon &ph, const bool effSF=true, const bool isoSF=true, const bool triggerSF=false) const =0
ST::ISUSYObjDef_xAODTool::GetRandomRunNumber
virtual unsigned int GetRandomRunNumber(bool muDependentRRN=true)=0
ST::Photon
@ Photon
Definition: ISUSYObjDef_xAODTool.h:77
met
Definition: IMETSignificance.h:24
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
ST::ISUSYObjDef_xAODTool::GetEleTriggerEfficiencySF
virtual double GetEleTriggerEfficiencySF(const xAOD::Electron &el, const std::string &trigExpr="SINGLE_E_2015_e24_lhmedium_L1EM20VH_OR_e60_lhmedium_OR_e120_lhloose_2016_2018_e26_lhtight_nod0_ivarloose_OR_e60_lhmedium_nod0_OR_e140_lhloose_nod0") const =0
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
ST::ISUSYObjDef_xAODTool::BtagSF
virtual float BtagSF(const xAOD::JetContainer *jets)=0
ElectronContainer.h
ST::ISUSYObjDef_xAODTool::GetTriggerGlobalEfficiencySFsys
virtual double GetTriggerGlobalEfficiencySFsys(const xAOD::ElectronContainer &electrons, const xAOD::MuonContainer &muons, const CP::SystematicSet &systConfig, const std::string &trigExpr="diLepton")=0
TrigVtx::gamma
@ gamma
Definition: TrigParticleTable.h:26
ST::ISUSYObjDef_xAODTool::GetSignalTauSF
virtual double GetSignalTauSF(const xAOD::TauJet &tau, const bool idSF=true, const bool triggerSF=true, const std::string &trigExpr="tau25_medium1_tracktwo")=0
ST::ISUSYObjDef_xAODTool::GetTotalMuonTriggerSF
virtual double GetTotalMuonTriggerSF(const xAOD::MuonContainer &sfmuons, const std::string &trigExpr)=0
ST::ISUSYObjDef_xAODTool::GetJets
virtual StatusCode GetJets(xAOD::JetContainer *&copy, xAOD::ShallowAuxContainer *&copyaux, const bool recordSG=true, const std::string &jetkey="", const xAOD::JetContainer *containerToBeCopied=nullptr)=0
ST::ISUSYObjDef_xAODTool::IsBadMuon
virtual bool IsBadMuon(const xAOD::Muon &input, const float qopcut) const =0
ST::ISUSYObjDef_xAODTool::GetTrigChainGroup
virtual const Trig::ChainGroup * GetTrigChainGroup(const std::string &) const =0
ST::ISUSYObjDef_xAODTool::GetSignalMuonSF
virtual float GetSignalMuonSF(const xAOD::Muon &mu, const bool recoSF=true, const bool isoSF=true, const bool doBadMuonHP=true, const bool warnOVR=true)=0
ST::ISUSYObjDef_xAODTool::Data
@ Data
Definition: ISUSYObjDef_xAODTool.h:464
Photon.h
IBTaggingSelectionTool
Definition: IBTaggingSelectionTool.h:14
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ST::ISUSYObjDef_xAODTool::GetSignalPhotonSFsys
virtual double GetSignalPhotonSFsys(const xAOD::Photon &ph, const CP::SystematicSet &systConfig, const bool effSF=true, const bool isoSF=true, const bool triggerSF=false)=0
ST::ISUSYObjDef_xAODTool::GetTauTriggerEfficiencySF
virtual double GetTauTriggerEfficiencySF(const xAOD::TauJet &tau, const std::string &trigExpr="tau25_medium1_tracktwo")=0
ST::ISUSYObjDef_xAODTool::IsTrigPassed
virtual bool IsTrigPassed(const std::string &, unsigned int condition=TrigDefs::Physics) const =0
xAOD::TauJet_v3
Class describing a tau jet.
Definition: TauJet_v3.h:41
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
ST::ISUSYObjDef_xAODTool::GetInDetLargeD0Tracks
virtual const xAOD::TrackParticleContainer & GetInDetLargeD0Tracks(const EventContext &ctx) const =0
ST::ISUSYObjDef_xAODTool::TrigMatch
virtual void TrigMatch(const xAOD::IParticle *p, const std::initializer_list< std::string > &items)=0
ST::ISUSYObjDef_xAODTool::getSherpaVjetsNjetsWeight
virtual float getSherpaVjetsNjetsWeight(const std::string &jetContainer) const =0
ST::ISUSYObjDef_xAODTool::IsTrigMatched
virtual bool IsTrigMatched(const xAOD::IParticle *part1, const xAOD::IParticle *part2, const std::string &tr_item)=0
ST::ISUSYObjDef_xAODTool::GetTotalJetSF
virtual double GetTotalJetSF(const xAOD::JetContainer *jets, const bool btagSF=true, const bool jvtSF=true, const bool fjvtSF=false)=0
plotIsoValidation.el
el
Definition: plotIsoValidation.py:197
ST::ISUSYObjDef_xAODTool::OverlapRemoval
virtual StatusCode OverlapRemoval(const xAOD::ElectronContainer *electrons, const xAOD::MuonContainer *muons, const xAOD::JetContainer *jets, const xAOD::PhotonContainer *gamma=nullptr, const xAOD::TauJetContainer *taujet=nullptr, const xAOD::JetContainer *fatjets=nullptr)=0
xAOD::TruthEvent_v1
Class describing a signal truth event in the MC record.
Definition: TruthEvent_v1.h:35
ST::ISUSYObjDef_xAODTool::TrigMatch
virtual void TrigMatch(const std::initializer_list< const xAOD::IParticle * > &v, const std::string &item)=0
ST::ISUSYObjDef_xAODTool::IsMETTrigPassed
virtual bool IsMETTrigPassed(const std::string &triggerName, bool j400_OR=false) const =0
ST::SystInfo::affectsType
unsigned int affectsType
Definition: ISUSYObjDef_xAODTool.h:67
ASG_TOOL_INTERFACE
#define ASG_TOOL_INTERFACE(CLASSNAME)
Definition: AsgToolMacros.h:40
ST::ISUSYObjDef_xAODTool::IsSignalTau
virtual bool IsSignalTau(const xAOD::TauJet &input, const float ptcut, const float etacut) const =0
ST::ISUSYObjDef_xAODTool::FullSim
@ FullSim
Definition: ISUSYObjDef_xAODTool.h:465
IAsgTool.h
ST::ISUSYObjDef_xAODTool::IsTrigMatched
virtual bool IsTrigMatched(const std::initializer_list< const xAOD::IParticle * > &v, const std::string &tr_item)=0
TauJetContainer.h
ST::ISUSYObjDef_xAODTool::GetEventInfo
virtual const xAOD::EventInfo * GetEventInfo() const =0
ST::ISUSYObjDef_xAODTool::GetTriggerGlobalEfficiency
virtual double GetTriggerGlobalEfficiency(const xAOD::ElectronContainer &electrons, const xAOD::MuonContainer &muons, const std::string &trigExpr="diLepton")=0
ST::ISUSYObjDef_xAODTool::MergeElectrons
virtual StatusCode MergeElectrons(const xAOD::ElectronContainer &electrons, xAOD::ElectronContainer *outputCol, const std::set< const xAOD::Electron * > &ElectronsToRemove) const =0
ST::ISUSYObjDef_xAODTool::TrigMatch
virtual void TrigMatch(const xAOD::IParticleContainer *v, const std::vector< std::string > &items)=0
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
Vertex.h
ST::ISUSYObjDef_xAODTool::getSystInfo
virtual ST::SystInfo getSystInfo(const CP::SystematicVariation &sys) const =0
TrigConf::name
Definition: HLTChainList.h:35
AnaToolHandle.h
DeMoScan.runnumber
runnumber
Definition: DeMoScan.py:266
part2
Definition: part2.py:1
ST::ISUSYObjDef_xAODTool::GetTriggerGlobalEfficiencySFsys
virtual double GetTriggerGlobalEfficiencySFsys(const xAOD::PhotonContainer &photons, const CP::SystematicSet &systConfig, const std::string &trigExpr="diPhoton")=0
ST::ISUSYObjDef_xAODTool::getProperty
const T * getProperty(const std::string &name)
Definition: ISUSYObjDef_xAODTool.h:224
ST::ISUSYObjDef_xAODTool::IsBJetLoose
virtual bool IsBJetLoose(const xAOD::Jet &input) const =0
ST::ISUSYObjDef_xAODTool::GetTriggerGlobalEfficiency
virtual double GetTriggerGlobalEfficiency(const xAOD::PhotonContainer &photons, const std::string &trigExpr="diPhoton")=0
ST::ISUSYObjDef_xAODTool::getSherpaVjetsNjetsWeight
virtual float getSherpaVjetsNjetsWeight() const =0
Trig::ChainGroup
Definition: ChainGroup.h:51
ST::SystInfo::affectsKinematics
bool affectsKinematics
Definition: ISUSYObjDef_xAODTool.h:65
ST::ISUSYObjDef_xAODTool::IsSignalPhoton
virtual bool IsSignalPhoton(const xAOD::Photon &input, const float ptcut, const float etacut=DUMMYDEF) const =0
xAOD::MissingETContainer_v1
Container for xAOD::MissingET_v1 objects.
Definition: MissingETContainer_v1.h:21
MissingET.h
ST::ISUSYObjDef_xAODTool::MergeMuons
virtual StatusCode MergeMuons(const xAOD::MuonContainer &muons, const std::vector< bool > &writeMuon, xAOD::MuonContainer *outputCol) const =0
ST::ISUSYObjDef_xAODTool::GetSignalTauSFsys
virtual double GetSignalTauSFsys(const xAOD::TauJet &tau, const CP::SystematicSet &systConfig, const bool idSF=true, const bool triggerSF=true, const std::string &trigExpr="tau25_medium1_tracktwo")=0
ST::Muon
@ Muon
Definition: ISUSYObjDef_xAODTool.h:78
ST::ISUSYObjDef_xAODTool::GetTrigPrescale
virtual float GetTrigPrescale(const std::string &) const =0
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
ST::SystInfo
Definition: ISUSYObjDef_xAODTool.h:63
ST::ISUSYObjDef_xAODTool::GetSignalElecSF
virtual float GetSignalElecSF(const xAOD::Electron &el, const bool recoSF=true, const bool idSF=true, const bool triggerSF=true, const bool isoSF=true, const std::string &trigExpr="singleLepton", const bool ecidsSF=false, const bool cidSF=false)=0
TrigJetMonitorAlgorithm.items
items
Definition: TrigJetMonitorAlgorithm.py:79
ST::ISUSYObjDef_xAODTool::BtagSFsys
virtual float BtagSFsys(const xAOD::JetContainer *jets, const CP::SystematicSet &systConfig)=0
item
Definition: ItemListSvc.h:43
ST::ISUSYObjDef_xAODTool::GetTotalElectronSFsys
virtual float GetTotalElectronSFsys(const xAOD::ElectronContainer &electrons, const CP::SystematicSet &systConfig, const bool recoSF=true, const bool idSF=true, const bool triggerSF=true, const bool isoSF=true, const std::string &trigExpr="singleLepton", const bool ecidsSF=false, const bool cidSF=false)=0
ST::ISUSYObjDef_xAODTool::IsBJet
virtual bool IsBJet(const xAOD::Jet &input) const =0
ST::ISUSYObjDef_xAODTool::GetPileupWeightHash
virtual ULong64_t GetPileupWeightHash()=0
xAOD::Electron_v1
Definition: Electron_v1.h:34
ST::ISUSYObjDef_xAODTool::TrigMatch
virtual void TrigMatch(const std::initializer_list< const xAOD::IParticle * > &v, const std::vector< std::string > &items)=0
ST::Electron
@ Electron
Definition: ISUSYObjDef_xAODTool.h:76
EventInfo.h
ST::Jet
@ Jet
Definition: ISUSYObjDef_xAODTool.h:74
xAOD::EventInfo_v1
Class describing the basic event information.
Definition: EventInfo_v1.h:43
MuonContainer.h
ST::ISUSYObjDef_xAODTool::FillTau
virtual StatusCode FillTau(xAOD::TauJet &input)=0
Muon
struct TBPatternUnitContext Muon
ST::MET_CST
@ MET_CST
Definition: ISUSYObjDef_xAODTool.h:82
ST::ISUSYObjDef_xAODTool::GetTotalMuonSFsys
virtual double GetTotalMuonSFsys(const xAOD::MuonContainer &muons, const CP::SystematicSet &systConfig, const bool recoSF=true, const bool isoSF=true, const std::string &trigExpr="HLT_mu20_iloose_L1MU15_OR_HLT_mu50", const bool bmhptSF=true)=0
python.PyAthena.v
v
Definition: PyAthena.py:154
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
DeMoAtlasDataLoss.runNumber
string runNumber
Definition: DeMoAtlasDataLoss.py:64
ST::ISUSYObjDef_xAODTool::IsTrigMatched
virtual bool IsTrigMatched(const xAOD::IParticle *part, const std::string &tr_item)=0
ST::ISUSYObjDef_xAODTool::GetPrimVtx
virtual const xAOD::Vertex * GetPrimVtx() const =0
ST::ISUSYObjDef_xAODTool::NearbyLeptonCorrections
virtual StatusCode NearbyLeptonCorrections(xAOD::ElectronContainer *electrons=nullptr, xAOD::MuonContainer *muons=nullptr) const =0
ST::ISUSYObjDef_xAODTool::IsTrackBJetContinuous
virtual int IsTrackBJetContinuous(const xAOD::Jet &input) const =0
ST::ISUSYObjDef_xAODTool::prepareLRTMuons
virtual StatusCode prepareLRTMuons(const xAOD::MuonContainer *inMuons, xAOD::MuonContainer *copy) const =0
ST::ISUSYObjDef_xAODTool::treatAsYear
virtual int treatAsYear(const int runNumber=-1) const =0
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
JetContainer.h
xAOD::Photon_v1
Definition: Photon_v1.h:37
ST::ISUSYObjDef_xAODTool::IsSignalMuon
virtual bool IsSignalMuon(const xAOD::Muon &input, const float ptcut, const float d0sigcut, const float z0cut, const float etacut=DUMMYDEF) const =0
ST::ISUSYObjDef_xAODTool::FindSusyHP
virtual StatusCode FindSusyHP(const xAOD::TruthEvent *truthE, int &pdgid1, int &pdgid2) const =0
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
ST::LRT_Object
@ LRT_Object
Definition: ISUSYObjDef_xAODTool.h:85
ST::ISUSYObjDef_xAODTool::GetMETSig
virtual StatusCode GetMETSig(xAOD::MissingETContainer &met, double &metSignificance, bool doTST=true, bool doJVTCut=true)=0
TauJet.h
ST::ISUSYObjDef_xAODTool::GetElectrons
virtual StatusCode GetElectrons(xAOD::ElectronContainer *&copy, xAOD::ShallowAuxContainer *&copyaux, const bool recordSG=true, const std::string &elekey="Electrons", const std::string &lrtelekey="LRTElectrons", const xAOD::ElectronContainer *containerToBeCopied=nullptr)=0
ST::ISUSYObjDef_xAODTool::isPrompt
virtual bool isPrompt(const xAOD::IParticle *part) const =0
ST::ISUSYObjDef_xAODTool::AtlfastII
@ AtlfastII
Definition: ISUSYObjDef_xAODTool.h:466
ST::ISUSYObjDef_xAODTool::FJVT_SFsys
virtual double FJVT_SFsys(const xAOD::JetContainer *jets, const CP::SystematicSet &systConfig)=0
ST::ISUSYObjDef_xAODTool::IsPFlowCrackVetoCleaning
virtual bool IsPFlowCrackVetoCleaning(const xAOD::ElectronContainer *elec=nullptr, const xAOD::PhotonContainer *gamma=nullptr) const =0
ST::ISUSYObjDef_xAODTool::IsSignalElectron
virtual bool IsSignalElectron(const xAOD::Electron &input, const float etcut, const float d0sigcut, const float z0cut, const float etacut=DUMMYDEF) const =0
ST::SystInfo::affectsWeights
bool affectsWeights
Definition: ISUSYObjDef_xAODTool.h:66
ST::ISUSYObjDef_xAODTool
Definition: ISUSYObjDef_xAODTool.h:209
defineDB.jets
list jets
Definition: JetTagCalibration/share/defineDB.py:24
ST::Unknown
@ Unknown
Definition: ISUSYObjDef_xAODTool.h:73
ST::ISUSYObjDef_xAODTool::ApplyLRTUncertainty
virtual StatusCode ApplyLRTUncertainty()=0
ST::ISUSYObjDef_xAODTool::GetFatJets
virtual StatusCode GetFatJets(xAOD::JetContainer *&copy, xAOD::ShallowAuxContainer *&copyaux, const bool recordSG=false, const std::string &jetkey="", const bool doLargeRdecorations=false, const xAOD::JetContainer *containerToBeCopied=nullptr)=0
Electron.h
ST::ISUSYObjDef_xAODTool::IsTrigMatched
virtual bool IsTrigMatched(const std::vector< const xAOD::IParticle * > &v, const std::string &tr_item)=0
ST::ISUSYObjDef_xAODTool::IsMETTrigPassed
virtual bool IsMETTrigPassed(unsigned int runnumber=0, bool j400_OR=false) const =0
calibdata.copy
bool copy
Definition: calibdata.py:27
ST::Tau
@ Tau
Definition: ISUSYObjDef_xAODTool.h:79
ST::ISUSYObjDef_xAODTool::GetDataWeight
virtual float GetDataWeight(const std::string &)=0
ST::ISUSYObjDef_xAODTool::FillJet
virtual StatusCode FillJet(xAOD::Jet &input, const bool doCalib=true, const bool isFat=false, const bool doLargeRdecorations=false)=0
ST::ISUSYObjDef_xAODTool::IsTrackBJet
virtual bool IsTrackBJet(const xAOD::Jet &input) const =0
ST::ISUSYObjDef_xAODTool::GetTriggerGlobalEfficiencySF
virtual double GetTriggerGlobalEfficiencySF(const xAOD::ElectronContainer &electrons, const xAOD::MuonContainer &muons, const std::string &trigExpr="diLepton")=0
CaloNoise_fillDB.mu
mu
Definition: CaloNoise_fillDB.py:53
ST::ISUSYObjDef_xAODTool::TrigMatch
virtual void TrigMatch(const xAOD::IParticle *p, const std::vector< std::string > &items)=0
ST::ISUSYObjDef_xAODTool::GetMuonTriggerEfficiency
virtual double GetMuonTriggerEfficiency(const xAOD::Muon &mu, const std::string &trigExpr="HLT_mu20_iloose_L1MU15_OR_HLT_mu50", const bool isdata=false)=0
TrackingPrimitives.h
PhotonContainer.h
MissingETContainer.h
InDetDD::electrons
@ electrons
Definition: InDetDD_Defs.h:17
ST::MET_Track
@ MET_Track
Definition: ISUSYObjDef_xAODTool.h:83
ST::ISUSYObjDef_xAODTool::applySystematicVariation
virtual StatusCode applySystematicVariation(const CP::SystematicSet &systConfig)=0
TruthEvent.h
ST::ISUSYObjDef_xAODTool::TrigMatch
virtual void TrigMatch(const xAOD::IParticleContainer *v, const std::initializer_list< std::string > &items)=0
ST::ISUSYObjDef_xAODTool::GetPhotons
virtual StatusCode GetPhotons(xAOD::PhotonContainer *&copy, xAOD::ShallowAuxContainer *&copyaux, const bool recordSG=true, const std::string &photonkey="Photons", const xAOD::PhotonContainer *containerToBeCopied=nullptr)=0