Skip to content
Snippets Groups Projects
Commit b90f5b8b authored by Deion Elgin Fellers's avatar Deion Elgin Fellers
Browse files

pick track filter as default ntuple filter, also general clean up of ntuple dumper code

parent 6e905256
No related branches found
No related tags found
No related merge requests found
......@@ -45,16 +45,16 @@ parser.add_argument("--partial", action='store_true',
help="Allow partial input files")
parser.add_argument("--trigFilt", action='store_true',
help="apply trigger event filter ")
help="apply trigger event filter")
parser.add_argument("--scintFilt", action='store_true',
help="apply scintillator event filter ")
parser.add_argument("--trackFilt", action='store_true',
help="apply track event filter ")
help="apply scintillator event filter")
parser.add_argument("--NoTrackFilt", action='store_true',
help="Don't apply track event filter (default: do)")
parser.add_argument("--unblind", action='store_true',
help="Don't apply signal blinding (default: do)")
parser.add_argument("--onlyblind", action='store_true',
help="Only store events that were blinded (default: don't)")
help="Only store events that were blinded (will override unblind arg)")
parser.add_argument("--fluka", action='store_true',
help="Add FLUKA weights to ntuple")
......@@ -121,8 +121,8 @@ if filepath.is_dir():
filestr = str(flist[0].resolve())
# Use proper EOS file path here?
# if filestr[:4] == '/eos':
# filestr = f"root://eospublic.cern.ch/{filestr}"
if filestr[:4] == '/eos':
filestr = f"root://eospublic.cern.ch/{filestr}"
filelist.append(filestr)
# End of loop over segments
......@@ -147,7 +147,10 @@ if filepath.is_dir():
print(f"Run = {runstr}")
print(f"First = {firstseg}")
print(f"Last = {lastseg}")
print(f"Args = {args.tag}")
print(f"Tag = {args.tag}")
print(f"Trigger Filter = {args.trigFilt}")
print(f"Scintillator Filter = {args.scintFilt}")
print(f"Track Filter = {not args.NoTrackFilt}")
print(f"Blind = {not args.unblind}")
print(f"OnlyBlinded = {args.onlyblind}")
......@@ -253,7 +256,7 @@ if args.isMC:
acc.merge(NtupleDumperAlgCfg(ConfigFlags, outfile))
else:
acc.merge(NtupleDumperAlgCfg(ConfigFlags, outfile, DoBlinding=(not args.unblind), OnlyBlinded=args.onlyblind, DoScintFilter = args.scintFilt, DoTrackFilter = args.trackFilt, DoTrigFilter = args.trigFilt))
acc.merge(NtupleDumperAlgCfg(ConfigFlags, outfile, DoBlinding=(not args.unblind), OnlyBlinded=args.onlyblind, DoScintFilter = args.scintFilt, DoTrackFilter = (not args.NoTrackFilt), DoTrigFilter = args.trigFilt))
if not args.verbose:
from AthenaConfiguration.ComponentFactory import CompFactory
......
......@@ -409,11 +409,6 @@ StatusCode NtupleDumperAlg::initialize()
ATH_MSG_INFO("Blinding will NOT be enforced for real data.");
}
if (m_doScintOrTrackFilter){
m_doScintFilter = true;
m_doTrackFilter = true;
}
return StatusCode::SUCCESS;
}
......@@ -466,7 +461,6 @@ StatusCode NtupleDumperAlg::execute(const EventContext &ctx) const
FillWaveBranches(*preshowerContainer);
FillWaveBranches(*ecalContainer);
bool passes_ScintFilter = false;
// if real data, store charge in histograms from random events
if (!isMC) {
SG::ReadHandle<xAOD::FaserTriggerData> triggerData(m_FaserTriggerData, ctx);
......@@ -505,6 +499,7 @@ StatusCode NtupleDumperAlg::execute(const EventContext &ctx) const
bool veto_OR_trig = (vetoNu_trig || vetoSt1_trig || vetoSt2_trig);
bool passes_ScintFilter = false;
if (calo_trig) {
passes_ScintFilter = true;
} else if (veto_OR_trig && timingScint_trig) {
......@@ -515,7 +510,7 @@ StatusCode NtupleDumperAlg::execute(const EventContext &ctx) const
passes_ScintFilter = true;
}
if ((!passes_ScintFilter) && (!m_doScintOrTrackFilter)) {
if (!passes_ScintFilter) {
ATH_MSG_DEBUG("event did not pass scint filter");
return StatusCode::SUCCESS; // only store events that pass filter
}
......@@ -1088,15 +1083,13 @@ StatusCode NtupleDumperAlg::execute(const EventContext &ctx) const
}
if (!isMC) {
if (m_doTrackFilter && (!m_doScintOrTrackFilter)) { // filter events: only save events that have at least one long track
if (m_doTrackFilter) { // filter events: colliding bunches have at least one long track, non-colliding bunches have at least one long track or one calo module with raw_peak > 3 mV
if (m_longTracks == 0 && abs(m_distanceToCollidingBCID) <= 1) {
return StatusCode::SUCCESS;
} else if (abs(m_distanceToCollidingBCID) > 1 && m_wave_raw_peak[0] < 3.0 && m_wave_raw_peak[1] < 3.0 && m_wave_raw_peak[2] < 3.0 && m_wave_raw_peak[3] < 3.0 ) {
return StatusCode::SUCCESS;
}
} else if (m_doScintOrTrackFilter) { // filter events: only save events that pass scint cooincidence or have a long track
if (!((m_longTracks > 0) || passes_ScintFilter)) {
return StatusCode::SUCCESS;
} else if (abs(m_distanceToCollidingBCID) > 1) {
if (!(m_longTracks > 0 || m_wave_raw_peak[0] > 3.0 || m_wave_raw_peak[1] > 3.0 || m_wave_raw_peak[2] > 3.0 || m_wave_raw_peak[3] > 3.0 )) {
return StatusCode::SUCCESS;
}
}
}
}
......
......@@ -112,8 +112,7 @@ private:
BooleanProperty m_onlyBlinded { this, "OnlyBlinded", false, "Only events that would be blinded are saved" };
BooleanProperty m_doTrigFilter { this, "DoTrigFilter", false, "Only events that pass trigger cuts are passed" };
BooleanProperty m_doScintFilter { this, "DoScintFilter", false, "Only events that pass scintillator coincidence cuts are passed" };
BooleanProperty m_doTrackFilter { this, "DoTrackFilter", false, "Only events that have >= 1 long track are passed" };
BooleanProperty m_doScintOrTrackFilter { this, "DoScintOrTrackFilter", false, "Only events that pass scintillator coincidence cuts or have >= 1 long track are passed" };
BooleanProperty m_doTrackFilter { this, "DoTrackFilter", true, "Only events that have >= 1 long track are passed, also non-colliding events with a track or calo signal are passed" };
BooleanProperty m_useFlukaWeights { this, "UseFlukaWeights", false, "Flag to weight events according to value stored in HepMC::GenEvent" };
BooleanProperty m_useGenieWeights { this, "UseGenieWeights", false, "Flag to weight events according to Genie luminosity" };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment