Event¶
-
class BasicEventSelection : public xAH::Algorithm¶
This algorithm performs the very basic event selection. This should be the first algo in the algo chain. It can create weighted and unweighted cutflow objects to be picked up downstream by other xAH algos, and your own. The selection applied in data only is:
GRL (can be turned off)
LAr Error
Tile Error
Core Flag
In both data and simulation (MC), the following cuts are applied
the highest sum \(p_{T}^2\) primary vertex has 2 or more tracks (see
m_applyPrimaryVertexCut
)trigger requirements (see
m_applyTriggerCut
)
For derivations, the metadata can be accessed and added to the cutflow for normalization. The parameters to control the trigger are described in this header file. If one wants to write out some of the trigger information into a tree using
HelpTreeBase
, flags must be set here.Note
For MC only, the pileup reweight can also be applied.
Public Functions
-
BasicEventSelection()¶
-
virtual EL::StatusCode setupJob(EL::Job &job)¶
-
virtual EL::StatusCode fileExecute()¶
-
virtual EL::StatusCode histInitialize()¶
-
virtual EL::StatusCode changeInput(bool firstFile)¶
-
virtual EL::StatusCode initialize()¶
-
virtual EL::StatusCode execute()¶
-
virtual EL::StatusCode postExecute()¶
-
virtual EL::StatusCode finalize()¶
-
virtual EL::StatusCode histFinalize()¶
Public Members
-
bool m_isTLAData = false¶
Flag to determine when running on TLA data for different handling of TDT.
-
bool m_truthLevelOnly = false¶
Protection when running on truth xAOD.
-
bool m_setAFII = false¶
SimulationFlavour will be determined from the sample MetaData, unless AFII or FS is explicitely requested with the following flags.
-
bool m_setAF3 = false¶
-
bool m_setFS = false¶
-
bool m_applyGRLCut = false¶
Apply GRL selection.
-
std::string m_GRLxml = ""¶
Path to GRL XML file.
-
std::string m_GRLExcludeList = ""¶
Run numbers to skip in GRL.
-
bool m_cleanPowheg = false¶
Clean Powheg huge weight.
-
bool m_reweightSherpa22 = false¶
Reweight Sherpa 2.2 Samples.
-
bool m_doPUreweighting = false¶
Reweight pile-up profile \(\mu\)
-
bool m_doPUreweightingSys = false¶
-
std::string m_lumiCalcFileNames = ""¶
Comma separated list of filenames.
-
std::string m_PRWFileNames = ""¶
Comma separated list of filenames.
-
bool m_autoconfigPRW = false¶
Automatically configure PRW using config files from SUSYTools instead of using m_PRWFileNames.
-
bool m_useCommonPRWFiles = false¶
Configure PRW using common files instead of DSID-specific files.
-
std::string m_prwActualMu2016File = ""¶
actualMu configuration file for the MC16a campaign (2015/2016). Added to the PRW tool when using PRW autoconfiguration.
-
std::string m_prwActualMu2017File = ""¶
actualMu configuration file for the MC16d campaign (2017). Added to the PRW tool when using PRW autoconfiguration.
-
std::string m_prwActualMu2018File = ""¶
actualMu configuration file for the MC16e campaign (2018). Added to the PRW tool when using PRW autoconfiguration.
-
std::string m_prwActualMu2022File = ""¶
actualMu configuration file for the MC23a campaign (2022). Added to the PRW tool when using PRW autoconfiguration.
-
std::string m_prwActualMu2023File = ""¶
actualMu configuration file for the MC23d campaign (2023). Added to the PRW tool when using PRW autoconfiguration.
-
std::string m_commonPRWFileMC20a = "PileupReweighting/mc20_common/mc20a.284500.physlite.prw.v1.root"¶
Common PRW file for the MC20a campaign (2015/16). Added to the PRW tool when using PRW autoconfiguration with common PRW files option.
-
std::string m_commonPRWFileMC20d = "PileupReweighting/mc20_common/mc20d.300000.physlite.prw.v1.root"¶
Common PRW file for the MC20d campaign (2017). Added to the PRW tool when using PRW autoconfiguration with common PRW files option.
-
std::string m_commonPRWFileMC20e = "PileupReweighting/mc20_common/mc20e.310000.physlite.prw.v1.root"¶
Common PRW file for the MC20e campaign (2018). Added to the PRW tool when using PRW autoconfiguration with common PRW files option.
-
std::string m_commonPRWFileMC23a = "PileupReweighting/mc23_common/mc23a.410000.physlite.prw.v2.root"¶
Common PRW file for the MC23a campaign (2022). Added to the PRW tool when using PRW autoconfiguration with common PRW files option.
-
std::string m_commonPRWFileMC23c = "PileupReweighting/mc23_common/mc23c.450000.physlite.prw.v1.root"¶
Common PRW file for the MC23c campaign (2023). Added to the PRW tool when using PRW autoconfiguration with common PRW files option.
-
std::string m_commonPRWFileMC23d = "PileupReweighting/mc23_common/mc23d.450000.physlite.prw.v1.root"¶
Common PRW file for the MC23d campaign (2023). Added to the PRW tool when using PRW autoconfiguration with common PRW files option.
-
std::string m_mcCampaign¶
mc16(acd) to bypass the automatic campaign determination from AMI, several campaigns can be separated by a comma. Only used when m_autoconfigPRW is true
-
std::string m_periodConfig = "auto"¶
Use Period Configuration or auto.
-
bool m_checkStreams = false¶
Print streamTags (only in debug mode)
-
int m_actualMuMin = -1¶
The minimum threshold for
EventInfo::actualInteractionsPerCrossing()
-
int m_actualMuMax = -1¶
The maximum threshold for
EventInfo::actualInteractionsPerCrossing()
-
bool m_calcBCIDInfo = false¶
Calculate distance to nearest empty and unpaired BCIDs.
-
bool m_applyPrimaryVertexCut = false¶
Enable to apply a primary vertex cut.
-
int m_PVNTrack = 2¶
Minimum number of tracks from the primary vertex (Harmonized Cut)
-
bool m_applyEventCleaningCut = false¶
-
bool m_applyCoreFlagsCut = false¶
-
bool m_applyJetCleaningEventFlag = false¶
recommended way to clean all jets, but especially collections other than EMTopo … equivalent to “loose” jet-by-jet cleaning!
-
bool m_applyIsBadBatmanFlag = false¶
should only ever be used in 2015 and 2016 data, for analyses which may be of interest for analyses where fake MET can be an issue
-
bool m_printBranchList = false¶
-
std::string m_triggerSelection = ""¶
RegEx expression to choose triggers to consider to be cut on with
m_applyTriggerCut
-
std::string m_extraTriggerSelection = ""¶
Decisions of triggers which are saved but not cut on.
-
bool m_applyTriggerCut = false¶
Skip events in which the trigger string
m_triggerSelection
does not fire
-
bool m_storeTrigDecisions = false¶
Save string of fired triggers matching
m_triggerSelection
-
bool m_storePassL1 = false¶
Save if any L1 trigger fired, e.g.
"L1_.*"
-
bool m_storePassHLT = false¶
Save if any HLT trigger fired, e.g.
"HLT_.*"
-
bool m_storeTrigKeys = false¶
Save master, L1, and HLT key.
-
bool m_storePrescaleWeight = true¶
Save the trigger prescale weight.
-
std::string m_derivationName = ""¶
The name of the derivation (use this as an override)
-
bool m_useMetaData = true¶
Retrieve and save information on DAOD selection.
-
std::string m_metaDataStreamName = "metadata"¶
-
std::string m_duplicatesStreamName = "duplicates_tree"¶
-
bool m_checkDuplicatesData = false¶
Check for duplicated events in data
-
bool m_checkDuplicatesMC = false¶
Check for duplicated events in MC
-
bool m_doRunByRunCutflows = false¶
Private Functions
-
StatusCode autoconfigurePileupRWTool()¶
Automatically add the required PRW config file for the DSID being processed to the PRW tool.
helper functions
The PRW config files stored by SUSYTools are added to the m_pileup_tool_handle. If the m_mcCampaign is not set, the campaign is determined automatically. If it is set, then all of the campaings listed in the setting are added.
Private Members
-
std::set<std::pair<uint32_t, uint32_t>> m_RunNr_VS_EvtNr¶
-
std::vector<std::string> m_triggerUnprescaleList¶
-
std::vector<std::string> m_extraTriggerSelectionList¶
-
asg::AnaToolHandle<IGoodRunsListSelectionTool> m_grl_handle = {"GoodRunsListSelectionTool", this}¶
-
asg::AnaToolHandle<CP::IPileupReweightingTool> m_pileup_tool_handle = {"CP::PileupReweightingTool/Pileup"}¶
-
asg::AnaToolHandle<TrigConf::ITrigConfigTool> m_trigConfTool_handle = {"TrigConf::xAODConfigTool/xAODConfigTool", this}¶
-
asg::AnaToolHandle<Trig::TrigDecisionTool> m_trigDecTool_handle = {"Trig::TrigDecisionTool/TrigDecisionTool"}¶
-
int m_eventCounter¶
-
TH1D *m_histSumW = nullptr¶
-
TH1D *m_histEventCount = nullptr¶
-
uint64_t m_MD_initialNevents¶
-
uint64_t m_MD_finalNevents¶
-
double m_MD_initialSumW¶
-
double m_MD_finalSumW¶
-
double m_MD_initialSumWSquared¶
-
double m_MD_finalSumWSquared¶
-
std::string m_mcCampaignMD¶
-
TH1D *m_cutflowHist = nullptr¶
-
TH1D *m_cutflowHistW = nullptr¶
-
int m_cutflow_all¶
-
int m_cutflow_init¶
-
int m_cutflow_duplicates¶
-
int m_cutflow_grl¶
-
int m_cutflow_lar¶
-
int m_cutflow_tile¶
-
int m_cutflow_SCT¶
-
int m_cutflow_core¶
-
int m_cutflow_jetcleaning¶
-
int m_cutflow_isbadbatman¶
-
int m_cutflow_npv¶
-
int m_cutflow_trigger¶
-
TH1D *m_runByrun_beforeCuts = nullptr¶
-
TH1D *m_runByrun_afterCuts = nullptr¶
-
TH1D *m_el_cutflowHist_1 = nullptr¶
-
TH1D *m_el_cutflowHist_2 = nullptr¶
-
TH1D *m_mu_cutflowHist_1 = nullptr¶
-
TH1D *m_mu_cutflowHist_2 = nullptr¶
-
TH1D *m_ph_cutflowHist_1 = nullptr¶
-
TH1D *m_tau_cutflowHist_1 = nullptr¶
-
TH1D *m_tau_cutflowHist_2 = nullptr¶
-
TH1D *m_jet_cutflowHist_1 = nullptr¶
-
TH1D *m_trk_cutflowHist_1 = nullptr¶
-
TH1D *m_truth_cutflowHist_1 = nullptr¶
-
TTree *m_duplicatesTree = nullptr¶
TTree for duplicates bookeeping
-
int m_duplRunNumber¶
-
long int m_duplEventNumber¶