From c70f5f665a3a3f12a2b1c4f07e3eea7089802ade Mon Sep 17 00:00:00 2001 From: sophieMu2e Date: Mon, 13 Sep 2021 13:07:31 -0500 Subject: [PATCH 01/47] storing --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index 259148fa..9cb63a6d 100644 --- a/.gitignore +++ b/.gitignore @@ -30,3 +30,7 @@ *.exe *.out *.app + +#Data +*.root +*.art From 0c020a323de69d2df88dcfdd7f2801cd69c84215 Mon Sep 17 00:00:00 2001 From: soleti Date: Sat, 18 Sep 2021 14:00:18 -0500 Subject: [PATCH 02/47] Small error in POMS configuration --- CampaignConfig/mdc2020_mix.cfg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CampaignConfig/mdc2020_mix.cfg b/CampaignConfig/mdc2020_mix.cfg index 6cbe797b..89871485 100644 --- a/CampaignConfig/mdc2020_mix.cfg +++ b/CampaignConfig/mdc2020_mix.cfg @@ -245,12 +245,12 @@ job_setup.ifdh_art = False global.stage_name = NoPrimaryMix job_output_1.dest = %(logdir_bck)s/%(stage_name)s/%(desc)s/tbz/ -job_output_2.addoutput = dig.*.%(stage_name)sTriggeredMix.*art +job_output_2.addoutput = dig.*.%(stage_name)sTriggered.*art job_output_2.add_to_dataset = dig.%(submitter)s.%(stage_name)sTriggered.%(desc)s.art job_output_2.dest = %(outdir_dig_tape)s/%(stage_name)sTriggered/%(desc)s/art job_output_3.addoutput = dig.*.%(stage_name)sUntriggered.*art -job_output_3.add_to_dataset = dig.%(submitter)s.N%(stage_name)sUntriggered.%(desc)s.art +job_output_3.add_to_dataset = dig.%(submitter)s.%(stage_name)sUntriggered.%(desc)s.art job_output_3.dest = %(outdir_dig_tape)s/%(stage_name)sUntriggered/%(desc)s/art global.artRoot_dataset = dig.%(submitter)s.%(stage_name)sTriggered.%(desc)s.art,dig.%(submitter)s.%(stage_name)sUntriggered.%(desc)s.art From d2be9342585ec19f5e6cc00c41463070adee6c34 Mon Sep 17 00:00:00 2001 From: Rob Kutschke Date: Tue, 21 Sep 2021 15:16:24 -0500 Subject: [PATCH 03/47] Tweak README.md for a dummy PR. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 45e07842..f4cb682d 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,4 @@ # Production Scripts and fcl for collaboration production procedures +Extra line for a dummy PR. + From 462dac68a40f78f5c5be5cd41b7b35da40deb14e Mon Sep 17 00:00:00 2001 From: soleti Date: Wed, 22 Sep 2021 12:22:17 -0500 Subject: [PATCH 04/47] Added flateminus and noprimarypbi to campaign --- CampaignConfig/mdc2020_mix.cfg | 120 ++++++++++++++++++++++++++++++++- CampaignConfig/mdc2020_mix.ini | 48 ++++++++++++- MDC2020/gen_Mix.sh | 4 +- 3 files changed, 167 insertions(+), 5 deletions(-) diff --git a/CampaignConfig/mdc2020_mix.cfg b/CampaignConfig/mdc2020_mix.cfg index 89871485..e581eabe 100644 --- a/CampaignConfig/mdc2020_mix.cfg +++ b/CampaignConfig/mdc2020_mix.cfg @@ -199,8 +199,6 @@ executable_2.arg_1 = CeEndpoint executable_2.arg_2 = MDC2020 executable_2.arg_3 = %(release_v)s executable_2.arg_4 = %(release_v)s -executable_2.arg_5 = 2000 -executable_2.arg_6 = %(njobs)s job_setup.ifdh_art = False @@ -264,6 +262,124 @@ job_setup.getconfig = True job_setup.multifile = False job_setup.setup_local = True +[stage_noprimarypbimix_fcl] +global.stage_name = NoPrimaryPBISequenceMix +job_output.dest = %(outdir_fcl)s/%(stage_name)s/%(desc)s/fcl/ + +executable.name = true +executable_2.name = gen_Mix.sh +executable_2.arg_1 = NoPrimaryPBISequence +executable_2.arg_2 = MDC2020 +executable_2.arg_3 = %(release_v)s +executable_2.arg_4 = %(release_v)s + +job_setup.ifdh_art = False + +[stage_noprimarypbimix] +global.stage_name = NoPrimaryPBISequenceMix +job_output_1.dest = %(logdir_bck)s/%(stage_name)s/%(desc)s/tbz/ + +job_output_2.addoutput = dig.*.%(stage_name)sTriggered.*art +job_output_2.add_to_dataset = dig.%(submitter)s.%(stage_name)sTriggered.%(desc)s.art +job_output_2.dest = %(outdir_dig_tape)s/%(stage_name)sTriggered/%(desc)s/art + +job_output_3.addoutput = dig.*.%(stage_name)sUntriggered.*art +job_output_3.add_to_dataset = dig.%(submitter)s.%(stage_name)sUntriggered.%(desc)s.art +job_output_3.dest = %(outdir_dig_tape)s/%(stage_name)sUntriggered/%(desc)s/art +global.artRoot_dataset = dig.%(submitter)s.%(stage_name)sTriggered.%(desc)s.art,dig.%(submitter)s.%(stage_name)sUntriggered.%(desc)s.art + +submit.dataset = cnf.%(submitter)s.%(stage_name)s.%(desc)s.fcl +submit.n_files_per_job = 1 +submit.memory = 6000MB + +sam_consumer.limit = 1 +job_setup.postscript = samweb file-lineage parents `basename ${fname}` > parents.txt + +job_setup.getconfig = True +job_setup.multifile = False +job_setup.setup_local = True + +[stage_flateminus_fcl] +global.stage_name = FlateMinus +job_output.dest = %(outdir_fcl)s/%(stage_name)s/%(desc)s/fcl/ + +job_setup.prescript = samweb list-file-locations --defname=sim.%(submitter)s.MuminusStopsCat.%(desc)s.art --schema=root | cut -f1 > MuminusStopsCat.txt +job_setup.prescript_2 = dataset=sim.%(submitter)s.MuminusStopsCat.%(desc)s.art +job_setup.prescript_3 = nfiles=`samCountFiles.sh $dataset` +job_setup.prescript_4 = nevts=`samCountEvents.sh $dataset` +job_setup.prescript_5 = let nskip=nevts/nfiles +job_setup.prescript_6 = echo '#include "Production/JobConfig/primary/FlateMinus.fcl"' >> template.fcl +job_setup.prescript_7 = echo 'physics.filters.TargetStopResampler.mu2e.MaxEventsToSkip: '${nskip} >> template.fcl +job_setup.prescript_8 = echo 'physics.producers.generate.startMom : 75' >> template.fcl +job_setup.prescript_9 = echo 'physics.producers.generate.endMom : 110' >> template.fcl + +executable.name = true +executable_2.name = generate_fcl +executable_2.arg_4 = --run-number=%(run_number)s +executable_2.arg_5 = --events-per-job=4000 +executable_2.arg_6 = --njobs=100 +executable_2.arg_7 = --auxinput=1:physics.filters.TargetStopResampler.fileNames:MuminusStopsCat.txt +executable_2.arg_8 = --embed +executable_2.arg_9 = template.fcl + +job_setup.ifdh_art = False + +[stage_flateminus] +global.stage_name = FlateMinus + +job_output_1.dest = %(logdir_bck)s/%(stage_name)s/%(desc)s/tbz/ +job_output_2.addoutput = *.%(stage_name)s.*.art +job_output_2.add_to_dataset = dts.%(submitter)s.%(stage_name)s.%(desc)s.art +job_output_2.dest = %(outdir_dts_tape)s/%(stage_name)s/%(desc)s/art + +global.artRoot_dataset = dts.%(submitter)s.%(stage_name)s.%(desc)s.art + +submit.dataset = cnf.%(submitter)s.%(stage_name)s.%(desc)s.fcl +submit.n_files_per_job = 1 +sam_consumer.limit = 1 +job_setup.postscript = samweb file-lineage parents `basename ${fname}` > parents.txt + +job_setup.getconfig = True +job_setup.multifile = False +job_setup.setup_local = True + +[stage_flateminusmix_fcl] +global.stage_name = FlateMinusMix +job_output.dest = %(outdir_fcl)s/%(stage_name)s/%(desc)s/fcl/ + +job_setup.prescript = samweb list-file-locations --defname=dts.%(submitter)s.FlateMinus.%(desc)s.art --schema=root | cut -f1 > CeEndpoint%(release_v)s.txt + +executable.name = true +executable_2.name = gen_Mix.sh +executable_2.arg_1 = FlateMinus +executable_2.arg_2 = MDC2020 +executable_2.arg_3 = %(release_v)s +executable_2.arg_4 = %(release_v)s + +job_setup.ifdh_art = False + +[stage_flateminusmix] +global.stage_name = FlateMinusMix +job_output_1.dest = %(logdir_bck)s/%(stage_name)s/%(desc)s/tbz/ + +job_output_2.addoutput = dig.*.%(stage_name)sTriggered.*art +job_output_2.add_to_dataset = dig.%(submitter)s.%(stage_name)sTriggered.%(desc)s.art +job_output_2.dest = %(outdir_dig_tape)s/%(stage_name)sTriggered/%(desc)s/art + +job_output_3.addoutput = dig.*.%(stage_name)sUntriggered.*art +job_output_3.add_to_dataset = dig.%(submitter)s.%(stage_name)sUntriggered.%(desc)s.art +job_output_3.dest = %(outdir_dig_tape)s/%(stage_name)sUntriggered/%(desc)s/art +global.artRoot_dataset = dig.%(submitter)s.%(stage_name)sTriggered.%(desc)s.art,dig.%(submitter)s.%(stage_name)sUntriggered.%(desc)s.art + +submit.dataset = cnf.%(submitter)s.%(stage_name)s.%(desc)s.fcl +submit.n_files_per_job = 1 +sam_consumer.limit = 1 +job_setup.postscript = samweb file-lineage parents `basename ${fname}` > parents.txt + +job_setup.getconfig = True +job_setup.multifile = False +job_setup.setup_local = True + [executable] name = loggedMu2e.sh diff --git a/CampaignConfig/mdc2020_mix.ini b/CampaignConfig/mdc2020_mix.ini index c96caa98..92c9de9a 100644 --- a/CampaignConfig/mdc2020_mix.ini +++ b/CampaignConfig/mdc2020_mix.ini @@ -2,7 +2,7 @@ experiment = mu2e poms_role = production name = MDC2020j_mix -campaign_stage_list = ceendpoint_fcl, ceendpoint, ceendpointdigi_fcl, ceendpointdigi, ceendpointmix_fcl, ceendpointmix, noprimarymix_fcl, noprimary_mix +campaign_stage_list = ceendpoint_fcl, ceendpoint, ceendpointdigi_fcl, ceendpointdigi, ceendpointmix_fcl, ceendpointmix, noprimarymix_fcl, noprimary_mix, noprimarypbimix_fcl, noprimarypbimix, flateminus_fcl, flateminus, flateminusmix_fcl, flateminusmix [campaign_defaults] vo_role=Production @@ -83,6 +83,52 @@ job_type = mu2e_mix_production_jobtype campaign_stage_1 = noprimarymix_fcl file_pattern_1 = %.fcl +[campaign_stage noprimarypbimix_fcl] +param_overrides = [["--stage ", "noprimarypbimix_fcl"]] +test_param_overrides = [["--stage ", "noprimarypbimix_fcl"]] +job_type = generate_fcl_mix_production_jobtype + +[campaign_stage noprimarypbimix] +param_overrides = [["--stage ", "noprimarypbimix"]] +test_param_overrides = [["--stage ", "noprimarypbimix"]] +job_type = mu2e_mix_production_jobtype + +[dependencies noprimarypbimix] +campaign_stage_1 = noprimarypbimix_fcl +file_pattern_1 = %.fcl + +[campaign_stage flateminus_fcl] +param_overrides = [["--stage ", "flateminus_fcl"]] +test_param_overrides = [["--stage ", "flateminus_fcl"]] +job_type = generate_fcl_mix_production_jobtype + +[campaign_stage flateminus] +param_overrides = [["--stage ", "flateminus"]] +test_param_overrides = [["--stage ", "flateminus"]] +job_type = mu2e_mix_production_jobtype + +[dependencies flateminus] +campaign_stage_1 = flateminus_fcl +file_pattern_1 = %.fcl + +[campaign_stage flateminusmix_fcl] +param_overrides = [["--stage ", "flateminusmix_fcl"]] +test_param_overrides = [["--stage ", "flateminusmix_fcl"]] +job_type = generate_fcl_mix_production_jobtype + +[dependencies flateminusmix_fcl] +campaign_stage_1 = flateminus +file_pattern_1 = %.art + +[campaign_stage flateminusmix] +param_overrides = [["--stage ", "flateminusmix"]] +test_param_overrides = [["--stage ", "flateminusmix"]] +job_type = mu2e_mix_production_jobtype + +[dependencies flateminusmix] +campaign_stage_1 = flateminusmix_fcl +file_pattern_1 = %.fcl + [job_type mu2e_mix_production_jobtype] launch_script = fife_launch parameters = [["-c ", "/mu2e/app/users/srsoleti/workDir/Production/CampaignConfig/mdc2020_mix.cfg"]] diff --git a/MDC2020/gen_Mix.sh b/MDC2020/gen_Mix.sh index 3ba8f271..c70d9ad2 100755 --- a/MDC2020/gen_Mix.sh +++ b/MDC2020/gen_Mix.sh @@ -20,8 +20,8 @@ is necessary to provide, in order: - the dataset description [datasetDescription], - the campaign version of the input file [campaignInput], - the campaign version of the output file [campaignOutput], -- the number of events per job [nEventsPerJob], -- the number of jobs [nJobs]. +- the number of events per job [nEventsPerJob] (needed only for NoPrimary), +- the number of jobs [nJobs] (needed only for NoPrimary). Example: gen_Mix.sh CeEndpoint MDC2020 k m 1000 100 From 1a3b88cbdffcf6f2937b9b5a12155e0d83fe2f2e Mon Sep 17 00:00:00 2001 From: soleti Date: Wed, 22 Sep 2021 19:30:11 -0500 Subject: [PATCH 05/47] recovery fix --- CampaignConfig/mdc2020_mix.ini | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CampaignConfig/mdc2020_mix.ini b/CampaignConfig/mdc2020_mix.ini index 92c9de9a..ef758e75 100644 --- a/CampaignConfig/mdc2020_mix.ini +++ b/CampaignConfig/mdc2020_mix.ini @@ -129,11 +129,11 @@ job_type = mu2e_mix_production_jobtype campaign_stage_1 = flateminusmix_fcl file_pattern_1 = %.fcl -[job_type mu2e_mix_production_jobtype] +[job_type mu2e_mix_v2_production_jobtype] launch_script = fife_launch parameters = [["-c ", "/mu2e/app/users/srsoleti/workDir/Production/CampaignConfig/mdc2020_mix.cfg"]] output_file_patterns = %.art -recoveries = [["proj_status",[["-Osubmit.dataset=","%(dataset)s"]]]] +recoveries = [["proj_status",[["-Oglobal.override_dataset=','%(dataset)s"],["--stage ","recovery"]]]] [job_type generate_fcl_mix_production_jobtype] launch_script = fife_launch From 99c63a7165d754ddd2c4ce15aa3edb601d294422 Mon Sep 17 00:00:00 2001 From: soleti Date: Wed, 22 Sep 2021 19:30:34 -0500 Subject: [PATCH 06/47] recovery fix --- CampaignConfig/mdc2020_mix.cfg | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CampaignConfig/mdc2020_mix.cfg b/CampaignConfig/mdc2020_mix.cfg index e581eabe..f69a03c4 100644 --- a/CampaignConfig/mdc2020_mix.cfg +++ b/CampaignConfig/mdc2020_mix.cfg @@ -16,6 +16,7 @@ release_v = k stage_name = override_me artRoot_dataset = override_me histRoot_dataset = override_me +override_dataset = override_me [env_pass] IFDH_DEBUG = 1 @@ -380,6 +381,9 @@ job_setup.getconfig = True job_setup.multifile = False job_setup.setup_local = True +[stage_recovery] +submit.dataset=%(override_dataset)s + [executable] name = loggedMu2e.sh From b362a295dfd4e326ed95e6acc3a1f19d1cdbaa4a Mon Sep 17 00:00:00 2001 From: soleti Date: Wed, 22 Sep 2021 19:30:56 -0500 Subject: [PATCH 07/47] Fixing gen_Mix.sh example --- MDC2020/gen_Mix.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MDC2020/gen_Mix.sh b/MDC2020/gen_Mix.sh index c70d9ad2..d15b9258 100755 --- a/MDC2020/gen_Mix.sh +++ b/MDC2020/gen_Mix.sh @@ -24,7 +24,7 @@ is necessary to provide, in order: - the number of jobs [nJobs] (needed only for NoPrimary). Example: - gen_Mix.sh CeEndpoint MDC2020 k m 1000 100 + gen_Mix.sh CeEndpoint MDC2020 k m This will produce the fcl files for a mixing stage of 100 jobs with 1000 events per job, using the CeEndpoint primary and the MDC2020k samples as input. The output From ee51a94efb3e2d91b8c3fbabeb265aaeffda2ac1 Mon Sep 17 00:00:00 2001 From: soleti Date: Wed, 22 Sep 2021 19:31:24 -0500 Subject: [PATCH 08/47] IPA fcl fixes --- JobConfig/primary/IPAStopParticle.fcl | 52 ++++++++++++++++++++++ JobConfig/primary/IPAStopsFlat.fcl | 63 +++------------------------ JobConfig/primary/IPAStopsMichel.fcl | 58 ++---------------------- 3 files changed, 61 insertions(+), 112 deletions(-) create mode 100644 JobConfig/primary/IPAStopParticle.fcl diff --git a/JobConfig/primary/IPAStopParticle.fcl b/JobConfig/primary/IPAStopParticle.fcl new file mode 100644 index 00000000..f7311d12 --- /dev/null +++ b/JobConfig/primary/IPAStopParticle.fcl @@ -0,0 +1,52 @@ +# +# Base configuration for Resampling IPA muon stops and generating primary particles from them +# +# original author: S Middleton +# +#include "Offline/fcl/standardServices.fcl" +#include "Offline/EventGenerator/fcl/prolog.fcl" +#include "Production/JobConfig/common/prolog.fcl" +#include "Production/JobConfig/primary/prolog.fcl" +#include "Production/JobConfig/pileup/prolog.fcl" +# name all processes the same, to mask any provenance in ensemble creation + +// Below is the analogous file to TargetStops - it is combined with the IPA Michel primary generator since we have no other reason to look at IPA stops: +process_name: Primary +source: { module_type : EmptyEvent } +services : @local::Services.Sim +physics : { + producers : { + @table::Common.producers + @table::Primary.producers + } + filters : { + @table::Common.filters + @table::Primary.filters + } + analyzers : { @table::Primary.analyzers } + PrimaryPath : [ IPAStopResampler, @sequence::Common.generateSequence, @sequence::Common.g4Sequence, @sequence::Primary.PrimarySequence ] + EndPath : @local::Primary.EndPath + trigger_paths : [ PrimaryPath ] + end_paths : [ EndPath ] +} +outputs : { Output :@local::Primary.Output } +# +# final configuration +# +#include "Production/JobConfig/common/epilog.fcl" +#include "Production/JobConfig/primary/epilog.fcl" +# +physics.producers.g4run.inputs: { + primaryType: StageParticles + primaryTag: "generate" + inputMCTrajectories: "" + simStageOverride: 2 + inputPhysVolumeMultiInfo: "IPAStopResampler" + updateEventLevelVolumeInfos: { + input: "IPAStopResampler:eventlevel" + outInstance: "eventlevel" + } +} + +# use reduced BField for these jobs +services.GeometryService.inputFile : "Offline/Mu2eG4/geom/geom_common_no_tsu_ps.txt" diff --git a/JobConfig/primary/IPAStopsFlat.fcl b/JobConfig/primary/IPAStopsFlat.fcl index d768664b..210b771c 100644 --- a/JobConfig/primary/IPAStopsFlat.fcl +++ b/JobConfig/primary/IPAStopsFlat.fcl @@ -3,71 +3,18 @@ # # original author: S Middleton # -#include "Offline/fcl/standardServices.fcl" -#include "Offline/EventGenerator/fcl/prolog.fcl" -#include "Production/JobConfig/common/prolog.fcl" -#include "Production/JobConfig/primary/prolog.fcl" -#include "Production/JobConfig/pileup/prolog.fcl" -# name all processes the same, to mask any provenance in ensemble creation - -// Below is the analogous file to TargetStops - it is combined with the IPA Michel primary generator since we have no other reason to look at IPA stops: -process_name: Primary -source: { module_type : EmptyEvent } -services : @local::Services.Sim -physics : { - producers : { - @table::Common.producers - @table::Primary.producers - } - filters : { - @table::Common.filters - @table::Primary.filters - } - analyzers : { @table::Primary.analyzers } - PrimaryPath : [ IPAStopResampler, @sequence::Common.generateSequence, @sequence::Common.g4Sequence, @sequence::Primary.PrimarySequence ] - EndPath : @local::Primary.EndPath - trigger_paths : [ PrimaryPath ] - end_paths : [ EndPath ] -} -outputs : { Output :@local::Primary.Output } -# -# final configuration -# -#include "Production/JobConfig/common/epilog.fcl" -#include "Production/JobConfig/primary/epilog.fcl" -# -physics.producers.g4run.inputs: { - primaryType: StageParticles - primaryTag: "generate" - inputMCTrajectories: "" - simStageOverride: 2 - inputPhysVolumeMultiInfo: "IPAStopResampler" - updateEventLevelVolumeInfos: { - input: "IPAStopResampler:eventlevel" - outInstance: "eventlevel" - } -} - -# use reduced BField for these jobs -services.GeometryService.inputFile : "Offline/Mu2eG4/geom/geom_common_no_tsu_ps.txt" +#include "Production/JobConfig/primary/IPAStopParticle.fcl" physics.filters.DetStepFilter.MinimumPartMom : 10.0 // MeV/c TODO - tweak this parameter to get more DetSteps physics.producers.FindMCPrimary.PrimaryProcess : "mu2eFlateMinus" -physics.filters.IPAStopResampler.mu2e.MaxEventsToSkip : @nil +physics.filters.IPAStopResampler.mu2e.MaxEventsToSkip : @nil physics.producers.generate : { module_type: FlatMuonDaughterGenerator - inputSimParticles: IPAStopResampler + inputSimParticles: IPAStopResampler stoppingTargetMaterial : "IPA" verbosity : 1 - makeHistograms : true - processcode : "mu2eMuonDecayAtRest" - pdgId : -11 + pdgId : 13 } - - - -outputs.Output.fileName: "dts.owner.IPAMichel.version.sequencer.art" - - +outputs.Output.fileName: "dts.owner.IPAFlat.version.sequencer.art" diff --git a/JobConfig/primary/IPAStopsMichel.fcl b/JobConfig/primary/IPAStopsMichel.fcl index 68b942ef..03725997 100644 --- a/JobConfig/primary/IPAStopsMichel.fcl +++ b/JobConfig/primary/IPAStopsMichel.fcl @@ -3,69 +3,19 @@ # # original author: S Middleton # -#include "Offline/fcl/standardServices.fcl" -#include "Offline/EventGenerator/fcl/prolog.fcl" -#include "Production/JobConfig/common/prolog.fcl" -#include "Production/JobConfig/primary/prolog.fcl" -#include "Production/JobConfig/pileup/prolog.fcl" -# name all processes the same, to mask any provenance in ensemble creation - -// Below is the analogous file to TargetStops - it is combined with the IPA Michel primary generator since we have no other reason to look at IPA stops: -process_name: Primary -source: { module_type : EmptyEvent } -services : @local::Services.Sim -physics : { - producers : { - @table::Common.producers - @table::Primary.producers - } - filters : { - @table::Common.filters - @table::Primary.filters - } - analyzers : { @table::Primary.analyzers } - PrimaryPath : [ IPAStopResampler, @sequence::Common.generateSequence, @sequence::Common.g4Sequence, @sequence::Primary.PrimarySequence ] - EndPath : @local::Primary.EndPath - trigger_paths : [ PrimaryPath ] - end_paths : [ EndPath ] -} -outputs : { Output :@local::Primary.Output } -# -# final configuration -# -#include "Production/JobConfig/common/epilog.fcl" -#include "Production/JobConfig/primary/epilog.fcl" -# -physics.producers.g4run.inputs: { - primaryType: StageParticles - primaryTag: "generate" - inputMCTrajectories: "" - simStageOverride: 2 - inputPhysVolumeMultiInfo: "IPAStopResampler" - updateEventLevelVolumeInfos: { - input: "IPAStopResampler:eventlevel" - outInstance: "eventlevel" - } -} - -# use reduced BField for these jobs -services.GeometryService.inputFile : "Offline/Mu2eG4/geom/geom_common_no_tsu_ps.txt" +#include "Production/JobConfig/primary/IPAStopParticle.fcl" physics.filters.DetStepFilter.MinimumPartMom : 10.0 // MeV/c TODO - tweak this parameter to get more DetSteps +physics.producers.FindMCPrimary.PrimaryProcess : "mu2eMuonDecayAtRest" +physics.filters.IPAStopResampler.mu2e.MaxEventsToSkip : @nil -// Below is the part which generates the IPA electrons physics.producers.generate : { module_type : Pileup verbosity : 10 - inputSimParticles: IPAStopResampler + inputSimParticles: IPAStopResampler captureProducts : [] decayProducts : [ @local::Pileup.dioGenTool ] stoppingTargetMaterial : "IPA" } - -physics.filters.IPAStopResampler.mu2e.MaxEventsToSkip : @nil -physics.producers.FindMCPrimary.PrimaryProcess : "mu2eMuonDecayAtRest" outputs.Output.fileName: "dts.owner.IPAMichel.version.sequencer.art" - - From bcea65124d5b8a2e720169a1329f358994d659a4 Mon Sep 17 00:00:00 2001 From: soleti Date: Thu, 23 Sep 2021 01:34:02 -0500 Subject: [PATCH 09/47] Re-organizing stopped fcl files --- JobConfig/primary/IPAStopParticle.fcl | 48 +++-------------------- JobConfig/primary/IPAStopsFlat.fcl | 3 +- JobConfig/primary/IPAStopsMichel.fcl | 3 +- JobConfig/primary/StopParticle.fcl | 44 +++++++++++++++++++++ JobConfig/primary/TargetStopParticle.fcl | 50 ++++-------------------- 5 files changed, 61 insertions(+), 87 deletions(-) create mode 100644 JobConfig/primary/StopParticle.fcl diff --git a/JobConfig/primary/IPAStopParticle.fcl b/JobConfig/primary/IPAStopParticle.fcl index f7311d12..fa7536c5 100644 --- a/JobConfig/primary/IPAStopParticle.fcl +++ b/JobConfig/primary/IPAStopParticle.fcl @@ -3,50 +3,12 @@ # # original author: S Middleton # -#include "Offline/fcl/standardServices.fcl" -#include "Offline/EventGenerator/fcl/prolog.fcl" -#include "Production/JobConfig/common/prolog.fcl" -#include "Production/JobConfig/primary/prolog.fcl" -#include "Production/JobConfig/pileup/prolog.fcl" -# name all processes the same, to mask any provenance in ensemble creation +#include "Production/JobConfig/primary/StopParticle.fcl" -// Below is the analogous file to TargetStops - it is combined with the IPA Michel primary generator since we have no other reason to look at IPA stops: -process_name: Primary -source: { module_type : EmptyEvent } -services : @local::Services.Sim -physics : { - producers : { - @table::Common.producers - @table::Primary.producers - } - filters : { - @table::Common.filters - @table::Primary.filters - } - analyzers : { @table::Primary.analyzers } - PrimaryPath : [ IPAStopResampler, @sequence::Common.generateSequence, @sequence::Common.g4Sequence, @sequence::Primary.PrimarySequence ] - EndPath : @local::Primary.EndPath - trigger_paths : [ PrimaryPath ] - end_paths : [ EndPath ] -} -outputs : { Output :@local::Primary.Output } -# -# final configuration -# -#include "Production/JobConfig/common/epilog.fcl" -#include "Production/JobConfig/primary/epilog.fcl" -# -physics.producers.g4run.inputs: { - primaryType: StageParticles - primaryTag: "generate" - inputMCTrajectories: "" - simStageOverride: 2 - inputPhysVolumeMultiInfo: "IPAStopResampler" - updateEventLevelVolumeInfos: { +physics.PrimaryPath : [ IPAStopResampler, @sequence::Common.generateSequence, @sequence::Common.g4Sequence, @sequence::Primary.PrimarySequence ] + +physics.producers.g4run.inputs.inputPhysVolumeMultiInfo: "IPAStopResampler" +physics.producers.g4run.inputs.updateEventLevelVolumeInfos: { input: "IPAStopResampler:eventlevel" outInstance: "eventlevel" - } } - -# use reduced BField for these jobs -services.GeometryService.inputFile : "Offline/Mu2eG4/geom/geom_common_no_tsu_ps.txt" diff --git a/JobConfig/primary/IPAStopsFlat.fcl b/JobConfig/primary/IPAStopsFlat.fcl index 210b771c..6c5c623f 100644 --- a/JobConfig/primary/IPAStopsFlat.fcl +++ b/JobConfig/primary/IPAStopsFlat.fcl @@ -1,5 +1,6 @@ # -# Base configuration for Resampling IPA muon stops and generating primary particles from them +# Configuration for resampling IPA muon stops and generating primary particles from them +# with flat spectrum # # original author: S Middleton # diff --git a/JobConfig/primary/IPAStopsMichel.fcl b/JobConfig/primary/IPAStopsMichel.fcl index 03725997..de7da59c 100644 --- a/JobConfig/primary/IPAStopsMichel.fcl +++ b/JobConfig/primary/IPAStopsMichel.fcl @@ -1,5 +1,6 @@ # -# Base configuration for Resampling IPA muon stops and generating primary particles from them +# Configuration for resampling IPA muon stops and generating primary particles from them +# with Michel spectrum # # original author: S Middleton # diff --git a/JobConfig/primary/StopParticle.fcl b/JobConfig/primary/StopParticle.fcl new file mode 100644 index 00000000..56f97d2c --- /dev/null +++ b/JobConfig/primary/StopParticle.fcl @@ -0,0 +1,44 @@ +# +# Base configuration for resampling stopped particles and generating primary particles from them +# +# original author: S Middleton +# +#include "Offline/fcl/standardServices.fcl" +#include "Offline/EventGenerator/fcl/prolog.fcl" +#include "Production/JobConfig/common/prolog.fcl" +#include "Production/JobConfig/primary/prolog.fcl" +#include "Production/JobConfig/pileup/prolog.fcl" +# name all processes the same, to mask any provenance in ensemble creation +process_name: Primary +source: { module_type : EmptyEvent } +services : @local::Services.Sim +physics : { + producers : { + @table::Common.producers + @table::Primary.producers + } + filters : { + @table::Common.filters + @table::Primary.filters + } + analyzers : { @table::Primary.analyzers } + EndPath : @local::Primary.EndPath + trigger_paths : [ PrimaryPath ] + end_paths : [ EndPath ] +} +outputs : { Output :@local::Primary.Output } +# +# final configuration +# +#include "Production/JobConfig/common/epilog.fcl" +#include "Production/JobConfig/primary/epilog.fcl" +# +physics.producers.g4run.inputs: { + primaryType: StageParticles + primaryTag: "generate" + inputMCTrajectories: "" + simStageOverride: 2 +} + +# use reduced BField for these jobs +services.GeometryService.inputFile : "Offline/Mu2eG4/geom/geom_common_no_tsu_ps.txt" diff --git a/JobConfig/primary/TargetStopParticle.fcl b/JobConfig/primary/TargetStopParticle.fcl index f8a4a839..11e66908 100644 --- a/JobConfig/primary/TargetStopParticle.fcl +++ b/JobConfig/primary/TargetStopParticle.fcl @@ -1,48 +1,14 @@ # -# Base configuration for Resampling target muon stops and generating primary particles from them +# Base configuration for resampling target muon stops and generating primary particles from them # # original author: Dave Brown, LBNL # -#include "Offline/fcl/standardServices.fcl" -#include "Offline/EventGenerator/fcl/prolog.fcl" -#include "Production/JobConfig/common/prolog.fcl" -#include "Production/JobConfig/primary/prolog.fcl" -# name all processes the same, to mask any provenance in ensemble creation -process_name: Primary -source: { module_type : EmptyEvent } -services : @local::Services.Sim -physics : { - producers : { - @table::Common.producers - @table::Primary.producers - } - filters : { - @table::Common.filters - @table::Primary.filters - } - analyzers : { @table::Primary.analyzers } - PrimaryPath : [ TargetStopResampler, @sequence::Common.generateSequence, @sequence::Common.g4Sequence, @sequence::Primary.PrimarySequence ] - EndPath : @local::Primary.EndPath - trigger_paths : [ PrimaryPath ] - end_paths : [ EndPath ] -} -outputs : { Output :@local::Primary.Output } -# -# final configuration -# -#include "Production/JobConfig/common/epilog.fcl" -#include "Production/JobConfig/primary/epilog.fcl" -# -physics.producers.g4run.inputs: { - primaryType: StageParticles - primaryTag: "generate" - inputMCTrajectories: "" - simStageOverride: 2 - inputPhysVolumeMultiInfo: "TargetStopResampler" - updateEventLevelVolumeInfos: { +#include "Production/JobConfig/primary/StopParticle.fcl" + +physics.PrimaryPath : [ TargetStopResampler, @sequence::Common.generateSequence, @sequence::Common.g4Sequence, @sequence::Primary.PrimarySequence ] + +physics.producers.g4run.inputs.inputPhysVolumeMultiInfo: "TargetStopResampler" +physics.producers.g4run.inputs.updateEventLevelVolumeInfos: { input: "TargetStopResampler:eventlevel" outInstance: "eventlevel" - } -} -# use reduced BField for these jobs -services.GeometryService.inputFile : "Offline/Mu2eG4/geom/geom_common_no_tsu_ps.txt" +} \ No newline at end of file From e2b8b82b5d86f92e6a91c4dba00bd26967de1010 Mon Sep 17 00:00:00 2001 From: David Nathan Brown Date: Tue, 28 Sep 2021 14:11:19 -0500 Subject: [PATCH 10/47] Standardize indentation --- JobConfig/beam/BeamSplitter.fcl | 2 +- JobConfig/beam/EleBeamResampler.fcl | 36 +- JobConfig/beam/MuBeamResampler.fcl | 40 +- JobConfig/beam/NeutralsResampler.fcl | 38 +- JobConfig/beam/POT.fcl | 4 +- JobConfig/beam/POT_extmon.fcl | 6 +- JobConfig/beam/POT_validation.fcl | 18 +- JobConfig/beam/prolog.fcl | 570 +++++++++++++-------------- 8 files changed, 357 insertions(+), 357 deletions(-) diff --git a/JobConfig/beam/BeamSplitter.fcl b/JobConfig/beam/BeamSplitter.fcl index f5708a83..028f1453 100644 --- a/JobConfig/beam/BeamSplitter.fcl +++ b/JobConfig/beam/BeamSplitter.fcl @@ -13,7 +13,7 @@ physics: { SimParticles : BeamFilter PrintLevel : 0 ParticleCodes : [ [13, "uninitialized", "mu2eKillerVolume" ], # mu-, * , Manually stopped - [-13, "uninitialized" , "mu2eKillerVolume" ] ] # mu+, *, Manually stopped + [-13, "uninitialized" , "mu2eKillerVolume" ] ] # mu+, *, Manually stopped } } selectMuons : [muonSelector ] diff --git a/JobConfig/beam/EleBeamResampler.fcl b/JobConfig/beam/EleBeamResampler.fcl index f5c9dbd8..289dedd8 100644 --- a/JobConfig/beam/EleBeamResampler.fcl +++ b/JobConfig/beam/EleBeamResampler.fcl @@ -16,8 +16,8 @@ process_name: EleBeamResampler source : { - module_type : EmptyEvent - maxEvents : @nil + module_type : EmptyEvent + maxEvents : @nil } services : @local::Services.Sim @@ -44,7 +44,7 @@ physics: { @table::Pileup.filters.DetStepFilter @table::Beam.filters.DetStepFilter } -# instance to select flash without time cuts (prescaled) + # instance to select flash without time cuts (prescaled) EarlyDetStepFilter : { @table::Primary.filters.DetStepFilter @table::Pileup.filters.DetStepFilter @@ -86,27 +86,27 @@ outputs: { # Point Mu2eG4 to the pre-simulated data physics.producers.g4run.inputs: { - primaryType: "StepPoints" - primaryTag: "beamResampler:Beam" - inputMCTrajectories: "" + primaryType: "StepPoints" + primaryTag: "beamResampler:Beam" + inputMCTrajectories: "" - simStageOverride: 1 - inputPhysVolumeMultiInfo: "beamResampler" - updateEventLevelVolumeInfos: { - input: "beamResampler:eventlevel" - outInstance: "eventlevel" - } + simStageOverride: 1 + inputPhysVolumeMultiInfo: "beamResampler" + updateEventLevelVolumeInfos: { + input: "beamResampler:eventlevel" + outInstance: "eventlevel" + } } # copy over VD hits physics.producers.g4run.SDConfig.preSimulatedHits: ["beamResampler:virtualdetector"] # Kill stuck e+/e- physics.producers.g4run.Mu2eG4CommonCut:{ - type: intersection - pars: - [ - {type: intersection pars: [ { type: kineticEnergy cut: 1.0 }, { type: pdgId pars: [ 11, -11] }]}, - {type: inVolume pars: [ TS2Vacuum, TS3Vacuum, TS4Vacuum, TS5Vacuum, DS2Vacuum, HallAir ]} - ] + type: intersection + pars: + [ + {type: intersection pars: [ { type: kineticEnergy cut: 1.0 }, { type: pdgId pars: [ 11, -11] }]}, + {type: inVolume pars: [ TS2Vacuum, TS3Vacuum, TS4Vacuum, TS5Vacuum, DS2Vacuum, HallAir ]} + ] } #include "Production/JobConfig/common/MT.fcl" #include "Production/JobConfig/common/epilog.fcl" diff --git a/JobConfig/beam/MuBeamResampler.fcl b/JobConfig/beam/MuBeamResampler.fcl index 678739eb..940b7549 100644 --- a/JobConfig/beam/MuBeamResampler.fcl +++ b/JobConfig/beam/MuBeamResampler.fcl @@ -16,8 +16,8 @@ process_name: MuBeamResampler source : { - module_type : EmptyEvent - maxEvents : @nil + module_type : EmptyEvent + maxEvents : @nil } services : @local::Services.Sim @@ -56,7 +56,7 @@ physics: { @table::Pileup.filters.DetStepFilter @table::Beam.filters.DetStepFilter } -# instance to select flash without time cuts (prescaled) + # instance to select flash without time cuts (prescaled) EarlyDetStepFilter : { @table::Primary.filters.DetStepFilter @table::Pileup.filters.DetStepFilter @@ -69,9 +69,9 @@ physics: { targetStopPath : [ @sequence::Beam.beamResamplerSequence, @sequence::Common.g4Sequence, TargetStopPrescaleFilter, TargetMuonFinder, TargetStopFilter, compressPVTargetStops] IPAStopPath : [ @sequence::Beam.beamResamplerSequence, @sequence::Common.g4Sequence, IPAMuonFinder, IPAStopFilter, compressPVIPAStops] flashPath : [ @sequence::Beam.beamResamplerSequence, @sequence::Common.g4Sequence, TargetMuonFinder, stoppedMuonDaughters, FlashFilter, - @sequence::Primary.DetStepSequence, DetStepFilter, compressDetStepMCs ] + @sequence::Primary.DetStepSequence, DetStepFilter, compressDetStepMCs ] earlyFlashPath : [ @sequence::Beam.beamResamplerSequence, @sequence::Common.g4Sequence, TargetMuonFinder, stoppedMuonDaughters, FlashFilter, EarlyPrescaleFilter, - @sequence::Primary.DetStepSequence, EarlyDetStepFilter, compressDetStepMCs ] + @sequence::Primary.DetStepSequence, EarlyDetStepFilter, compressDetStepMCs ] trigger_paths: [ flashPath, earlyFlashPath, targetStopPath, IPAStopPath ] outPath : [ FlashOutput, EarlyFlashOutput, TargetStopOutput, IPAStopOutput ] end_paths: [outPath] @@ -123,27 +123,27 @@ outputs: { # Point Mu2eG4 to the pre-simulated data physics.producers.g4run.inputs: { - primaryType: "StepPoints" - primaryTag: "beamResampler:Beam" - inputMCTrajectories: "" + primaryType: "StepPoints" + primaryTag: "beamResampler:Beam" + inputMCTrajectories: "" - simStageOverride: 1 - inputPhysVolumeMultiInfo: "beamResampler" - updateEventLevelVolumeInfos: { - input: "beamResampler:eventlevel" - outInstance: "eventlevel" - } + simStageOverride: 1 + inputPhysVolumeMultiInfo: "beamResampler" + updateEventLevelVolumeInfos: { + input: "beamResampler:eventlevel" + outInstance: "eventlevel" + } } # copy over VD hits physics.producers.g4run.SDConfig.preSimulatedHits: ["beamResampler:virtualdetector"] # Kill stuck e+/e- physics.producers.g4run.Mu2eG4CommonCut:{ - type: intersection - pars: - [ - {type: intersection pars: [ { type: kineticEnergy cut: 1.0 }, { type: pdgId pars: [ 11, -11] }]}, - {type: inVolume pars: [ TS2Vacuum, TS3Vacuum, TS4Vacuum, TS5Vacuum, DS2Vacuum, HallAir ]} - ] + type: intersection + pars: + [ + {type: intersection pars: [ { type: kineticEnergy cut: 1.0 }, { type: pdgId pars: [ 11, -11] }]}, + {type: inVolume pars: [ TS2Vacuum, TS3Vacuum, TS4Vacuum, TS5Vacuum, DS2Vacuum, HallAir ]} + ] } #include "Production/JobConfig/common/MT.fcl" #include "Production/JobConfig/common/epilog.fcl" diff --git a/JobConfig/beam/NeutralsResampler.fcl b/JobConfig/beam/NeutralsResampler.fcl index 1b3620be..c5b0b64a 100644 --- a/JobConfig/beam/NeutralsResampler.fcl +++ b/JobConfig/beam/NeutralsResampler.fcl @@ -15,8 +15,8 @@ process_name: NeutralsResampler source : { - module_type : EmptyEvent - maxEvents : @nil + module_type : EmptyEvent + maxEvents : @nil } services : @local::Services.Sim @@ -42,7 +42,7 @@ physics: { @table::Pileup.filters.DetStepFilter @table::Beam.filters.DetStepFilter } -# instance to select flash without time cuts (prescaled) + # instance to select flash without time cuts (prescaled) EarlyDetStepFilter : { @table::Primary.filters.DetStepFilter @table::Pileup.filters.DetStepFilter @@ -54,7 +54,7 @@ physics: { # setup paths flashPath : [ @sequence::Beam.neutralsResamplerSequence, @sequence::Common.g4Sequence, @sequence::Primary.DetStepSequence, DetStepFilter, compressDetStepMCs ] earlyFlashPath : [ @sequence::Beam.neutralsResamplerSequence, @sequence::Common.g4Sequence, EarlyPrescaleFilter, - @sequence::Primary.DetStepSequence, EarlyDetStepFilter, compressDetStepMCs ] + @sequence::Primary.DetStepSequence, EarlyDetStepFilter, compressDetStepMCs ] trigger_paths: [ flashPath , earlyFlashPath ] outPath : [ FlashOutput, EarlyFlashOutput ] end_paths: [outPath] @@ -84,25 +84,25 @@ outputs: { # Point Mu2eG4 to the pre-simulated data physics.producers.g4run.inputs: { - primaryType: "StepPoints" - primaryTag: "neutralsResampler:Neutrals" - inputMCTrajectories: "" + primaryType: "StepPoints" + primaryTag: "neutralsResampler:Neutrals" + inputMCTrajectories: "" - simStageOverride: 1 - inputPhysVolumeMultiInfo: "neutralsResampler" - updateEventLevelVolumeInfos: { - input: "neutralsResampler:eventlevel" - outInstance: "eventlevel" - } + simStageOverride: 1 + inputPhysVolumeMultiInfo: "neutralsResampler" + updateEventLevelVolumeInfos: { + input: "neutralsResampler:eventlevel" + outInstance: "eventlevel" + } } # Kill stuck e+/e- physics.producers.g4run.Mu2eG4CommonCut:{ - type: intersection - pars: - [ - {type: intersection pars: [ { type: kineticEnergy cut: 1.0 }, { type: pdgId pars: [ 11, -11] }]}, - {type: inVolume pars: [ TS2Vacuum, TS3Vacuum, TS4Vacuum, TS5Vacuum, DS2Vacuum, HallAir ]} - ] + type: intersection + pars: + [ + {type: intersection pars: [ { type: kineticEnergy cut: 1.0 }, { type: pdgId pars: [ 11, -11] }]}, + {type: inVolume pars: [ TS2Vacuum, TS3Vacuum, TS4Vacuum, TS5Vacuum, DS2Vacuum, HallAir ]} + ] } #include "Production/JobConfig/common/MT.fcl" #include "Production/JobConfig/common/epilog.fcl" diff --git a/JobConfig/beam/POT.fcl b/JobConfig/beam/POT.fcl index 65ef1285..5e8087a3 100644 --- a/JobConfig/beam/POT.fcl +++ b/JobConfig/beam/POT.fcl @@ -11,8 +11,8 @@ process_name : POT source : { - module_type : EmptyEvent - maxEvents : @nil + module_type : EmptyEvent + maxEvents : @nil } services : @local::Services.Sim diff --git a/JobConfig/beam/POT_extmon.fcl b/JobConfig/beam/POT_extmon.fcl index 1de3eb07..cae3366d 100644 --- a/JobConfig/beam/POT_extmon.fcl +++ b/JobConfig/beam/POT_extmon.fcl @@ -11,8 +11,8 @@ process_name : POTextmon source : { - module_type : EmptyEvent - maxEvents : @nil + module_type : EmptyEvent + maxEvents : @nil } services : @local::Services.Sim @@ -24,7 +24,7 @@ physics : { generate: @local::PrimaryProtonGun compressPVextmonBeam : @local::Beam.producers.compressPVextmonBeam compressPVextmonRegion : @local::Beam.producers.compressPVextmonRegion - } + } filters: { @table::Common.filters extmonBeamFilter : @local::Beam.filters.extmonBeamFilter diff --git a/JobConfig/beam/POT_validation.fcl b/JobConfig/beam/POT_validation.fcl index 5c557d7d..f8963fa1 100644 --- a/JobConfig/beam/POT_validation.fcl +++ b/JobConfig/beam/POT_validation.fcl @@ -14,8 +14,8 @@ process_name : POT source : { - module_type : EmptyEvent - maxEvents : @nil + module_type : EmptyEvent + maxEvents : @nil } services : @local::Services.Sim @@ -30,7 +30,7 @@ physics : { compressPVextmonBeam : @local::Beam.producers.compressPVextmonBeam compressPVextmonRegion : @local::Beam.producers.compressPVextmonRegion compressPVFull : @local::Beam.producers.compressPVFull - } + } filters: { @table::Common.filters BeamFilter : @local::Beam.filters.BeamFilter @@ -96,12 +96,12 @@ outputs: { module_type : RootOutput SelectEvents: ["truncatedPath"] outputCommands: [ "drop *_*_*_*", - "keep mu2e::GenParticles_*_*_*", - "keep mu2e::GenEventCount_*_*_*", - "keep mu2e::StatusG4_*_*_*", - "keep *_g4run_*_*", - "drop uintmu2e::PhysicalVolumeInfomvstd::pairs_g4run_*_*", - "keep *_compressPVFull_*_*" + "keep mu2e::GenParticles_*_*_*", + "keep mu2e::GenEventCount_*_*_*", + "keep mu2e::StatusG4_*_*_*", + "keep *_g4run_*_*", + "drop uintmu2e::PhysicalVolumeInfomvstd::pairs_g4run_*_*", + "keep *_compressPVFull_*_*" ] fileName : "sim.owner.Truncated.version.sequencer.art" } diff --git a/JobConfig/beam/prolog.fcl b/JobConfig/beam/prolog.fcl index db157672..6845a9d0 100644 --- a/JobConfig/beam/prolog.fcl +++ b/JobConfig/beam/prolog.fcl @@ -3,303 +3,303 @@ # BEGIN_PROLOG -Beam: { - - producers: { - - compressPVBeam : { - module_type: CompressPhysicalVolumes - volumesInput : "g4run" - hitInputs : [] - particleInputs : [ "BeamFilter" ] - } - - compressPVNeutrals : { - module_type: CompressPhysicalVolumes - volumesInput : "g4run" - hitInputs : [] - particleInputs : [ "NeutralsFilter" ] - } - - compressPVextmonBeam : { - module_type: CompressPhysicalVolumes - volumesInput : "g4run" - hitInputs : [] - particleInputs : [ "extmonBeamFilter" ] - } - - compressPVextmonRegion : { - module_type: CompressPhysicalVolumes - volumesInput : "g4run" - hitInputs : [] - particleInputs : [ "extmonRegionFilter" ] - } - - compressPVFull : { - module_type: CompressPhysicalVolumes - volumesInput : "g4run" - hitInputs : [] - particleInputs : [ "g4run" ] - } - - compressPVTargetStops: { - module_type: CompressPhysicalVolumes - volumesInput : "g4run" - hitInputs : [] - particleInputs : [ "TargetStopFilter" ] - } - - compressPVIPAStops: { - module_type: CompressPhysicalVolumes - volumesInput : "g4run" - hitInputs : [] - particleInputs : [ "IPAStopFilter" ] - } - -# below are used for stopped muon daughter selecting/vetoing - - TargetMuonFinder: { - module_type: "StoppedParticlesFinder" - particleInput: "g4run" - particleTypes: [ 13, -13 ] - physVolInfoInput: "g4run:eventlevel" - useEventLevelVolumeInfo: true - stoppingMaterial: "StoppingTarget_Al" - verbosityLevel: 1 - } - - IPAMuonFinder : { - module_type : StoppedParticlesFinder - particleInput : "g4run" - useEventLevelVolumeInfo: true - physVolInfoInput: "g4run:eventlevel" - stoppingMaterial : "IPAPolyethylene" - particleTypes : [ 13, -13 ] - verbosityLevel: 1 - } - - stoppedMuonDaughters: { - module_type: SimParticleDaughterSelector - particleInput: "TargetMuonFinder" - # EMCascade should not be vetoed because we do not re-simulate it - processes: [ "DIO", "NuclearCapture" ] - } - - } - - filters: { - - BeamFilter: { - module_type: FilterG4Out - mainHitInputs : [ "g4run:Beam" ] - extraHitInputs : [ "g4run:virtualdetector" ] - vetoDaughters: [] - } - - NeutralsFilter: { - module_type: FilterG4Out - mainHitInputs : [ "g4run:Neutrals" ] - extraHitInputs : [ "g4run:virtualdetector" ] - vetoDaughters: [] - } - - extmonBeamFilter: { - module_type: FilterG4Out - mainHitInputs : [ "g4run:extmonbeam" ] - extraHitInputs : [ "g4run:virtualdetector" ] - vetoDaughters: [] +beam: { + + producers: { + + compressPVBeam : { + module_type: CompressPhysicalVolumes + volumesInput : "g4run" + hitInputs : [] + particleInputs : [ "BeamFilter" ] + } + + compressPVNeutrals : { + module_type: CompressPhysicalVolumes + volumesInput : "g4run" + hitInputs : [] + particleInputs : [ "NeutralsFilter" ] + } + + compressPVextmonBeam : { + module_type: CompressPhysicalVolumes + volumesInput : "g4run" + hitInputs : [] + particleInputs : [ "extmonBeamFilter" ] + } + + compressPVextmonRegion : { + module_type: CompressPhysicalVolumes + volumesInput : "g4run" + hitInputs : [] + particleInputs : [ "extmonRegionFilter" ] + } + + compressPVFull : { + module_type: CompressPhysicalVolumes + volumesInput : "g4run" + hitInputs : [] + particleInputs : [ "g4run" ] + } + + compressPVTargetStops: { + module_type: CompressPhysicalVolumes + volumesInput : "g4run" + hitInputs : [] + particleInputs : [ "TargetStopFilter" ] + } + + compressPVIPAStops: { + module_type: CompressPhysicalVolumes + volumesInput : "g4run" + hitInputs : [] + particleInputs : [ "IPAStopFilter" ] + } + + # below are used for stopped muon daughter selecting/vetoing + + TargetMuonFinder: { + module_type: "StoppedParticlesFinder" + particleInput: "g4run" + particleTypes: [ 13, -13 ] + physVolInfoInput: "g4run:eventlevel" + useEventLevelVolumeInfo: true + stoppingMaterial: "StoppingTarget_Al" + verbosityLevel: 1 + } + + IPAMuonFinder : { + module_type : StoppedParticlesFinder + particleInput : "g4run" + useEventLevelVolumeInfo: true + physVolInfoInput: "g4run:eventlevel" + stoppingMaterial : "IPAPolyethylene" + particleTypes : [ 13, -13 ] + verbosityLevel: 1 + } + + stoppedMuonDaughters: { + module_type: SimParticleDaughterSelector + particleInput: "TargetMuonFinder" + # EMCascade should not be vetoed because we do not re-simulate it + processes: [ "DIO", "NuclearCapture" ] + } + + } + + filters: { + + BeamFilter: { + module_type: FilterG4Out + mainHitInputs : [ "g4run:Beam" ] + extraHitInputs : [ "g4run:virtualdetector" ] + vetoDaughters: [] + } + + NeutralsFilter: { + module_type: FilterG4Out + mainHitInputs : [ "g4run:Neutrals" ] + extraHitInputs : [ "g4run:virtualdetector" ] + vetoDaughters: [] + } + + extmonBeamFilter: { + module_type: FilterG4Out + mainHitInputs : [ "g4run:extmonbeam" ] + extraHitInputs : [ "g4run:virtualdetector" ] + vetoDaughters: [] + } + + extmonRegionFilter: { + module_type: FilterG4Out + mainHitInputs : [ "g4run:extmonregion" ] + extraHitInputs : [ "g4run:virtualdetector" ] + vetoDaughters: [] + } + + TargetStopFilter: { + module_type: FilterG4Out + mainHitInputs: [] + extraHitInputs: [ "g4run:virtualdetector" ] + mainSPPtrInputs: [ "TargetMuonFinder" ] + } + + IPAStopFilter: { + module_type: FilterG4Out + mainHitInputs: [] + extraHitInputs: [ "g4run:virtualdetector" ] + mainSPPtrInputs: [ "IPAMuonFinder" ] + } + + FlashFilter: { + module_type: FilterG4Out + mainHitInputs: [ "g4run:tracker", "g4run:calorimeter", "g4run:CRV", "g4run:virtualdetector" ] + vetoParticles: [ "stoppedMuonDaughters" ] + } + + # DetectorSteFilter with time cut for the main flash stream + # these select energy deposits after the peak of the flash has passed, to keep useless payload down + # Note this is a partial config, it must be combined with Pileup definition + DetStepFilter : { + TimeCutConfig : { + MinimumTime : 250 # good hits are after this time + MaximumTime : 10 # not a typo: good hits are before this time } - - extmonRegionFilter: { - module_type: FilterG4Out - mainHitInputs : [ "g4run:extmonregion" ] - extraHitInputs : [ "g4run:virtualdetector" ] - vetoDaughters: [] - } - - TargetStopFilter: { - module_type: FilterG4Out - mainHitInputs: [] - extraHitInputs: [ "g4run:virtualdetector" ] - mainSPPtrInputs: [ "TargetMuonFinder" ] + } + + # resamplers + + beamResampler: { + module_type: ResamplingMixer + fileNames: @nil + readMode: "sequential" + wrapFiles: true + mu2e: { + writeEventIDs : true + MaxEventsToSkip: @nil + debugLevel : 0 + products: { + genParticleMixer: { mixingMap: [ [ "generate", "" ] ] } + simParticleMixer: { mixingMap: [ [ "BeamFilter", "" ] ] } + stepPointMCMixer: { mixingMap: [ + [ "BeamFilter:virtualdetector", ":" ], + [ "BeamFilter:Beam", ":" ] + ] } + simTimeOffset : "protonTimeOffset" + volumeInfoMixer: { + srInput: "compressPVBeam" + evtOutInstanceName: "eventlevel" + } + } } - - IPAStopFilter: { - module_type: FilterG4Out - mainHitInputs: [] - extraHitInputs: [ "g4run:virtualdetector" ] - mainSPPtrInputs: [ "IPAMuonFinder" ] - } - - FlashFilter: { - module_type: FilterG4Out - mainHitInputs: [ "g4run:tracker", "g4run:calorimeter", "g4run:CRV", "g4run:virtualdetector" ] - vetoParticles: [ "stoppedMuonDaughters" ] + } + + neutralsResampler: { + module_type: ResamplingMixer + fileNames: @nil + readMode: "sequential" + wrapFiles: true + mu2e: { + writeEventIDs : true + MaxEventsToSkip: @nil + debugLevel : 0 + products: { + genParticleMixer: { mixingMap: [ [ "generate", "" ] ] } + simParticleMixer: { mixingMap: [ [ "NeutralsFilter", "" ] ] } + stepPointMCMixer: { mixingMap: [ + [ "NeutralsFilter:Neutrals", ":" ] + ] } + simTimeOffset : "protonTimeOffset" + volumeInfoMixer: { + srInput: "compressPVNeutrals" + evtOutInstanceName: "eventlevel" + } + } } - -# DetectorSteFilter with time cut for the main flash stream -# these select energy deposits after the peak of the flash has passed, to keep useless payload down -# Note this is a partial config, it must be combined with Pileup definition - DetStepFilter : { - TimeCutConfig : { - MinimumTime : 250 # good hits are after this time - MaximumTime : 10 # not a typo: good hits are before this time - } - } - - # resamplers - - beamResampler: { - module_type: ResamplingMixer - fileNames: @nil - readMode: "sequential" - wrapFiles: true - mu2e: { - writeEventIDs : true - MaxEventsToSkip: @nil - debugLevel : 0 - products: { - genParticleMixer: { mixingMap: [ [ "generate", "" ] ] } - simParticleMixer: { mixingMap: [ [ "BeamFilter", "" ] ] } - stepPointMCMixer: { mixingMap: [ - [ "BeamFilter:virtualdetector", ":" ], - [ "BeamFilter:Beam", ":" ] - ] } - simTimeOffset : "protonTimeOffset" - volumeInfoMixer: { - srInput: "compressPVBeam" - evtOutInstanceName: "eventlevel" - } - } - } - } - - neutralsResampler: { - module_type: ResamplingMixer - fileNames: @nil - readMode: "sequential" - wrapFiles: true - mu2e: { - writeEventIDs : true - MaxEventsToSkip: @nil - debugLevel : 0 - products: { - genParticleMixer: { mixingMap: [ [ "generate", "" ] ] } - simParticleMixer: { mixingMap: [ [ "NeutralsFilter", "" ] ] } - stepPointMCMixer: { mixingMap: [ - [ "NeutralsFilter:Neutrals", ":" ] - ] } - simTimeOffset : "protonTimeOffset" - volumeInfoMixer: { - srInput: "compressPVNeutrals" - evtOutInstanceName: "eventlevel" - } - } - } + } + + PrescaleFilter : { + module_type : RandomPrescaleFilter + } + } + + # define regions where particles may eventually interact with the detectors (CRV or trracker/calo), See doc 26541 for a graphical description + # Mu2eG4 cuts are evaluated in the listed order. + # The first match wins. For the "intersection" + # type, the first false stops the evaluation. + # For the "union" type the first true stops the evaluation. + + DetectorRegionCuts: { + type: intersection + pars: [ + # Plane on the west side, outside of the wall + { type: plane normal: [ 0, 0, 1 ] point : [ 0, 0, -4851 ] }, + + # Yuri's e-mail 2015-04-10: x=1612. from CRV considerations. + # This is also large enought to enclose TS3 (its half length is 975 mm). + # Yuri: Moved the plane to cover all the shielding from stage 1. + { type: plane normal: [ -1, 0, 0 ] point : [ 2800., 0, 0 ] }, + + # Make sure the charged particle beam reaches our DS2Vacuum stopping volume + {type: notInVolume pars:[TS2Vacuum, TS3Vacuum, TS4Vacuum, TS5Vacuum, Coll31, Coll32, Coll51, TS2InnerCryoShell, TS3InnerCryoShell, TS4InnerCryoShell, TS2CryoInsVac, TS3CryoInsVac, PbarAbsDisk, PbarAbsWedge, VirtualDetector_Coll31_In, VirtualDetector_Coll32_In, VirtualDetector_Coll31_Out, VirtualDetector_Coll32_Out, Coll31OutRecord, Coll32InRecord, Coll31OutRecord, VirtualDetector_TS4_Bend, VirtualDetector_Coll5_In, VirtualDetector_Coll5_Out, VirtualDetector_Coll5_OutSurf]}, + + # This union splits the output of the above cuts + # into two exclusive streams; Beam (charged particles entering the DS) and Neutrals ((mostly)neutral particles approaching the CRV + { type: union pars: [ + { + type: intersection + pars: [ + { type: inVolume pars: [DS2Vacuum] }, + { type: isCharged } + ] + write: Beam + }, + { type: constant + value: true + write: Neutrals + } + ] } + ] + } + + # define extinction monitor region + extMonRegionCuts: { + type: intersection + pars: [ + { + type: plane + normal: @local::mu2eg4BeamDumpNormal + # Dump core center: (661.90, 527.40, -19428.2) + # A plane 950 mm beyond the core center as measured along + # the "beam" direction normal to the dump face. + # DeltaZ = L/cos(13.72 degrees) + point: [ 661.90, 527.40, -20406.10 ] + }, + + # Split the output of the "plane" cut above into two exclusive streams + { type: union pars: [ + + { type: intersection + pars: [ + { + type: inVolume + pars: + [ collimator1Channel, + HallAir, + ExtMonFNALfilterMagnetAperture, + ExtMonFNALfilterMagnetApertureMarginUp, + ExtMonFNALfilterMagnetApertureMarginDn + ] + }, + { type: isCharged } + ] + write: extmonbeam + }, - PrescaleFilter : { - module_type : RandomPrescaleFilter + { type: constant value: true write: extmonregion } + ] } - } - - # define regions where particles may eventually interact with the detectors (CRV or trracker/calo), See doc 26541 for a graphical description - # Mu2eG4 cuts are evaluated in the listed order. - # The first match wins. For the "intersection" - # type, the first false stops the evaluation. - # For the "union" type the first true stops the evaluation. - - DetectorRegionCuts: { - type: intersection - pars: [ - // Plane on the west side, outside of the wall - { type: plane normal: [ 0, 0, 1 ] point : [ 0, 0, -4851 ] }, - - // Yuri's e-mail 2015-04-10: x=1612. from CRV considerations. - // This is also large enought to enclose TS3 (its half length is 975 mm). - // Yuri: Moved the plane to cover all the shielding from stage 1. - { type: plane normal: [ -1, 0, 0 ] point : [ 2800., 0, 0 ] }, - - // Make sure the charged particle beam reaches our DS2Vacuum stopping volume - {type: notInVolume pars:[TS2Vacuum, TS3Vacuum, TS4Vacuum, TS5Vacuum, Coll31, Coll32, Coll51, TS2InnerCryoShell, TS3InnerCryoShell, TS4InnerCryoShell, TS2CryoInsVac, TS3CryoInsVac, PbarAbsDisk, PbarAbsWedge, VirtualDetector_Coll31_In, VirtualDetector_Coll32_In, VirtualDetector_Coll31_Out, VirtualDetector_Coll32_Out, Coll31OutRecord, Coll32InRecord, Coll31OutRecord, VirtualDetector_TS4_Bend, VirtualDetector_Coll5_In, VirtualDetector_Coll5_Out, VirtualDetector_Coll5_OutSurf]}, - - // This union splits the output of the above cuts - // into two exclusive streams; Beam (charged particles entering the DS) and Neutrals ((mostly)neutral particles approaching the CRV - { type: union pars: [ - { - type: intersection - pars: [ - { type: inVolume pars: [DS2Vacuum] }, - { type: isCharged } - ] - write: Beam - }, - { type: constant - value: true - write: Neutrals - } - ] - } - ] - } - - # define extinction monitor region - extMonRegionCuts: { - type: intersection - pars: [ - { - type: plane - normal: @local::mu2eg4BeamDumpNormal - // Dump core center: (661.90, 527.40, -19428.2) - // A plane 950 mm beyond the core center as measured along - // the "beam" direction normal to the dump face. - // DeltaZ = L/cos(13.72 degrees) - point: [ 661.90, 527.40, -20406.10 ] - }, - - // Split the output of the "plane" cut above into two exclusive streams - { type: union pars: [ - - { type: intersection - pars: [ - { - type: inVolume - pars: - [ collimator1Channel, - HallAir, - ExtMonFNALfilterMagnetAperture, - ExtMonFNALfilterMagnetApertureMarginUp, - ExtMonFNALfilterMagnetApertureMarginDn - ] - }, - { type: isCharged } - ] - write: extmonbeam - }, - - { type: constant value: true write: extmonregion } - ] - } - ] - } -# -# define products that need to be kept -# + ] + } + # + # define products that need to be kept + # SimKeptProducts : [ - "keep art::EventIDs_*_*_*", - "keep mu2e::GenParticles_*_*_*", - "keep mu2e::GenEventCount_*_*_*", - "keep mu2e::StatusG4_*_*_*" + "keep art::EventIDs_*_*_*", + "keep mu2e::GenParticles_beamResampler_*_*", + "keep mu2e::GenEventCount_*_*_*", + "keep mu2e::StatusG4_*_*_*" ] DtsKeptProducts : [ - "keep art::EventIDs_*_*_*", - "keep mu2e::GenEventCount_*_*_*", - "keep mu2e::StatusG4_*_*_*", - "keep mu2e::SimParticleart::Ptrdoublestd::map_*_*_*" + "keep art::EventIDs_*_*_*", + "keep mu2e::GenEventCount_*_*_*", + "keep mu2e::StatusG4_*_*_*", + "keep mu2e::SimParticleart::Ptrdoublestd::map_*_*_*" ] -# some commen sequences + # some commen sequences beamResamplerSequence : [genCounter, protonTimeOffset, beamResampler] neutralsResamplerSequence : [genCounter, protonTimeOffset, neutralsResampler] From 03c8627ac2d95295fc6b18127c832bb4a0e159a8 Mon Sep 17 00:00:00 2001 From: David Nathan Brown Date: Tue, 28 Sep 2021 19:54:54 -0500 Subject: [PATCH 11/47] Cleanup more files --- JobConfig/examples/README | 2 -- JobConfig/examples/create_mixin_files.sh | 22 ---------------- JobConfig/examples/generate_CRVcat.sh | 9 ------- JobConfig/examples/generate_CRYcosmicMix.sh | 23 ----------------- JobConfig/examples/generate_Calo-cosmic.sh | 3 --- JobConfig/examples/generate_Calo-cosmicMix.sh | 19 -------------- JobConfig/examples/generate_CeEndpoint.sh | 3 --- JobConfig/examples/generate_CeEndpointMix.sh | 25 ------------------- JobConfig/examples/generate_CeMLeadingLog.sh | 3 --- .../examples/generate_CeMLeadingLogMix.sh | 19 -------------- JobConfig/examples/generate_CePLeadingLog.sh | 3 --- JobConfig/examples/generate_CeplusEndpoint.sh | 3 --- .../examples/generate_CeplusEndpointMix.sh | 19 -------------- JobConfig/examples/generate_DS-CRV-cut.sh | 3 --- .../generate_DS-cosmic-nofield-repro.sh | 8 ------ .../examples/generate_DS-cosmic-nofield.sh | 3 --- JobConfig/examples/generate_DS-cosmic.sh | 3 --- JobConfig/examples/generate_DS-cosmicMix.sh | 23 ----------------- JobConfig/examples/generate_DS.sh | 3 --- JobConfig/examples/generate_IPA-Michel.sh | 3 --- JobConfig/examples/generate_IPA-MichelMix.sh | 19 -------------- .../examples/generate_NoPrimary-mix-repro.sh | 8 ------ JobConfig/examples/generate_NoPrimary.sh | 18 ------------- JobConfig/examples/generate_NoPrimaryFlat.sh | 18 ------------- JobConfig/examples/generate_PS-CRV-cut.sh | 3 --- JobConfig/examples/generate_PS-CRV.sh | 2 -- JobConfig/examples/generate_TS-CRV.sh | 2 -- JobConfig/examples/generate_deuteron.sh | 3 --- JobConfig/examples/generate_dio.sh | 3 --- JobConfig/examples/generate_flash.sh | 3 --- JobConfig/examples/generate_flashcat.sh | 3 --- JobConfig/examples/generate_flashcut.sh | 3 --- .../examples/generate_flatInternalRMC.sh | 3 --- .../examples/generate_flatInternalRPC.sh | 3 --- JobConfig/examples/generate_flateminus.sh | 3 --- JobConfig/examples/generate_flateminusMix.sh | 18 ------------- JobConfig/examples/generate_flateplus.sh | 3 --- .../examples/generate_flatmugamma-calo.sh | 3 --- JobConfig/examples/generate_flatmugamma.sh | 3 --- JobConfig/examples/generate_flatmugammaMix.sh | 18 ------------- JobConfig/examples/generate_flatpigamma.sh | 3 --- JobConfig/examples/generate_flatpigammaMix.sh | 18 ------------- JobConfig/examples/generate_flatproton.sh | 3 --- JobConfig/examples/generate_neutron.sh | 3 --- JobConfig/examples/generate_oot.sh | 3 --- JobConfig/examples/generate_ootstops.sh | 3 --- JobConfig/examples/generate_photon.sh | 3 --- JobConfig/examples/generate_proton.sh | 3 --- .../generate_reco-CRY-cosmic-general-mix.sh | 9 ------- .../examples/generate_reco-CeEndpoint-mix.sh | 9 ------- .../generate_reco-CeplusEndpoint-mix.sh | 9 ------- .../examples/generate_reco-DS-cosmic-mix.sh | 9 ------- .../examples/generate_reco-flateminus-mix.sh | 9 ------- .../examples/generate_reco-flateplus-mix.sh | 9 ------- .../examples/generate_reco-flatmugamma-mix.sh | 9 ------- .../examples/generate_reco-flatpigamma-mix.sh | 9 ------- JobConfig/examples/generate_tgtstops.sh | 3 --- 57 files changed, 452 deletions(-) delete mode 100644 JobConfig/examples/README delete mode 100644 JobConfig/examples/create_mixin_files.sh delete mode 100644 JobConfig/examples/generate_CRVcat.sh delete mode 100644 JobConfig/examples/generate_CRYcosmicMix.sh delete mode 100644 JobConfig/examples/generate_Calo-cosmic.sh delete mode 100644 JobConfig/examples/generate_Calo-cosmicMix.sh delete mode 100644 JobConfig/examples/generate_CeEndpoint.sh delete mode 100644 JobConfig/examples/generate_CeEndpointMix.sh delete mode 100644 JobConfig/examples/generate_CeMLeadingLog.sh delete mode 100644 JobConfig/examples/generate_CeMLeadingLogMix.sh delete mode 100644 JobConfig/examples/generate_CePLeadingLog.sh delete mode 100644 JobConfig/examples/generate_CeplusEndpoint.sh delete mode 100644 JobConfig/examples/generate_CeplusEndpointMix.sh delete mode 100644 JobConfig/examples/generate_DS-CRV-cut.sh delete mode 100644 JobConfig/examples/generate_DS-cosmic-nofield-repro.sh delete mode 100644 JobConfig/examples/generate_DS-cosmic-nofield.sh delete mode 100644 JobConfig/examples/generate_DS-cosmic.sh delete mode 100644 JobConfig/examples/generate_DS-cosmicMix.sh delete mode 100644 JobConfig/examples/generate_DS.sh delete mode 100644 JobConfig/examples/generate_IPA-Michel.sh delete mode 100644 JobConfig/examples/generate_IPA-MichelMix.sh delete mode 100644 JobConfig/examples/generate_NoPrimary-mix-repro.sh delete mode 100644 JobConfig/examples/generate_NoPrimary.sh delete mode 100644 JobConfig/examples/generate_NoPrimaryFlat.sh delete mode 100644 JobConfig/examples/generate_PS-CRV-cut.sh delete mode 100644 JobConfig/examples/generate_PS-CRV.sh delete mode 100644 JobConfig/examples/generate_TS-CRV.sh delete mode 100644 JobConfig/examples/generate_deuteron.sh delete mode 100644 JobConfig/examples/generate_dio.sh delete mode 100644 JobConfig/examples/generate_flash.sh delete mode 100644 JobConfig/examples/generate_flashcat.sh delete mode 100644 JobConfig/examples/generate_flashcut.sh delete mode 100644 JobConfig/examples/generate_flatInternalRMC.sh delete mode 100644 JobConfig/examples/generate_flatInternalRPC.sh delete mode 100644 JobConfig/examples/generate_flateminus.sh delete mode 100644 JobConfig/examples/generate_flateminusMix.sh delete mode 100644 JobConfig/examples/generate_flateplus.sh delete mode 100644 JobConfig/examples/generate_flatmugamma-calo.sh delete mode 100644 JobConfig/examples/generate_flatmugamma.sh delete mode 100644 JobConfig/examples/generate_flatmugammaMix.sh delete mode 100644 JobConfig/examples/generate_flatpigamma.sh delete mode 100644 JobConfig/examples/generate_flatpigammaMix.sh delete mode 100644 JobConfig/examples/generate_flatproton.sh delete mode 100644 JobConfig/examples/generate_neutron.sh delete mode 100644 JobConfig/examples/generate_oot.sh delete mode 100644 JobConfig/examples/generate_ootstops.sh delete mode 100644 JobConfig/examples/generate_photon.sh delete mode 100644 JobConfig/examples/generate_proton.sh delete mode 100644 JobConfig/examples/generate_reco-CRY-cosmic-general-mix.sh delete mode 100644 JobConfig/examples/generate_reco-CeEndpoint-mix.sh delete mode 100644 JobConfig/examples/generate_reco-CeplusEndpoint-mix.sh delete mode 100644 JobConfig/examples/generate_reco-DS-cosmic-mix.sh delete mode 100644 JobConfig/examples/generate_reco-flateminus-mix.sh delete mode 100644 JobConfig/examples/generate_reco-flateplus-mix.sh delete mode 100644 JobConfig/examples/generate_reco-flatmugamma-mix.sh delete mode 100644 JobConfig/examples/generate_reco-flatpigamma-mix.sh delete mode 100644 JobConfig/examples/generate_tgtstops.sh diff --git a/JobConfig/examples/README b/JobConfig/examples/README deleted file mode 100644 index 6855891c..00000000 --- a/JobConfig/examples/README +++ /dev/null @@ -1,2 +0,0 @@ -This directory contains files used in invoke generate_fcl in previous (MDC2018) productions. They may -be useful for future production efforts, but do not expect to use them OOTB. diff --git a/JobConfig/examples/create_mixin_files.sh b/JobConfig/examples/create_mixin_files.sh deleted file mode 100644 index 862f61e1..00000000 --- a/JobConfig/examples/create_mixin_files.sh +++ /dev/null @@ -1,22 +0,0 @@ -# You must have previously setup mu2efiletools for this script to run -dsconf=MDC2018a -for mixin in \ -oot-CRV-cat-cat \ -neutron-CRV-cat \ -dio-CRV-cat \ -photon-CRV-cat \ -PS-CRV-cut-cat \ -TS-CRV-cat-cat \ -DS-CRV-cut-cat \ -oot-TrkCal-cat-cat \ -neutron-TrkCal-cat \ -dio-TrkCal-cat \ -photon-TrkCal-cat \ -DS-flash-TrkCal-cut-cat \ -proton-TrkCal \ -deuteron-TrkCal ; do - outfile="$mixin.txt" - dataset="sim.mu2e.$mixin.$dsconf.art" - echo "Writing files for $dataset to $outfile" - mu2eDatasetFileList $dataset > $outfile -done diff --git a/JobConfig/examples/generate_CRVcat.sh b/JobConfig/examples/generate_CRVcat.sh deleted file mode 100644 index 393c6e99..00000000 --- a/JobConfig/examples/generate_CRVcat.sh +++ /dev/null @@ -1,9 +0,0 @@ -generate_fcl --description PS-CRVcat --dsconf MDC2018a --dsowner mu2e --embed PS-CRVcat.fcl --run-number 1002 --auxinput=100:physics.filters.crvFilter.fileNames:PS-CRVfiles.txt --events-per-job 19007 --njobs 25 -rm -rf PS-CRVcat -mv 000 PS-CRVcat -generate_fcl --description TS-CRVcat --dsconf MDC2018a --dsowner mu2e --embed TS-CRVcat.fcl --run-number 1002 --auxinput=200:physics.filters.crvFilter.fileNames:TS-CRVfiles.txt --events-per-job 487 --njobs 25 -rm -rf TS-CRVcat -mv 000 TS-CRVcat -generate_fcl --description DS-CRVcat --dsconf MDC2018a --dsowner mu2e --embed DS-CRVcat.fcl --run-number 1002 --auxinput=200:physics.filters.crvFilter.fileNames:DS-CRVfiles.txt --events-per-job 56251 --njobs 25 -rm -rf DS-CRVcat -mv 000 DS-CRVcat diff --git a/JobConfig/examples/generate_CRYcosmicMix.sh b/JobConfig/examples/generate_CRYcosmicMix.sh deleted file mode 100644 index a9bdb2bb..00000000 --- a/JobConfig/examples/generate_CRYcosmicMix.sh +++ /dev/null @@ -1,23 +0,0 @@ -generate_fcl --description CRY-cosmicMix --dsconf MDC2018i --dsowner mu2e --include JobConfig/mixing/CRY-cosmicMix.fcl \ ---inputs=CRYcosmic.txt --merge-factor 1 --max-engines 30 \ ---auxinput=3:physics.filters.ootMixerCRV.fileNames:oot-CRV-cat-cat.txt \ ---auxinput=1:physics.filters.neutronMixerCRV.fileNames:neutron-CRV-cat.txt \ ---auxinput=1:physics.filters.dioMixerCRV.fileNames:dio-CRV-cat.txt \ ---auxinput=1:physics.filters.photonMixerCRV.fileNames:photon-CRV-cat.txt \ ---auxinput=5:physics.filters.PSMixerCRV.fileNames:PS-CRV-cut-cat.txt \ ---auxinput=5:physics.filters.TSMixerCRV.fileNames:TS-CRV-cat-cat.txt \ ---auxinput=5:physics.filters.DSMixerCRV.fileNames:DS-CRV-cut-cat.txt \ ---auxinput=3:physics.filters.ootMixerTrkCal.fileNames:oot-TrkCal-cat-cat.txt \ ---auxinput=1:physics.filters.neutronMixerTrkCal.fileNames:neutron-TrkCal-cat.txt \ ---auxinput=1:physics.filters.dioMixerTrkCal.fileNames:dio-TrkCal-cat.txt \ ---auxinput=1:physics.filters.photonMixerTrkCal.fileNames:photon-TrkCal-cat.txt \ ---auxinput=2:physics.filters.flashMixerTrkCal.fileNames:DS-flash-TrkCal-cut-cat.txt \ ---auxinput=1:physics.filters.protonMixerTrkCal.fileNames:proton-TrkCal.txt \ ---auxinput=1:physics.filters.deuteronMixerTrkCal.fileNames:deuteron-TrkCal.txt -for dirname in 000 001 002 003 004 005 006 007 008 009; do - if test -d $dirname; then - echo "found dir $dirname" - rm -rf CRY-cosmicMix_$dirname - mv $dirname CRY-cosmicMix_$dirname - fi -done diff --git a/JobConfig/examples/generate_Calo-cosmic.sh b/JobConfig/examples/generate_Calo-cosmic.sh deleted file mode 100644 index c100aa2e..00000000 --- a/JobConfig/examples/generate_Calo-cosmic.sh +++ /dev/null @@ -1,3 +0,0 @@ -generate_fcl --description Calo-cosmic --dsconf MDC2018e --dsowner mu2e --include JobConfig/primary/Calo-cosmic.fcl --run-number 1002 --events-per-job 20000 --njobs 20 -rm -rf Calo-cosmic -mv 000 Calo-cosmic diff --git a/JobConfig/examples/generate_Calo-cosmicMix.sh b/JobConfig/examples/generate_Calo-cosmicMix.sh deleted file mode 100644 index 65e32904..00000000 --- a/JobConfig/examples/generate_Calo-cosmicMix.sh +++ /dev/null @@ -1,19 +0,0 @@ -# Note: the jobs created by this script need at least 8GBytes of memory -generate_fcl --description Calo-cosmicMix --dsconf MDC2018d --dsowner mu2e --include JobConfig/mixing/Calo-cosmicMix.fcl \ ---inputs=calocosmic.txt --merge-factor 1 --max-engines 30 \ ---auxinput=3:physics.filters.ootMixerCRV.fileNames:oot-CRV-recat.txt \ ---auxinput=1:physics.filters.neutronMixerCRV.fileNames:neutron-CRV-cat.txt \ ---auxinput=1:physics.filters.dioMixerCRV.fileNames:dio-CRV-cat.txt \ ---auxinput=1:physics.filters.photonMixerCRV.fileNames:photon-CRV-cat.txt \ ---auxinput=5:physics.filters.PSMixerCRV.fileNames:PS-CRV-recat.txt \ ---auxinput=5:physics.filters.TSMixerCRV.fileNames:TS-CRV-recat.txt \ ---auxinput=5:physics.filters.DSMixerCRV.fileNames:DS-CRV-recat.txt \ ---auxinput=3:physics.filters.ootMixerTrkCal.fileNames:oot-TrkCal-recat.txt \ ---auxinput=1:physics.filters.neutronMixerTrkCal.fileNames:neutron-TrkCal-cat.txt \ ---auxinput=1:physics.filters.dioMixerTrkCal.fileNames:dio-TrkCal-cat.txt \ ---auxinput=1:physics.filters.photonMixerTrkCal.fileNames:photon-TrkCal-cat.txt \ ---auxinput=2:physics.filters.flashMixerTrkCal.fileNames:DS-flash-TrkCal-recat.txt \ ---auxinput=1:physics.filters.protonMixerTrkCal.fileNames:proton-TrkCal.txt \ ---auxinput=1:physics.filters.deuteronMixerTrkCal.fileNames:deuteron-TrkCal.txt -rm -rf Calo-cosmicMix -mv 000 Calo-cosmicMix diff --git a/JobConfig/examples/generate_CeEndpoint.sh b/JobConfig/examples/generate_CeEndpoint.sh deleted file mode 100644 index 9cde011f..00000000 --- a/JobConfig/examples/generate_CeEndpoint.sh +++ /dev/null @@ -1,3 +0,0 @@ -generate_fcl --description CeEndpoint --dsconf MDC2018a --dsowner mu2e --include JobConfig/primary/CeEndpoint.fcl --run-number 1002 --events-per-job 10000 --njobs 200 -rm -rf CeEndpoint -mv 000 CeEndpoint diff --git a/JobConfig/examples/generate_CeEndpointMix.sh b/JobConfig/examples/generate_CeEndpointMix.sh deleted file mode 100644 index db77ade3..00000000 --- a/JobConfig/examples/generate_CeEndpointMix.sh +++ /dev/null @@ -1,25 +0,0 @@ -# Note: the jobs created by this script need at least 8GBytes of memory -generate_fcl --description CeEndpointMix --dsconf MDC2018j --dsowner mu2e --include JobConfig/mixing/CeEndpointMix.fcl \ ---run-number 1002 --events-per-job 500 --njobs 5000 --max-engines 50 \ ---auxinput=3:physics.filters.ootMixerCRV.fileNames:oot-CRV-cat-cat.txt \ ---auxinput=1:physics.filters.neutronMixerCRV.fileNames:neutron-CRV-cat.txt \ ---auxinput=1:physics.filters.dioMixerCRV.fileNames:dio-CRV-cat.txt \ ---auxinput=1:physics.filters.photonMixerCRV.fileNames:photon-CRV-cat.txt \ ---auxinput=5:physics.filters.PSMixerCRV.fileNames:PS-CRV-cut-cat.txt \ ---auxinput=5:physics.filters.TSMixerCRV.fileNames:TS-CRV-cat-cat.txt \ ---auxinput=5:physics.filters.DSMixerCRV.fileNames:DS-CRV-cut-cat.txt \ ---auxinput=3:physics.filters.ootMixerTrkCal.fileNames:oot-TrkCal-cat-cat.txt \ ---auxinput=1:physics.filters.neutronMixerTrkCal.fileNames:neutron-TrkCal-cat.txt \ ---auxinput=1:physics.filters.dioMixerTrkCal.fileNames:dio-TrkCal-cat.txt \ ---auxinput=1:physics.filters.photonMixerTrkCal.fileNames:photon-TrkCal-cat.txt \ ---auxinput=2:physics.filters.flashMixerTrkCal.fileNames:DS-flash-TrkCal-cut-cat.txt \ ---auxinput=1:physics.filters.protonMixerTrkCal.fileNames:proton-TrkCal.txt \ ---auxinput=1:physics.filters.deuteronMixerTrkCal.fileNames:deuteron-TrkCal.txt -for dirname in 000 001 002 003 004 005 006 007 008 009; do - if test -d $dirname; then - echo "found dir $dirname" - rm -rf CeEndpointMix_$dirname - mv $dirname CeEndpointMix_$dirname - fi -done - diff --git a/JobConfig/examples/generate_CeMLeadingLog.sh b/JobConfig/examples/generate_CeMLeadingLog.sh deleted file mode 100644 index 9dacfbf7..00000000 --- a/JobConfig/examples/generate_CeMLeadingLog.sh +++ /dev/null @@ -1,3 +0,0 @@ -generate_fcl --description CeMLeadingLog --dsconf MDC2018e --dsowner mu2e --include JobConfig/primary/CeMLeadingLog.fcl --run-number 1002 --events-per-job 10000 --njobs 200 -rm -rf CeMLeadingLog -mv 000 CeMLeadingLog diff --git a/JobConfig/examples/generate_CeMLeadingLogMix.sh b/JobConfig/examples/generate_CeMLeadingLogMix.sh deleted file mode 100644 index 43650b47..00000000 --- a/JobConfig/examples/generate_CeMLeadingLogMix.sh +++ /dev/null @@ -1,19 +0,0 @@ -# Note: the jobs created by this script need at least 8GBytes of memory -generate_fcl --description CeMLeadingLogMix --dsconf MDC2018e --dsowner mu2e --include JobConfig/mixing/CeMLeadingLogMix.fcl \ ---run-number 1002 --events-per-job 500 --njobs 1000 --max-engines 30 \ ---auxinput=3:physics.filters.ootMixerCRV.fileNames:oot-CRV-recat.txt \ ---auxinput=1:physics.filters.neutronMixerCRV.fileNames:neutron-CRV-cat.txt \ ---auxinput=1:physics.filters.dioMixerCRV.fileNames:dio-CRV-cat.txt \ ---auxinput=1:physics.filters.photonMixerCRV.fileNames:photon-CRV-cat.txt \ ---auxinput=5:physics.filters.PSMixerCRV.fileNames:PS-CRV-recat.txt \ ---auxinput=5:physics.filters.TSMixerCRV.fileNames:TS-CRV-recat.txt \ ---auxinput=5:physics.filters.DSMixerCRV.fileNames:DS-CRV-recat.txt \ ---auxinput=3:physics.filters.ootMixerTrkCal.fileNames:oot-TrkCal-recat.txt \ ---auxinput=1:physics.filters.neutronMixerTrkCal.fileNames:neutron-TrkCal-cat.txt \ ---auxinput=1:physics.filters.dioMixerTrkCal.fileNames:dio-TrkCal-cat.txt \ ---auxinput=1:physics.filters.photonMixerTrkCal.fileNames:photon-TrkCal-cat.txt \ ---auxinput=2:physics.filters.flashMixerTrkCal.fileNames:DS-flash-TrkCal-recat.txt \ ---auxinput=1:physics.filters.protonMixerTrkCal.fileNames:proton-TrkCal.txt \ ---auxinput=1:physics.filters.deuteronMixerTrkCal.fileNames:deuteron-TrkCal.txt -rm -rf CeMLeadingLogMix -mv 000 CeMLeadingLogMix diff --git a/JobConfig/examples/generate_CePLeadingLog.sh b/JobConfig/examples/generate_CePLeadingLog.sh deleted file mode 100644 index 06595eb0..00000000 --- a/JobConfig/examples/generate_CePLeadingLog.sh +++ /dev/null @@ -1,3 +0,0 @@ -generate_fcl --description CePLeadingLog --dsconf MDC2018e --dsowner mu2e --include JobConfig/primary/CePLeadingLog.fcl --run-number 1002 --events-per-job 10000 --njobs 200 -rm -rf CePLeadingLog -mv 000 CePLeadingLog diff --git a/JobConfig/examples/generate_CeplusEndpoint.sh b/JobConfig/examples/generate_CeplusEndpoint.sh deleted file mode 100644 index 2a2b4265..00000000 --- a/JobConfig/examples/generate_CeplusEndpoint.sh +++ /dev/null @@ -1,3 +0,0 @@ -generate_fcl --description CeplusEndpoint --dsconf MDC2018a --dsowner mu2e --include JobConfig/primary/CeplusEndpoint.fcl --run-number 1002 --events-per-job 10000 --njobs 200 -rm -rf CeplusEndpoint -mv 000 CeplusEndpoint diff --git a/JobConfig/examples/generate_CeplusEndpointMix.sh b/JobConfig/examples/generate_CeplusEndpointMix.sh deleted file mode 100644 index 0040ee04..00000000 --- a/JobConfig/examples/generate_CeplusEndpointMix.sh +++ /dev/null @@ -1,19 +0,0 @@ -# Note: the jobs created by this script need at least 8GBytes of memory -generate_fcl --description CeplusEndpointMix --dsconf MDC2018a --dsowner mu2e --include JobConfig/mixing/CeplusEndpointMix.fcl \ ---run-number 1002 --events-per-job 500 --njobs 5000 --max-engines 30 \ ---auxinput=15:physics.filters.ootMixerCRV.fileNames:oot-CRV-cat.txt \ ---auxinput=1:physics.filters.neutronMixerCRV.fileNames:neutron-CRV-cat.txt \ ---auxinput=1:physics.filters.dioMixerCRV.fileNames:dio-CRV-cat.txt \ ---auxinput=1:physics.filters.photonMixerCRV.fileNames:photon-CRV-cat.txt \ ---auxinput=25:physics.filters.PSMixerCRV.fileNames:PS-CRV-cut.txt \ ---auxinput=25:physics.filters.TSMixerCRV.fileNames:TS-CRV-cat.txt \ ---auxinput=25:physics.filters.DSMixerCRV.fileNames:DS-CRV-cut.txt \ ---auxinput=15:physics.filters.ootMixerTrkCal.fileNames:oot-TrkCal-cat.txt \ ---auxinput=1:physics.filters.neutronMixerTrkCal.fileNames:neutron-TrkCal-cat.txt \ ---auxinput=1:physics.filters.dioMixerTrkCal.fileNames:dio-TrkCal-cat.txt \ ---auxinput=1:physics.filters.photonMixerTrkCal.fileNames:photon-TrkCal-cat.txt \ ---auxinput=10:physics.filters.flashMixerTrkCal.fileNames:DS-flash-TrkCal-cut.txt \ ---auxinput=1:physics.filters.protonMixerTrkCal.fileNames:proton-TrkCal.txt \ ---auxinput=1:physics.filters.deuteronMixerTrkCal.fileNames:deuteron-TrkCal.txt -rm -rf CeplusEndpointMix -mv 000 CeplusEndpointMix diff --git a/JobConfig/examples/generate_DS-CRV-cut.sh b/JobConfig/examples/generate_DS-CRV-cut.sh deleted file mode 100644 index 8003e65a..00000000 --- a/JobConfig/examples/generate_DS-CRV-cut.sh +++ /dev/null @@ -1,3 +0,0 @@ -generate_fcl --description DS-CRV-cut --dsconf MDC2018a --dsowner mu2e --inputs DS-CRV-cat.txt --embed JobConfig/beam/DS-CRV-cut.fcl --merge-factor=1 -rm -rf DS-CRV-cut -mv 000 DS-CRV-cut diff --git a/JobConfig/examples/generate_DS-cosmic-nofield-repro.sh b/JobConfig/examples/generate_DS-cosmic-nofield-repro.sh deleted file mode 100644 index d3a792f9..00000000 --- a/JobConfig/examples/generate_DS-cosmic-nofield-repro.sh +++ /dev/null @@ -1,8 +0,0 @@ -generate_fcl --description DS-cosmic-nofield --dsconf MDC2020Dev-a --dsowner mu2e --input DS-cosmic-nofield.txt --include JobConfig/reprocess/mdc2018--mdc2020-dev/dig-DS-cosmic-nofield.fcl --merge-factor=30 -for dirname in 000 001 002 003 004 005 006 007 008 009; do - if test -d $dirname; then - echo "found dir $dirname" - rm -rf DS-cosmic-nofield_$dirname - mv $dirname DS-cosmic-nofield_$dirname - fi -done diff --git a/JobConfig/examples/generate_DS-cosmic-nofield.sh b/JobConfig/examples/generate_DS-cosmic-nofield.sh deleted file mode 100644 index eb4d94e2..00000000 --- a/JobConfig/examples/generate_DS-cosmic-nofield.sh +++ /dev/null @@ -1,3 +0,0 @@ -generate_fcl --description DS-cosmic-nofield --dsconf MDC2018a --dsowner mu2e --include JobConfig/primary/DS-cosmic-nofield.fcl --run-number 1002 --events-per-job 20000 --njobs 500 -rm -rf DS-cosmic-nofield -mv 000 DS-cosmic-nofield diff --git a/JobConfig/examples/generate_DS-cosmic.sh b/JobConfig/examples/generate_DS-cosmic.sh deleted file mode 100644 index c0f7667a..00000000 --- a/JobConfig/examples/generate_DS-cosmic.sh +++ /dev/null @@ -1,3 +0,0 @@ -generate_fcl --description DS-cosmic --dsconf MDC2018a --dsowner mu2e --include JobConfig/primary/DS-cosmic.fcl --run-number 1002 --events-per-job 20000 --njobs 50000 -rm -rf DS-cosmic -mv 000 DS-cosmic diff --git a/JobConfig/examples/generate_DS-cosmicMix.sh b/JobConfig/examples/generate_DS-cosmicMix.sh deleted file mode 100644 index c7e01675..00000000 --- a/JobConfig/examples/generate_DS-cosmicMix.sh +++ /dev/null @@ -1,23 +0,0 @@ -generate_fcl --description DS-cosmicMix --dsconf MDC2018i --dsowner mu2e --include JobConfig/mixing/DS-cosmicMix.fcl \ ---inputs=DS-cosmic.txt --merge-factor 5 --max-engines 30 \ ---auxinput=3:physics.filters.ootMixerCRV.fileNames:oot-CRV-cat-cat.txt \ ---auxinput=1:physics.filters.neutronMixerCRV.fileNames:neutron-CRV-cat.txt \ ---auxinput=1:physics.filters.dioMixerCRV.fileNames:dio-CRV-cat.txt \ ---auxinput=1:physics.filters.photonMixerCRV.fileNames:photon-CRV-cat.txt \ ---auxinput=5:physics.filters.PSMixerCRV.fileNames:PS-CRV-cut-cat.txt \ ---auxinput=5:physics.filters.TSMixerCRV.fileNames:TS-CRV-cat-cat.txt \ ---auxinput=5:physics.filters.DSMixerCRV.fileNames:DS-CRV-cut-cat.txt \ ---auxinput=3:physics.filters.ootMixerTrkCal.fileNames:oot-TrkCal-cat-cat.txt \ ---auxinput=1:physics.filters.neutronMixerTrkCal.fileNames:neutron-TrkCal-cat.txt \ ---auxinput=1:physics.filters.dioMixerTrkCal.fileNames:dio-TrkCal-cat.txt \ ---auxinput=1:physics.filters.photonMixerTrkCal.fileNames:photon-TrkCal-cat.txt \ ---auxinput=2:physics.filters.flashMixerTrkCal.fileNames:DS-flash-TrkCal-cut-cat.txt \ ---auxinput=1:physics.filters.protonMixerTrkCal.fileNames:proton-TrkCal.txt \ ---auxinput=1:physics.filters.deuteronMixerTrkCal.fileNames:deuteron-TrkCal.txt -for dirname in 000 001 002 003 004 005 006 007 008 009; do - if test -d $dirname; then - echo "found dir $dirname" - rm -rf DS-cosmicMix_$dirname - mv $dirname DS-cosmicMix_$dirname - fi -done diff --git a/JobConfig/examples/generate_DS.sh b/JobConfig/examples/generate_DS.sh deleted file mode 100644 index 416098df..00000000 --- a/JobConfig/examples/generate_DS.sh +++ /dev/null @@ -1,3 +0,0 @@ -generate_fcl --description DS --dsconf MDC2018a --dsowner mu2e --inputs mubeam_20.txt --embed DS.fcl --merge-factor=2 -rm -rf S -mv 000 DS diff --git a/JobConfig/examples/generate_IPA-Michel.sh b/JobConfig/examples/generate_IPA-Michel.sh deleted file mode 100644 index fb576afb..00000000 --- a/JobConfig/examples/generate_IPA-Michel.sh +++ /dev/null @@ -1,3 +0,0 @@ -generate_fcl --description IPA-Michel --dsconf MDC2018a --dsowner mu2e --embed JobConfig/primary/IPA-Michel.fcl --run-number 1002 --events-per-job 200000 --njobs 200 -rm -rf IPA-Michel -mv 000 IPA-Michel diff --git a/JobConfig/examples/generate_IPA-MichelMix.sh b/JobConfig/examples/generate_IPA-MichelMix.sh deleted file mode 100644 index bdd75b3a..00000000 --- a/JobConfig/examples/generate_IPA-MichelMix.sh +++ /dev/null @@ -1,19 +0,0 @@ -# Note: the jobs created by this script need at least 8GBytes of memory -generate_fcl --description IPA-MichelMix --dsconf MDC2018a --dsowner mu2e --include JobConfig/mixing/IPA-MichelMix.fcl \ ---run-number 1002 --events-per-job 4000 --njobs 5000 --max-engines 30 \ ---auxinput=15:physics.filters.ootMixerCRV.fileNames:oot-CRV-cat.txt \ ---auxinput=1:physics.filters.neutronMixerCRV.fileNames:neutron-CRV-cat.txt \ ---auxinput=1:physics.filters.dioMixerCRV.fileNames:dio-CRV-cat.txt \ ---auxinput=1:physics.filters.photonMixerCRV.fileNames:photon-CRV-cat.txt \ ---auxinput=25:physics.filters.PSMixerCRV.fileNames:PS-CRV-cut.txt \ ---auxinput=25:physics.filters.TSMixerCRV.fileNames:TS-CRV-cat.txt \ ---auxinput=25:physics.filters.DSMixerCRV.fileNames:DS-CRV-cut.txt \ ---auxinput=15:physics.filters.ootMixerTrkCal.fileNames:oot-TrkCal-cat.txt \ ---auxinput=1:physics.filters.neutronMixerTrkCal.fileNames:neutron-TrkCal-cat.txt \ ---auxinput=1:physics.filters.dioMixerTrkCal.fileNames:dio-TrkCal-cat.txt \ ---auxinput=1:physics.filters.photonMixerTrkCal.fileNames:photon-TrkCal-cat.txt \ ---auxinput=10:physics.filters.flashMixerTrkCal.fileNames:DS-flash-TrkCal-cut.txt \ ---auxinput=1:physics.filters.protonMixerTrkCal.fileNames:proton-TrkCal.txt \ ---auxinput=1:physics.filters.deuteronMixerTrkCal.fileNames:deuteron-TrkCal.txt -rm -rf IPA-MichelMix -mv 000 IPA-MichelMix diff --git a/JobConfig/examples/generate_NoPrimary-mix-repro.sh b/JobConfig/examples/generate_NoPrimary-mix-repro.sh deleted file mode 100644 index d925dc5b..00000000 --- a/JobConfig/examples/generate_NoPrimary-mix-repro.sh +++ /dev/null @@ -1,8 +0,0 @@ -generate_fcl --description NoPrimary-mix --dsconf MDC2020DEVa --dsowner mu2e --input NP_MDC2018d.txt --include JobConfig/reprocess/mdc2018--mdc2020-dev/dig-NoPrimary-mix.fcl --merge-factor=1 -for dirname in 000 001 002 003 004 005 006 007 008 009; do - if test -d $dirname; then - echo "found dir $dirname" - rm -rf NoPrimary-mix_$dirname - mv $dirname NoPrimary-mix_$dirname - fi -done diff --git a/JobConfig/examples/generate_NoPrimary.sh b/JobConfig/examples/generate_NoPrimary.sh deleted file mode 100644 index 3dd8f3d6..00000000 --- a/JobConfig/examples/generate_NoPrimary.sh +++ /dev/null @@ -1,18 +0,0 @@ -generate_fcl --description NoPrimary --dsconf MDC2018a --dsowner mu2e --include JobConfig/mixing/NoPrimary.fcl \ ---run-number 1002 --events-per-job 500 --njobs 200 --max-engines 30 \ ---auxinput=15:physics.filters.ootMixerCRV.fileNames:oot-CRV-cat.txt \ ---auxinput=1:physics.filters.neutronMixerCRV.fileNames:neutron-CRV-cat.txt \ ---auxinput=1:physics.filters.dioMixerCRV.fileNames:dio-CRV-cat.txt \ ---auxinput=1:physics.filters.photonMixerCRV.fileNames:photon-CRV-cat.txt \ ---auxinput=25:physics.filters.PSMixerCRV.fileNames:PS-CRV-cut.txt \ ---auxinput=25:physics.filters.TSMixerCRV.fileNames:TS-CRV-cat.txt \ ---auxinput=25:physics.filters.DSMixerCRV.fileNames:DS-CRV-cut.txt \ ---auxinput=15:physics.filters.ootMixerTrkCal.fileNames:oot-TrkCal-cat.txt \ ---auxinput=1:physics.filters.neutronMixerTrkCal.fileNames:neutron-TrkCal-cat.txt \ ---auxinput=1:physics.filters.dioMixerTrkCal.fileNames:dio-TrkCal-cat.txt \ ---auxinput=1:physics.filters.photonMixerTrkCal.fileNames:photon-TrkCal-cat.txt \ ---auxinput=10:physics.filters.flashMixerTrkCal.fileNames:DS-flash-TrkCal-cut.txt \ ---auxinput=1:physics.filters.protonMixerTrkCal.fileNames:proton-TrkCal.txt \ ---auxinput=1:physics.filters.deuteronMixerTrkCal.fileNames:deuteron-TrkCal.txt -rm -rf NoPrimary -mv 000 NoPrimary diff --git a/JobConfig/examples/generate_NoPrimaryFlat.sh b/JobConfig/examples/generate_NoPrimaryFlat.sh deleted file mode 100644 index a1c2f95f..00000000 --- a/JobConfig/examples/generate_NoPrimaryFlat.sh +++ /dev/null @@ -1,18 +0,0 @@ -generate_fcl --description NoPrimaryFlat --dsconf MDC2018e --dsowner mu2e --embed JobConfig/mixing/NoPrimaryFlat.fcl \ ---run-number 1002 --events-per-job 25 --njobs 200 --max-engines 30 \ ---auxinput=3:physics.filters.ootMixerCRV.fileNames:oot-CRV-recat.txt \ ---auxinput=1:physics.filters.neutronMixerCRV.fileNames:neutron-CRV-cat.txt \ ---auxinput=1:physics.filters.dioMixerCRV.fileNames:dio-CRV-cat.txt \ ---auxinput=1:physics.filters.photonMixerCRV.fileNames:photon-CRV-cat.txt \ ---auxinput=5:physics.filters.PSMixerCRV.fileNames:PS-CRV-recat.txt \ ---auxinput=5:physics.filters.TSMixerCRV.fileNames:TS-CRV-recat.txt \ ---auxinput=5:physics.filters.DSMixerCRV.fileNames:DS-CRV-recat.txt \ ---auxinput=3:physics.filters.ootMixerTrkCal.fileNames:oot-TrkCal-recat.txt \ ---auxinput=1:physics.filters.neutronMixerTrkCal.fileNames:neutron-TrkCal-cat.txt \ ---auxinput=1:physics.filters.dioMixerTrkCal.fileNames:dio-TrkCal-cat.txt \ ---auxinput=1:physics.filters.photonMixerTrkCal.fileNames:photon-TrkCal-cat.txt \ ---auxinput=2:physics.filters.flashMixerTrkCal.fileNames:DS-flash-TrkCal-recat.txt \ ---auxinput=1:physics.filters.protonMixerTrkCal.fileNames:proton-TrkCal.txt \ ---auxinput=1:physics.filters.deuteronMixerTrkCal.fileNames:deuteron-TrkCal.txt -rm -rf NoPrimaryFlat -mv 000 NoPrimaryFlat diff --git a/JobConfig/examples/generate_PS-CRV-cut.sh b/JobConfig/examples/generate_PS-CRV-cut.sh deleted file mode 100644 index b166fadd..00000000 --- a/JobConfig/examples/generate_PS-CRV-cut.sh +++ /dev/null @@ -1,3 +0,0 @@ -generate_fcl --description PS-CRV-cut --dsconf MDC2018a --dsowner mu2e --inputs PS-CRV-cat.txt --embed JobConfig/beam/PS-CRV-cut.fcl --merge-factor=1 -rm -rf PS-CRV-cut -mv 000 PS-CRV-cut diff --git a/JobConfig/examples/generate_PS-CRV.sh b/JobConfig/examples/generate_PS-CRV.sh deleted file mode 100644 index 1cc937b2..00000000 --- a/JobConfig/examples/generate_PS-CRV.sh +++ /dev/null @@ -1,2 +0,0 @@ -generate_fcl --description PS-CRV --dsconf MDC2018a --dsowner mu2e --inputs dsregion_0506a_100.txt --embed ./PS-CRV.fcl --merge-factor=10 -mv 000 PS-CRV diff --git a/JobConfig/examples/generate_TS-CRV.sh b/JobConfig/examples/generate_TS-CRV.sh deleted file mode 100644 index 3a1edf5a..00000000 --- a/JobConfig/examples/generate_TS-CRV.sh +++ /dev/null @@ -1,2 +0,0 @@ -generate_fcl --description TS-CRV --dsconf MDC2018a --dsowner mu2e --inputs mubeam_0506a_100.txt --embed ./TS-CRV.fcl --merge-factor=10 -mv 000 TS-CRV diff --git a/JobConfig/examples/generate_deuteron.sh b/JobConfig/examples/generate_deuteron.sh deleted file mode 100644 index 125f07d0..00000000 --- a/JobConfig/examples/generate_deuteron.sh +++ /dev/null @@ -1,3 +0,0 @@ -generate_fcl --description deuteron --dsconf MDC2018a --dsowner mu2e --embed deuteron.fcl --run-number 1002 --events-per-job 1000000 --njobs 10 -rm -rf deuteron -mv 000 deuteron diff --git a/JobConfig/examples/generate_dio.sh b/JobConfig/examples/generate_dio.sh deleted file mode 100644 index 2e88926f..00000000 --- a/JobConfig/examples/generate_dio.sh +++ /dev/null @@ -1,3 +0,0 @@ -generate_fcl --description dio --dsconf MDC2018a --dsowner mu2e --embed dio.fcl --run-number 1002 --events-per-job 200000 --njobs 10 -rm -rf dio -mv 000 dio diff --git a/JobConfig/examples/generate_flash.sh b/JobConfig/examples/generate_flash.sh deleted file mode 100644 index 87e3368e..00000000 --- a/JobConfig/examples/generate_flash.sh +++ /dev/null @@ -1,3 +0,0 @@ -generate_fcl --description DS-flash --dsconf MDC2018a --dsowner mu2e --auxinput=1:physics.filters.flashResample.fileNames:mubeam_10.txt --include JobConfig/beam/DS-flash.fcl --events-per-job 200000 --njobs 10 --run-number 10021 -rm -rf DS-flash -mv 000 DS-flash diff --git a/JobConfig/examples/generate_flashcat.sh b/JobConfig/examples/generate_flashcat.sh deleted file mode 100644 index 14083579..00000000 --- a/JobConfig/examples/generate_flashcat.sh +++ /dev/null @@ -1,3 +0,0 @@ -generate_fcl --description flashcat --dsconf MDC2018a --dsowner mu2e --inputs stashflash.txt --embed flashcat.fcl --merge-factor=200 -rm -rf flashcat -mv 000 flashcat diff --git a/JobConfig/examples/generate_flashcut.sh b/JobConfig/examples/generate_flashcut.sh deleted file mode 100644 index 17e914c6..00000000 --- a/JobConfig/examples/generate_flashcut.sh +++ /dev/null @@ -1,3 +0,0 @@ -generate_fcl --description DS-flash-TrkCal-cut --dsconf MDC2018a --dsowner mu2e --inputs flash-cat.txt --embed JobConfig/beam/DS-flash-TrkCal-cut.fcl --merge-factor=1 -rm -rf DS-flash-TrkCal-cut -mv 000 DS-flash-TrkCal-cut diff --git a/JobConfig/examples/generate_flatInternalRMC.sh b/JobConfig/examples/generate_flatInternalRMC.sh deleted file mode 100644 index ef616cf8..00000000 --- a/JobConfig/examples/generate_flatInternalRMC.sh +++ /dev/null @@ -1,3 +0,0 @@ -generate_fcl --description flatInternalRMC --dsconf MDC2018a --dsowner mu2e --include JobConfig/primary/flatInternalRMC.fcl --run-number 1002 --events-per-job 60000 --njobs 500 -rm -rf flatInternalRMC -mv 000 flatInternalRMC diff --git a/JobConfig/examples/generate_flatInternalRPC.sh b/JobConfig/examples/generate_flatInternalRPC.sh deleted file mode 100644 index 5176bd95..00000000 --- a/JobConfig/examples/generate_flatInternalRPC.sh +++ /dev/null @@ -1,3 +0,0 @@ -generate_fcl --description flatInternalRPC --dsconf MDC2018a --dsowner mu2e --include JobConfig/primary/flatInternalRPC.fcl --run-number 1002 --events-per-job 60000 --njobs 500 -rm -rf flatInternalRPC -mv 000 flatInternalRPC diff --git a/JobConfig/examples/generate_flateminus.sh b/JobConfig/examples/generate_flateminus.sh deleted file mode 100644 index 059f41e8..00000000 --- a/JobConfig/examples/generate_flateminus.sh +++ /dev/null @@ -1,3 +0,0 @@ -generate_fcl --description flateminus --dsconf MDC2018a --dsowner mu2e --include JobConfig/primary/flateminus.fcl --run-number 1002 --events-per-job 10000 --njobs 200 -rm -rf flateminus -mv 000 flateminus diff --git a/JobConfig/examples/generate_flateminusMix.sh b/JobConfig/examples/generate_flateminusMix.sh deleted file mode 100644 index 5c79fef6..00000000 --- a/JobConfig/examples/generate_flateminusMix.sh +++ /dev/null @@ -1,18 +0,0 @@ -generate_fcl --description flateminusMix --dsconf MDC2018a --dsowner mu2e --include JobConfig/mixing/flateminusMix.fcl \ ---run-number 1002 --events-per-job 500 --njobs 40000 --max-engines 30 \ ---auxinput=15:physics.filters.ootMixerCRV.fileNames:oot-CRV-cat.txt \ ---auxinput=1:physics.filters.neutronMixerCRV.fileNames:neutron-CRV-cat.txt \ ---auxinput=1:physics.filters.dioMixerCRV.fileNames:dio-CRV-cat.txt \ ---auxinput=1:physics.filters.photonMixerCRV.fileNames:photon-CRV-cat.txt \ ---auxinput=25:physics.filters.PSMixerCRV.fileNames:PS-CRV-cut.txt \ ---auxinput=25:physics.filters.TSMixerCRV.fileNames:TS-CRV-cat.txt \ ---auxinput=25:physics.filters.DSMixerCRV.fileNames:DS-CRV-cut.txt \ ---auxinput=15:physics.filters.ootMixerTrkCal.fileNames:oot-TrkCal-cat.txt \ ---auxinput=1:physics.filters.neutronMixerTrkCal.fileNames:neutron-TrkCal-cat.txt \ ---auxinput=1:physics.filters.dioMixerTrkCal.fileNames:dio-TrkCal-cat.txt \ ---auxinput=1:physics.filters.photonMixerTrkCal.fileNames:photon-TrkCal-cat.txt \ ---auxinput=10:physics.filters.flashMixerTrkCal.fileNames:DS-flash-TrkCal-cut.txt \ ---auxinput=1:physics.filters.protonMixerTrkCal.fileNames:proton-TrkCal.txt \ ---auxinput=1:physics.filters.deuteronMixerTrkCal.fileNames:deuteron-TrkCal.txt -rm -rf flateminusMix -mv 000 flateminusMix diff --git a/JobConfig/examples/generate_flateplus.sh b/JobConfig/examples/generate_flateplus.sh deleted file mode 100644 index 48029a41..00000000 --- a/JobConfig/examples/generate_flateplus.sh +++ /dev/null @@ -1,3 +0,0 @@ -generate_fcl --description flateplus --dsconf MDC2018a --dsowner mu2e --include JobConfig/primary/flateplus.fcl --run-number 1002 --events-per-job 10000 --njobs 250 -rm -rf flateplus -mv 000 flateplus diff --git a/JobConfig/examples/generate_flatmugamma-calo.sh b/JobConfig/examples/generate_flatmugamma-calo.sh deleted file mode 100644 index e5480d24..00000000 --- a/JobConfig/examples/generate_flatmugamma-calo.sh +++ /dev/null @@ -1,3 +0,0 @@ -generate_fcl --description flatmugamma-calo --dsconf MDC2018a --dsowner mu2e --include JobConfig/primary/flatmugamma-calo.fcl --run-number 1002 --events-per-job 250000 --njobs 200 -rm -rf flatmugamma-calo -mv 000 flatmugamma-calo diff --git a/JobConfig/examples/generate_flatmugamma.sh b/JobConfig/examples/generate_flatmugamma.sh deleted file mode 100644 index 6958cf75..00000000 --- a/JobConfig/examples/generate_flatmugamma.sh +++ /dev/null @@ -1,3 +0,0 @@ -generate_fcl --description flatmugamma --dsconf MDC2018a --dsowner mu2e --include JobConfig/primary/flatmugamma.fcl --run-number 1002 --events-per-job 2e6 --njobs 500 -rm -rf flatmugamma -mv 000 flatmugamma diff --git a/JobConfig/examples/generate_flatmugammaMix.sh b/JobConfig/examples/generate_flatmugammaMix.sh deleted file mode 100644 index 589819dd..00000000 --- a/JobConfig/examples/generate_flatmugammaMix.sh +++ /dev/null @@ -1,18 +0,0 @@ -generate_fcl --description flatmugammaMix --dsconf MDC2018a --dsowner mu2e --include JobConfig/mixing/flatmugammaMix.fcl \ ---run-number 1002 --events-per-job 200000 --njobs 5000 --max-engines 30 \ ---auxinput=15:physics.filters.ootMixerCRV.fileNames:oot-CRV-cat.txt \ ---auxinput=1:physics.filters.neutronMixerCRV.fileNames:neutron-CRV-cat.txt \ ---auxinput=1:physics.filters.dioMixerCRV.fileNames:dio-CRV-cat.txt \ ---auxinput=1:physics.filters.photonMixerCRV.fileNames:photon-CRV-cat.txt \ ---auxinput=25:physics.filters.PSMixerCRV.fileNames:PS-CRV-cut.txt \ ---auxinput=25:physics.filters.TSMixerCRV.fileNames:TS-CRV-cat.txt \ ---auxinput=25:physics.filters.DSMixerCRV.fileNames:DS-CRV-cut.txt \ ---auxinput=15:physics.filters.ootMixerTrkCal.fileNames:oot-TrkCal-cat.txt \ ---auxinput=1:physics.filters.neutronMixerTrkCal.fileNames:neutron-TrkCal-cat.txt \ ---auxinput=1:physics.filters.dioMixerTrkCal.fileNames:dio-TrkCal-cat.txt \ ---auxinput=1:physics.filters.photonMixerTrkCal.fileNames:photon-TrkCal-cat.txt \ ---auxinput=10:physics.filters.flashMixerTrkCal.fileNames:DS-flash-TrkCal-cut.txt \ ---auxinput=1:physics.filters.protonMixerTrkCal.fileNames:proton-TrkCal.txt \ ---auxinput=1:physics.filters.deuteronMixerTrkCal.fileNames:deuteron-TrkCal.txt -rm -rf flatmugammaMix -mv 000 flatmugammaMix diff --git a/JobConfig/examples/generate_flatpigamma.sh b/JobConfig/examples/generate_flatpigamma.sh deleted file mode 100644 index 98f1abbf..00000000 --- a/JobConfig/examples/generate_flatpigamma.sh +++ /dev/null @@ -1,3 +0,0 @@ -generate_fcl --description flatpigamma --dsconf MDC2018a --dsowner mu2e --include JobConfig/primary/flatpigamma.fcl --run-number 1002 --events-per-job 2e6 --njobs 500 -rm -rf flatpigamma -mv 000 flatpigamma diff --git a/JobConfig/examples/generate_flatpigammaMix.sh b/JobConfig/examples/generate_flatpigammaMix.sh deleted file mode 100644 index 026ead46..00000000 --- a/JobConfig/examples/generate_flatpigammaMix.sh +++ /dev/null @@ -1,18 +0,0 @@ -generate_fcl --description flatpigammaMix --dsconf MDC2018a --dsowner mu2e --include JobConfig/mixing/flatpigammaMix.fcl \ ---run-number 1002 --events-per-job 1000000 --njobs 1000 --max-engines 30 \ ---auxinput=15:physics.filters.ootMixerCRV.fileNames:oot-CRV-cat.txt \ ---auxinput=1:physics.filters.neutronMixerCRV.fileNames:neutron-CRV-cat.txt \ ---auxinput=1:physics.filters.dioMixerCRV.fileNames:dio-CRV-cat.txt \ ---auxinput=1:physics.filters.photonMixerCRV.fileNames:photon-CRV-cat.txt \ ---auxinput=25:physics.filters.PSMixerCRV.fileNames:PS-CRV-cut.txt \ ---auxinput=25:physics.filters.TSMixerCRV.fileNames:TS-CRV-cat.txt \ ---auxinput=25:physics.filters.DSMixerCRV.fileNames:DS-CRV-cut.txt \ ---auxinput=15:physics.filters.ootMixerTrkCal.fileNames:oot-TrkCal-cat.txt \ ---auxinput=1:physics.filters.neutronMixerTrkCal.fileNames:neutron-TrkCal-cat.txt \ ---auxinput=1:physics.filters.dioMixerTrkCal.fileNames:dio-TrkCal-cat.txt \ ---auxinput=1:physics.filters.photonMixerTrkCal.fileNames:photon-TrkCal-cat.txt \ ---auxinput=10:physics.filters.flashMixerTrkCal.fileNames:DS-flash-TrkCal-cut.txt \ ---auxinput=1:physics.filters.protonMixerTrkCal.fileNames:proton-TrkCal.txt \ ---auxinput=1:physics.filters.deuteronMixerTrkCal.fileNames:deuteron-TrkCal.txt -rm -rf flatpigammaMix -mv 000 flatpigammaMix diff --git a/JobConfig/examples/generate_flatproton.sh b/JobConfig/examples/generate_flatproton.sh deleted file mode 100644 index 41d884f1..00000000 --- a/JobConfig/examples/generate_flatproton.sh +++ /dev/null @@ -1,3 +0,0 @@ -generate_fcl --description flatproton --dsconf MDC2018a --dsowner mu2e --embed JobConfig/primary/flatproton.fcl --run-number 1002 --events-per-job 250000 --njobs 100 -rm -rf flatproton -mv 000 flatproton diff --git a/JobConfig/examples/generate_neutron.sh b/JobConfig/examples/generate_neutron.sh deleted file mode 100644 index e10558bb..00000000 --- a/JobConfig/examples/generate_neutron.sh +++ /dev/null @@ -1,3 +0,0 @@ -generate_fcl --description neutron --dsconf MDC2018a --dsowner mu2e --embed neutron.fcl --run-number 1002 --events-per-job 200000 --njobs 10 -rm -rf neutron -mv 000 neutron diff --git a/JobConfig/examples/generate_oot.sh b/JobConfig/examples/generate_oot.sh deleted file mode 100644 index 8c415f13..00000000 --- a/JobConfig/examples/generate_oot.sh +++ /dev/null @@ -1,3 +0,0 @@ -generate_fcl --description oot --dsconf MDC2018a --dsowner mu2e --embed oot.fcl --run-number 1002 --events-per-job 500000 --njobs 10 -rm -rf oot -mv 000 oot diff --git a/JobConfig/examples/generate_ootstops.sh b/JobConfig/examples/generate_ootstops.sh deleted file mode 100644 index 78c46444..00000000 --- a/JobConfig/examples/generate_ootstops.sh +++ /dev/null @@ -1,3 +0,0 @@ -generate_fcl --description ootstops --dsconf MDC2018a --dsowner mu2e --inputs ootstops.txt --include JobConfig/beam/OOTstops.fcl --merge-factor=500 -rm -rf ootstops -mv 000 ootstops diff --git a/JobConfig/examples/generate_photon.sh b/JobConfig/examples/generate_photon.sh deleted file mode 100644 index eb27fad3..00000000 --- a/JobConfig/examples/generate_photon.sh +++ /dev/null @@ -1,3 +0,0 @@ -generate_fcl --description photon --dsconf MDC2018a --dsowner mu2e --embed photon.fcl --run-number 1002 --events-per-job 1000000 --njobs 10 -rm -rf photon -mv 000 photon diff --git a/JobConfig/examples/generate_proton.sh b/JobConfig/examples/generate_proton.sh deleted file mode 100644 index 6bfef301..00000000 --- a/JobConfig/examples/generate_proton.sh +++ /dev/null @@ -1,3 +0,0 @@ -generate_fcl --description proton --dsconf MDC2018a --dsowner mu2e --include JobConfig/primary/proton.fcl --run-number 1002 --events-per-job 1000000 --njobs 10 -rm -rf proton -mv 000 proton diff --git a/JobConfig/examples/generate_reco-CRY-cosmic-general-mix.sh b/JobConfig/examples/generate_reco-CRY-cosmic-general-mix.sh deleted file mode 100644 index 3c8ad7d4..00000000 --- a/JobConfig/examples/generate_reco-CRY-cosmic-general-mix.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -generate_fcl --description reco-CRY-cosmic-general-mix --dsconf MDC2018h --dsowner mu2e --inputs CRY-cosmic-general-mix.txt --include JobConfig/reco/CRY-cosmic-general-mix.fcl --merge-factor=20 -for dirname in 000 001 002 003 004 005 006 007 008 009; do - if test -d $dirname; then - echo "found dir $dirname" - rm -rf reco-CRY-cosmic-general-mix_$dirname - mv $dirname reco-CRY-cosmic-general-mix_$dirname - fi -done diff --git a/JobConfig/examples/generate_reco-CeEndpoint-mix.sh b/JobConfig/examples/generate_reco-CeEndpoint-mix.sh deleted file mode 100644 index 812e4d58..00000000 --- a/JobConfig/examples/generate_reco-CeEndpoint-mix.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -generate_fcl --description reco-CeEndpoint-mix --dsconf MDC2018h --dsowner mu2e --inputs CeEndpoint-mix.txt --include JobConfig/reco/CeEndpoint-mix.fcl --merge-factor=20 -for dirname in 000 001 002 003 004 005 006 007 008 009; do - if test -d $dirname; then - echo "found dir $dirname" - rm -rf reco-CeEndpoint-mix_$dirname - mv $dirname reco-CeEndpoint-mix_$dirname - fi -done diff --git a/JobConfig/examples/generate_reco-CeplusEndpoint-mix.sh b/JobConfig/examples/generate_reco-CeplusEndpoint-mix.sh deleted file mode 100644 index dbd6bb14..00000000 --- a/JobConfig/examples/generate_reco-CeplusEndpoint-mix.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -generate_fcl --description reco-CeplusEndpoint-mix --dsconf MDC2018h --dsowner mu2e --inputs CeplusEndpoint-mix.txt --include JobConfig/reco/CeplusEndpoint-mix.fcl --merge-factor=20 -for dirname in 000 001 002 003 004 005 006 007 008 009; do - if test -d $dirname; then - echo "found dir $dirname" - rm -rf reco-CeplusEndpoint-mix_$dirname - mv $dirname reco-CeplusEndpoint-mix_$dirname - fi -done diff --git a/JobConfig/examples/generate_reco-DS-cosmic-mix.sh b/JobConfig/examples/generate_reco-DS-cosmic-mix.sh deleted file mode 100644 index baadf9fe..00000000 --- a/JobConfig/examples/generate_reco-DS-cosmic-mix.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -generate_fcl --description reco-DS-cosmic-mix --dsconf MDC2018i --dsowner mu2e --inputs DS-cosmic-mix-cat.txt --include JobConfig/reco/DS-cosmic-mix.fcl --merge-factor=6 -for dirname in 000 001 002 003 004 005 006 007 008 009; do - if test -d $dirname; then - echo "found dir $dirname" - rm -rf reco-DS-cosmic-mix_$dirname - mv $dirname reco-DS-cosmic-mix_$dirname - fi -done diff --git a/JobConfig/examples/generate_reco-flateminus-mix.sh b/JobConfig/examples/generate_reco-flateminus-mix.sh deleted file mode 100644 index 8b076f5b..00000000 --- a/JobConfig/examples/generate_reco-flateminus-mix.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -generate_fcl --description reco-flateminus-mix --dsconf MDC2018h --dsowner mu2e --inputs flateminus-mix.txt --include JobConfig/reco/flateminus-mix.fcl --merge-factor=20 -for dirname in 000 001 002 003 004 005 006 007 008 009; do - if test -d $dirname; then - echo "found dir $dirname" - rm -rf reco-flateminus-mix_$dirname - mv $dirname reco-flateminus-mix_$dirname - fi -done diff --git a/JobConfig/examples/generate_reco-flateplus-mix.sh b/JobConfig/examples/generate_reco-flateplus-mix.sh deleted file mode 100644 index 2daaf607..00000000 --- a/JobConfig/examples/generate_reco-flateplus-mix.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -generate_fcl --description reco-flateplus-mix --dsconf MDC2018h --dsowner mu2e --inputs flateplus-mix.txt --include JobConfig/reco/flateplus-mix.fcl --merge-factor=20 -for dirname in 000 001 002 003 004 005 006 007 008 009; do - if test -d $dirname; then - echo "found dir $dirname" - rm -rf reco-flateplus-mix_$dirname - mv $dirname reco-flateplus-mix_$dirname - fi -done diff --git a/JobConfig/examples/generate_reco-flatmugamma-mix.sh b/JobConfig/examples/generate_reco-flatmugamma-mix.sh deleted file mode 100644 index 47c23a86..00000000 --- a/JobConfig/examples/generate_reco-flatmugamma-mix.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -generate_fcl --description reco-flatmugamma-mix --dsconf MDC2018h --dsowner mu2e --inputs flatmugamma-mix.txt --include JobConfig/reco/flatmugamma-mix.fcl --merge-factor=20 -for dirname in 000 001 002 003 004 005 006 007 008 009; do - if test -d $dirname; then - echo "found dir $dirname" - rm -rf reco-flatmugamma-mix_$dirname - mv $dirname reco-flatmugamma-mix_$dirname - fi -done diff --git a/JobConfig/examples/generate_reco-flatpigamma-mix.sh b/JobConfig/examples/generate_reco-flatpigamma-mix.sh deleted file mode 100644 index acb84f27..00000000 --- a/JobConfig/examples/generate_reco-flatpigamma-mix.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -generate_fcl --description reco-flatpigamma-mix --dsconf MDC2018h --dsowner mu2e --inputs flatpigamma-mix.txt --include JobConfig/reco/flatpigamma-mix.fcl --merge-factor=20 -for dirname in 000 001 002 003 004 005 006 007 008 009; do - if test -d $dirname; then - echo "found dir $dirname" - rm -rf reco-flatpigamma-mix_$dirname - mv $dirname reco-flatpigamma-mix_$dirname - fi -done diff --git a/JobConfig/examples/generate_tgtstops.sh b/JobConfig/examples/generate_tgtstops.sh deleted file mode 100644 index bec546f1..00000000 --- a/JobConfig/examples/generate_tgtstops.sh +++ /dev/null @@ -1,3 +0,0 @@ -generate_fcl --description tgtstops --dsconf MDC2018a --dsowner mu2e --inputs tstops.txt --include JobConfig/beam/TGTstops.fcl --merge-factor=500 -rm -rf tgtstops -mv 000 tgtstops From d383693501eeeacf9ada49f17919ee21ed3d889e Mon Sep 17 00:00:00 2001 From: David Nathan Brown Date: Tue, 28 Sep 2021 20:05:50 -0500 Subject: [PATCH 12/47] More cleanup --- JobConfig/common/mu2eg4.fcl | 12 +- JobConfig/common/prolog.fcl | 12 +- JobConfig/cosmic/S1DSStops.fcl | 10 +- JobConfig/cosmic/S1DSStopsCORSIKA.fcl | 26 +- JobConfig/cosmic/S2Converter.fcl | 8 +- JobConfig/cosmic/S2Resampler.fcl | 10 +- JobConfig/cosmic/S2ResamplerHigh.fcl | 10 +- JobConfig/cosmic/S2ResamplerLow.fcl | 10 +- JobConfig/cosmic/filterStage1.fcl | 80 +++--- JobConfig/cosmic/prolog.fcl | 272 +++++++++--------- JobConfig/mixing/prolog.fcl | 34 +-- JobConfig/primary/IPAStopParticle.fcl | 4 +- JobConfig/primary/StopParticle.fcl | 8 +- JobConfig/primary/TargetStopParticle.fcl | 6 +- JobConfig/primary/flatproton.fcl | 4 +- JobConfig/primary/prolog.fcl | 56 ++-- JobConfig/reco/Reco.fcl | 2 +- JobConfig/reco/prolog.fcl | 162 +++++------ JobConfig/validation/mixPointsDump.fcl | 264 ++++++++--------- .../validation/psEnclosureBeamWindow.fcl | 110 +++---- .../validation/psEnclosureExtMonWindow.fcl | 132 ++++----- .../validation/stoppedMuonsSingleStage.fcl | 194 ++++++------- MDC2020/gen_Reco.sh | 38 ++- Validation/ceMixDigi.fcl | 77 ----- 24 files changed, 747 insertions(+), 794 deletions(-) delete mode 100644 Validation/ceMixDigi.fcl diff --git a/JobConfig/common/mu2eg4.fcl b/JobConfig/common/mu2eg4.fcl index 7406c7a9..d01d58d8 100644 --- a/JobConfig/common/mu2eg4.fcl +++ b/JobConfig/common/mu2eg4.fcl @@ -5,18 +5,18 @@ BEGIN_PROLOG #---------------------------------------------------------------- mu2e.physics.producers.g4run.flash: @local::mu2e.physics.producers.g4run.commonBase mu2e.physics.producers.g4run.flash.inputs: { - primaryType: "StepPoints" - primaryTag: "mothersFilter:DetectorMother" - inputMCTrajectories: "" - inputPhysVolumeMultiInfo: "compressPVMothers" + primaryType: "StepPoints" + primaryTag: "mothersFilter:DetectorMother" + inputMCTrajectories: "" + inputPhysVolumeMultiInfo: "compressPVMothers" } mu2e.physics.producers.g4run.flash.SDConfig.preSimulatedHits: ["mothersFilter:virtualdetector"] #---------------------------------------------------------------- mu2e.physics.producers.g4run.muons: @local::mu2e.physics.producers.g4run.commonBase mu2e.physics.producers.g4run.muons.inputs: { - primaryType: "GenParticles" - primaryTag: "generate" + primaryType: "GenParticles" + primaryTag: "generate" } mu2e.physics.producers.g4run.muons.SDConfig.preSimulatedHits: [] diff --git a/JobConfig/common/prolog.fcl b/JobConfig/common/prolog.fcl index 133aaf7e..861b7939 100644 --- a/JobConfig/common/prolog.fcl +++ b/JobConfig/common/prolog.fcl @@ -12,15 +12,15 @@ Common: { filters : { g4statusFilter: { - module_type: FilterStatusG4 - input: "g4run" - maxAcceptedStatus: 1 # status 2 and above means StepPointMCCollection may have non-dereferencable pointers + module_type: FilterStatusG4 + input: "g4run" + maxAcceptedStatus: 1 # status 2 and above means StepPointMCCollection may have non-dereferencable pointers } g4consistentFilter: { - module_type: FilterStatusG4 - input: "g4run" - maxAcceptedStatus: 9 # status 10 and above means StepPointMCCollection may have non-dereferencable pointers + module_type: FilterStatusG4 + input: "g4run" + maxAcceptedStatus: 9 # status 10 and above means StepPointMCCollection may have non-dereferencable pointers } } analyzers: { diff --git a/JobConfig/cosmic/S1DSStops.fcl b/JobConfig/cosmic/S1DSStops.fcl index d848aba2..1f6c6461 100644 --- a/JobConfig/cosmic/S1DSStops.fcl +++ b/JobConfig/cosmic/S1DSStops.fcl @@ -1,7 +1,7 @@ -// This configuration propogates cosmics from the surface towards DS. -// Cosmics hitting crvStage1End volumes are stopped and saved for later resampling. -// -// Yuri Oksuzian, 2021 +# This configuration propogates cosmics from the surface towards DS. +# Cosmics hitting crvStage1End volumes are stopped and saved for later resampling. +# +# Yuri Oksuzian, 2021 #include "Offline/fcl/standardServices.fcl" #include "Production/JobConfig/common/prolog.fcl" #include "Production/JobConfig/primary/prolog.fcl" @@ -51,5 +51,5 @@ physics.end_paths : [ EndPath ] services.TFileService.fileName : "/dev/null" services.SeedService.baseSeed : 773651 -// Need this to increase the world volume. +# Need this to increase the world volume. services.GeometryService.inputFile: "Production/JobConfig/cosmic/geom_cosmic_current.txt" diff --git a/JobConfig/cosmic/S1DSStopsCORSIKA.fcl b/JobConfig/cosmic/S1DSStopsCORSIKA.fcl index 65b9d56c..b7f127cb 100644 --- a/JobConfig/cosmic/S1DSStopsCORSIKA.fcl +++ b/JobConfig/cosmic/S1DSStopsCORSIKA.fcl @@ -1,22 +1,22 @@ #include "Production/JobConfig/cosmic/S1DSStops.fcl" targetParams: { - projectToTargetBox : true - targetBoxXmin: -10000 - targetBoxXmax: 3000 - targetBoxYmin: -5000 - targetBoxYmax: 5000 - targetBoxZmin: -5000 - targetBoxZmax: 21000 + projectToTargetBox : true + targetBoxXmin: -10000 + targetBoxXmax: 3000 + targetBoxYmin: -5000 + targetBoxYmax: 5000 + targetBoxZmin: -5000 + targetBoxZmax: 21000 } source: { - module_type: FromCorsikaBinary - fileNames: ["/pnfs/mu2e/persistent/users/srsoleti/corsika/sim.srsoleti.corsika.v1.30001.csk"] - runNumber : 1205 - showerAreaExtension : 10000 - @table::targetParams - fluxConstant: 1.8e4 + module_type: FromCorsikaBinary + fileNames: ["/pnfs/mu2e/persistent/users/srsoleti/corsika/sim.srsoleti.corsika.v1.30001.csk"] + runNumber : 1205 + showerAreaExtension : 10000 + @table::targetParams + fluxConstant: 1.8e4 } diff --git a/JobConfig/cosmic/S2Converter.fcl b/JobConfig/cosmic/S2Converter.fcl index 8f2534a1..166525df 100644 --- a/JobConfig/cosmic/S2Converter.fcl +++ b/JobConfig/cosmic/S2Converter.fcl @@ -1,6 +1,6 @@ -// Convert existing cosmic stage-2 jobs into det steps format -// In addition the configuration filters events with candidates below 500 MeV -// Yuri Oksuzian, 2021 +# Convert existing cosmic stage-2 jobs into det steps format +# In addition the configuration filters events with candidates below 500 MeV +# Yuri Oksuzian, 2021 #include "Production/JobConfig/primary/primary.fcl" @@ -23,6 +23,6 @@ physics.producers.compressDetStepMCs.simParticleTag: "detectorFilter" physics.producers.compressDetStepMCs.stepPointMCTags : [ "detectorFilter:virtualdetector", "detectorFilter:protonabsorber" ] physics.producers.compressDetStepMCs.mcTrajectoryTag: "detectorFilter" outputs.Output.fileName : "sim.owner.CosmicConverted.version.sequencer.art" -// CRY3 and CRY4 samples don't have visible energy and post step position +# CRY3 and CRY4 samples don't have visible energy and post step position physics.producers.CrvSteps.useTotalEDep: true physics.producers.CrvSteps.noPostPositionAvailable: true diff --git a/JobConfig/cosmic/S2Resampler.fcl b/JobConfig/cosmic/S2Resampler.fcl index 9eb6d984..491695b1 100644 --- a/JobConfig/cosmic/S2Resampler.fcl +++ b/JobConfig/cosmic/S2Resampler.fcl @@ -1,14 +1,14 @@ -// Re-sample cosmics from stage-1 -// Yuri Oksuzian, 2020 +# Re-sample cosmics from stage-1 +# Yuri Oksuzian, 2020 #include "Offline/CommonMC/fcl/prolog.fcl" #include "Production/JobConfig/cosmic/prolog.fcl" #include "Production/JobConfig/primary/Primary.fcl" -// Bring in info from the previous stage +# Bring in info from the previous stage physics.filters.cosmicResample: @local::Cosmic.cosmicResample physics.filters.cosmicResample.mu2e.MaxEventsToSkip: 18415 # this number depends on the production details -// Point Mu2eG4 to the pre-simulated data +# Point Mu2eG4 to the pre-simulated data physics.producers.g4run.inputs: @local::Cosmic.MultiStageParametersCosmicS2 physics.producers.cosmicTimeOffset: @local::CommonMC.producers.cosmicTimeOffset @@ -20,7 +20,7 @@ physics.producers.g4run.inputs.inputPhysVolumeMultiInfo: "cosmicResample" physics.producers.g4run.inputs.updateEventLevelVolumeInfos.input: "cosmicResample:eventlevel" physics.producers.g4run.inputs.updateEventLevelVolumeInfos.outInstance: "eventlevel" -// Kill cosmics outside of the CRV region +# Kill cosmics outside of the CRV region physics.producers.g4run.Mu2eG4CommonCut: @local::Cosmic.Mu2eG4CommonCutCosmicS2 physics.producers.g4run.SDConfig.preSimulatedHits: ["cosmicResample:CRV"] physics.producers.FindMCPrimary.PrimaryGenIds: ["CosmicCRY", "CosmicCORSIKA"] diff --git a/JobConfig/cosmic/S2ResamplerHigh.fcl b/JobConfig/cosmic/S2ResamplerHigh.fcl index ebfff936..1ebf6e84 100644 --- a/JobConfig/cosmic/S2ResamplerHigh.fcl +++ b/JobConfig/cosmic/S2ResamplerHigh.fcl @@ -1,11 +1,11 @@ -// Re-sample cosmic dsstops particles from stage-1 -// Yuri Oksuzian, 2020 +# Re-sample cosmic dsstops particles from stage-1 +# Yuri Oksuzian, 2020 #include "Production/JobConfig/cosmic/S2Resampler.fcl" physics.filters.filterS1: { - module_type: FilterCosmicsStage1 - inputs : [ "cosmicResample:CRV" ] - cutEDepMin: 16 // Filter events that deposit lower than 16 MeV in CRV + module_type: FilterCosmicsStage1 + inputs : [ "cosmicResample:CRV" ] + cutEDepMin: 16 # Filter events that deposit lower than 16 MeV in CRV } physics.PrimaryPath: [genCounter, cosmicTimeOffset, cosmicResample, filterS1, @sequence::Common.g4Sequence, @sequence::Primary.PrimarySequence] physics.filters.DetStepFilter.MaximumPartMom: 500 diff --git a/JobConfig/cosmic/S2ResamplerLow.fcl b/JobConfig/cosmic/S2ResamplerLow.fcl index ed2e9962..805ff903 100644 --- a/JobConfig/cosmic/S2ResamplerLow.fcl +++ b/JobConfig/cosmic/S2ResamplerLow.fcl @@ -1,11 +1,11 @@ -// Re-sample cosmic dsstops particles from stage-1 -// Yuri Oksuzian, 2020 +# Re-sample cosmic dsstops particles from stage-1 +# Yuri Oksuzian, 2020 #include "Production/JobConfig/cosmic/S2Resampler.fcl" physics.filters.filterS1: { - module_type: FilterCosmicsStage1 - inputs : [ "cosmicResample:CRV" ] - cutEDepMax: 16 // Filter events that deposit lower than 16 MeV in CRV + module_type: FilterCosmicsStage1 + inputs : [ "cosmicResample:CRV" ] + cutEDepMax: 16 # Filter events that deposit lower than 16 MeV in CRV } physics.PrimaryPath: [genCounter, cosmicTimeOffset, cosmicResample, filterS1, @sequence::Common.g4Sequence, @sequence::Primary.PrimarySequence] physics.filters.DetStepFilter.MaximumPartMom: 500 diff --git a/JobConfig/cosmic/filterStage1.fcl b/JobConfig/cosmic/filterStage1.fcl index f9b499b5..8b23bd8d 100644 --- a/JobConfig/cosmic/filterStage1.fcl +++ b/JobConfig/cosmic/filterStage1.fcl @@ -1,8 +1,8 @@ -// Yuri Oksuzian, 2019 -// Run this script over stage 1 dsstops -// For example: -// mu2e -c JobConfig/cosmic/filterStage1.fcl -s /pnfs/mu2e/tape/phy-sim/sim/mu2e/cosmic-g4s1s2-cryresample/cry-rs1-1019/art/34/bd/sim.mu2e.cosmic-g4s1s2-cryresample.cry-rs1-1019.002701_00022997.art -// Select cosmics with low energy depostion and/or cosmics entering through user specified CRV regions +# Yuri Oksuzian, 2019 +# Run this script over stage 1 dsstops +# For example: +# mu2e -c JobConfig/cosmic/filterStage1.fcl -s /pnfs/mu2e/tape/phy-sim/sim/mu2e/cosmic-g4s1s2-cryresample/cry-rs1-1019/art/34/bd/sim.mu2e.cosmic-g4s1s2-cryresample.cry-rs1-1019.002701_00022997.art +# Select cosmics with low energy depostion and/or cosmics entering through user specified CRV regions #include "Offline/fcl/minimalMessageService.fcl" #include "Offline/fcl/standardProducers.fcl" @@ -13,59 +13,59 @@ process_name : filterS1 source : { - module_type : RootInput + module_type : RootInput } services : { - message : @local::default_message - TFileService : { fileName : "nts.owner.filtered-s1.version.sequencer.root" } - RandomNumberGenerator : {defaultEngineKind: "MixMaxRng" } - GeometryService : { inputFile : "Offline/Mu2eG4/geom/geom_common_crv_v07.txt" } - ConditionsService : { conditionsfile : "Offline/ConditionsService/data/conditions_01.txt" } - GlobalConstantsService : { inputFile : "Offline/GlobalConstantsService/data/globalConstants_01.txt" } - Mu2eG4Helper : { } - SeedService : @local::automaticSeeds + message : @local::default_message + TFileService : { fileName : "nts.owner.filtered-s1.version.sequencer.root" } + RandomNumberGenerator : {defaultEngineKind: "MixMaxRng" } + GeometryService : { inputFile : "Offline/Mu2eG4/geom/geom_common_crv_v07.txt" } + ConditionsService : { conditionsfile : "Offline/ConditionsService/data/conditions_01.txt" } + GlobalConstantsService : { inputFile : "Offline/GlobalConstantsService/data/globalConstants_01.txt" } + Mu2eG4Helper : { } + SeedService : @local::automaticSeeds } physics : { - filters: { - filterS1: { - module_type: FilterCosmicsStage1 - inputs : [ "cosmicFilter:CRV" ] + filters: { + filterS1: { + module_type: FilterCosmicsStage1 + inputs : [ "cosmicFilter:CRV" ] -// Events with the low energy deposition in CRV. Filters 1% from the total number of events from stage 1. - cutEDepMax: 14 + # Events with the low energy deposition in CRV. Filters 1% from the total number of events from stage 1. + cutEDepMax: 14 -//Upstream region -// cutEDepMin: 14 -// cutZMax: 3000 -//Downstream region -// cutEDepMin: 14 -// cutZMin: 3000 + #Upstream region + # cutEDepMin: 14 + # cutZMax: 3000 + #Downstream region + # cutEDepMin: 14 + # cutZMin: 3000 - } - } - trig: [filterS1] - outputs: [dsout] - end_paths: [outputs] - trigger_paths: [trig] + } + } + trig: [filterS1] + outputs: [dsout] + end_paths: [outputs] + trigger_paths: [trig] } outputs: { - dsout : { - module_type : RootOutput - SelectEvents: ["trig"] - outputCommands:["keep *_*_*_*"] - fileName : "sim.owner.filtered-s1.version.sequencer.art" - } + dsout : { + module_type : RootOutput + SelectEvents: ["trig"] + outputCommands:["keep *_*_*_*"] + fileName : "sim.owner.filtered-s1.version.sequencer.art" + } } -// Limit the amount of "Begin processing the ... record" messages +# Limit the amount of "Begin processing the ... record" messages services.message.destinations.log.categories.ArtReport.reportEvery : 1 services.message.destinations.log.categories.ArtReport.limit : 1 services.message.destinations.log.categories.ArtReport.timespan : 300 -//Add Mu2e geometry service identifier +#Add Mu2e geometry service identifier services.GeometryService.simulatedDetector.tool_type : "Mu2e" services.SeedService.policy: autoIncrement services.SeedService.maxUniqueEngines: 20 diff --git a/JobConfig/cosmic/prolog.fcl b/JobConfig/cosmic/prolog.fcl index 478e20c2..8e1aafcf 100644 --- a/JobConfig/cosmic/prolog.fcl +++ b/JobConfig/cosmic/prolog.fcl @@ -4,175 +4,175 @@ BEGIN_PROLOG crvOuterBox: { - type: union - pars: - [ - // Upstream plane - { type: plane normal: [ 0, 0, -1 ] point : [ 0, 0, -3400 ] }, - // Downstream plane - { type: plane normal: [ 0, 0, 1 ] point : [ 0, 0, 19800 ] }, - // +x plane - { type: plane normal: [ 1, 0, 0 ] point : [ 1500, 0, 0 ] }, - // -x plane (outside of cryo box) - { type: plane normal: [ -1, 0, 0 ] point : [ -8200, 0, 0 ] }, - // +y plane - { type: plane normal: [ 0, 1, 0 ] point : [ 0, 4000, 0 ] }, - // -y plane - { type: plane normal: [ 0, -1, 0 ] point : [ 0, -2100, 0 ] } - ] + type: union + pars: + [ + # Upstream plane + { type: plane normal: [ 0, 0, -1 ] point : [ 0, 0, -3400 ] }, + # Downstream plane + { type: plane normal: [ 0, 0, 1 ] point : [ 0, 0, 19800 ] }, + # +x plane + { type: plane normal: [ 1, 0, 0 ] point : [ 1500, 0, 0 ] }, + # -x plane (outside of cryo box) + { type: plane normal: [ -1, 0, 0 ] point : [ -8200, 0, 0 ] }, + # +y plane + { type: plane normal: [ 0, 1, 0 ] point : [ 0, 4000, 0 ] }, + # -y plane + { type: plane normal: [ 0, -1, 0 ] point : [ 0, -2100, 0 ] } + ] } crvInnerBox: { - type: intersection - pars: - [ - // Upstream plane - { type: plane normal: [ 0, 0, 1 ] point : [ 0, 0, -2200 ] }, - // Downstream plane - { type: plane normal: [ 0, 0, -1 ] point : [ 0, 0, 18500 ] }, - // +x plane - { type: plane normal: [ -1, 0, 0 ] point : [ -1500, 0, 0 ] }, - // -x plane - { type: plane normal: [ 1, 0, 0 ] point : [ -6300, 0, 0 ] }, - // +y plane - { type: plane normal: [ 0, -1, 0 ] point : [ 0, 2500, 0 ] }, - // -y plane - { type: plane normal: [ 0, 1, 0 ] point : [ 0, -2100, 0 ] } - ] + type: intersection + pars: + [ + # Upstream plane + { type: plane normal: [ 0, 0, 1 ] point : [ 0, 0, -2200 ] }, + # Downstream plane + { type: plane normal: [ 0, 0, -1 ] point : [ 0, 0, 18500 ] }, + # +x plane + { type: plane normal: [ -1, 0, 0 ] point : [ -1500, 0, 0 ] }, + # -x plane + { type: plane normal: [ 1, 0, 0 ] point : [ -6300, 0, 0 ] }, + # +y plane + { type: plane normal: [ 0, -1, 0 ] point : [ 0, 2500, 0 ] }, + # -y plane + { type: plane normal: [ 0, 1, 0 ] point : [ 0, -2100, 0 ] } + ] } crvStage1End: { - type: inVolume - pars: [DSOuterCryoShell, DSInnerCryoShell, DSUpEndWallShell, TS5OuterCryoShell, TS5CryoInsVac, TS5Vacuum, Coll51, DS1Vacuum, DS2Vacuum, DS3Vacuum] - write: crvStage1 + type: inVolume + pars: [DSOuterCryoShell, DSInnerCryoShell, DSUpEndWallShell, TS5OuterCryoShell, TS5CryoInsVac, TS5Vacuum, Coll51, DS1Vacuum, DS2Vacuum, DS3Vacuum] + write: crvStage1 } cosmicKineticEnergyCutS1: { - type: union - pars: - [ - { + type: union + pars: + [ + { type: intersection pars: [ - { type: union pars: [ @local::crvOuterBox, @local::crvInnerBox ] }, - { type: kineticEnergy cut: 10.0 }, - { type: pdgId pars: [ 22, 2112 ] } + { type: union pars: [ @local::crvOuterBox, @local::crvInnerBox ] }, + { type: kineticEnergy cut: 10.0 }, + { type: pdgId pars: [ 22, 2112 ] } ] - }, - { - // 5 MeV can only make a hit in 1 CRV layer + }, + { + # 5 MeV can only make a hit in 1 CRV layer type: intersection pars: [ - { type: union pars: [ @local::crvOuterBox, @local::crvInnerBox ] }, + { type: union pars: [ @local::crvOuterBox, @local::crvInnerBox ] }, { type: kineticEnergy cut: 5.0 }, { type: pdgId pars: [ 2212, 11, -11 ] } ] - } - ] + } + ] } cosmicKineticEnergyCutS2: { -// Kill lower momentum particles outside of the CRV box - type: intersection - pars: - [ - { type: intersection pars: [ - { type: kineticEnergy cut: 80.0 }, - { type: pdgId pars: [ 22, 11, -11, 2112 ] }]}, - { type: union pars: [ @local::crvOuterBox ] } - ] + # Kill lower momentum particles outside of the CRV box + type: intersection + pars: + [ + { type: intersection pars: [ + { type: kineticEnergy cut: 80.0 }, + { type: pdgId pars: [ 22, 11, -11, 2112 ] }]}, + { type: union pars: [ @local::crvOuterBox ] } + ] } Cosmic: { -# generator truncation filter; only needed for cosmic rays in principle - g4status: { - module_type: FilterStatusG4 - input: "g4run" - maxAcceptedStatus: 9 # status 10 and above means StepPointMCCollection may have non-dereferencable pointers - } - compressPV : { - module_type: CompressPhysicalVolumes - volumesInput : "g4run" - hitInputs : [] - particleInputs : [ "cosmicFilter" ] - } - stepPointMomentumFilter: { - module_type: FilterStepPointMomentum - inputs : [ "g4run:crvStage1" ] - cutMomentumMin: 0. // Filter all particles that hit DS region - } - cosmicFilter: { - module_type: FilterG4Out - mainHitInputs : [ "g4run:crvStage1", "g4run:CRV" ] - extraHitInputs : [] //stores only StepPoints of tracks which also have StepPoints in the mainHitInputs - mcTrajectoryInputs : [ "g4run" ] - vetoDaughters: [] - } - cosmicResample: { - module_type: ResamplingMixer - fileNames: @nil - readMode: "sequential" - wrapFiles: true - mu2e: { - writeEventIDs : true - MaxEventsToSkip: @nil - products: { - genParticleMixer: { mixingMap: [ [ "generate", "" ] ] } - simParticleMixer: { mixingMap: [ [ "cosmicFilter", ""] ] } - mcTrajectoryMixer:{ mixingMap: [ [ "cosmicFilter", ""] ] } - cosmicLivetimeMixer:{ mixingMap: [ [ "FromCorsikaBinary", ""] ] } - stepPointMCMixer: { mixingMap: [ [ "cosmicFilter:crvStage1", ":" ], [ "cosmicFilter:CRV", ":" ] ] } - volumeInfoMixer: { - evtOutInstanceName: "eventlevel" - srInput: "compressPV" - } - simTimeOffset : "cosmicTimeOffset" - } + # generator truncation filter; only needed for cosmic rays in principle + g4status: { + module_type: FilterStatusG4 + input: "g4run" + maxAcceptedStatus: 9 # status 10 and above means StepPointMCCollection may have non-dereferencable pointers + } + compressPV : { + module_type: CompressPhysicalVolumes + volumesInput : "g4run" + hitInputs : [] + particleInputs : [ "cosmicFilter" ] + } + stepPointMomentumFilter: { + module_type: FilterStepPointMomentum + inputs : [ "g4run:crvStage1" ] + cutMomentumMin: 0. # Filter all particles that hit DS region + } + cosmicFilter: { + module_type: FilterG4Out + mainHitInputs : [ "g4run:crvStage1", "g4run:CRV" ] + extraHitInputs : [] #stores only StepPoints of tracks which also have StepPoints in the mainHitInputs + mcTrajectoryInputs : [ "g4run" ] + vetoDaughters: [] + } + cosmicResample: { + module_type: ResamplingMixer + fileNames: @nil + readMode: "sequential" + wrapFiles: true + mu2e: { + writeEventIDs : true + MaxEventsToSkip: @nil + products: { + genParticleMixer: { mixingMap: [ [ "generate", "" ] ] } + simParticleMixer: { mixingMap: [ [ "cosmicFilter", ""] ] } + mcTrajectoryMixer:{ mixingMap: [ [ "cosmicFilter", ""] ] } + cosmicLivetimeMixer:{ mixingMap: [ [ "FromCorsikaBinary", ""] ] } + stepPointMCMixer: { mixingMap: [ [ "cosmicFilter:crvStage1", ":" ], [ "cosmicFilter:CRV", ":" ] ] } + volumeInfoMixer: { + evtOutInstanceName: "eventlevel" + srInput: "compressPV" + } + simTimeOffset : "cosmicTimeOffset" } - } - generateCRY: { - module_type: CRYEventGenerator - inputFile : "EventGenerator/defaultConfigs/defaultCRYconfig.txt" - } - generateCORSIKA: { - module_type : CORSIKAEventGenerator - corsikaModuleLabel: "FromCorsikaBinary" - refPointChoice: "UNDEFINED" - projectToTargetBox : true - targetBoxYmax : 5000 - intDist: -1 - } - Mu2eG4CommonCutCosmicS2:{ - type: union - pars: - [ + } + } + generateCRY: { + module_type: CRYEventGenerator + inputFile : "EventGenerator/defaultConfigs/defaultCRYconfig.txt" + } + generateCORSIKA: { + module_type : CORSIKAEventGenerator + corsikaModuleLabel: "FromCorsikaBinary" + refPointChoice: "UNDEFINED" + projectToTargetBox : true + targetBoxYmax : 5000 + intDist: -1 + } + Mu2eG4CommonCutCosmicS2:{ + type: union + pars: + [ @local::cosmicKineticEnergyCutS2, { - type: inVolume - pars: [ worldDirtBottom ] + type: inVolume + pars: [ worldDirtBottom ] } - ] - } - MultiStageParametersCosmicS2: { - primaryType: StepPoints - primaryTag: "cosmicResample:crvStage1" - inputMCTrajectories: "cosmicResample" - inputPhysVolumeMultiInfo: "" - } - Mu2eG4CommonCutCosmicS1: { - type: union - pars: - [ + ] + } + MultiStageParametersCosmicS2: { + primaryType: StepPoints + primaryTag: "cosmicResample:crvStage1" + inputMCTrajectories: "cosmicResample" + inputPhysVolumeMultiInfo: "" + } + Mu2eG4CommonCutCosmicS1: { + type: union + pars: + [ @local::cosmicKineticEnergyCutS1, @local::crvStage1End, { - type: inVolume - pars: [ worldDirtBottom ] + type: inVolume + pars: [ worldDirtBottom ] } - ] - } + ] + } } END_PROLOG diff --git a/JobConfig/mixing/prolog.fcl b/JobConfig/mixing/prolog.fcl index 4eaa3758..77b77875 100644 --- a/JobConfig/mixing/prolog.fcl +++ b/JobConfig/mixing/prolog.fcl @@ -13,7 +13,7 @@ BEGIN_PROLOG # mixer configuration Mixing : { -# DetectorStep mixer + # DetectorStep mixer DetStepMixer: { module_type : MixBackgroundFrames fileNames : @nil @@ -21,7 +21,7 @@ Mixing : { wrapFiles : true mu2e: { protonBunchIntensityTag: "PBISim" -# meanEventsPerProton: @nil + # meanEventsPerProton: @nil simStageEfficiencyTags: @nil meanEventsPerPOTFactors : [] writeEventIDs : false @@ -40,7 +40,7 @@ Mixing : { } Mixing : { producers : { - PBISim : { + PBISim : { module_type: ProtonBunchIntensityLogNormal SDF: @nil extendedMean: @nil @@ -48,12 +48,12 @@ Mixing : { } } filters : { -# mixers for muon stop pileup, beamflash pileup, and neutrals flash pileup - MuStopPileupMixer : @local::Mixing.DetStepMixer - EleBeamFlashMixer : @local::Mixing.DetStepMixer - MuBeamFlashMixer : @local::Mixing.DetStepMixer - NeutralsFlashMixer : @local::Mixing.DetStepMixer -# filter for signal or calibration-like particles that can pass the trigger. This is mainly for cosmics + # mixers for muon stop pileup, beamflash pileup, and neutrals flash pileup + MuStopPileupMixer : @local::Mixing.DetStepMixer + EleBeamFlashMixer : @local::Mixing.DetStepMixer + MuBeamFlashMixer : @local::Mixing.DetStepMixer + NeutralsFlashMixer : @local::Mixing.DetStepMixer + # filter for signal or calibration-like particles that can pass the trigger. This is mainly for cosmics SignalFilter : { module_type : DetectorStepFilter MinimumTrkStepEnergy : 1.0e-6 # 1 ev @@ -69,18 +69,18 @@ Mixing : { } TriggeredOutput : { @table::Digitize.TriggeredOutput - outputCommands : [ "drop *_*_*_*", - @sequence::Mixing.MixingProducts, - @sequence::Digitize.DigiProducts, - @sequence::Digitize.TriggerProducts ] + outputCommands : [ "drop *_*_*_*", + @sequence::Mixing.MixingProducts, + @sequence::Digitize.DigiProducts, + @sequence::Digitize.TriggerProducts ] } UntriggeredOutput : { @table::Digitize.UntriggeredOutput - outputCommands : [ "drop *_*_*_*", - @sequence::Mixing.MixingProducts, - @sequence::Digitize.DigiProducts, - @sequence::Digitize.TriggerProducts ] + outputCommands : [ "drop *_*_*_*", + @sequence::Mixing.MixingProducts, + @sequence::Digitize.DigiProducts, + @sequence::Digitize.TriggerProducts ] SelectEvents : [ Untriggered ] } diff --git a/JobConfig/primary/IPAStopParticle.fcl b/JobConfig/primary/IPAStopParticle.fcl index fa7536c5..0e947d59 100644 --- a/JobConfig/primary/IPAStopParticle.fcl +++ b/JobConfig/primary/IPAStopParticle.fcl @@ -9,6 +9,6 @@ physics.PrimaryPath : [ IPAStopResampler, @sequence::Common.generateSequence, @s physics.producers.g4run.inputs.inputPhysVolumeMultiInfo: "IPAStopResampler" physics.producers.g4run.inputs.updateEventLevelVolumeInfos: { - input: "IPAStopResampler:eventlevel" - outInstance: "eventlevel" + input: "IPAStopResampler:eventlevel" + outInstance: "eventlevel" } diff --git a/JobConfig/primary/StopParticle.fcl b/JobConfig/primary/StopParticle.fcl index 56f97d2c..ef3a3ff9 100644 --- a/JobConfig/primary/StopParticle.fcl +++ b/JobConfig/primary/StopParticle.fcl @@ -34,10 +34,10 @@ outputs : { Output :@local::Primary.Output } #include "Production/JobConfig/primary/epilog.fcl" # physics.producers.g4run.inputs: { - primaryType: StageParticles - primaryTag: "generate" - inputMCTrajectories: "" - simStageOverride: 2 + primaryType: StageParticles + primaryTag: "generate" + inputMCTrajectories: "" + simStageOverride: 2 } # use reduced BField for these jobs diff --git a/JobConfig/primary/TargetStopParticle.fcl b/JobConfig/primary/TargetStopParticle.fcl index 11e66908..bfa5edbb 100644 --- a/JobConfig/primary/TargetStopParticle.fcl +++ b/JobConfig/primary/TargetStopParticle.fcl @@ -9,6 +9,6 @@ physics.PrimaryPath : [ TargetStopResampler, @sequence::Common.generateSequence, physics.producers.g4run.inputs.inputPhysVolumeMultiInfo: "TargetStopResampler" physics.producers.g4run.inputs.updateEventLevelVolumeInfos: { - input: "TargetStopResampler:eventlevel" - outInstance: "eventlevel" -} \ No newline at end of file + input: "TargetStopResampler:eventlevel" + outInstance: "eventlevel" +} diff --git a/JobConfig/primary/flatproton.fcl b/JobConfig/primary/flatproton.fcl index a627f08a..95168f8e 100644 --- a/JobConfig/primary/flatproton.fcl +++ b/JobConfig/primary/flatproton.fcl @@ -1,5 +1,5 @@ # -# protons from muon nuclear capture +# protons from muon nuclear capture # # original author: Dave Brown, LBNL # @@ -11,7 +11,7 @@ physics.producers.generate : { muonStops: @local::mu2e.tgtMuonStops physics: { pdgId : 2212 - genId : muonCapture + genId : muonCapture spectrumShape: flat spectrumVariable: kineticEnergy elow : 0.0 // Mev diff --git a/JobConfig/primary/prolog.fcl b/JobConfig/primary/prolog.fcl index d0e586a5..f1371dd3 100644 --- a/JobConfig/primary/prolog.fcl +++ b/JobConfig/primary/prolog.fcl @@ -37,7 +37,7 @@ Primary: { filters : { -# default step filter for Sim Primary selection + # default step filter for Sim Primary selection DetStepFilter : { module_type : DetectorStepFilter StrawGasSteps : [ "StrawGasStepMaker" ] @@ -59,9 +59,9 @@ Primary: { wrapFiles : true fileNames: @nil mu2e: { - writeEventIDs : true + writeEventIDs : true MaxEventsToSkip: @nil - debugLevel : 1 + debugLevel : 1 products: { genParticleMixer: { mixingMap: [ [ "beamResampler", "" ] ] } simParticleMixer: { mixingMap: [ [ "TargetStopFilter", "" ] ] } @@ -73,20 +73,20 @@ Primary: { } } } - + IPAStopResampler : { module_type: ResamplingMixer readMode : sequential wrapFiles : true - fileNames: @nil + fileNames: @nil mu2e: { - writeEventIDs : true + writeEventIDs : true MaxEventsToSkip: @nil - debugLevel : 1 + debugLevel : 1 products: { genParticleMixer: { mixingMap: [ [ "beamResampler", "" ] ] } simParticleMixer: { mixingMap: [ [ "IPAStopFilter", "" ] ] } - stepPointMCMixer: { mixingMap: [ [ "IPAStopFilter:virtualdetector", ":" ] ] } + stepPointMCMixer: { mixingMap: [ [ "IPAStopFilter:virtualdetector", ":" ] ] } volumeInfoMixer: { srInput: "compressPVIPAStops" evtOutInstanceName: "eventlevel" @@ -102,37 +102,37 @@ Primary: { DetStepFilterSequence : [ DetStepFilter, compressDetStepMCs ] KeptProducts : [ - "keep mu2e::StrawGasSteps_compressDetStepMCs_*_*", - "keep mu2e::CaloShowerSteps_compressDetStepMCs_*_*", - "keep mu2e::CrvSteps_compressDetStepMCs_*_*", - "keep mu2e::StepPointMCs_compressDetStepMCs_virtualdetector_*", - "keep mu2e::StepPointMCs_compressDetStepMCs_protonabsorber_*", - "keep mu2e::StepPointMCs_compressDetStepMCs_stoppingtarget_*", - "keep mu2e::SimParticlemv_compressDetStepMCs_*_*", - "keep mu2e::SimParticleart::Ptrmu2e::MCTrajectorystd::map_compressDetStepMCs_*_*", - "keep mu2e::GenParticles_compressDetStepMCs_*_*", - "keep mu2e::PrimaryParticle_*_*_*", - "keep art::EventIDs_*_*_*", - "keep art::TriggerResults_*_*_*", - "keep mu2e::StatusG4_*_*_*", - "keep mu2e::GenEventCount_*_*_*" ] + "keep mu2e::StrawGasSteps_compressDetStepMCs_*_*", + "keep mu2e::CaloShowerSteps_compressDetStepMCs_*_*", + "keep mu2e::CrvSteps_compressDetStepMCs_*_*", + "keep mu2e::StepPointMCs_compressDetStepMCs_virtualdetector_*", + "keep mu2e::StepPointMCs_compressDetStepMCs_protonabsorber_*", + "keep mu2e::StepPointMCs_compressDetStepMCs_stoppingtarget_*", + "keep mu2e::SimParticlemv_compressDetStepMCs_*_*", + "keep mu2e::SimParticleart::Ptrmu2e::MCTrajectorystd::map_compressDetStepMCs_*_*", + "keep mu2e::GenParticles_compressDetStepMCs_*_*", + "keep mu2e::PrimaryParticle_*_*_*", + "keep art::EventIDs_*_*_*", + "keep art::TriggerResults_*_*_*", + "keep mu2e::StatusG4_*_*_*", + "keep mu2e::GenEventCount_*_*_*" ] analyzers: { genCountLogger: { module_type: GenEventCountReader makeHistograms: false } } Output : { - module_type : RootOutput - SelectEvents : [ PrimaryPath ] - fileName : @nil + module_type : RootOutput + SelectEvents : [ PrimaryPath ] + fileName : @nil - # drop StepPoints from calorimeter + # drop StepPoints from calorimeter } EndSequence : [ genCountLogger ] -# define paths + # define paths } Primary.PrimarySequence : [ @sequence::Primary.DetStepSequence, @sequence::Primary.DetStepFilterSequence, FindMCPrimary ] Primary.EndPath : [ @sequence::Primary.EndSequence, Output ] Primary.Output.outputCommands : [ "drop *_*_*_*", - @sequence::Primary.KeptProducts] + @sequence::Primary.KeptProducts] END_PROLOG diff --git a/JobConfig/reco/Reco.fcl b/JobConfig/reco/Reco.fcl index 5d0efae6..6c4cac51 100644 --- a/JobConfig/reco/Reco.fcl +++ b/JobConfig/reco/Reco.fcl @@ -18,7 +18,7 @@ physics : RecoPath : [ @sequence::Reconstruction.RecoMCPath ] EndPath : @local::Reconstruction.EndPath } -outputs : { +outputs : { Output : { @table::Reconstruction.Output SelectEvents : [ "RecoPath" ] diff --git a/JobConfig/reco/prolog.fcl b/JobConfig/reco/prolog.fcl index 3ffb64df..40560a4b 100644 --- a/JobConfig/reco/prolog.fcl +++ b/JobConfig/reco/prolog.fcl @@ -24,8 +24,8 @@ Reconstruction : { @table::CaloMC.TruthProducers @table::CrvResponsePackage.producers -# instantiate explicit helix merger modules -# NB: positive here refers to helicity, not charge! + # instantiate explicit helix merger modules + # NB: positive here refers to helicity, not charge! MHDeM : { @table::TrkReco.producers.MergeHelices HelixFinders : [ "HelixFinderDe:Positive", "CalHelixFinderDe:Positive" ] @@ -92,26 +92,26 @@ Reconstruction : { @table::Tracking.producers.KSFUmuP SeedCollection : MHUmuP } -# KinKal fits + # KinKal fits KKSDeM : { @table::Mu2eKinKal.producers.KKDeMSeedFit ModuleSettings : { - @table::Mu2eKinKal.producers.KKDeMSeedFit.ModuleSettings - HelixSeedCollections : [ "MHDeM" ] + @table::Mu2eKinKal.producers.KKDeMSeedFit.ModuleSettings + HelixSeedCollections : [ "MHDeM" ] ComboHitCollection : "makeSH" StrawHitFlagCollection : "FlagBkgHits:StrawHits" - CaloClusterCollection : "CaloClusterMaker" - PrintLevel : 0 + CaloClusterCollection : "CaloClusterMaker" + PrintLevel : 0 } } KKSDeP : { @table::Mu2eKinKal.producers.KKDePSeedFit ModuleSettings : { - @table::Mu2eKinKal.producers.KKDePSeedFit.ModuleSettings - HelixSeedCollections : [ "MHDeP" ] + @table::Mu2eKinKal.producers.KKDePSeedFit.ModuleSettings + HelixSeedCollections : [ "MHDeP" ] ComboHitCollection : "makeSH" StrawHitFlagCollection : "FlagBkgHits:StrawHits" - CaloClusterCollection : "CaloClusterMaker" + CaloClusterCollection : "CaloClusterMaker" PrintLevel : 0 } } @@ -120,31 +120,31 @@ Reconstruction : { # # Prune output so that only parts related to reconstructed objects are kept # - SelectRecoMC : { - @table::CommonMC.SelectRecoMC - CaloClusterMinE : 10.0 - SaveEnergySteps : false - SaveUnusedDigiMCs : true - SaveAllUnusedDigiMCs : false - TimeOffsets : [] - PrimaryParticle : "compressDigiMCs" - StrawDigiCollection : "makeSD" - StrawHitFlagCollection : "FlagBkgHits:StrawHits" - ComboHitCollection : "makeSH" - CaloDigiCollection : "CaloDigiMaker" - CrvDigiCollection : "CrvDigi" - CaloClusterCollection : "CaloClusterMaker" - CrvCoincidenceClusterCollection : "CrvCoincidenceClusterFinder" - StrawDigiMCCollection : "compressDigiMCs" - CrvDigiMCCollection : "compressDigiMCs" - KalSeedCollections : ["KFFDeM", "KFFDeP", "KFFDmuM", "KFFDmuP", - "KFFUeM", "KFFUeP", "KFFUmuM", "KFFUmuP" ] - HelixSeedCollections : ["MHDeM", "MHDeP", "MHDmuM", "MHDmuP", - "MHUeM", "MHUeP", "MHUmuM", "MHUmuP" ] + SelectRecoMC : { + @table::CommonMC.SelectRecoMC + CaloClusterMinE : 10.0 + SaveEnergySteps : false + SaveUnusedDigiMCs : true + SaveAllUnusedDigiMCs : false + TimeOffsets : [] + PrimaryParticle : "compressDigiMCs" + StrawDigiCollection : "makeSD" + StrawHitFlagCollection : "FlagBkgHits:StrawHits" + ComboHitCollection : "makeSH" + CaloDigiCollection : "CaloDigiMaker" + CrvDigiCollection : "CrvDigi" + CaloClusterCollection : "CaloClusterMaker" + CrvCoincidenceClusterCollection : "CrvCoincidenceClusterFinder" + StrawDigiMCCollection : "compressDigiMCs" + CrvDigiMCCollection : "compressDigiMCs" + KalSeedCollections : ["KFFDeM", "KFFDeP", "KFFDmuM", "KFFDmuP", + "KFFUeM", "KFFUeP", "KFFUmuM", "KFFUmuP" ] + HelixSeedCollections : ["MHDeM", "MHDeP", "MHDmuM", "MHDmuP", + "MHUeM", "MHUeP", "MHUmuM", "MHUmuP" ] VDSPCollection : "compressDigiMCs:virtualdetector" } # Compresion - compressRecoMCs : { + compressRecoMCs : { module_type : CompressDigiMCs strawDigiMCTag : "compressDigiMCs" crvDigiMCTag : "compressDigiMCs" @@ -167,33 +167,33 @@ Reconstruction : { } - + filters : { -# why are CalPatRec reconstruction modules implemented as filters???? -# They should be remade as producers FIXME! + # why are CalPatRec reconstruction modules implemented as filters???? + # They should be remade as producers FIXME! @table::CalPatRec.filters # reco filter RecoFilter : { module_type : RecoMomFilter KalFinalTagRoot : "" - TrkTags : [ "KFFDeM", "KFFDeP", - "KFFUeM", "KFFUeP", - "KFFDmuM", "KFFDmuP", - "KFFUmuM", "KFFUmuP" - ] - # // set low cutoffs + TrkTags : [ "KFFDeM", "KFFDeP", + "KFFUeM", "KFFUeP", + "KFFDmuM", "KFFDmuP", + "KFFUmuM", "KFFUmuP" + ] + # // set low cutoffs MomentumCutoff : [ 60.0, 60.0, - 60.0, 60.0, - 60.0, 60.0, - 60.0, 60.0 ] + 60.0, 60.0, + 60.0, 60.0, + 60.0, 60.0 ] } } analyzers : { # these are specific to MC recoCompressionCheck : @local::RecoCompression.Check } -# reconstruct multiple types of tracks. These are separate sequences to allow granular execution -# Downstream electron sequence (plus and minus), using merged helices + # reconstruct multiple types of tracks. These are separate sequences to allow granular execution + # Downstream electron sequence (plus and minus), using merged helices DeReco : [ TimeClusterFinderDe, HelixFinderDe, # TrkPatRec CalTimePeakFinder, CalHelixFinderDe, # CalPatRec @@ -202,14 +202,14 @@ Reconstruction : { KKSDeM, KKSDeP, # KinKal seed fits KFFDeM, KFFDeP # final Kalman filter fit ] -# Upstream electron sequence (plus and minus): TrkPatRec only + # Upstream electron sequence (plus and minus): TrkPatRec only UeReco : [ - TimeClusterFinderUe, HelixFinderUe, + TimeClusterFinderUe, HelixFinderUe, MHUeM, MHUeP, # helix merging KSFUeM, KSFUeP, # Seed fit (chisquared, no drift) KFFUeM, KFFUeP # final Kalman filter fit ] -# Downstream muon sequence (plus and minus) + # Downstream muon sequence (plus and minus) DmuReco : [ TimeClusterFinderDmu, HelixFinderDmu, # TrkPatRec CalTimePeakFinderMu, CalHelixFinderDmu, # CalPatRec @@ -217,47 +217,47 @@ Reconstruction : { KSFDmuM, KSFDmuP, # Seed fit (chisquared, no drift) KFFDmuM, KFFDmuP # final Kalman filter fit ] -# Upstream muon sequence (plus and minus) + # Upstream muon sequence (plus and minus) UmuReco : [ - TimeClusterFinderUmu, HelixFinderUmu, + TimeClusterFinderUmu, HelixFinderUmu, MHUmuM, MHUmuP, # helix merging KSFUmuM, KSFUmuP, # Seed fit (chisquared, no drift) KFFUmuM, KFFUmuP # final Kalman filter fit ] -# add protons for calibration TODO! + # add protons for calibration TODO! -# Track reco sequence + # Track reco sequence TrkReco : [ @sequence::TrkHitReco.PrepareHits ] # Track hit -# Calo reco + # Calo reco CaloReco : [ @sequence::CaloReco.Reco, @sequence::CaloCluster.Reco ] -# CRV reco + # CRV reco CrvReco : [ CrvRecoPulses, CrvCoincidence, CrvCoincidenceClusterFinder ] -# full MC sequence; form the Calo and CRV matching, and compress based on reco content + # full MC sequence; form the Calo and CRV matching, and compress based on reco content MCReco : [@sequence::CaloMC.TruthMatch, CrvCoincidenceClusterMatchMC, SelectRecoMC, compressRecoMCs ] -# define products to keep -# First, high-level reco products, and associated sub-products + # define products to keep + # First, high-level reco products, and associated sub-products HighRecoProducts : [ - "keep mu2e::KalSeeds_K*_*_*", - "keep mu2e::HelixSeeds_MH*_*_*", - "keep mu2e::TimeClusters_MH*_*_*", - "keep mu2e::CaloClusters_*_*_*", - "keep mu2e::CaloHits_*_*_*", - "keep mu2e::EventWindowMarker_*_*_*", - "keep mu2e::ProtonBunchTime_*_*_*", - "keep *_SelectRecoMC_*_*" - ] -# MC truth matched to reco + "keep mu2e::KalSeeds_K*_*_*", + "keep mu2e::HelixSeeds_MH*_*_*", + "keep mu2e::TimeClusters_MH*_*_*", + "keep mu2e::CaloClusters_*_*_*", + "keep mu2e::CaloHits_*_*_*", + "keep mu2e::EventWindowMarker_*_*_*", + "keep mu2e::ProtonBunchTime_*_*_*", + "keep *_SelectRecoMC_*_*" + ] + # MC truth matched to reco MCRecoProducts : [ - "keep *_genCounter_*_*", - "keep mu2e::PrimaryParticle_*_*_*", - "keep mu2e::StatusG4_*_*_*", - "keep mu2e::ProtonBunchIntensity_*_*_*", - "keep mu2e::ProtonBunchTimeMC_*_*_*", - "keep mu2e::EventWeight_*_*_*", - "keep *_compressRecoMCs_*_*" - ] - EndSequence : [ recoCompressionCheck ] + "keep *_genCounter_*_*", + "keep mu2e::PrimaryParticle_*_*_*", + "keep mu2e::StatusG4_*_*_*", + "keep mu2e::ProtonBunchIntensity_*_*_*", + "keep mu2e::ProtonBunchTimeMC_*_*_*", + "keep mu2e::EventWeight_*_*_*", + "keep *_compressRecoMCs_*_*" + ] + EndSequence : [ recoCompressionCheck ] } Reconstruction.EndPath : [ @sequence::Reconstruction.EndSequence, Output ] @@ -297,11 +297,11 @@ Reconstruction.Output : { module_type : RootOutput SelectEvents : [ RecoPath ] fileName : @nil -# outputCommands : [ "keep *_*_*_*" ] + # outputCommands : [ "keep *_*_*_*" ] outputCommands : [ "drop *_*_*_*", - @sequence::Digitize.TriggerProducts, - @sequence::Reconstruction.HighRecoProducts, - @sequence::Reconstruction.MCRecoProducts] + @sequence::Digitize.TriggerProducts, + @sequence::Reconstruction.HighRecoProducts, + @sequence::Reconstruction.MCRecoProducts] } END_PROLOG diff --git a/JobConfig/validation/mixPointsDump.fcl b/JobConfig/validation/mixPointsDump.fcl index 3215834c..4db28319 100644 --- a/JobConfig/validation/mixPointsDump.fcl +++ b/JobConfig/validation/mixPointsDump.fcl @@ -10,149 +10,149 @@ process_name : stepPointsDump source: { module_type: RootInput } services: { - TFileService: { fileName: "stepPoints.root" } - message: @local::default_message - RandomNumberGenerator: {defaultEngineKind: "MixMaxRng" } - ConditionsService: { conditionsfile : "Offline/ConditionsService/data/conditions_01.txt" } - GlobalConstantsService: { inputFile : "Offline/GlobalConstantsService/data/globalConstants_01.txt" } - SeedService: @local::automaticSeeds + TFileService: { fileName: "stepPoints.root" } + message: @local::default_message + RandomNumberGenerator: {defaultEngineKind: "MixMaxRng" } + ConditionsService: { conditionsfile : "Offline/ConditionsService/data/conditions_01.txt" } + GlobalConstantsService: { inputFile : "Offline/GlobalConstantsService/data/globalConstants_01.txt" } + SeedService: @local::automaticSeeds } physics: { - producers: { - protonTimeMap :@local::CommonMC.producers.protonTimeMap - muonTimeMap : { module_type : GenerateMuonLife verbosityLevel : 1 } - } + producers: { + protonTimeMap :@local::CommonMC.producers.protonTimeMap + muonTimeMap : { module_type : GenerateMuonLife verbosityLevel : 1 } + } - analyzers: { - genCountLogger: { - module_type: GenEventCountReader - } + analyzers: { + genCountLogger: { + module_type: GenEventCountReader + } - //================================================================ - trackerFlash: { - module_type: StepPointMCDumper - hitsInputTag: "flashMixer:tracker" - TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } - } - trackerOOT: { - module_type: StepPointMCDumper - hitsInputTag: "ootMixer:tracker" - TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } - } - trackerDIO: { - module_type: StepPointMCDumper - hitsInputTag: "dioMixer:tracker" - TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } - } - trackerNeutron: { - module_type: StepPointMCDumper - hitsInputTag: "neutronMixer:tracker" - TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } - } - trackerPhoton: { - module_type: StepPointMCDumper - hitsInputTag: "photonMixer:tracker" - TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } - } - trackerProton: { - module_type: StepPointMCDumper - hitsInputTag: "protonMixer:tracker" - TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } - } - trackerDeuteron: { - module_type: StepPointMCDumper - hitsInputTag: "deuteronMixer:tracker" - TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } - } + //================================================================ + trackerFlash: { + module_type: StepPointMCDumper + hitsInputTag: "flashMixer:tracker" + TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } + } + trackerOOT: { + module_type: StepPointMCDumper + hitsInputTag: "ootMixer:tracker" + TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } + } + trackerDIO: { + module_type: StepPointMCDumper + hitsInputTag: "dioMixer:tracker" + TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } + } + trackerNeutron: { + module_type: StepPointMCDumper + hitsInputTag: "neutronMixer:tracker" + TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } + } + trackerPhoton: { + module_type: StepPointMCDumper + hitsInputTag: "photonMixer:tracker" + TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } + } + trackerProton: { + module_type: StepPointMCDumper + hitsInputTag: "protonMixer:tracker" + TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } + } + trackerDeuteron: { + module_type: StepPointMCDumper + hitsInputTag: "deuteronMixer:tracker" + TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } + } - //================================================================ - calorimeterFlash: { - module_type: StepPointMCDumper - hitsInputTag: "flashMixer:calorimeter" - TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } - } - calorimeterOOT: { - module_type: StepPointMCDumper - hitsInputTag: "ootMixer:calorimeter" - TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } - } - calorimeterDIO: { - module_type: StepPointMCDumper - hitsInputTag: "dioMixer:calorimeter" - TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } - } - calorimeterNeutron: { - module_type: StepPointMCDumper - hitsInputTag: "neutronMixer:calorimeter" - TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } - } - calorimeterPhoton: { - module_type: StepPointMCDumper - hitsInputTag: "photonMixer:calorimeter" - TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } - } - calorimeterProton: { - module_type: StepPointMCDumper - hitsInputTag: "protonMixer:calorimeter" - TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } - } - calorimeterDeuteron: { - module_type: StepPointMCDumper - hitsInputTag: "deuteronMixer:calorimeter" - TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } - } + //================================================================ + calorimeterFlash: { + module_type: StepPointMCDumper + hitsInputTag: "flashMixer:calorimeter" + TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } + } + calorimeterOOT: { + module_type: StepPointMCDumper + hitsInputTag: "ootMixer:calorimeter" + TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } + } + calorimeterDIO: { + module_type: StepPointMCDumper + hitsInputTag: "dioMixer:calorimeter" + TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } + } + calorimeterNeutron: { + module_type: StepPointMCDumper + hitsInputTag: "neutronMixer:calorimeter" + TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } + } + calorimeterPhoton: { + module_type: StepPointMCDumper + hitsInputTag: "photonMixer:calorimeter" + TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } + } + calorimeterProton: { + module_type: StepPointMCDumper + hitsInputTag: "protonMixer:calorimeter" + TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } + } + calorimeterDeuteron: { + module_type: StepPointMCDumper + hitsInputTag: "deuteronMixer:calorimeter" + TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } + } - //================================================================ - calorimeterROFlash: { - module_type: StepPointMCDumper - hitsInputTag: "flashMixer:calorimeterRO" - TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } - } - calorimeterROOOT: { - module_type: StepPointMCDumper - hitsInputTag: "ootMixer:calorimeterRO" - TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } - } - calorimeterRODIO: { - module_type: StepPointMCDumper - hitsInputTag: "dioMixer:calorimeterRO" - TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } - } - calorimeterRONeutron: { - module_type: StepPointMCDumper - hitsInputTag: "neutronMixer:calorimeterRO" - TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } - } - calorimeterROPhoton: { - module_type: StepPointMCDumper - hitsInputTag: "photonMixer:calorimeterRO" - TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } - } - calorimeterROProton: { - module_type: StepPointMCDumper - hitsInputTag: "protonMixer:calorimeterRO" - TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } - } - calorimeterRODeuteron: { - module_type: StepPointMCDumper - hitsInputTag: "deuteronMixer:calorimeterRO" - TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } - } + //================================================================ + calorimeterROFlash: { + module_type: StepPointMCDumper + hitsInputTag: "flashMixer:calorimeterRO" + TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } + } + calorimeterROOOT: { + module_type: StepPointMCDumper + hitsInputTag: "ootMixer:calorimeterRO" + TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } + } + calorimeterRODIO: { + module_type: StepPointMCDumper + hitsInputTag: "dioMixer:calorimeterRO" + TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } + } + calorimeterRONeutron: { + module_type: StepPointMCDumper + hitsInputTag: "neutronMixer:calorimeterRO" + TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } + } + calorimeterROPhoton: { + module_type: StepPointMCDumper + hitsInputTag: "photonMixer:calorimeterRO" + TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } + } + calorimeterROProton: { + module_type: StepPointMCDumper + hitsInputTag: "protonMixer:calorimeterRO" + TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } + } + calorimeterRODeuteron: { + module_type: StepPointMCDumper + hitsInputTag: "deuteronMixer:calorimeterRO" + TimeOffsets : { inputs : [ "protonTimeMap", "muonTimeMap" ] } + } - //================================================================ - } + //================================================================ + } - p1 : [protonTimeMap, muonTimeMap] - trigger_paths: [p1] + p1 : [protonTimeMap, muonTimeMap] + trigger_paths: [p1] - e1 : [ genCountLogger - , trackerFlash, trackerOOT, trackerDIO, trackerNeutron, trackerPhoton, trackerProton, trackerDeuteron - , calorimeterFlash, calorimeterOOT, calorimeterDIO, calorimeterNeutron, calorimeterPhoton, calorimeterProton, calorimeterDeuteron - , calorimeterROFlash, calorimeterROOOT, calorimeterRODIO, calorimeterRONeutron, calorimeterROPhoton, calorimeterROProton, calorimeterRODeuteron - ] - end_paths : [e1] + e1 : [ genCountLogger + , trackerFlash, trackerOOT, trackerDIO, trackerNeutron, trackerPhoton, trackerProton, trackerDeuteron + , calorimeterFlash, calorimeterOOT, calorimeterDIO, calorimeterNeutron, calorimeterPhoton, calorimeterProton, calorimeterDeuteron + , calorimeterROFlash, calorimeterROOOT, calorimeterRODIO, calorimeterRONeutron, calorimeterROPhoton, calorimeterROProton, calorimeterRODeuteron + ] + end_paths : [e1] } services.SeedService.baseSeed : 8 diff --git a/JobConfig/validation/psEnclosureBeamWindow.fcl b/JobConfig/validation/psEnclosureBeamWindow.fcl index 71977dba..808c5ed1 100644 --- a/JobConfig/validation/psEnclosureBeamWindow.fcl +++ b/JobConfig/validation/psEnclosureBeamWindow.fcl @@ -1,5 +1,5 @@ // Record hits in PSEnclosure end plate and the windows for the main beam. -// +// // Andrei Gaponenko, 2015 #include "Offline/fcl/minimalMessageService.fcl" @@ -10,75 +10,75 @@ process_name : psEnclosureBeamWindow source : { - module_type : EmptyEvent - maxEvents : @nil + module_type : EmptyEvent + maxEvents : @nil } services : { - message : @local::default_message - TFileService : { fileName : "hist_beam_psebeamwin.root" } - RandomNumberGenerator : {defaultEngineKind: "MixMaxRng" } + message : @local::default_message + TFileService : { fileName : "hist_beam_psebeamwin.root" } + RandomNumberGenerator : {defaultEngineKind: "MixMaxRng" } - GeometryService : { inputFile : "Production/JobConfig/validation/geom_psEnclosure.txt" } - ConditionsService : { conditionsfile : "Offline/ConditionsService/data/conditions_01.txt" } - GlobalConstantsService : { inputFile : "Offline/GlobalConstantsService/data/globalConstants_01.txt" } - Mu2eG4Helper : { } - SeedService : @local::automaticSeeds + GeometryService : { inputFile : "Production/JobConfig/validation/geom_psEnclosure.txt" } + ConditionsService : { conditionsfile : "Offline/ConditionsService/data/conditions_01.txt" } + GlobalConstantsService : { inputFile : "Offline/GlobalConstantsService/data/globalConstants_01.txt" } + Mu2eG4Helper : { } + SeedService : @local::automaticSeeds } physics : { - analyzers: { - genCountLogger: { - module_type: GenEventCountReader - } - - endplate: { - module_type: StepPointMCDumper TimeOffsets: {} - hitsInputTag: "g4run:PSEnclosureEndPlate" - } - win0: { - module_type: StepPointMCDumper TimeOffsets: {} - hitsInputTag: "g4run:PSEnclosureWindow0" - } - win1: { - module_type: StepPointMCDumper TimeOffsets: {} - hitsInputTag: "g4run:PSEnclosureWindow1" - } - } - - producers: { - generate: @local::PrimaryProtonGun - - genCounter: { - module_type: GenEventCounter - } - - g4run: @local::g4run - } - - trigmainbeam : [generate, genCounter, g4run] - trigger_paths : [trigmainbeam] - - an: [ genCountLogger, endplate, win0, win1 ] - end_paths: [an] + analyzers: { + genCountLogger: { + module_type: GenEventCountReader + } + + endplate: { + module_type: StepPointMCDumper TimeOffsets: {} + hitsInputTag: "g4run:PSEnclosureEndPlate" + } + win0: { + module_type: StepPointMCDumper TimeOffsets: {} + hitsInputTag: "g4run:PSEnclosureWindow0" + } + win1: { + module_type: StepPointMCDumper TimeOffsets: {} + hitsInputTag: "g4run:PSEnclosureWindow1" + } + } + + producers: { + generate: @local::PrimaryProtonGun + + genCounter: { + module_type: GenEventCounter + } + + g4run: @local::g4run + } + + trigmainbeam : [generate, genCounter, g4run] + trigger_paths : [trigmainbeam] + + an: [ genCountLogger, endplate, win0, win1 ] + end_paths: [an] } //================================================================ physics.producers.g4run.Mu2eG4CommonCut: { - type: union - pars: [ - // speed things up - { type: inVolume pars: [TS1Vacuum,PSShieldShell1,ProtonBeamDumpCore,ProtonBeamDumpFront] }, - // ignore the soft stuff - { type: kineticEnergy cut: 3000 } - ] + type: union + pars: [ + // speed things up + { type: inVolume pars: [TS1Vacuum,PSShieldShell1,ProtonBeamDumpCore,ProtonBeamDumpFront] }, + // ignore the soft stuff + { type: kineticEnergy cut: 3000 } + ] } physics.producers.g4run.SDConfig: { - enableSD: [ virtualdetector ] // activate just the explicitly listed SDs - sensitiveVolumes: [ PSEnclosureEndPlate, PSEnclosureWindow0, PSEnclosureWindow1 ] - TimeVD: { times: [] } + enableSD: [ virtualdetector ] // activate just the explicitly listed SDs + sensitiveVolumes: [ PSEnclosureEndPlate, PSEnclosureWindow0, PSEnclosureWindow1 ] + TimeVD: { times: [] } } diff --git a/JobConfig/validation/psEnclosureExtMonWindow.fcl b/JobConfig/validation/psEnclosureExtMonWindow.fcl index 63f62f13..15d093b9 100644 --- a/JobConfig/validation/psEnclosureExtMonWindow.fcl +++ b/JobConfig/validation/psEnclosureExtMonWindow.fcl @@ -1,7 +1,7 @@ // Record hits in PSEnclosure end plate and the ExtMon beam window. // The acceptance here is about 2.8e-6. You need to simulate enough // events to see anything. -// +// // Andrei Gaponenko, 2015 #include "Offline/fcl/minimalMessageService.fcl" @@ -12,86 +12,86 @@ process_name : psEnclosureExtMonWindow source : { - module_type : EmptyEvent - maxEvents : @nil + module_type : EmptyEvent + maxEvents : @nil } services : { - message : @local::default_message - TFileService : { fileName : "hist_beam_pseextmonwin.root" } - RandomNumberGenerator : {defaultEngineKind: "MixMaxRng" } + message : @local::default_message + TFileService : { fileName : "hist_beam_pseextmonwin.root" } + RandomNumberGenerator : {defaultEngineKind: "MixMaxRng" } - GeometryService : { inputFile : "Production/JobConfig/validation/geom_psEnclosure.txt" } - ConditionsService : { conditionsfile : "Offline/ConditionsService/data/conditions_01.txt" } - GlobalConstantsService : { inputFile : "Offline/GlobalConstantsService/data/globalConstants_01.txt" } - Mu2eG4Helper : { } - SeedService : @local::automaticSeeds + GeometryService : { inputFile : "Production/JobConfig/validation/geom_psEnclosure.txt" } + ConditionsService : { conditionsfile : "Offline/ConditionsService/data/conditions_01.txt" } + GlobalConstantsService : { inputFile : "Offline/GlobalConstantsService/data/globalConstants_01.txt" } + Mu2eG4Helper : { } + SeedService : @local::automaticSeeds } physics : { - analyzers: { - genCountLogger: { - module_type: GenEventCountReader - } - - endplate: { - module_type: StepPointMCDumper TimeOffsets: {} - hitsInputTag: "extmonBeamFilter:PSEnclosureEndPlate" - } - win0: { - module_type: StepPointMCDumper TimeOffsets: {} - hitsInputTag: "extmonBeamFilter:PSEnclosureWindow0" - } - win1: { - module_type: StepPointMCDumper TimeOffsets: {} - hitsInputTag: "extmonBeamFilter:PSEnclosureWindow1" - } - } - - producers: { - generate: @local::PrimaryProtonGun - - genCounter: { - module_type: GenEventCounter - } - - g4run : @local::g4run - } - - filters: { - extmonBeamFilter: { - module_type: FilterG4Out - mainHitInputs : [ "g4run:extmonbeam" ] - extraHitInputs : [ "g4run:virtualdetector", "g4run:PSEnclosureEndPlate", "g4run:PSEnclosureWindow0", "g4run:PSEnclosureWindow1" ] - vetoDaughters: [] - } - } - - trigmainextmon : [generate, genCounter, g4run, extmonBeamFilter] - trigger_paths : [trigmainextmon] - - an: [ genCountLogger, endplate, win0, win1 ] - end_paths: [an] + analyzers: { + genCountLogger: { + module_type: GenEventCountReader + } + + endplate: { + module_type: StepPointMCDumper TimeOffsets: {} + hitsInputTag: "extmonBeamFilter:PSEnclosureEndPlate" + } + win0: { + module_type: StepPointMCDumper TimeOffsets: {} + hitsInputTag: "extmonBeamFilter:PSEnclosureWindow0" + } + win1: { + module_type: StepPointMCDumper TimeOffsets: {} + hitsInputTag: "extmonBeamFilter:PSEnclosureWindow1" + } + } + + producers: { + generate: @local::PrimaryProtonGun + + genCounter: { + module_type: GenEventCounter + } + + g4run : @local::g4run + } + + filters: { + extmonBeamFilter: { + module_type: FilterG4Out + mainHitInputs : [ "g4run:extmonbeam" ] + extraHitInputs : [ "g4run:virtualdetector", "g4run:PSEnclosureEndPlate", "g4run:PSEnclosureWindow0", "g4run:PSEnclosureWindow1" ] + vetoDaughters: [] + } + } + + trigmainextmon : [generate, genCounter, g4run, extmonBeamFilter] + trigger_paths : [trigmainextmon] + + an: [ genCountLogger, endplate, win0, win1 ] + end_paths: [an] } //================================================================ physics.producers.g4run.Mu2eG4CommonCut: { - type: union - pars: [ - // speed things up - { type: inVolume pars: [TS1Vacuum,PSShieldShell1,ProtonBeamDumpCore,ProtonBeamDumpFront] }, - // ignore the soft stuff - { type: kineticEnergy cut: 3000 }, - // write particles reaching collimator2 - { type: inVolume pars: [collimator2Channel] write: extmonbeam } - ] + type: union + pars: [ + // speed things up + { type: inVolume pars: [TS1Vacuum,PSShieldShell1,ProtonBeamDumpCore,ProtonBeamDumpFront] }, + // ignore the soft stuff + { type: kineticEnergy cut: 3000 }, + // write particles reaching collimator2 + { type: inVolume pars: [collimator2Channel] write: extmonbeam } + ] } physics.producers.g4run.SDConfig: { - enableSD: [ virtualdetector ] // activate just the explicitly listed SDs - sensitiveVolumes: [ PSEnclosureEndPlate, PSEnclosureWindow0, PSEnclosureWindow1 ] - TimeVD: { times: [] } + enableSD: [ virtualdetector ] // activate just the explicitly listed SDs + sensitiveVolumes: [ PSEnclosureEndPlate, PSEnclosureWindow0, PSEnclosureWindow1 ] + TimeVD: { times: [] } } // Larger range cut for the first stage diff --git a/JobConfig/validation/stoppedMuonsSingleStage.fcl b/JobConfig/validation/stoppedMuonsSingleStage.fcl index 72d34b0b..3c7bf2c0 100644 --- a/JobConfig/validation/stoppedMuonsSingleStage.fcl +++ b/JobConfig/validation/stoppedMuonsSingleStage.fcl @@ -1,8 +1,8 @@ -// This job starts with protons on target and writes stopped muons -// into a framework format output file. Run -// JobConfig/beam/beam_nts3tgtstops.fcl on the output to get an ntuple. -// -// Andrei Gaponenko, 2015 +# This job starts with protons on target and writes stopped muons +# into a framework format output file. Run +# JobConfig/beam/beam_nts3tgtstops.fcl on the output to get an ntuple. +# +# Andrei Gaponenko, 2015 #include "Offline/fcl/minimalMessageService.fcl" #include "Offline/fcl/standardProducers.fcl" @@ -13,17 +13,17 @@ BEGIN_PROLOG #---------------------------------------------------------------- # Mu2eG4 cuts killLowEnergyStuff: { - type: intersection - pars: [ - // those particles can't make muons - { type: kineticEnergy cut: 100. }, - { type: pdgId pars: [ 22, -11, 11, 2212, 2112 ] } - ] + type: intersection + pars: [ + # those particles can't make muons + { type: kineticEnergy cut: 100. }, + { type: pdgId pars: [ 22, -11, 11, 2212, 2112 ] } + ] } # killInSideVolumes: { - type: inVolume - pars: [ HallAir, DS3Vacuum ] + type: inVolume + pars: [ HallAir, DS3Vacuum ] } #---------------------------------------------------------------- END_PROLOG @@ -33,107 +33,107 @@ END_PROLOG process_name : stoppedMuonsSingleStage source : { - module_type : EmptyEvent - maxEvents : @nil + module_type : EmptyEvent + maxEvents : @nil } services : @local::Services.SimAndReco physics : { - analyzers: { - genCountLogger: { - module_type: GenEventCountReader - } - } - - producers: { - - generate: @local::PrimaryProtonGun - - genCounter: { - module_type: GenEventCounter - } - - g4run: @local::g4run - - compressPVTGTStops: { - module_type: CompressPhysicalVolumes - volumesInput : "g4run" - hitInputs : [] - particleInputs : [ "tgtStopFilter" ] - } - - //---------------------------------------------------------------- - stoppedMuonFinder : { - module_type : StoppedParticlesFinder - particleInput : "g4run" - // multiple matches, we'll get the one from the current process, which is what we want - physVolInfoInput : "g4run" - stoppingMaterial : "StoppingTarget_Al" - particleTypes : [ 13 ] // mu- - verbosityLevel: 1 - } - } - - filters: { - tgtStopFilter: { - module_type: FilterG4Out - mainHitInputs: [] - extraHitInputs: [ "g4run:virtualdetector" ] - mainSPPtrInputs: [ "stoppedMuonFinder" ] - } - - g4consistent: { - module_type: FilterStatusG4 - input: "g4run" - maxAcceptedStatus: 9 # status 10 and above means StepPointMCCollection may have non-dereferencable pointers - } - } - - tgtFilter : [generate, genCounter, g4run, g4consistent, stoppedMuonFinder, tgtStopFilter, compressPVTGTStops] - trigger_paths : [tgtFilter] - - out : [tgtStopOutput] - gcl: [genCountLogger] - end_paths: [out, gcl] + analyzers: { + genCountLogger: { + module_type: GenEventCountReader + } + } + + producers: { + + generate: @local::PrimaryProtonGun + + genCounter: { + module_type: GenEventCounter + } + + g4run: @local::g4run + + compressPVTGTStops: { + module_type: CompressPhysicalVolumes + volumesInput : "g4run" + hitInputs : [] + particleInputs : [ "tgtStopFilter" ] + } + + #---------------------------------------------------------------- + stoppedMuonFinder : { + module_type : StoppedParticlesFinder + particleInput : "g4run" + # multiple matches, we'll get the one from the current process, which is what we want + physVolInfoInput : "g4run" + stoppingMaterial : "StoppingTarget_Al" + particleTypes : [ 13 ] # mu- + verbosityLevel: 1 + } + } + + filters: { + tgtStopFilter: { + module_type: FilterG4Out + mainHitInputs: [] + extraHitInputs: [ "g4run:virtualdetector" ] + mainSPPtrInputs: [ "stoppedMuonFinder" ] + } + + g4consistent: { + module_type: FilterStatusG4 + input: "g4run" + maxAcceptedStatus: 9 # status 10 and above means StepPointMCCollection may have non-dereferencable pointers + } + } + + tgtFilter : [generate, genCounter, g4run, g4consistent, stoppedMuonFinder, tgtStopFilter, compressPVTGTStops] + trigger_paths : [tgtFilter] + + out : [tgtStopOutput] + gcl: [genCountLogger] + end_paths: [out, gcl] } outputs: { - tgtStopOutput : { - module_type : RootOutput - SelectEvents: [tgtFilter] - outputCommands: [ "drop *_*_*_*", - "keep mu2e::GenParticles_*_*_*", - "keep mu2e::GenEventCount_*_*_*", - "keep mu2e::StatusG4_*_*_*", - "keep *_tgtStopFilter_*_*", - "keep *_compressPVTGTStops_*_*" - ] - fileName : "sim.owner.stoppedMuonsSingleStage.version.sequencer.art" - } + tgtStopOutput : { + module_type : RootOutput + SelectEvents: [tgtFilter] + outputCommands: [ "drop *_*_*_*", + "keep mu2e::GenParticles_*_*_*", + "keep mu2e::GenEventCount_*_*_*", + "keep mu2e::StatusG4_*_*_*", + "keep *_tgtStopFilter_*_*", + "keep *_compressPVTGTStops_*_*" + ] + fileName : "sim.owner.stoppedMuonsSingleStage.version.sequencer.art" + } } -//================================================================ -// Mu2eG4 cuts are evaluated in the listed order. -// The first match wins. For the "intersection" -// type, the first false stops the evaluation. -// For the "union" type the first true stops the evaluation. +#================================================================ +# Mu2eG4 cuts are evaluated in the listed order. +# The first match wins. For the "intersection" +# type, the first false stops the evaluation. +# For the "union" type the first true stops the evaluation. physics.producers.g4run.Mu2eG4CommonCut: { - type: union - pars: [ - @local::killLowEnergyStuff, - @local::killInSideVolumes - ] + type: union + pars: [ + @local::killLowEnergyStuff, + @local::killInSideVolumes + ] } -physics.producers.g4run.SDConfig.enableSD: [ virtualdetector ] // activate just the explicitly listed SDs +physics.producers.g4run.SDConfig.enableSD: [ virtualdetector ] # activate just the explicitly listed SDs -// Not too coarse - we care about stopped muon positions. -physics.producers.g4run.physics.minRangeCut : 0.010 // mm +# Not too coarse - we care about stopped muon positions. +physics.producers.g4run.physics.minRangeCut : 0.010 # mm services.GeometryService.inputFile : "Production/JobConfig/common/geom_baseline.txt" services.TFileService.fileName : "nts.owner.stoppedMuonsSingleStage.version.sequencer.root" -// Initialze seeding of random engines: do not put these lines in base .fcl files for grid jobs. +# Initialze seeding of random engines: do not put these lines in base .fcl files for grid jobs. services.SeedService.baseSeed : 8 services.SeedService.maxUniqueEngines : 20 diff --git a/MDC2020/gen_Reco.sh b/MDC2020/gen_Reco.sh index 2b443762..0ac15c7a 100755 --- a/MDC2020/gen_Reco.sh +++ b/MDC2020/gen_Reco.sh @@ -1,10 +1,40 @@ -generate_fcl --dsowner=brownd --override-outputs --auto-description=Reco --include JobConfig/reco/Reco.fcl --dsconf "MDC2020$2" \ ---inputs "$1$2.txt" --merge-factor=1 +# this script requires mu2etools and dhtools be setup +# $1 is the name of the digi (ie CeEndpointMixTriggered, etc) file. +# $2 is the dataset description (ie MDC2020). +# $3 is the campaign version of the input (digi) file. +# $4 is the campaign version of the output (reco) file. +# $5 is the number of input collections to merge (merge factor) +if [[ $# -eq 0 ]] ; then + usage='Usage: +gen_Reco.sh [primaryName] [datasetDescription] [digiInput] \ + [recoOutput] [mergeFactor] + +This script will produce the fcl files needed for a mixing stage. It +is necessary to provide, in order: +- the name of the primary [primaryName] +- the dataset description [datasetDescription], +- the campaign version of the input digi file [digiInput], +- the campaign version of the output reco file [recoOutput], +- the number of input collections to merge into 1 output [mergeFactor] + +Example: + gen_Reco.sh CeEndpointMixTriggered MDC2020 k m 10 + +This will produce the fcl files for a reco stage +on CeEndpointMixTriggered digis, merging 10 inputs per output. The output +files will have the MDC2020m description.' + echo "$usage" + exit 0 +fi +samweb list-file-locations --schema=root --defname="dig.mu2e.$1.$2$3.art" | cut -f1 > Digis.txt + +generate_fcl --dsowner=brownd --override-outputs --auto-description=Reco --include JobConfig/reco/Reco.fcl --dsconf "$2$4" \ +--inputs "Digis.txt" --merge-factor=$5 for dirname in 000 001 002 003 004 005 006 007 008 009; do if test -d $dirname; then echo "found dir $dirname" - rm -rf $1Reco$2_$dirname - mv $dirname $1Reco$2_$dirname + rm -rf $1Reco$4_$dirname + mv $dirname $1Reco$4_$dirname fi done diff --git a/Validation/ceMixDigi.fcl b/Validation/ceMixDigi.fcl deleted file mode 100644 index 0483c5ef..00000000 --- a/Validation/ceMixDigi.fcl +++ /dev/null @@ -1,77 +0,0 @@ -# Example mixing file for validation, producing 150 events in MDC2018 format. created by JobConfig/examples/generate_CeEndpointMix.sh - - -#include "Production/JobConfig/mixing/CeEndpointMix.fcl" - -source.firstRun: 1002 -source.firstSubRun: 0 -source.maxEvents: 10 -services.SeedService.policy: autoIncrement -services.SeedService.maxUniqueEngines: 50 -services.SeedService.baseSeed: 538287721 -physics.filters.ootMixerCRV.fileNames : [ -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/oot-CRV-cat-cat/MDC2018a/art/ac/fb/sim.mu2e.oot-CRV-cat-cat.MDC2018a.001002_00000660.art", -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/oot-CRV-cat-cat/MDC2018a/art/81/50/sim.mu2e.oot-CRV-cat-cat.MDC2018a.001002_00000060.art", -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/oot-CRV-cat-cat/MDC2018a/art/75/24/sim.mu2e.oot-CRV-cat-cat.MDC2018a.001002_00000270.art" -] -physics.filters.neutronMixerCRV.fileNames : [ -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/neutron-CRV-cat/MDC2018a/art/43/d8/sim.mu2e.neutron-CRV-cat.MDC2018a.001002_00013260.art" -] -physics.filters.dioMixerCRV.fileNames : [ -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/dio-CRV-cat/MDC2018a/art/48/a9/sim.mu2e.dio-CRV-cat.MDC2018a.001002_00019320.art" -] -physics.filters.photonMixerCRV.fileNames : [ -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/photon-CRV-cat/MDC2018a/art/43/88/sim.mu2e.photon-CRV-cat.MDC2018a.001002_00000342.art" -] -physics.filters.PSMixerCRV.fileNames : [ -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/PS-CRV-cut-cat/MDC2018a/art/e0/89/sim.mu2e.PS-CRV-cut-cat.MDC2018a.001002_00000005.art", -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/PS-CRV-cut-cat/MDC2018a/art/64/02/sim.mu2e.PS-CRV-cut-cat.MDC2018a.001002_00000010.art", -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/PS-CRV-cut-cat/MDC2018a/art/08/42/sim.mu2e.PS-CRV-cut-cat.MDC2018a.001002_00000015.art", -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/PS-CRV-cut-cat/MDC2018a/art/2b/8a/sim.mu2e.PS-CRV-cut-cat.MDC2018a.001002_00000000.art", -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/PS-CRV-cut-cat/MDC2018a/art/3e/99/sim.mu2e.PS-CRV-cut-cat.MDC2018a.001002_00000020.art" -] -physics.filters.TSMixerCRV.fileNames : [ -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/TS-CRV-cat-cat/MDC2018a/art/95/f1/sim.mu2e.TS-CRV-cat-cat.MDC2018a.001002_00000005.art", -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/TS-CRV-cat-cat/MDC2018a/art/bd/83/sim.mu2e.TS-CRV-cat-cat.MDC2018a.001002_00000000.art", -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/TS-CRV-cat-cat/MDC2018a/art/b1/55/sim.mu2e.TS-CRV-cat-cat.MDC2018a.001002_00000015.art", -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/TS-CRV-cat-cat/MDC2018a/art/02/db/sim.mu2e.TS-CRV-cat-cat.MDC2018a.001002_00000010.art", -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/TS-CRV-cat-cat/MDC2018a/art/4b/6d/sim.mu2e.TS-CRV-cat-cat.MDC2018a.001002_00000020.art" -] -physics.filters.DSMixerCRV.fileNames : [ -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/DS-CRV-cut-cat/MDC2018a/art/40/7d/sim.mu2e.DS-CRV-cut-cat.MDC2018a.001002_00000010.art", -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/DS-CRV-cut-cat/MDC2018a/art/56/3e/sim.mu2e.DS-CRV-cut-cat.MDC2018a.001002_00000005.art", -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/DS-CRV-cut-cat/MDC2018a/art/3c/c3/sim.mu2e.DS-CRV-cut-cat.MDC2018a.001002_00000015.art", -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/DS-CRV-cut-cat/MDC2018a/art/97/c7/sim.mu2e.DS-CRV-cut-cat.MDC2018a.001002_00000000.art", -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/DS-CRV-cut-cat/MDC2018a/art/37/74/sim.mu2e.DS-CRV-cut-cat.MDC2018a.001002_00000020.art" -] -physics.filters.ootMixerTrkCal.fileNames : [ -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/oot-TrkCal-cat-cat/MDC2018a/art/32/29/sim.mu2e.oot-TrkCal-cat-cat.MDC2018a.001002_00000440.art", -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/oot-TrkCal-cat-cat/MDC2018a/art/2d/5b/sim.mu2e.oot-TrkCal-cat-cat.MDC2018a.001002_00000330.art", -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/oot-TrkCal-cat-cat/MDC2018a/art/23/cc/sim.mu2e.oot-TrkCal-cat-cat.MDC2018a.001002_00000420.art" -] -physics.filters.neutronMixerTrkCal.fileNames : [ -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/neutron-TrkCal-cat/MDC2018a/art/13/c9/sim.mu2e.neutron-TrkCal-cat.MDC2018a.001002_00022100.art" -] -physics.filters.dioMixerTrkCal.fileNames : [ -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/dio-TrkCal-cat/MDC2018a/art/38/93/sim.mu2e.dio-TrkCal-cat.MDC2018a.001002_00012282.art" -] -physics.filters.photonMixerTrkCal.fileNames : [ -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/photon-TrkCal-cat/MDC2018a/art/df/8d/sim.mu2e.photon-TrkCal-cat.MDC2018a.001002_00002376.art" -] -physics.filters.flashMixerTrkCal.fileNames : [ -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/DS-flash-TrkCal-cut-cat/MDC2018a/art/5e/27/sim.mu2e.DS-flash-TrkCal-cut-cat.MDC2018a.001002_00044820.art", -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/DS-flash-TrkCal-cut-cat/MDC2018a/art/2e/64/sim.mu2e.DS-flash-TrkCal-cut-cat.MDC2018a.001002_00012820.art" -] -physics.filters.protonMixerTrkCal.fileNames : [ -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/proton-TrkCal/MDC2018a/art/10/eb/sim.mu2e.proton-TrkCal.MDC2018a.001002_00000140.art" -] -physics.filters.deuteronMixerTrkCal.fileNames : [ -"/pnfs/mu2e/tape/phy-sim/sim/mu2e/deuteron-TrkCal/MDC2018a/art/a6/b1/sim.mu2e.deuteron-TrkCal.MDC2018a.001002_00000048.art" -] -services.TFileService.fileName: "nts.owner.val-ceMixDigi.dsconf.seq.root" -outputs.Output.fileName : "dig.owner.val-ceMixDigi.dsconf.seq.art" -mu2emetadata.fcl.prologkeys: [ ] -mu2emetadata.fcl.inkeys: [ "physics.filters.ootMixerCRV.fileNames", "physics.filters.neutronMixerCRV.fileNames", "physics.filters.dioMixerCRV.fileNames", "physics.filters.photonMixerCRV.fileNames", "physics.filters.PSMixerCRV.fileNames", "physics.filters.TSMixerCRV.fileNames", "physics.filters.DSMixerCRV.fileNames", "physics.filters.ootMixerTrkCal.fileNames", "physics.filters.neutronMixerTrkCal.fileNames", "physics.filters.dioMixerTrkCal.fileNames", "physics.filters.photonMixerTrkCal.fileNames", "physics.filters.flashMixerTrkCal.fileNames", "physics.filters.protonMixerTrkCal.fileNames", "physics.filters.deuteronMixerTrkCal.fileNames" ] -mu2emetadata.fcl.outkeys: [ "services.TFileService.fileName", "outputs.Output.fileName" ] -# End code added by generate_fcl: -#---------------------------------------------------------------- From 349adb13f82faf1d745e3db462ce91255fa65ebb Mon Sep 17 00:00:00 2001 From: David Nathan Brown Date: Wed, 29 Sep 2021 00:03:14 -0500 Subject: [PATCH 13/47] Fix typo --- JobConfig/beam/prolog.fcl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/JobConfig/beam/prolog.fcl b/JobConfig/beam/prolog.fcl index 6845a9d0..c949a759 100644 --- a/JobConfig/beam/prolog.fcl +++ b/JobConfig/beam/prolog.fcl @@ -3,7 +3,7 @@ # BEGIN_PROLOG -beam: { +Beam: { producers: { From feb0945173b367194375032967774a5209d99aab Mon Sep 17 00:00:00 2001 From: David Nathan Brown Date: Wed, 29 Sep 2021 01:15:00 -0500 Subject: [PATCH 14/47] more cleanup. Split gen_Digitize into gen_OnSpill and gen_OffSpill --- JobConfig/digitize/OffSpill.fcl | 3 +++ JobConfig/primary/CeMLeadingLog.fcl | 10 ---------- JobConfig/primary/CePLeadingLog.fcl | 10 ---------- JobConfig/primary/CeplusEndpoint.fcl | 12 ------------ JobConfig/primary/DIOtail.fcl | 10 ---------- JobConfig/primary/flatE.fcl | 15 --------------- JobConfig/primary/flatInternalRMC.fcl | 16 ---------------- JobConfig/primary/flatInternalRPC.fcl | 18 ------------------ JobConfig/primary/flatmugamma.fcl | 11 ----------- JobConfig/primary/flatpigamma.fcl | 19 ------------------- JobConfig/primary/flatproton.fcl | 24 ------------------------ JobConfig/primary/proton.fcl | 25 ------------------------- MDC2020/gen_Digitize.sh | 10 ---------- MDC2020/gen_OffSpill.sh | 24 ++++++++++++++++++++++++ MDC2020/gen_OnSpill.sh | 24 ++++++++++++++++++++++++ 15 files changed, 51 insertions(+), 180 deletions(-) delete mode 100644 JobConfig/primary/CeMLeadingLog.fcl delete mode 100644 JobConfig/primary/CePLeadingLog.fcl delete mode 100644 JobConfig/primary/CeplusEndpoint.fcl delete mode 100644 JobConfig/primary/DIOtail.fcl delete mode 100644 JobConfig/primary/flatE.fcl delete mode 100644 JobConfig/primary/flatInternalRMC.fcl delete mode 100644 JobConfig/primary/flatInternalRPC.fcl delete mode 100644 JobConfig/primary/flatmugamma.fcl delete mode 100644 JobConfig/primary/flatpigamma.fcl delete mode 100644 JobConfig/primary/flatproton.fcl delete mode 100644 JobConfig/primary/proton.fcl delete mode 100755 MDC2020/gen_Digitize.sh create mode 100755 MDC2020/gen_OffSpill.sh create mode 100755 MDC2020/gen_OnSpill.sh diff --git a/JobConfig/digitize/OffSpill.fcl b/JobConfig/digitize/OffSpill.fcl index 62ce9537..5dd1861a 100644 --- a/JobConfig/digitize/OffSpill.fcl +++ b/JobConfig/digitize/OffSpill.fcl @@ -6,4 +6,7 @@ #include "Offline/gen/fcl/Trigger/OffSpillTrigMenu/OffSpillTrigMenu.fcl" # setthe event timing for OffSpill physics.producers.EWMProducer.SpillType : 0 +# redefine 'triggerable' to include straight tracks and require more digis +physics.filters.triggerable.maxparticlemom : 1e7 +physics.filters.triggerable.MinNDigis : 20 diff --git a/JobConfig/primary/CeMLeadingLog.fcl b/JobConfig/primary/CeMLeadingLog.fcl deleted file mode 100644 index 2710bf9b..00000000 --- a/JobConfig/primary/CeMLeadingLog.fcl +++ /dev/null @@ -1,10 +0,0 @@ -# -# Radiative Ce- spectrum, based on doc 7615 spectrum -# -#include "Production/JobConfig/primary/Primary.fcl" -# set the generator -physics.producers.generate : @local::EventGenerator.producers.CeMLeadingLog -# set the stops. This should go away with art-based muon stops FIXME! -physics.producers.generate.muonStops.inputFiles : [ "mergedMuonStops/nts.mu2e.DS-TGTstops.MDC2018a.001002_00000000.root" ] -# customize the output -outputs.Output.fileName: "dts.owner.CeMLeadingLog.version.sequencer.art" diff --git a/JobConfig/primary/CePLeadingLog.fcl b/JobConfig/primary/CePLeadingLog.fcl deleted file mode 100644 index 1a64bf28..00000000 --- a/JobConfig/primary/CePLeadingLog.fcl +++ /dev/null @@ -1,10 +0,0 @@ -# -# Radiative Ce- spectrum, based on doc 7615 spectrum -# -#include "Production/JobConfig/primary/Primary.fcl" -# set the generator -physics.producers.generate : @local::EventGenerator.producers.CePLeadingLog -# set the stops. This should go away with art-based muon stops FIXME! -physics.producers.generate.muonStops.inputFiles : [ "mergedMuonStops/nts.mu2e.DS-TGTstops.MDC2018a.001002_00000000.root" ] -# customize the output -outputs.Output.fileName: "dts.owner.CePLeadingLog.version.sequencer.art" diff --git a/JobConfig/primary/CeplusEndpoint.fcl b/JobConfig/primary/CeplusEndpoint.fcl deleted file mode 100644 index bc7e146c..00000000 --- a/JobConfig/primary/CeplusEndpoint.fcl +++ /dev/null @@ -1,12 +0,0 @@ -# -# mono-energetic e+ at the Al Ce endpoint without background mixing -# -# original author: Dave Brown, LBNL -# -#include "Production/JobConfig/primary/Primary.fcl" -# set the generator -physics.producers.generate : @local::CeplusEndpointGun -# set the stops. This should go away with art-based muon stops FIXME! -physics.producers.generate.muonStops.inputFiles : [ "mergedMuonStops/nts.mu2e.DS-TGTstops.MDC2018a.001002_00000000.root" ] -# customize the output -outputs.Output.fileName: "dts.owner.CeplusEndpoint.version.sequencer.art" diff --git a/JobConfig/primary/DIOtail.fcl b/JobConfig/primary/DIOtail.fcl deleted file mode 100644 index 8190abe0..00000000 --- a/JobConfig/primary/DIOtail.fcl +++ /dev/null @@ -1,10 +0,0 @@ -# -# Radiative DIO spectrum far tail, based on doc 7615 spectrum -# -#include "Production/JobConfig/primary/Primary.fcl" -# set the generator -physics.producers.generate : @local::EventGenerator.producers.dioalll -# set the stops. This should go away with art-based muon stops FIXME! -physics.producers.generate.muonStops.inputFiles : [ "mergedMuonStops/nts.mu2e.DS-TGTstops.MDC2018a.001002_00000000.root" ] -# customize the output -outputs.Output.fileName: "dts.owner.DIOtail.version.sequencer.art" diff --git a/JobConfig/primary/flatE.fcl b/JobConfig/primary/flatE.fcl deleted file mode 100644 index e17e6c71..00000000 --- a/JobConfig/primary/flatE.fcl +++ /dev/null @@ -1,15 +0,0 @@ -# generate flat particles from stopped muons and produce digis. this is WITHOUT MIXING - -#include "Production/JobConfig/primary/Primary.fcl" -# set the generator -physics.producers.generate : { - module_type: StoppedParticleReactionGun - verbosityLevel : 1 - muonStops: @local::mu2e.tgtMuonStops - physics: { - spectrumShape: flat - spectrumVariable: totalEnergy - } -} -# set the stops. This should go away with art-based muon stops FIXME! -physics.producers.generate.muonStops.inputFiles : [ "mergedMuonStops/nts.mu2e.DS-TGTstops.MDC2018a.001002_00000000.root" ] diff --git a/JobConfig/primary/flatInternalRMC.fcl b/JobConfig/primary/flatInternalRMC.fcl deleted file mode 100644 index 1531306d..00000000 --- a/JobConfig/primary/flatInternalRMC.fcl +++ /dev/null @@ -1,16 +0,0 @@ -# -# internal RMC with a flat virtual photon energy spectrum -# -#include "Production/JobConfig/primary/Primary.fcl" -# set the generator -physics.producers.generate : @local::EventGenerator.producers.RMCGun -# set the stops. This should go away with art-based muon stops FIXME! -physics.producers.generate.muonStops.inputFiles : [ "mergedMuonStops/nts.mu2e.DS-TGTstops.MDC2018a.001002_00000000.root" ] -physics.producers.generate.physics.generateIntConversion : 1 -physics.producers.generate.physics.spectrumShape : "flat" -physics.producers.generate.physics.elow : 40.0 -physics.filters.DetStepFilter.MinimumPartMom : 40.0 -physics.producers.FindMCPrimary.PrimaryGenIds : ["InternalRMC"] -# customize the output -outputs.Output.fileName: "dts.owner.flatInternalRMC.version.sequencer.art" - diff --git a/JobConfig/primary/flatInternalRPC.fcl b/JobConfig/primary/flatInternalRPC.fcl deleted file mode 100644 index 8a207051..00000000 --- a/JobConfig/primary/flatInternalRPC.fcl +++ /dev/null @@ -1,18 +0,0 @@ -# -# internal RPC with a flat virtual photon energy spectrum -# -#include "Production/JobConfig/primary/Primary.fcl" -# set the generator -physics.producers.generate : @local::EventGenerator.producers.RPCGun -# set the stops. This should go away with art-based muon stops FIXME! -physics.producers.generate.muonStops.inputFiles : [ "mergedMuonStops/nts.mu2e.DS-TGTstops.MDC2018a.001002_00000000.root" ] -# set PRC parameters -physics.producers.generate.physics.generateIntConversion : 1 -physics.producers.generate.physics.spectrumShape : "flat" -physics.producers.generate.physics.elow : 40.0 -physics.filters.DigiFilter.MinParticleMom : 40.0 -physics.producers.FindMCPrimary.PrimaryGenIds : ["InternalRPC"] # be explicit, since this is a multi-particle primary -# -# customize the output -outputs.Output.fileName: "dts.owner.flatInternalRPC.version.sequencer.art" - diff --git a/JobConfig/primary/flatmugamma.fcl b/JobConfig/primary/flatmugamma.fcl deleted file mode 100644 index ce41ed96..00000000 --- a/JobConfig/primary/flatmugamma.fcl +++ /dev/null @@ -1,11 +0,0 @@ -# flat range of photons from muon stops to study external RMC background -#include "Production/JobConfig/primary/flatE.fcl" -physics.producers.generate.physics.genId : ExternalRMC -physics.producers.generate.physics.pdgId : 22 -physics.producers.generate.physics.elow : 80.0 // Mev -physics.producers.generate.physics.ehi : 105.0 // Mev -physics.filters.DetStepFilter.KeepPDG : [ 22 ] # only phootons -physics.filters.DetStepFilter.MinimumTrkSteps : 10000 # disable -outputs.Output.fileName: "dts.owner.flatmugamma.version.sequencer.art" - - diff --git a/JobConfig/primary/flatpigamma.fcl b/JobConfig/primary/flatpigamma.fcl deleted file mode 100644 index c8e675cc..00000000 --- a/JobConfig/primary/flatpigamma.fcl +++ /dev/null @@ -1,19 +0,0 @@ -# flat range of photons from pion stops to study external RPC background - -#include "Production/JobConfig/primary/Primary.fcl" -# set the generator -physics.producers.generate : { - module_type: RPCGun - verbosityLevel : 1 - physics : { - spectrumShape : flat - elow : 80.0 // Mev - ehi : 140.0 // Mev - } - pionStops : { - treeName : "stoppedPionDumper/stops" - branchName : "stops" - inputFiles : @nil # replace with valid pion stops FIXME! - } -} -outputs.Output.fileName: "dts.owner.flatpigamma.version.sequencer.art" diff --git a/JobConfig/primary/flatproton.fcl b/JobConfig/primary/flatproton.fcl deleted file mode 100644 index 95168f8e..00000000 --- a/JobConfig/primary/flatproton.fcl +++ /dev/null @@ -1,24 +0,0 @@ -# -# protons from muon nuclear capture -# -# original author: Dave Brown, LBNL -# -#include "Production/JobConfig/primary/Primary.fcl" -# set the generator -physics.producers.generate : { - module_type: StoppedParticleReactionGun - verbosityLevel : 1 - muonStops: @local::mu2e.tgtMuonStops - physics: { - pdgId : 2212 - genId : muonCapture - spectrumShape: flat - spectrumVariable: kineticEnergy - elow : 0.0 // Mev - ehi : 105.0 // Mev - } -} -physics.producers.generate.muonStops.inputFiles : [ "mergedMuonStops/nts.mu2e.DS-TGTstops.MDC2018a.001002_00000000.root" ] -physics.filters.DetStepFilter.KeepPDG : [ 2212 ] -# customize the output -outputs.Output.fileName: "dts.owner.flatproton.version.sequencer.art" diff --git a/JobConfig/primary/proton.fcl b/JobConfig/primary/proton.fcl deleted file mode 100644 index 8469469b..00000000 --- a/JobConfig/primary/proton.fcl +++ /dev/null @@ -1,25 +0,0 @@ -# -# protons from muon nuclear capture -# -# original author: Dave Brown, LBNL -# -#include "Production/JobConfig/primary/Primary.fcl" -# set the generator -physics.producers.generate :{ - module_type: StoppedParticleReactionGun - verbosityLevel : 1 - muonStops: @local::mu2e.tgtMuonStops - physics: { - pdgId : 2212 - genId : muonCapture - spectrumShape: ejectedProtons - spectrumVariable: kineticEnergy - nbins: 1000 - } -} -physics.producers.generate.muonStops.inputFiles : [ "mergedMuonStops/nts.mu2e.DS-TGTstops.MDC2018a.001002_00000000.root" ] -physics.filters.DetStepFilter.KeepPDG : [ 2212 ] -# lower the thresolds for pileup generation -##include "JobConfig/primary/pileup.fcl" -# customize the output -outputs.Output.fileName: "dts.owner.proton.version.sequencer.art" diff --git a/MDC2020/gen_Digitize.sh b/MDC2020/gen_Digitize.sh deleted file mode 100755 index c8196ed7..00000000 --- a/MDC2020/gen_Digitize.sh +++ /dev/null @@ -1,10 +0,0 @@ -generate_fcl --dsconf="MDC2020$2" --dsowner=brownd --auto-description=Digi --include JobConfig/digitize/OnSpill.fcl \ ---inputs "$1$2.txt" --merge-factor=1 -for dirname in 000 001 002 003 004 005 006 007 008 009; do - if test -d $dirname; then - echo "found dir $dirname" - rm -rf "$1Digi_$dirname" - mv $dirname "$1Digi_$dirname" - fi -done - diff --git a/MDC2020/gen_OffSpill.sh b/MDC2020/gen_OffSpill.sh new file mode 100755 index 00000000..6465b1d4 --- /dev/null +++ b/MDC2020/gen_OffSpill.sh @@ -0,0 +1,24 @@ +#!/usr/bin/bash +# +# this script requires mu2etools, mu2efiletools and dhtools be setup +# It also requires the SimEfficiencies for the beam campaign be entered in the database +# $1 is the name of the primary (ie CeEndpoint, etc). +# $2 is the dataset description +# $3 is the campaign version of the input file. +# $4 is the campaign version of the output and primary file. +# $5 is the number of input collections to merge (merge factor) +rm template.fcl +samweb list-file-locations --schema=root --defname="dts.mu2e.$1.$2$4.art" | cut -f1 > $1$4.txt +echo '#include "Production/JobConfig/digitize/OffSpill.fcl"' >> template.fcl +echo outputs.TriggeredOutput.fileName: \"dig.owner.${1}OffSpillTriggered.version.sequencer.art\" >> template.fcl +echo outputs.UntriggeredOutput.fileName: \"dig.owner.${1}OffSpillUntriggered.version.sequencer.art\" >> template.fcl +generate_fcl --dsconf="$2$4" --dsowner=mu2e --description="$1OffSpill" --embed template.fcl \ + --inputs="$1$4.txt" --merge-factor=$5 +for dirname in 000 001 002 003 004 005 006 007 008 009; do + if test -d $dirname; then + echo "found dir $dirname" + rm -rf "$1OffSpill_$dirname" + mv $dirname "$1OffSpill_$dirname" + fi +done + diff --git a/MDC2020/gen_OnSpill.sh b/MDC2020/gen_OnSpill.sh new file mode 100755 index 00000000..e85194a6 --- /dev/null +++ b/MDC2020/gen_OnSpill.sh @@ -0,0 +1,24 @@ +#!/usr/bin/bash +# +# this script requires mu2etools, mu2efiletools and dhtools be setup +# It also requires the SimEfficiencies for the beam campaign be entered in the database +# $1 is the name of the primary (ie CeEndpoint, etc). +# $2 is the dataset description +# $3 is the campaign version of the input file. +# $4 is the campaign version of the output and primary file. +# $5 is the number of input collections to merge (merge factor) +rm template.fcl +samweb list-file-locations --schema=root --defname="dts.mu2e.$1.$2$4.art" | cut -f1 > $1$4.txt +echo '#include "Production/JobConfig/digitize/OnSpill.fcl"' >> template.fcl +echo outputs.TriggeredOutput.fileName: \"dig.owner.${1}OnSpillTriggered.version.sequencer.art\" >> template.fcl +echo outputs.UntriggeredOutput.fileName: \"dig.owner.${1}OnSpillUntriggered.version.sequencer.art\" >> template.fcl +generate_fcl --dsconf="$2$4" --dsowner=mu2e --description="$1OnSpill" --embed template.fcl \ + --inputs="$1$4.txt" --merge-factor=$5 +for dirname in 000 001 002 003 004 005 006 007 008 009; do + if test -d $dirname; then + echo "found dir $dirname" + rm -rf "$1OnSpill_$dirname" + mv $dirname "$1OnSpill_$dirname" + fi +done + From 9a447a1673cdecb3a4fb315493b14eda13f94a34 Mon Sep 17 00:00:00 2001 From: Rob Kutschke Date: Wed, 29 Sep 2021 09:46:06 -0500 Subject: [PATCH 15/47] Revert accidental merge of dummy PR#99. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index f4cb682d..7ac8e6fa 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,3 @@ # Production Scripts and fcl for collaboration production procedures -Extra line for a dummy PR. From 5d8ae57f9d4aefa93483a8be079d6291f060639e Mon Sep 17 00:00:00 2001 From: David Nathan Brown Date: Wed, 29 Sep 2021 11:42:07 -0500 Subject: [PATCH 16/47] Create a null MCPrimary in NoPrimary production --- JobConfig/mixing/NoPrimary.fcl | 6 ++---- JobConfig/mixing/prolog.fcl | 4 ++++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/JobConfig/mixing/NoPrimary.fcl b/JobConfig/mixing/NoPrimary.fcl index f1b9af1a..bc0cabb1 100644 --- a/JobConfig/mixing/NoPrimary.fcl +++ b/JobConfig/mixing/NoPrimary.fcl @@ -19,8 +19,8 @@ physics : { } analyzers: { @table::Digitize.analyzers } # same path for triggered, untriggered streams, but different selections - Triggered : [ PBISim, @sequence::Mixing.StepMixSequence, @sequence::Digitize.DigitizeSequence ] - Untriggered : [ PBISim, @sequence::Mixing.StepMixSequence, @sequence::Digitize.DigitizeSequence ] + Triggered : [ FindMCPrimary, PBISim, @sequence::Mixing.StepMixSequence, @sequence::Digitize.DigitizeSequence ] + Untriggered : [ FindMCPrimary, PBISim, @sequence::Mixing.StepMixSequence, @sequence::Digitize.DigitizeSequence ] EndPath : @local::Digitize.EndPath } # @@ -37,8 +37,6 @@ outputs : { # patch for no primary physics.producers.compressDigiMCs.extraStepPointMCTags : [] physics.producers.compressDigiMCs.mcTrajectoryTag : "" -physics.producers.compressDigiMCs.primaryParticleTag : "" -physics.producers.FindMCPrimary : @erase # add trigger paths #include "Offline/gen/fcl/Trigger/OnSpillTrigMenu/OnSpillTrigMenu.fcl" # set the event timing for Onspill diff --git a/JobConfig/mixing/prolog.fcl b/JobConfig/mixing/prolog.fcl index 77b77875..c04c04d9 100644 --- a/JobConfig/mixing/prolog.fcl +++ b/JobConfig/mixing/prolog.fcl @@ -46,6 +46,10 @@ Mixing : { extendedMean: @nil cutMax:@nil } +# null MCPrimary 'finder', used in NoPrimary + FindMCPrimary : { + module_type: NullMCPrimary + } } filters : { # mixers for muon stop pileup, beamflash pileup, and neutrals flash pileup From 013d5c6c94a67120cb94f81025ab8364aaf8bb71 Mon Sep 17 00:00:00 2001 From: David Nathan Brown Date: Wed, 29 Sep 2021 19:16:41 -0500 Subject: [PATCH 17/47] Use a single production version for input and output --- MDC2020/gen_OffSpill.sh | 11 +++++------ MDC2020/gen_OnSpill.sh | 11 +++++------ 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/MDC2020/gen_OffSpill.sh b/MDC2020/gen_OffSpill.sh index 6465b1d4..cdb5c0a9 100755 --- a/MDC2020/gen_OffSpill.sh +++ b/MDC2020/gen_OffSpill.sh @@ -4,16 +4,15 @@ # It also requires the SimEfficiencies for the beam campaign be entered in the database # $1 is the name of the primary (ie CeEndpoint, etc). # $2 is the dataset description -# $3 is the campaign version of the input file. -# $4 is the campaign version of the output and primary file. -# $5 is the number of input collections to merge (merge factor) +# $3 is the campaign version (input primary and output digi) +# $4 is the number of input collections to merge (merge factor) rm template.fcl -samweb list-file-locations --schema=root --defname="dts.mu2e.$1.$2$4.art" | cut -f1 > $1$4.txt +samweb list-file-locations --schema=root --defname="dts.mu2e.$1.$2$3.art" | cut -f1 > $1$3.txt echo '#include "Production/JobConfig/digitize/OffSpill.fcl"' >> template.fcl echo outputs.TriggeredOutput.fileName: \"dig.owner.${1}OffSpillTriggered.version.sequencer.art\" >> template.fcl echo outputs.UntriggeredOutput.fileName: \"dig.owner.${1}OffSpillUntriggered.version.sequencer.art\" >> template.fcl -generate_fcl --dsconf="$2$4" --dsowner=mu2e --description="$1OffSpill" --embed template.fcl \ - --inputs="$1$4.txt" --merge-factor=$5 +generate_fcl --dsconf="$2$3" --dsowner=mu2e --description="$1OffSpill" --embed template.fcl \ + --inputs="$1$3.txt" --merge-factor=$4 for dirname in 000 001 002 003 004 005 006 007 008 009; do if test -d $dirname; then echo "found dir $dirname" diff --git a/MDC2020/gen_OnSpill.sh b/MDC2020/gen_OnSpill.sh index e85194a6..9dfdb7e1 100755 --- a/MDC2020/gen_OnSpill.sh +++ b/MDC2020/gen_OnSpill.sh @@ -4,16 +4,15 @@ # It also requires the SimEfficiencies for the beam campaign be entered in the database # $1 is the name of the primary (ie CeEndpoint, etc). # $2 is the dataset description -# $3 is the campaign version of the input file. -# $4 is the campaign version of the output and primary file. -# $5 is the number of input collections to merge (merge factor) +# $3 is the campaign version (input primary and output digi) +# $4 is the number of input collections to merge (merge factor) rm template.fcl -samweb list-file-locations --schema=root --defname="dts.mu2e.$1.$2$4.art" | cut -f1 > $1$4.txt +samweb list-file-locations --schema=root --defname="dts.mu2e.$1.$2$3.art" | cut -f1 > $1$3.txt echo '#include "Production/JobConfig/digitize/OnSpill.fcl"' >> template.fcl echo outputs.TriggeredOutput.fileName: \"dig.owner.${1}OnSpillTriggered.version.sequencer.art\" >> template.fcl echo outputs.UntriggeredOutput.fileName: \"dig.owner.${1}OnSpillUntriggered.version.sequencer.art\" >> template.fcl -generate_fcl --dsconf="$2$4" --dsowner=mu2e --description="$1OnSpill" --embed template.fcl \ - --inputs="$1$4.txt" --merge-factor=$5 +generate_fcl --dsconf="$2$3" --dsowner=mu2e --description="$1OnSpill" --embed template.fcl \ + --inputs="$1$3.txt" --merge-factor=$4 for dirname in 000 001 002 003 004 005 006 007 008 009; do if test -d $dirname; then echo "found dir $dirname" From be70ba7a05c6f16705c6e287c333a29643b46e56 Mon Sep 17 00:00:00 2001 From: David Nathan Brown Date: Wed, 29 Sep 2021 19:25:43 -0500 Subject: [PATCH 18/47] Revert to separate input and output versions in digitization --- MDC2020/gen_OffSpill.sh | 9 +++++---- MDC2020/gen_OnSpill.sh | 9 +++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/MDC2020/gen_OffSpill.sh b/MDC2020/gen_OffSpill.sh index cdb5c0a9..cee35656 100755 --- a/MDC2020/gen_OffSpill.sh +++ b/MDC2020/gen_OffSpill.sh @@ -4,15 +4,16 @@ # It also requires the SimEfficiencies for the beam campaign be entered in the database # $1 is the name of the primary (ie CeEndpoint, etc). # $2 is the dataset description -# $3 is the campaign version (input primary and output digi) -# $4 is the number of input collections to merge (merge factor) +# $3 is the campaign version of the input (primary) file +# $4 is the campaign version of the output (digi) file. +# $5 is the number of input collections to merge (merge factor) rm template.fcl samweb list-file-locations --schema=root --defname="dts.mu2e.$1.$2$3.art" | cut -f1 > $1$3.txt echo '#include "Production/JobConfig/digitize/OffSpill.fcl"' >> template.fcl echo outputs.TriggeredOutput.fileName: \"dig.owner.${1}OffSpillTriggered.version.sequencer.art\" >> template.fcl echo outputs.UntriggeredOutput.fileName: \"dig.owner.${1}OffSpillUntriggered.version.sequencer.art\" >> template.fcl -generate_fcl --dsconf="$2$3" --dsowner=mu2e --description="$1OffSpill" --embed template.fcl \ - --inputs="$1$3.txt" --merge-factor=$4 +generate_fcl --dsconf="$2$4" --dsowner=mu2e --description="$1OffSpill" --embed template.fcl \ + --inputs="$1$3.txt" --merge-factor=$5 for dirname in 000 001 002 003 004 005 006 007 008 009; do if test -d $dirname; then echo "found dir $dirname" diff --git a/MDC2020/gen_OnSpill.sh b/MDC2020/gen_OnSpill.sh index 9dfdb7e1..dbba6e5b 100755 --- a/MDC2020/gen_OnSpill.sh +++ b/MDC2020/gen_OnSpill.sh @@ -4,15 +4,16 @@ # It also requires the SimEfficiencies for the beam campaign be entered in the database # $1 is the name of the primary (ie CeEndpoint, etc). # $2 is the dataset description -# $3 is the campaign version (input primary and output digi) -# $4 is the number of input collections to merge (merge factor) +# $3 is the campaign version of the input (primary) file +# $4 is the campaign version of the output (digi) file. +# $5 is the number of input collections to merge (merge factor) rm template.fcl samweb list-file-locations --schema=root --defname="dts.mu2e.$1.$2$3.art" | cut -f1 > $1$3.txt echo '#include "Production/JobConfig/digitize/OnSpill.fcl"' >> template.fcl echo outputs.TriggeredOutput.fileName: \"dig.owner.${1}OnSpillTriggered.version.sequencer.art\" >> template.fcl echo outputs.UntriggeredOutput.fileName: \"dig.owner.${1}OnSpillUntriggered.version.sequencer.art\" >> template.fcl -generate_fcl --dsconf="$2$3" --dsowner=mu2e --description="$1OnSpill" --embed template.fcl \ - --inputs="$1$3.txt" --merge-factor=$4 +generate_fcl --dsconf="$2$4" --dsowner=mu2e --description="$1OnSpill" --embed template.fcl \ + --inputs="$1$3.txt" --merge-factor=$5 for dirname in 000 001 002 003 004 005 006 007 008 009; do if test -d $dirname; then echo "found dir $dirname" From 6bc44621c6a86e7372c02feb3729a6514fd21c7f Mon Sep 17 00:00:00 2001 From: David Nathan Brown Date: Wed, 29 Sep 2021 19:38:54 -0500 Subject: [PATCH 19/47] Revert tighter GenParticle filter --- JobConfig/beam/prolog.fcl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/JobConfig/beam/prolog.fcl b/JobConfig/beam/prolog.fcl index c949a759..2fc6fb2e 100644 --- a/JobConfig/beam/prolog.fcl +++ b/JobConfig/beam/prolog.fcl @@ -287,7 +287,7 @@ Beam: { # SimKeptProducts : [ "keep art::EventIDs_*_*_*", - "keep mu2e::GenParticles_beamResampler_*_*", + "keep mu2e::GenParticles_*_*_*", "keep mu2e::GenEventCount_*_*_*", "keep mu2e::StatusG4_*_*_*" ] From b754c870ac5a07b4acdf3f8a21260a63ced158f7 Mon Sep 17 00:00:00 2001 From: Rob Kutschke Date: Thu, 30 Sep 2021 10:50:57 -0500 Subject: [PATCH 20/47] Complete the undoing of PR #99 that was only partially fixed with PR #103. --- JobConfig/beam/prolog.fcl | 2 +- JobConfig/cosmic/geom_cosmic.txt | 2 +- JobConfig/cosmic/geom_cosmic_current.txt | 2 +- README.md | 1 - 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/JobConfig/beam/prolog.fcl b/JobConfig/beam/prolog.fcl index e0fa93ff..db157672 100644 --- a/JobConfig/beam/prolog.fcl +++ b/JobConfig/beam/prolog.fcl @@ -221,7 +221,7 @@ Beam: { { type: plane normal: [ -1, 0, 0 ] point : [ 2800., 0, 0 ] }, // Make sure the charged particle beam reaches our DS2Vacuum stopping volume - {type: notInVolume pars:[TS2Vacuum, TS3Vacuum, TS4Vacuum, TS5Vacuum, Coll31, Coll32, Coll51, TS2InnerCryoShell, TS3InnerCryoShell, TS4InnerCryoShell, TS2CryoInsVac, TS3CryoInsVac, VirtualDetector_Coll31_In, VirtualDetector_Coll32_In, VirtualDetector_Coll31_Out, VirtualDetector_Coll32_Out, Coll31OutRecord, Coll32InRecord, Coll31OutRecord, VirtualDetector_TS4_Bend, VirtualDetector_Coll5_In, VirtualDetector_Coll5_Out, VirtualDetector_Coll5_OutSurf]}, + {type: notInVolume pars:[TS2Vacuum, TS3Vacuum, TS4Vacuum, TS5Vacuum, Coll31, Coll32, Coll51, TS2InnerCryoShell, TS3InnerCryoShell, TS4InnerCryoShell, TS2CryoInsVac, TS3CryoInsVac, PbarAbsDisk, PbarAbsWedge, VirtualDetector_Coll31_In, VirtualDetector_Coll32_In, VirtualDetector_Coll31_Out, VirtualDetector_Coll32_Out, Coll31OutRecord, Coll32InRecord, Coll31OutRecord, VirtualDetector_TS4_Bend, VirtualDetector_Coll5_In, VirtualDetector_Coll5_Out, VirtualDetector_Coll5_OutSurf]}, // This union splits the output of the above cuts // into two exclusive streams; Beam (charged particles entering the DS) and Neutrals ((mostly)neutral particles approaching the CRV diff --git a/JobConfig/cosmic/geom_cosmic.txt b/JobConfig/cosmic/geom_cosmic.txt index 3b35d192..5395ea6c 100644 --- a/JobConfig/cosmic/geom_cosmic.txt +++ b/JobConfig/cosmic/geom_cosmic.txt @@ -8,7 +8,7 @@ double world.minimalMargin.xmax = 500000; double world.minimalMargin.zmin = 500000; double world.minimalMargin.zmax = 500000; -// string dirt.beamline.berm.material = "G4_AIR"; +string dirt.beamline.berm.material = "G4_AIR"; // // This tells emacs to view this file in c++ mode. diff --git a/JobConfig/cosmic/geom_cosmic_current.txt b/JobConfig/cosmic/geom_cosmic_current.txt index ec060aae..3786fbe3 100644 --- a/JobConfig/cosmic/geom_cosmic_current.txt +++ b/JobConfig/cosmic/geom_cosmic_current.txt @@ -8,7 +8,7 @@ double world.minimalMargin.xmax = 500000; double world.minimalMargin.zmin = 500000; double world.minimalMargin.zmax = 500000; -// string dirt.beamline.berm.material = "G4_AIR"; +string dirt.beamline.berm.material = "G4_AIR"; // // This tells emacs to view this file in c++ mode. diff --git a/README.md b/README.md index 7ac8e6fa..45e07842 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,2 @@ # Production Scripts and fcl for collaboration production procedures - From bfcf76e80c3264b34441eeb2ca41754745597763 Mon Sep 17 00:00:00 2001 From: soleti Date: Thu, 30 Sep 2021 11:30:48 -0500 Subject: [PATCH 21/47] Corsika campaign fixes --- CampaignConfig/mdc2020_corsika.cfg | 86 +++++++++++++++--------------- CampaignConfig/mdc2020_corsika.ini | 7 +-- 2 files changed, 47 insertions(+), 46 deletions(-) diff --git a/CampaignConfig/mdc2020_corsika.cfg b/CampaignConfig/mdc2020_corsika.cfg index 37c78a23..76eef023 100644 --- a/CampaignConfig/mdc2020_corsika.cfg +++ b/CampaignConfig/mdc2020_corsika.cfg @@ -7,8 +7,11 @@ outdir_fcl = /pnfs/mu2e/scratch/datasets/phy-etc/cnf/mu2e/ outdir_sim = /pnfs/mu2e/scratch/datasets/phy-sim/sim/mu2e/ outdir_dts = /pnfs/mu2e/scratch/datasets/phy-sim/dts/mu2e/ logdir_bck = /pnfs/mu2e/scratch/datasets/phy-etc/bck/mu2e/ -desc = MDC2020j -release = MDC2020j +outdir_dig_tape = /pnfs/mu2e/tape/phy-sim/dig/mu2e/ +outdir_dts_tape = /pnfs/mu2e/tape/phy-sim/dts/mu2e/ +outdir_sim_tape = /pnfs/mu2e/tape/phy-sim/sim/mu2e/ +desc = MDC2020k +release = MDC2020k output_dataset = override_me artRoot_dataset = override_me histRoot_dataset = override_me @@ -42,7 +45,7 @@ append_condor_requirements='(TARGET.HAS_SINGULARITY=?=true)' debug = True find_setups = False source_1 = /cvmfs/mu2e.opensciencegrid.org/setupmu2e-art.sh -source_2 = /cvmfs/mu2e.opensciencegrid.org/Musings/SimJob/current/setup.sh +source_2 = /cvmfs/mu2e.opensciencegrid.org/Musings/SimJob/%(release)s/setup.sh setup_1 = dhtools setup_2 = ifdh_art v2_12_02 -q +e20:+prof setup_3 = ifdhc v2_5_14 @@ -69,7 +72,6 @@ add_to_dataset = cnf.%(submitter)s.%(stage_name)s.%(desc)s.fcl declare_metadata = True metadata_extractor = json add_location = True -filter_metadata = checksum add_metadata = file_format=fcl hash = 2 parallel = 5 @@ -79,21 +81,18 @@ hash_alg = sha256 addoutput = *.tbz add_to_dataset = bck.%(submitter)s.%(stage_name)s.%(desc)s.tbz declare_metadata = True -metadata_extractor = /cvmfs/mu2e.opensciencegrid.org/Musings/SimJob/current/link/Production/MDC2020/POMS/printJsonSave.sh +metadata_extractor = printJsonSave.sh add_location = True add_metadata = file_format=tbz -filter_metadata = checksum hash = 2 hash_alg = sha256 [job_output_2] addoutput = *.art -dest = %(outdir_sim)s declare_metadata = True -metadata_extractor = /cvmfs/mu2e.opensciencegrid.org/Musings/SimJob/current/link/Production/MDC2020/POMS/printJsonSave.sh +metadata_extractor = printJsonSave.sh add_location = True add_metadata = file_format=art -filter_metadata = checksum hash = 2 hash_alg = sha256 @@ -103,15 +102,13 @@ global.stage_name = CosmicDSStopsCORSIKA job_output.filter_metadata = parents,checksum job_output.dest = %(outdir_fcl)s/%(stage_name)s/%(desc)s/fcl/ -job_setup.prescript = /cvmfs/mu2e.opensciencegrid.org/Musings/SimJob/current/link/Production/MDC2020/POMS/fileNamesGenerator.sh 0 50 %(submitter)s > filenames.txt -executable.name = generate_fcl -executable.arg_1 = --description=CosmicDSStopsCORSIKA -executable.arg_2 = --dsconf=%(desc)s -executable.arg_3 = --dsowner=%(submitter)s -executable.arg_4 = --inputs=filenames.txt -executable.arg_5 = --merge-factor=1 -executable.arg_6 = --embed -executable.arg_7 = JobConfig/cosmic/S1DSStopsCORSIKA.fcl +job_setup.prescript = fileNamesGenerator.sh 0 50 %(submitter)s > filenames.txt +executable.name = true +executable_2.name = generate_fcl +executable_2.arg_4 = --inputs=filenames.txt +executable_2.arg_5 = --merge-factor=1 +executable_2.arg_6 = --include +executable_2.arg_7 = JobConfig/cosmic/S1DSStopsCORSIKA.fcl job_setup.ifdh_art = False @@ -130,7 +127,7 @@ job_setup.setup_9 = gcc v9_3_0 submit.n_files_per_job = 1 sam_consumer.limit = 1 submit.dataset = cnf.%(submitter)s.CosmicDSStopsCORSIKA.%(desc)s.fcl -executable.name = /cvmfs/mu2e.opensciencegrid.org/Musings/SimJob/current/link/Production/MDC2020/POMS/getFilename.sh +executable.name = getFilename.sh job_setup.postscript_1 = samweb file-lineage parents `basename ${fname}` > parents.txt job_setup.postscript_2 = CORSIKA_EXE=`which corsika77400Linux_QGSJET_fluka` job_setup.postscript_3 = DATDIR=`dirname $CORSIKA_EXE` @@ -139,7 +136,7 @@ job_setup.postscript_5 = sed -e "s:_DATDIR_:$DATDIR/:" -e "s:_DIRECT_:`pwd`/:" - job_setup.postscript_6 = cat corsika_conf.txt job_setup.postscript_7 = corsika77400Linux_QGSJET_fluka < corsika_conf.txt > corsika_log.txt job_setup.postscript_8 = mv DAT* `cat filename.txt` -job_setup.postscript_9 = /cvmfs/mu2e.opensciencegrid.org/Musings/SimJob/current/link/Production/MDC2020/POMS/loggedMu2e.sh --sam-data-tier=Output:sim -c `cat torun.txt` +job_setup.postscript_9 = loggedMu2e.sh -c `cat torun.txt` job_setup.multifile = False job_setup.setup_local = True @@ -151,22 +148,19 @@ job_output.dest = %(outdir_fcl)s/%(stage_name)s/%(desc)s/fcl/ job_setup.prescript = samweb list-file-locations --defname=sim.%(submitter)s.CosmicDSStopsCORSIKA.%(desc)s.art --schema=root | cut -f1 > inputs.txt job_setup.prescript_2 = echo '#include "JobConfig/common/artcat.fcl"' >> template.fcl job_setup.prescript_3 = echo 'outputs.out.fileName: "sim.DSOWNER.CosmicDSStopsCORSIKACat.DSCONF.SEQ.art"' >> template.fcl - -executable.name = generate_fcl -executable.arg_1 = --description=%(stage_name)s -executable.arg_2 = --dsconf=%(desc)s -executable.arg_3 = --dsowner=%(submitter)s -executable.arg_4 = --merge=50 -executable.arg_5 = --inputs=inputs.txt -executable.arg_6 = --embed -executable.arg_7 = template.fcl +executable.name = true +executable_2.name = generate_fcl +executable_2.arg_4 = --merge=50 +executable_2.arg_5 = --inputs=inputs.txt +executable_2.arg_6 = --embed +executable_2.arg_7 = template.fcl job_setup.ifdh_art = False [stage_generation_cat] global.stage_name = CosmicDSStopsCORSIKACat job_output_2.add_to_dataset = sim.%(submitter)s.CosmicDSStopsCORSIKACat.%(desc)s.art -job_output_2.dest = %(outdir_sim)s/CosmicDSStopsCORSIKACat/%(desc)s/art +job_output_2.dest = %(outdir_sim_tape)s/CosmicDSStopsCORSIKACat/%(desc)s/art job_output_1.dest = %(logdir_bck)s/%(stage_name)s/%(desc)s/tbz/ global.artRoot_dataset = sim.%(submitter)s.CosmicDSStopsCORSIKACat.%(desc)s.art @@ -185,23 +179,21 @@ global.stage_name = CosmicCORSIKA job_output.dest = %(outdir_fcl)s/%(stage_name)s/%(desc)s/fcl/ job_setup.prescript = samweb list-file-locations --defname=sim.%(submitter)s.CosmicDSStopsCORSIKACat.%(desc)s.art --schema=root | cut -f1 > inputs.txt -executable.name = generate_fcl -executable.arg_1 = --description=%(stage_name)s -executable.arg_2 = --dsconf=%(desc)s -executable.arg_3 = --dsowner=%(submitter)s -executable.arg_4 = --aux=1:physics.filters.cosmicResample.fileNames:inputs.txt -executable.arg_5 = --run-number=1205 -executable.arg_6 = --events-per-job=65000 -executable.arg_7 = --njobs=293 -executable.arg_8 = --embed -executable.arg_9 = JobConfig/cosmic/S2Resampler.fcl +executable.name = true +executable_2.name = generate_fcl +executable_2.arg_4 = --aux=1:physics.filters.cosmicResample.fileNames:inputs.txt +executable_2.arg_5 = --run-number=1205 +executable_2.arg_6 = --events-per-job=65000 +executable_2.arg_7 = --njobs=293 +executable_2.arg_8 = --embed +executable_2.arg_9 = JobConfig/cosmic/S2Resampler.fcl job_setup.postscript_5 = sed -i "s/\.Cosmic\./\.CosmicCORSIKA\./g" cnf.*.fcl job_setup.ifdh_art = False [stage_resampler] global.stage_name = CosmicCORSIKA job_output_2.add_to_dataset = dts.%(submitter)s.CosmicCORSIKA.%(desc)s.art -job_output_2.dest = %(outdir_dts)s/CosmicCORSIKA/%(desc)s/art +job_output_2.dest = %(outdir_dts_tape)s/CosmicCORSIKA/%(desc)s/art job_output_1.dest = %(logdir_bck)s/%(stage_name)s/%(desc)s/tbz/ global.artRoot_dataset = dts.%(submitter)s.CosmicCORSIKA.%(desc)s.art @@ -213,9 +205,17 @@ submit.n_files_per_job = 1 submit.memory = 4000MB sam_consumer.limit = 1 submit.dataset = cnf.%(submitter)s.CosmicCORSIKA.%(desc)s.fcl -executable.arg_1 = --sam-data-tier=Output:dts job_setup.multifile = False job_setup.setup_local = True +[stage_recovery] +submit.dataset=%(override_dataset)s + [executable] -name = /cvmfs/mu2e.opensciencegrid.org/Musings/SimJob/current/link/Production/MDC2020/POMS/loggedMu2e.sh +name = loggedMu2e.sh + +[executable_2] +name = true +arg_1 = --description=%(stage_name)s +arg_2 = --dsconf=%(desc)s +arg_3 = --dsowner=%(submitter)s diff --git a/CampaignConfig/mdc2020_corsika.ini b/CampaignConfig/mdc2020_corsika.ini index fb3859a3..0aeb1d00 100644 --- a/CampaignConfig/mdc2020_corsika.ini +++ b/CampaignConfig/mdc2020_corsika.ini @@ -15,7 +15,7 @@ param_overrides="[]" test_param_overrides="[]" merge_overrides=False login_setup=mu2epro_login -job_type=mu2e_production_jobtype +job_type=mu2e_cosmic_v2_production_jobtype stage_type=regular output_ancestor_depth=1 @@ -67,16 +67,17 @@ file_pattern_1 = %.art campaign_stage_1 = resampler_fcl file_pattern_1 = %.fcl -[job_type mu2e_production_jobtype] +[job_type corsika_mdc2020_jobtype] launch_script = fife_launch parameters = [["-c ", "/mu2e/app/users/srsoleti/workDir/Production/CampaignConfig/mdc2020_corsika.cfg"]] output_file_patterns = %.art recoveries = [["proj_status",[["-Osubmit.dataset=","%(dataset)s"]]]] -[job_type corsika_mdc2020_jobtype] +[job_type mu2e_cosmic_v2_production_jobtype] launch_script = fife_launch parameters = [["-c ", "/mu2e/app/users/srsoleti/workDir/Production/CampaignConfig/mdc2020_corsika.cfg"]] output_file_patterns = %.art +recoveries = [["proj_status",[["-Oglobal.override_dataset=','%(dataset)s"],["--stage ","recovery"]]]] [job_type generate_fcl_production_jobtype] launch_script = fife_launch From e47c40626ad5f286a6b52e81150aa9a37f3bfa06 Mon Sep 17 00:00:00 2001 From: sophieMu2e Date: Thu, 30 Sep 2021 13:07:04 -0500 Subject: [PATCH 22/47] made CeEndpoint plus fcls --- JobConfig/primary/CeEndpoint.fcl | 1 + JobConfig/primary/CeplusEndpoint.fcl | 21 ++++++++++++--------- JobConfig/reco/prolog.fcl | 5 +++-- Tests/CeEndpointSteps.fcl | 2 ++ Tests/CePlusEndpointSteps.fcl | 7 +++++++ 5 files changed, 25 insertions(+), 11 deletions(-) create mode 100644 Tests/CePlusEndpointSteps.fcl diff --git a/JobConfig/primary/CeEndpoint.fcl b/JobConfig/primary/CeEndpoint.fcl index fb54f69f..fce92efe 100644 --- a/JobConfig/primary/CeEndpoint.fcl +++ b/JobConfig/primary/CeEndpoint.fcl @@ -8,6 +8,7 @@ physics.producers.generate : { module_type : CeEndpoint inputSimParticles: TargetStopResampler stoppingTargetMaterial : "Al" + pdgId : -13 verbosity : 0 } physics.producers.FindMCPrimary.PrimaryProcess : "mu2eCeMinusEndpoint" diff --git a/JobConfig/primary/CeplusEndpoint.fcl b/JobConfig/primary/CeplusEndpoint.fcl index bc7e146c..33383a79 100644 --- a/JobConfig/primary/CeplusEndpoint.fcl +++ b/JobConfig/primary/CeplusEndpoint.fcl @@ -1,12 +1,15 @@ # -# mono-energetic e+ at the Al Ce endpoint without background mixing +# generate and produce Detector Steps from mono-energetic e+ using mu+ target stops # -# original author: Dave Brown, LBNL +# original author: Sophie Middleton # -#include "Production/JobConfig/primary/Primary.fcl" -# set the generator -physics.producers.generate : @local::CeplusEndpointGun -# set the stops. This should go away with art-based muon stops FIXME! -physics.producers.generate.muonStops.inputFiles : [ "mergedMuonStops/nts.mu2e.DS-TGTstops.MDC2018a.001002_00000000.root" ] -# customize the output -outputs.Output.fileName: "dts.owner.CeplusEndpoint.version.sequencer.art" +#include "Production/JobConfig/primary/TargetStopParticle.fcl" +physics.producers.generate : { + module_type : CeEndpoint + inputSimParticles: TargetStopResampler + stoppingTargetMaterial : "Al" + pdgId : 13 + verbosity : 0 +} +physics.producers.FindMCPrimary.PrimaryProcess : "mu2eCePlusEndpoint" +outputs.Output.fileName: "dts.owner.CePlusEndpoint.version.sequencer.art" diff --git a/JobConfig/reco/prolog.fcl b/JobConfig/reco/prolog.fcl index 3ffb64df..d93c3c4a 100644 --- a/JobConfig/reco/prolog.fcl +++ b/JobConfig/reco/prolog.fcl @@ -243,6 +243,7 @@ Reconstruction : { "keep mu2e::TimeClusters_MH*_*_*", "keep mu2e::CaloClusters_*_*_*", "keep mu2e::CaloHits_*_*_*", + "keep mu2e::ComboHit*_*_*_*", "keep mu2e::EventWindowMarker_*_*_*", "keep mu2e::ProtonBunchTime_*_*_*", "keep *_SelectRecoMC_*_*" @@ -297,8 +298,8 @@ Reconstruction.Output : { module_type : RootOutput SelectEvents : [ RecoPath ] fileName : @nil -# outputCommands : [ "keep *_*_*_*" ] - outputCommands : [ "drop *_*_*_*", + outputCommands : [ "keep *_*_*_*" ] + outputCommands : [ @sequence::Digitize.TriggerProducts, @sequence::Reconstruction.HighRecoProducts, @sequence::Reconstruction.MCRecoProducts] diff --git a/Tests/CeEndpointSteps.fcl b/Tests/CeEndpointSteps.fcl index b5759551..cbda7d41 100644 --- a/Tests/CeEndpointSteps.fcl +++ b/Tests/CeEndpointSteps.fcl @@ -5,3 +5,5 @@ physics.filters.TargetStopResampler.fileNames : [ ] physics.filters.TargetStopResampler.mu2e.MaxEventsToSkip: 0 outputs.Output.fileName : "dts.tester.CeEndpoint.Test.1.art" + +physics.producers.FindMCPrimary.PrimaryProcess : "mu2eCeMinusEndpoint" diff --git a/Tests/CePlusEndpointSteps.fcl b/Tests/CePlusEndpointSteps.fcl new file mode 100644 index 00000000..3ffab78d --- /dev/null +++ b/Tests/CePlusEndpointSteps.fcl @@ -0,0 +1,7 @@ +#include "Production/JobConfig/primary/CeplusEndpoint.fcl" +source.firstRun: 501 +physics.filters.TargetStopResampler.fileNames : [ + "root://fndca1.fnal.gov:1094/pnfs/fnal.gov/usr/mu2e/tape/phy-sim/sim/mu2e/MuplusStopsCat/MDC2020k/art/b7/a7/sim.mu2e.MuplusStopsCat.MDC2020k.001201_00000000.art" +] +physics.filters.TargetStopResampler.mu2e.MaxEventsToSkip: 0 +outputs.Output.fileName : "dts.tester.CePlusEndpoint.Test.1.art" From 22f1888c5f6ccb47b21850093b9ae74aaae92917 Mon Sep 17 00:00:00 2001 From: David Nathan Brown Date: Thu, 30 Sep 2021 13:10:40 -0500 Subject: [PATCH 23/47] Add StepPointMCs --- JobConfig/digitize/prolog.fcl | 90 +++++++++++++++++----------------- JobConfig/mixing/Mix.fcl | 27 ++-------- JobConfig/mixing/NoPrimary.fcl | 36 +++----------- JobConfig/mixing/epilog.fcl | 24 +++++++++ JobConfig/mixing/prolog.fcl | 3 +- 5 files changed, 82 insertions(+), 98 deletions(-) create mode 100644 JobConfig/mixing/epilog.fcl diff --git a/JobConfig/digitize/prolog.fcl b/JobConfig/digitize/prolog.fcl index 317ef75f..d2dab882 100644 --- a/JobConfig/digitize/prolog.fcl +++ b/JobConfig/digitize/prolog.fcl @@ -20,28 +20,28 @@ Digitize: { @table::CrvDAQPackage.producers compressDigiMCs : { - module_type : CompressDigiMCs - strawDigiMCTag : @local::DigiCompressionTags.commonStrawDigiMCTag - crvDigiMCTag : @local::DigiCompressionTags.commonCrvDigiMCTag - simParticleTags : [ @local::DigiCompressionTags.primarySimParticleTag ] - mcTrajectoryTag : @local::DigiCompressionTags.primarySimParticleTag - extraStepPointMCTags : @local::DigiCompressionTags.commonExtraStepPointMCTags - timeMapTags : [ ] - caloShowerStepTags : @local::DigiCompressionTags.primaryCaloShowerStepTags - caloShowerSimTag : @local::DigiCompressionTags.commonCaloShowerSimTag - caloShowerROTag : @local::DigiCompressionTags.commonCaloShowerROTag - primaryParticleTag : "FindMCPrimary" - keepAllGenParticles : true - rekeySimParticleCollection : true - noCompression : false + module_type : CompressDigiMCs + strawDigiMCTag : @local::DigiCompressionTags.commonStrawDigiMCTag + crvDigiMCTag : @local::DigiCompressionTags.commonCrvDigiMCTag + simParticleTags : [ @local::DigiCompressionTags.primarySimParticleTag ] + mcTrajectoryTag : @local::DigiCompressionTags.primarySimParticleTag + extraStepPointMCTags : @local::DigiCompressionTags.commonExtraStepPointMCTags + timeMapTags : [ ] + caloShowerStepTags : @local::DigiCompressionTags.primaryCaloShowerStepTags + caloShowerSimTag : @local::DigiCompressionTags.commonCaloShowerSimTag + caloShowerROTag : @local::DigiCompressionTags.commonCaloShowerROTag + primaryParticleTag : "FindMCPrimary" + keepAllGenParticles : true + rekeySimParticleCollection : true + noCompression : false - # Unused options - strawDigiMCIndexMapTag : "" - crvDigiMCIndexMapTag : "" - caloClusterMCTag : "" - crvCoincClusterMCTag : "" + # Unused options + strawDigiMCIndexMapTag : "" + crvDigiMCIndexMapTag : "" + caloClusterMCTag : "" + crvCoincClusterMCTag : "" } - PBISim : { + PBISim : { module_type: ProtonBunchIntensityFlat mean : 1 halfWidth : 0 @@ -75,8 +75,8 @@ Digitize: { @sequence::CrvDAQPackage.CrvDAQSequence, compressDigiMCs ] - TriggerProducts : [ - "keep mu2e::TriggerInfo_*_*_*", + TriggerProducts : [ + "keep mu2e::TriggerInfo_*_*_*", "keep art::TriggerResults_*_*_*", "keep mu2e::KalSeeds_TT*_*_*", "keep mu2e::HelixSeeds_TT*_*_*", @@ -85,29 +85,29 @@ Digitize: { "keep mu2e::ProtonBunchIntensity*_*_*_*" ] - DigiProducts : [ - "keep mu2e::StrawDigis_*_*_*", - "keep mu2e::StrawDigiADCWaveforms_*_*_*", - "keep mu2e::CaloDigis_*_*_*", - "keep mu2e::CrvDigis_*_*_*", - "keep mu2e::StatusG4_*_*_*", - "keep *_genCounter_*_*", - "keep mu2e::EventWindowMarker_*_*_*", - "keep mu2e::ProtonBunchTimeMC_*_*_*", - "keep mu2e::ProtonBunchTime_*_*_*", - "keep mu2e::EventWeight_*_*_*", - "keep *_compressDigiMCs_*_*" ] + DigiProducts : [ + "keep mu2e::StrawDigis_*_*_*", + "keep mu2e::StrawDigiADCWaveforms_*_*_*", + "keep mu2e::CaloDigis_*_*_*", + "keep mu2e::CrvDigis_*_*_*", + "keep mu2e::StatusG4_*_*_*", + "keep *_genCounter_*_*", + "keep mu2e::EventWindowMarker_*_*_*", + "keep mu2e::ProtonBunchTimeMC_*_*_*", + "keep mu2e::ProtonBunchTime_*_*_*", + "keep mu2e::EventWeight_*_*_*", + "keep *_compressDigiMCs_*_*" ] TriggeredOutput : { - module_type : RootOutput - SelectEvents : [ "*_trigger" ] # this selects events passing any trigger - fileName : @nil + module_type : RootOutput + SelectEvents : [ "*_trigger" ] # this selects events passing any trigger + fileName : @nil } UntriggeredOutput : { - module_type : RootOutput - RejectEvents : [ "*_trigger" ] # reject events passing any trigger - SelectEvents : [ "Untriggered" ] # require events pass 'Triggerable' filter - fileName : @nil + module_type : RootOutput + RejectEvents : [ "*_trigger" ] # reject events passing any trigger + SelectEvents : [ "Untriggered" ] # require events pass 'Triggerable' filter + fileName : @nil } EndSequence : [digiCompressionCheck] } @@ -115,12 +115,12 @@ Digitize.EndPath : [ @sequence::Digitize.EndSequence, TriggeredOutput, Untrigger # override the Trigger sequence to prepare digis Trigger.PrepareDigis: [ @sequence::CommonMC.DigiSim, @sequence::TrackerMC.DigiSim, @sequence::CaloMC.DigiSim ] Digitize.TriggeredOutput.outputCommands : [ "drop *_*_*_*", - @sequence::Digitize.DigiProducts, - @sequence::Digitize.TriggerProducts ] + @sequence::Digitize.DigiProducts, + @sequence::Digitize.TriggerProducts ] Digitize.UntriggeredOutput.outputCommands : [ "drop *_*_*_*", - @sequence::Digitize.DigiProducts, - @sequence::Digitize.TriggerProducts ] + @sequence::Digitize.DigiProducts, + @sequence::Digitize.TriggerProducts ] #outputs.Output.SelectEvents : # add output stream of 'good' events that fail the trigger; this requiers a new verison of art FIXME! diff --git a/JobConfig/mixing/Mix.fcl b/JobConfig/mixing/Mix.fcl index 05f626cb..ea07690f 100644 --- a/JobConfig/mixing/Mix.fcl +++ b/JobConfig/mixing/Mix.fcl @@ -32,31 +32,10 @@ outputs : { # #include "Production/JobConfig/common/epilog.fcl" #include "Production/JobConfig/digitize/epilog.fcl" -# add trigger paths -#include "Offline/gen/fcl/Trigger/OnSpillTrigMenu/OnSpillTrigMenu.fcl" -# set the event timing for Onspill -physics.producers.EWMProducer.SpillType : 1 -# minimal BField map -services.GeometryService.inputFile : "Offline/Mu2eG4/geom/geom_common_reco.txt" -# add primary and mixers to the list of step producers. Note the StrawDigi maker uses a general selector if no module is specified -physics.producers.makeSD.StrawGasStepModule : "" +#include "Production/JobConfig/mixing/epilog.fcl" +physics.producers.CrvPhotons.crvStepProcessNames : [ "","","","","" ] physics.producers.compressDigiMCs.simParticleTags : [compressDetStepMCs, @sequence::Mixing.StepMixSequence ] physics.producers.compressDigiMCs.caloShowerStepTags : [compressDetStepMCs, @sequence::Mixing.StepMixSequence ] physics.producers.CaloShowerROMaker.caloShowerStepCollection : [compressDetStepMCs, @sequence::Mixing.StepMixSequence ] physics.producers.CrvPhotons.crvStepModuleLabels : [ compressDetStepMCs, @sequence::Mixing.StepMixSequence ] -physics.producers.CrvPhotons.crvStepProcessNames : [ "","","","","" ] -# configure the mixin efficiences -physics.filters.EleBeamFlashMixer.mu2e.simStageEfficiencyTags: ["EleBeamCat", "EleBeamFlashCat" ] -physics.filters.MuBeamFlashMixer.mu2e.simStageEfficiencyTags: ["MuBeamCat", "MuBeamFlashCat" ] -physics.filters.NeutralsFlashMixer.mu2e.simStageEfficiencyTags: ["NeutralsCat", "NeutralsFlashCat" ] -physics.filters.MuStopPileupMixer.mu2e.simStageEfficiencyTags: ["MuBeamCat", "MuminusStopsCat", "MuStopPileupCat"] -physics.filters.MuStopPileupMixer.mu2e.meanEventsPerPOTFactors : [ 1000 ] # target stops are prescaled by 1000 (see Production/JobConfig/beam/MuBeamResampler.fcl) -# define the paths -physics.trigger_paths[0] : Triggered -physics.trigger_paths[1] : Untriggered -physics.end_paths : [ EndPath ] -# generic output: this is overwritten by the gen_Mix.sh script -outputs.TriggeredOutput.fileName: "dig.owner.MixTriggered.version.sequencer.art" -outputs.UntriggeredOutput.fileName: "dig.owner.MixUntriggered.version.sequencer.art" -# mixing requires the SimEfficiency tables -services.ProditionsService.simbookkeeper.useDb: true + diff --git a/JobConfig/mixing/NoPrimary.fcl b/JobConfig/mixing/NoPrimary.fcl index bc0cabb1..3627e4f1 100644 --- a/JobConfig/mixing/NoPrimary.fcl +++ b/JobConfig/mixing/NoPrimary.fcl @@ -19,8 +19,8 @@ physics : { } analyzers: { @table::Digitize.analyzers } # same path for triggered, untriggered streams, but different selections - Triggered : [ FindMCPrimary, PBISim, @sequence::Mixing.StepMixSequence, @sequence::Digitize.DigitizeSequence ] - Untriggered : [ FindMCPrimary, PBISim, @sequence::Mixing.StepMixSequence, @sequence::Digitize.DigitizeSequence ] + Triggered : [ NullMCPrimary, PBISim, @sequence::Mixing.StepMixSequence, @sequence::Digitize.DigitizeSequence ] + Untriggered : [ NullMCPrimary, PBISim, @sequence::Mixing.StepMixSequence, @sequence::Digitize.DigitizeSequence ] EndPath : @local::Digitize.EndPath } # @@ -33,36 +33,16 @@ outputs : { # #include "Production/JobConfig/common/epilog.fcl" #include "Production/JobConfig/digitize/epilog.fcl" +#include "Production/JobConfig/mixing/epilog.fcl" # # patch for no primary -physics.producers.compressDigiMCs.extraStepPointMCTags : [] +physics.producers.compressDigiMCs.extraStepPointMCTags : ["NullMCPrimary:virtualdetector", "NullMCPrimary:stoppingtarget", "NullMCPrimary:protonabsorber"] physics.producers.compressDigiMCs.mcTrajectoryTag : "" -# add trigger paths -#include "Offline/gen/fcl/Trigger/OnSpillTrigMenu/OnSpillTrigMenu.fcl" -# set the event timing for Onspill -physics.producers.EWMProducer.SpillType : 1 -# minimal BField map -services.GeometryService.inputFile : "Offline/Mu2eG4/geom/geom_common_reco.txt" -# add mixers to the list of step producers. Note the StrawDigi maker uses a general selector if no module is specified -physics.producers.makeSD.StrawGasStepModule : "" +physics.producers.compressDigiMCs.primaryParticleTag : "NullMCPrimary" + +physics.producers.CrvPhotons.crvStepProcessNames : [ "","","","" ] physics.producers.compressDigiMCs.simParticleTags : [@sequence::Mixing.StepMixSequence ] physics.producers.compressDigiMCs.caloShowerStepTags : [@sequence::Mixing.StepMixSequence ] physics.producers.CaloShowerROMaker.caloShowerStepCollection : [@sequence::Mixing.StepMixSequence ] physics.producers.CrvPhotons.crvStepModuleLabels : [ @sequence::Mixing.StepMixSequence ] -physics.producers.CrvPhotons.crvStepProcessNames : [ "","","","" ] -# configure the mixin efficiences -physics.filters.EleBeamFlashMixer.mu2e.simStageEfficiencyTags: ["EleBeamCat", "EleBeamFlashCat" ] -physics.filters.MuBeamFlashMixer.mu2e.simStageEfficiencyTags: ["MuBeamCat", "MuBeamFlashCat" ] -physics.filters.NeutralsFlashMixer.mu2e.simStageEfficiencyTags: ["NeutralsCat", "NeutralsFlashCat" ] -physics.filters.MuStopPileupMixer.mu2e.simStageEfficiencyTags: ["MuBeamCat", "MuminusStopsCat", "MuStopPileupCat"] -physics.filters.MuStopPileupMixer.mu2e.meanEventsPerPOTFactors : [ 1000 ] # target stops are presampled by 1000 -# define the paths -physics.trigger_paths[0] : Triggered -physics.trigger_paths[1] : Untriggered -physics.end_paths : [ EndPath ] -# no selection for untriggered output -outputs.UntriggeredOutput.SelectEvents : [] -# generic output: this is overwritten by gen_Mix.sh -outputs.TriggeredOutput.fileName: "dig.owner.NoPrimaryTriggered.version.sequencer.art" -outputs.UntriggeredOutput.fileName: "dig.owner.NoPrimaryUntriggered.version.sequencer.art" -services.ProditionsService.simbookkeeper.useDb: true + diff --git a/JobConfig/mixing/epilog.fcl b/JobConfig/mixing/epilog.fcl new file mode 100644 index 00000000..3d95bb3b --- /dev/null +++ b/JobConfig/mixing/epilog.fcl @@ -0,0 +1,24 @@ +# set the event timing for Onspill +physics.producers.EWMProducer.SpillType : 1 +# minimal BField map +services.GeometryService.inputFile : "Offline/Mu2eG4/geom/geom_common_reco.txt" +# add primary and mixers to the list of step producers. Note the StrawDigi maker uses a general selector if no module is specified +physics.producers.makeSD.StrawGasStepModule : "" +# configure the mixin efficiences +physics.filters.EleBeamFlashMixer.mu2e.simStageEfficiencyTags: ["EleBeamCat", "EleBeamFlashCat" ] +physics.filters.MuBeamFlashMixer.mu2e.simStageEfficiencyTags: ["MuBeamCat", "MuBeamFlashCat" ] +physics.filters.NeutralsFlashMixer.mu2e.simStageEfficiencyTags: ["NeutralsCat", "NeutralsFlashCat" ] +physics.filters.MuStopPileupMixer.mu2e.simStageEfficiencyTags: ["MuBeamCat", "MuminusStopsCat", "MuStopPileupCat"] +physics.filters.MuStopPileupMixer.mu2e.meanEventsPerPOTFactors : [ 1000 ] # target stops are prescaled by 1000 (see Production/JobConfig/beam/MuBeamResampler.fcl) +# define the paths +physics.trigger_paths[0] : Triggered +physics.trigger_paths[1] : Untriggered +physics.end_paths : [ EndPath ] +# generic output: this is overwritten by the gen_Mix.sh script +outputs.TriggeredOutput.fileName: "dig.owner.MixTriggered.version.sequencer.art" +outputs.UntriggeredOutput.fileName: "dig.owner.MixUntriggered.version.sequencer.art" +# mixing requires the SimEfficiency tables +services.ProditionsService.simbookkeeper.useDb: true +# add trigger paths +#include "Offline/gen/fcl/Trigger/OnSpillTrigMenu/OnSpillTrigMenu.fcl" + diff --git a/JobConfig/mixing/prolog.fcl b/JobConfig/mixing/prolog.fcl index c04c04d9..9957a86d 100644 --- a/JobConfig/mixing/prolog.fcl +++ b/JobConfig/mixing/prolog.fcl @@ -47,8 +47,9 @@ Mixing : { cutMax:@nil } # null MCPrimary 'finder', used in NoPrimary - FindMCPrimary : { + NullMCPrimary : { module_type: NullMCPrimary + ExtraSteps : [ "virtualdetector", "stoppingtarget", "protonabsorber" ] } } filters : { From 1879958163de58f0aef1410dddb27f00065f9e49 Mon Sep 17 00:00:00 2001 From: soleti Date: Thu, 30 Sep 2021 13:30:21 -0500 Subject: [PATCH 24/47] Adding CosmicLivetime back to list of kept products --- JobConfig/primary/prolog.fcl | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/JobConfig/primary/prolog.fcl b/JobConfig/primary/prolog.fcl index d0e586a5..9f981502 100644 --- a/JobConfig/primary/prolog.fcl +++ b/JobConfig/primary/prolog.fcl @@ -73,12 +73,12 @@ Primary: { } } } - + IPAStopResampler : { module_type: ResamplingMixer readMode : sequential wrapFiles : true - fileNames: @nil + fileNames: @nil mu2e: { writeEventIDs : true MaxEventsToSkip: @nil @@ -86,7 +86,7 @@ Primary: { products: { genParticleMixer: { mixingMap: [ [ "beamResampler", "" ] ] } simParticleMixer: { mixingMap: [ [ "IPAStopFilter", "" ] ] } - stepPointMCMixer: { mixingMap: [ [ "IPAStopFilter:virtualdetector", ":" ] ] } + stepPointMCMixer: { mixingMap: [ [ "IPAStopFilter:virtualdetector", ":" ] ] } volumeInfoMixer: { srInput: "compressPVIPAStops" evtOutInstanceName: "eventlevel" @@ -112,6 +112,7 @@ Primary: { "keep mu2e::SimParticleart::Ptrmu2e::MCTrajectorystd::map_compressDetStepMCs_*_*", "keep mu2e::GenParticles_compressDetStepMCs_*_*", "keep mu2e::PrimaryParticle_*_*_*", + "keep mu2e::CosmicLivetime_*_*_*", "keep art::EventIDs_*_*_*", "keep art::TriggerResults_*_*_*", "keep mu2e::StatusG4_*_*_*", From 7c338ae9d76d78179a142141933b8c92738b2ec9 Mon Sep 17 00:00:00 2001 From: David Nathan Brown Date: Thu, 30 Sep 2021 16:17:02 -0500 Subject: [PATCH 25/47] :config fixes for NoPrimary to support reco --- JobConfig/mixing/NoPrimary.fcl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/JobConfig/mixing/NoPrimary.fcl b/JobConfig/mixing/NoPrimary.fcl index 3627e4f1..5a69e9b6 100644 --- a/JobConfig/mixing/NoPrimary.fcl +++ b/JobConfig/mixing/NoPrimary.fcl @@ -37,7 +37,7 @@ outputs : { # # patch for no primary physics.producers.compressDigiMCs.extraStepPointMCTags : ["NullMCPrimary:virtualdetector", "NullMCPrimary:stoppingtarget", "NullMCPrimary:protonabsorber"] -physics.producers.compressDigiMCs.mcTrajectoryTag : "" +physics.producers.compressDigiMCs.mcTrajectoryTag : "NullMCPrimary" physics.producers.compressDigiMCs.primaryParticleTag : "NullMCPrimary" physics.producers.CrvPhotons.crvStepProcessNames : [ "","","","" ] From 466cc35635b2f4ff4b3be818b44aca5f9eabc2c6 Mon Sep 17 00:00:00 2001 From: sophieMu2e Date: Thu, 30 Sep 2021 18:41:08 -0500 Subject: [PATCH 26/47] works, not checked --- JobConfig/primary/CeEndpoint.fcl | 2 +- JobConfig/primary/CeplusEndpoint.fcl | 2 +- Tests/CeEndpointSteps.fcl | 3 +-- Tests/CePlusEndpointSteps.fcl | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/JobConfig/primary/CeEndpoint.fcl b/JobConfig/primary/CeEndpoint.fcl index fce92efe..2d1826d3 100644 --- a/JobConfig/primary/CeEndpoint.fcl +++ b/JobConfig/primary/CeEndpoint.fcl @@ -8,7 +8,7 @@ physics.producers.generate : { module_type : CeEndpoint inputSimParticles: TargetStopResampler stoppingTargetMaterial : "Al" - pdgId : -13 + pdgId : 11 verbosity : 0 } physics.producers.FindMCPrimary.PrimaryProcess : "mu2eCeMinusEndpoint" diff --git a/JobConfig/primary/CeplusEndpoint.fcl b/JobConfig/primary/CeplusEndpoint.fcl index 33383a79..b6835323 100644 --- a/JobConfig/primary/CeplusEndpoint.fcl +++ b/JobConfig/primary/CeplusEndpoint.fcl @@ -8,7 +8,7 @@ physics.producers.generate : { module_type : CeEndpoint inputSimParticles: TargetStopResampler stoppingTargetMaterial : "Al" - pdgId : 13 + pdgId : -11 verbosity : 0 } physics.producers.FindMCPrimary.PrimaryProcess : "mu2eCePlusEndpoint" diff --git a/Tests/CeEndpointSteps.fcl b/Tests/CeEndpointSteps.fcl index cbda7d41..4dcc1b4e 100644 --- a/Tests/CeEndpointSteps.fcl +++ b/Tests/CeEndpointSteps.fcl @@ -1,8 +1,7 @@ #include "Production/JobConfig/primary/CeEndpoint.fcl" source.firstRun: 501 physics.filters.TargetStopResampler.fileNames : [ - "/cvmfs/mu2e.opensciencegrid.org/DataFiles/Validation/sim.brownd.MuminusStops.MDC2020d.001202_00000000.art" -] +"/pnfs/mu2e/tape/phy-sim/sim/mu2e/MuminusStopsCat/MDC2020k/art/39/6a/sim.mu2e.MuminusStopsCat.MDC2020k.001201_00000000.art"] physics.filters.TargetStopResampler.mu2e.MaxEventsToSkip: 0 outputs.Output.fileName : "dts.tester.CeEndpoint.Test.1.art" diff --git a/Tests/CePlusEndpointSteps.fcl b/Tests/CePlusEndpointSteps.fcl index 3ffab78d..7d93e6b5 100644 --- a/Tests/CePlusEndpointSteps.fcl +++ b/Tests/CePlusEndpointSteps.fcl @@ -1,7 +1,7 @@ #include "Production/JobConfig/primary/CeplusEndpoint.fcl" source.firstRun: 501 physics.filters.TargetStopResampler.fileNames : [ - "root://fndca1.fnal.gov:1094/pnfs/fnal.gov/usr/mu2e/tape/phy-sim/sim/mu2e/MuplusStopsCat/MDC2020k/art/b7/a7/sim.mu2e.MuplusStopsCat.MDC2020k.001201_00000000.art" + "/pnfs/mu2e/tape/phy-sim/sim/mu2e/MuminusStopsCat/MDC2020k/art/39/6a/sim.mu2e.MuminusStopsCat.MDC2020k.001201_00000000.art" ] physics.filters.TargetStopResampler.mu2e.MaxEventsToSkip: 0 outputs.Output.fileName : "dts.tester.CePlusEndpoint.Test.1.art" From 9cd4dedf053af757f1b2b8bba47fb9e2ef194189 Mon Sep 17 00:00:00 2001 From: David Nathan Brown Date: Fri, 1 Oct 2021 00:34:11 -0500 Subject: [PATCH 27/47] Remove override of berm material --- JobConfig/cosmic/geom_cosmic.txt | 2 -- JobConfig/cosmic/geom_cosmic_current.txt | 2 -- 2 files changed, 4 deletions(-) diff --git a/JobConfig/cosmic/geom_cosmic.txt b/JobConfig/cosmic/geom_cosmic.txt index 5395ea6c..4b2bd4d5 100644 --- a/JobConfig/cosmic/geom_cosmic.txt +++ b/JobConfig/cosmic/geom_cosmic.txt @@ -8,8 +8,6 @@ double world.minimalMargin.xmax = 500000; double world.minimalMargin.zmin = 500000; double world.minimalMargin.zmax = 500000; -string dirt.beamline.berm.material = "G4_AIR"; - // // This tells emacs to view this file in c++ mode. // Local Variables: diff --git a/JobConfig/cosmic/geom_cosmic_current.txt b/JobConfig/cosmic/geom_cosmic_current.txt index 3786fbe3..e1c0347a 100644 --- a/JobConfig/cosmic/geom_cosmic_current.txt +++ b/JobConfig/cosmic/geom_cosmic_current.txt @@ -8,8 +8,6 @@ double world.minimalMargin.xmax = 500000; double world.minimalMargin.zmin = 500000; double world.minimalMargin.zmax = 500000; -string dirt.beamline.berm.material = "G4_AIR"; - // // This tells emacs to view this file in c++ mode. // Local Variables: From 4b15e8e6bdb7937785f8ad1e3eeb003f0ce0fc14 Mon Sep 17 00:00:00 2001 From: sophieMu2e Date: Fri, 1 Oct 2021 10:46:55 -0500 Subject: [PATCH 28/47] can produce ce plus --- JobConfig/primary/CeplusEndpoint.fcl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/JobConfig/primary/CeplusEndpoint.fcl b/JobConfig/primary/CeplusEndpoint.fcl index b6835323..9498d4cf 100644 --- a/JobConfig/primary/CeplusEndpoint.fcl +++ b/JobConfig/primary/CeplusEndpoint.fcl @@ -1,5 +1,5 @@ # -# generate and produce Detector Steps from mono-energetic e+ using mu+ target stops +# generate and produce Detector Steps from mono-energetic e+ using mu- target stops # # original author: Sophie Middleton # From 271b5275367f22fdd946a80f159413b38269b5bb Mon Sep 17 00:00:00 2001 From: sophieMu2e Date: Fri, 1 Oct 2021 11:36:40 -0500 Subject: [PATCH 29/47] reverted reco --- JobConfig/primary/CeEndpoint.fcl | 1 - JobConfig/reco/prolog.fcl | 4 +--- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/JobConfig/primary/CeEndpoint.fcl b/JobConfig/primary/CeEndpoint.fcl index 2d1826d3..8b1e6df4 100644 --- a/JobConfig/primary/CeEndpoint.fcl +++ b/JobConfig/primary/CeEndpoint.fcl @@ -11,5 +11,4 @@ physics.producers.generate : { pdgId : 11 verbosity : 0 } -physics.producers.FindMCPrimary.PrimaryProcess : "mu2eCeMinusEndpoint" outputs.Output.fileName: "dts.owner.CeEndpoint.version.sequencer.art" diff --git a/JobConfig/reco/prolog.fcl b/JobConfig/reco/prolog.fcl index d93c3c4a..e6fa449c 100644 --- a/JobConfig/reco/prolog.fcl +++ b/JobConfig/reco/prolog.fcl @@ -243,7 +243,6 @@ Reconstruction : { "keep mu2e::TimeClusters_MH*_*_*", "keep mu2e::CaloClusters_*_*_*", "keep mu2e::CaloHits_*_*_*", - "keep mu2e::ComboHit*_*_*_*", "keep mu2e::EventWindowMarker_*_*_*", "keep mu2e::ProtonBunchTime_*_*_*", "keep *_SelectRecoMC_*_*" @@ -298,8 +297,7 @@ Reconstruction.Output : { module_type : RootOutput SelectEvents : [ RecoPath ] fileName : @nil - outputCommands : [ "keep *_*_*_*" ] - outputCommands : [ + outputCommands : [ @sequence::Digitize.TriggerProducts, @sequence::Reconstruction.HighRecoProducts, @sequence::Reconstruction.MCRecoProducts] From c5661c01e50ff44e3820f0184d28264c8364c3f8 Mon Sep 17 00:00:00 2001 From: sophieMu2e Date: Fri, 1 Oct 2021 11:37:41 -0500 Subject: [PATCH 30/47] reverted reco --- JobConfig/reco/prolog.fcl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/JobConfig/reco/prolog.fcl b/JobConfig/reco/prolog.fcl index e6fa449c..3ffb64df 100644 --- a/JobConfig/reco/prolog.fcl +++ b/JobConfig/reco/prolog.fcl @@ -297,7 +297,8 @@ Reconstruction.Output : { module_type : RootOutput SelectEvents : [ RecoPath ] fileName : @nil - outputCommands : [ +# outputCommands : [ "keep *_*_*_*" ] + outputCommands : [ "drop *_*_*_*", @sequence::Digitize.TriggerProducts, @sequence::Reconstruction.HighRecoProducts, @sequence::Reconstruction.MCRecoProducts] From 7bcab30adca06b34773cfe8c6a525dbc89264668 Mon Sep 17 00:00:00 2001 From: sophieMu2e Date: Fri, 1 Oct 2021 12:00:45 -0500 Subject: [PATCH 31/47] reverted reco --- JobConfig/primary/CeEndpoint.fcl | 1 + Tests/CeEndpointSteps.fcl | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/JobConfig/primary/CeEndpoint.fcl b/JobConfig/primary/CeEndpoint.fcl index 8b1e6df4..2d1826d3 100644 --- a/JobConfig/primary/CeEndpoint.fcl +++ b/JobConfig/primary/CeEndpoint.fcl @@ -11,4 +11,5 @@ physics.producers.generate : { pdgId : 11 verbosity : 0 } +physics.producers.FindMCPrimary.PrimaryProcess : "mu2eCeMinusEndpoint" outputs.Output.fileName: "dts.owner.CeEndpoint.version.sequencer.art" diff --git a/Tests/CeEndpointSteps.fcl b/Tests/CeEndpointSteps.fcl index 4dcc1b4e..b8a5fe27 100644 --- a/Tests/CeEndpointSteps.fcl +++ b/Tests/CeEndpointSteps.fcl @@ -5,4 +5,3 @@ physics.filters.TargetStopResampler.fileNames : [ physics.filters.TargetStopResampler.mu2e.MaxEventsToSkip: 0 outputs.Output.fileName : "dts.tester.CeEndpoint.Test.1.art" -physics.producers.FindMCPrimary.PrimaryProcess : "mu2eCeMinusEndpoint" From 089c179115b19cc00d4dfbdcb047c91ba0eb873b Mon Sep 17 00:00:00 2001 From: sophieMu2e Date: Fri, 1 Oct 2021 16:05:16 -0500 Subject: [PATCH 32/47] attempt to fix failing jobs --- Validation/ceSimReco.fcl | 1 + 1 file changed, 1 insertion(+) diff --git a/Validation/ceSimReco.fcl b/Validation/ceSimReco.fcl index 2ed3e732..4f234653 100644 --- a/Validation/ceSimReco.fcl +++ b/Validation/ceSimReco.fcl @@ -21,6 +21,7 @@ physics: { module_type : CeEndpoint inputSimParticles: TargetStopResampler stoppingTargetMaterial : "Al" + pdgId : 11 verbosity : 0 } @table::Common.producers From b61f1aad6c02c0e22acadc07e948ceb553fa1ae9 Mon Sep 17 00:00:00 2001 From: sophieMu2e Date: Fri, 1 Oct 2021 16:09:07 -0500 Subject: [PATCH 33/47] removed gitignore extras --- RootOutput-902d-791d-8dad-8719.root | Bin 0 -> 57718 bytes RootOutput-ec54-9e95-1237-37d0.root | Bin 0 -> 57718 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 RootOutput-902d-791d-8dad-8719.root create mode 100644 RootOutput-ec54-9e95-1237-37d0.root diff --git a/RootOutput-902d-791d-8dad-8719.root b/RootOutput-902d-791d-8dad-8719.root new file mode 100644 index 0000000000000000000000000000000000000000..8b8045eefa0af776a37711c20bb93c9a165de73b GIT binary patch literal 57718 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 IfMk&W0r2tBr2qf` literal 0 HcmV?d00001 diff --git a/RootOutput-ec54-9e95-1237-37d0.root b/RootOutput-ec54-9e95-1237-37d0.root new file mode 100644 index 0000000000000000000000000000000000000000..6766f690524920e3b6f8ddac0301b1e57a2a98a0 GIT binary patch literal 57718 zcmeFa1ymf()~G$h;O;JiySoGicXxMp4UhnX2KV3|G>`Pd84s{ z9ErcLhiibNAlSh+z}C*z-x2HtkJs1LfJcIzy!||F1Hgg+d;ky#fPlep3Fz-X!%;8LOV8HJ*-_syz~5Ri$k8j{cGv%3#iPmV zDaslsf(>NlG!()ADizzGGF278s#*q$%8Ghif06!|SRFl8O<6rtu)3n@U;p*@soB}V z#;OJ?+J**TJ#AxE1q~EbGG=C=$GjK>$Gj zK>$GjK>$GjK>$GjK>$GjLEv8!xViri#5;%I|Noas5C;$h5Cjke5Cjke5Cjke5Cjke z5Cjke5Cjke5Cs08C4jj9|Nm^!ArwatKoCF>KoCF>KoCF>KoCF>KoCF>KoCF>_|FO4 ze(4bS`}>0&H{TER)q)FgKrt}zb96-4bPTXnfPXO%V5Wh77XTmv0)iL(ZEQB2@qKM< z@a=7o<-j&hHmj@qn%t@Zs$8lLfY&~JeEf=$4v`)rs4QiPxe!vabQIziZyPY>`v}OI znjG6Ena))br#ecyD_`w(8sK`|1KfTf38Voie8a}p!#Y8MXy}$bFQ2>%F^S}mWdZ=| z4{0vpIyKyUe-KD~`=vw9TTRdYrYXkFXAV_wzJhS0YA^sm{D-QpF%=qfKmn*%2*d&3pvcFUFLhO58M-*m;k{cMDatABvEU&xKRm_UFV=yxs9 zvcEx_ZucizUvBjY&Vvyyo>AV%@S5OvOVNd77 zhuXOMq|b!v1j;!Mlg9uIg^7Y9IP&q_>N1|44dg%?6KyRFwQ&x2B-I&ef_9gX*oT0K z2jW?QzV%4Wpj;ht`7#~-G*{crj&i^lTY6Qc+1^I(fCMCM-Jh%gF!A{mKw1#G1a*l8 zIe|gicDe}Pbu6vfb)Up0ycv z`S*%Hzc=}<$iX=%$XQhIk%P71bN{QYU&Tkof-66jGM?eeTcecmsw_k-7$N)Y%NkuEm4%7DWOAdKK*Ik=KR2As`bY(cVugaZ>bM2+7~>{o$ZWxSB&fI>@>D~QwQ8VvM<06T%F?d079-uhg{$8rU$gX z#r>Mgg>>C-_X&;g67sTH(+HF@nkjq7XcjrWD^u2)IVr-^FKLWNN_g;UoqLzY@|WBf zqWEDo^_0w_7YeAQp|N+bSA;_ELGW!36^%#^TGS(LV#nj%zNj?`u@5&vwm9hd;qJW4X@M3-Avbcvz) z>bb&P1mlyd`lfTT=!QmVdWRWSWI@&|swuGpR|C!`#tc{wU#(8l-R)V^g3?psla2UO(s4b4pa+HQ{DHxTJ!009)Xgdq11EU}oHJkT`cqQke2#X>vn%HLsZA z)s@T6%rU{a5UIK>jb7mcc9F0G@nZLMl2VqMb!bQN1(En`vRZ%pj4ye_%wuQ|YkC+j zp6pr+({x{~)C5x}1vkh`z2GJyKSgp2r{W4y$0`Nf1n zm9?bFp@HkWEW0sAnVE6(Hu|288WDM(@`*>gZg01%x+jfLH%`*5RD54JvdGf^(Pf-vYg^~Al^5ii zbeJp%v4@aa9u&(^()mZqMfd<>iy4STbcsb6Fx?^ZS3LH*4k!OOmR?<$_pkrJ3+;DD}{BDbdq);un;F+m#-AFuu#z8xa|8huyUQY za@{W{(U-!o`Ekk9$FYM0SPZ1!A8{=ua5bRjXJIU5C6qAY0ec?>1EU^g;%lTT2=nuj zRy1y=H3FJ6 zLS(6t+*d1lk{ViZ;4S~DuR!?9&-}_;X!@~IjjM1y-xL;FOs*o>qa3{S0Nj9*pM|xQ zi#1;M1y`EbNeACjqYMhHp3@#Wj)|YNwo-W#GjxJlVJGS|N#sJ~fFGCj8S7_V!95O2 z#!Gj#@~kS(P|<>LPTGi9Kc7?eLW!tqtUDda$)) z>Q9rpxw7R`B|OHlKiKoQSI|i`;oHPkzzBIH?qnzQiYc9B&=8P2xBk;$I&HJ{TwMgu zerignbC62*m$E&l5nYm~rM^6O0==BIpyOJ*@zou$?K_76EyiQzlv&R1TA9yh<`pVw zz7!^#_XBkY$q#GN*(Sl$gN9F_#SPOX4^L|LsH@LB0!EZB%!X~xMVa4=l{EVbH6JiE zH$^$xzvwx)!guxZ)~$c=&Pc=nUWk~P*CevdDRPH=a(=8MMK0;Q6_NBj9I{EG>lGRa ze6K3E@9Cp4p>As=8z5!bv$H7EvrN&mjG1b9NQkascFPaOY|KPOZ3q)ErRl1O&@+97 zY%)b(q+??bsw)gh4ysGW;|HQM1iwb}SA zuobBJg47Ot`CdiF_gfHZtiqlVFUE>3jjZ$aTXARQZC5KkbaOx1k5fBUlP=f-Cn9qUvT?A|bDXO+8FFzLQq2F1(Fq7Q zmv37Olm#9=MbFz}<6Fef`vut?ioQ>TH{M8(x@ONfz(N~fH^gEt|0B53)w8oaD#S{s zbL0M(?~N`taig-U_6)-@wf1osbd6^&Zm z39K<2)CDdy&h^War#G7*cpyjKXfnS-B;oY6x!cu~iKi`zflM^X#6sTGB7w^arFlT< zx$M)5k9zem{ez^Obq*IBMYNErH0z?Au#??g&kZ}q+u^8I1j!7| zn9P!5<>a&@n@Kjvyz0{#wR3vRT(SQu*Hz{UNy#2t?qhrN8j_Je#}df{UR<~xTx zGzW~{tnokYp}KF$k{;A)6~>Dg73IY4jXROMmEtJf+kG1G#`7VMbq9$;uNO$Scgy5K z6Frt9w=1^dqFw0HXAhC@)26Z?6KpRvhzHM6Q*6U9>`h9M^0O#0&E0x&rqxb?yClm4 zR<>w4K}6;Y4Sd-Tc^$_#(WVO8mj}&3<+XF0mgE+aTQ%JTBp;P8J0#ymP^CVZ5%l;J zE_<3zUtZag7d-v+jmQb%PoL|`*6^6t@4$Q_N=#E1zL*mcT!2i&I|4Tx+dd4p(z01E zSvSs%1)2u!a;L$(h1sqQpLEl=8QLW;!9LLCaE8#nisLJy?Mr+IEuSx#QB)sXDn)~i zel2^P^rYz~iqgNt)Vp9<{DIoyX%I3G!b3tM|ITQ4wvxSeIkJxi_V<%t8^Z~gDf$$C zMz6O2QDq;QDOhq5Z)&tcwM|KG&BT20=W!Dj{gQFaegxYJ4A9cg4bvC%HJi%``Y1hfqNG^}P!W4O@pIBdmgTC6fo6}_;+H+$` zG>D9$v3*E-+xZ<^H+fiRXA*nZWK7uPyZU?J=(bUkEbr#x9W7tRsmZL0%}-hj_m>hU zUZsHj4^avH9Fjmrog)^kw;3sLFqkr=qO z1!WnJ2#Oi_f{JD0-*i2wXu*AJiqdS?X`C*}5ZS?q?}wER?zN$yQQ#evJ#OC1UrJtf zLt*t6cG@OqzPAQcpCV0f3dpuPuaZ~Uer6I|b@vFIoeNbr(Uxv_UiS#RZJg$N*Ed`+^}LETQSu!jFUd=BWY?m>5b`Y_mXSny z&bCEApeRwD!(d>AjN=b6n+5%LTTN`19)9PAS8rlOUFO0GabIgni;1^|JveAN&+acj zUd&^k9$RLK5YE%CaVbsw{`M&T^n`1{`F*RQ1m`<^%x+i*;}7?HmK)r6v|K~bU4PPy z6gj1{7DTT34Nlj%^4||Al696+bQY>O;;8T^O4169b9zJSmQRT#R7XTOg^5*mhXGnr z4Y-pC_=qD=L%s3P&xSl2th7Pnoh%z#^Ti3HqKC7vy7B1Z;H@H3MGLz^TlEL_YCutb zIeRPW$Yp%%;0b<;pKQERj+ozuSHfwF{zh)F5=iq{B^*78xmF>A6Qg#A&ApuyYPa_48Gnt^2vXK&sLTZo4 zXE{bLXJ7et81mw?PF=CF^9q6FImi{_i!3wNQDTbx_SQqrYjrSuCd*f6>BaWIV)c?% zsooRl1(`p@{9g7mmO78W`Na@dQiFXb68jE7fR%2e^#1DeV2`w+<;XEYlO&Mn{n_%Q zcL$xSUo$5C-U#^ZZDdSYQj31h4PJd7GAYOGceJTryUAeii{SC1Y3<}#fE7nIjS-zI z)=RkzA60urCPJLJfylfCqiL~64Zcc~XWjVJt6v!jtaILHCoi4oug;fy?`?-XXc|~^tGF@S~g=?M_ZJZ4@_G|&6ZNeIp_U$l!9#Mi+mVE=Hsb0TAZ@lI`Q(28#FoH zi#A&}n^VEv(z`dYXH{;D?pylvlLSpUu6#5LDuMnET4f<-wTe%Kdv#5G=}t|@%xU_Q z+h|uw=8FvCAf-$slOdAD$K^PKoV?O%(YkHf$Kmiuy zT^osIi5?MZ12Qd*keWvPU(eB-jM?lK37THXZf3{4Fd`f$Z8%1b=uZ?LiMMmYGCGSN z4y)ba=5olQ@%4_=PC>ET^_;sH8yIkZhW@OW_?a`ovk9<2rCf;{x|0n-#{I?ys3Nf- zs6H`Dn6y6>WO!MX)$?wtmJ)1iz{w!{u%U_O(d8J04rf2GY?%Of!iBQqi@al%F1`z% zY6ZOwqnOT!Ty6zTo5Ll#XmiPqxmh&SXLNs6ZC6>HBe)X2l_}+VtNNh6kS*8^N}zz-7(iz!(7FQw1tko&mwLsinD%{ z9&?VmM~tVt-d!p0@$_aV#~9px;y>%d!K4wEF^?8_y5U-=&oY-Y~BgAh{nk&@> z)oJw@L`UtuivMyPMxohHk+}K|;^Sr0U-$YA`hdd&kyvR`QVH+)H$U$vItx~`&^l-d zk5J9QuuB;G?Y~-Fxf?lrTPK69eD!1MRq-HMm@a9adz~O zy0W(h1dp#43RyX&4YuVKzeh;q)mBG%Qge{oxN#~tX^;G(iB4ttfvjmy#%b8h6fn4e zy#6s$xWZcv&E)Ro0(s((ZxW)EE}n+^$3kzzbh=I$Z9e?szAVpstrB(g8b?Bg%}v^P zX7fnNLpnFA;S#51Vhg`MrRXzA&r!x_6(+jS2kMQ?GZuZ~%|P_WZROaw@-Kb)pkr5_DMy;pe8{w`N>aGq$g~bbO~H0WRxb{) z!xWW0z63?Rf5TyLEM>#p|*Z} zeKBSV9Ovg20dkss^uaiH<$ZpcnU+8jlIGxZCxu|w;xdfPr!$4%ZRbjiOwz~(bUVx= z4aE}g-AcMgp4%)Q>hEl2b6QYFm&OIJQBNC)v=j5_TSUF_rf_{iYvQpxdJgx1ETWOQ z=M!(fF5@@O$rh;&D`|YUwwhQTdI6(ELR;53RFk(kigICHjKBzcRoD@uO;&lP=6X52 zr0id2GK4e{s;ax%^ljxKw@${J88sc_E^hNxbU3R`v@$^W=7{;{)6|sP( zQ+{XA7KRMF&VHpGLGUm3;9vMJIv|@4aRU!2#=*y0^GNRahZq={_*e0Aoq{ zD)u6AiJ@o4KHUB&-kU%Ak`LRUe^zKZ6A7OEht_J)f|jp4#2)?roQuoCJIMQe2eXqS5GQW5!MToci9d%0rF zVX4#~Fzc-!j}hg>rx1tt8EhSG9Fs{5&FH+IvC(Zhq=%=Yu+BRa??RM{ZEjVgzaA})34-Ews;wQf^>XJ zWPNDi(@Xe=`f_~H4_r0|voN(Uv?i5;-Pol*5tKyGOMQiXXsi_RqzlW~%O5|Iiyi6x zl{2Lm^&vpi*YINdyFp$&kJHS@;(-lVRm7cK4=FOzQJx^wEK9Bje4YSf+t<$Q{n#v0 zzAxqZ_!kObOe*6!P}No?Gol$H28q5@#x_DiEXnvpr}~P!iTg_m2TSq6Pl2Yk#@qYgy4(g8u&RD;fH$IIw-lo-W_~G)3ID>X~aj{XkaD>N3oaO2zlc@)M{-Ap8?WvF7 z=KxkZ&JX6!_l|i{zIuFqbs{i|XUlsBG$s_iTc!Qwta4j#^7vG5$z=Qo6+yc?dwUYW zqEUKRMRbcIn)kCnni1O(PNU_u2RhfKRH#9%)rR4b1^Zbp1F}MESSCc$O`j;$p5|!W zQ+|mf-)reGVyrLUON|o(94P{%;{aicU)75Focqt;hDW@c=vsL&RP^f-o8*b}#Lv!D zPF4SI$rbt0Wu!OK&nWBr9$ZDfs&wo$>%egA?VNiv!2^*&)xP$}5A&#hJ?I*C}m#nWNpbVJCE z!Q#$+N>hz@POi=`aX$5^JG>Cp`_x03a+iOk2tQqu9yT7sKVW*GDdswGU@cOxzfz0Q zm&Wn}Rr8E+K1N&nkpKhMtc$(>27}XtUE#-1#G=^0R5NT>RB?V834NoI-Q0*=8Ur~! zLRsevwr@>;+V#qk?Nj`!rrUSkM_s(i{%K8{(p<&u&U&?7rZ}0VQKRKKI^&c4iBwKk z@gw8jRZhK_6Blmj;-=uc%}`T!EiIV$gz3@drrSCd2KS@QONxRYcU+cpTQ)6o!izOb z0+dudhb0eD3XqyqgtF{OM8_{tGP+ijCoZ*we$0XW1tRYWMCSj@GVcA^vPt*umCF^L z?ol7rL?6XO1g`s)jLIXg&Gz=JU)pBx4SfeYBUlB#f1d5kE%&v?7GOnkP)FtywDkM@ zj>>p=M)>3RWPt=t!FlD{?d7!U#l&hV2hAUqLXR09?}#$DH$PjCJ9tV)v4`pQ!npjv z3Q2$!z<0PL7n|abOc`hqwiS#{CE%b&BUvQlI`Gka$eJ6{lXgY=X>!fU}E`FNJT3b^i zoe_y(Qd_*wgL5u{CE58-H|wDXn(;%^@-K4+&b^AhpE#Bm8QzzcH_F5{uKaPewz@m^ z!K>1%MEz|+ic1*O<)a57QIL&p;`nmzi?1*(pU59?EuSsX5KOf^?8{B@DGth$9hcH7UF{n9B|G<~o& zo{Tm8nf7U0=DkkFwk1`(R@v-2G_acP%zt$putpEbQsge3ymM8nria zFERv<(Hy=Iq?6pE_~`$Hf!uFOsUD`@Y4hEYg#S&BYG!=;f$%@-ZKvnElm z8h?~llcp%OTP@WSFLei1fR$;ZC4JSiQb2912v8RrRasFefiJr-5EYP0wCk!CwdTLe zN;4_h$)t+>&IFpbu>ZPTc>-44%LMeI(rNK0*^?NnPs?DIi7*`H)e_stu@}`t zqjB&l-VZ)k{qNL~S7g}l)6w6*2ic5?lOv@ZhaAsH)I6LQ2ii%ZG@-~|@I;-FW36{- z1xvHA$2mJ?28&$-zVRUKGh(iyp|941{gLG9F|nOif7TVxsO=U3p2bDgtiIpHLf*T} z73|7V|Md+|a#yiC7gN1|HotPF9Np?^$XBwFK6zG zUDOAI&eBuyC#_T4pw9|Wh+Fge&T$rrBxW{aLg_B(Av^_zPVi3R188&Zxj1e%--&~b5!CbD^P(MV~N??SDV8vU-#p1&n30#XDRi9m0o$7 zBc?h8mXO}X)&jy4J4b8gdtZZJeItAFiMt|!<0`u6Y|dnXZ853TsT?_AqBcdISd3y8sfM@g1FCM|7nO<70~-x)&weH)JYSgtH@GD9?o3{3J$4K z#fl+09Jfa?`cHOCCLTT;+@j*H>VS`xpSei-fKZLJU~;^+Sa;^l*wrXEkt^EP%DU6B zJ4jQ(5l-gB1I2Gfpf0-ZIF_@IuOldb-xGx4K-vV&6wRNIymzxqb^b73Qf27h+AYI( zQTSBhWcbb5qCq>me$C`u(Y}tqplY&MN?KFgJ$r+ zCF=CT^iJpPWNGbB49s6O^I{_Dz316!r7PR)15R8!rHhxtG|ORp#;t4q=c%GB)*)G< zfPJf9y)9kL-T~9XK-d;BG>rg?gAR*m0VKDZJ@e$BumrOoz0TCe8a%rO3tZi+J$NSn z$r?p~m9UeUkeugJ`5MvQ7*+1UwBW_rv|#8@9@{fI{lRNN$}2OWi+rCx1Xb3W+? zpT3-B4e*`UC@S?uQeK(~om)f4F_68`k)2S}_ze=h_kE+&cn<`~@9SDi5Q-Dygkw=& zJWMY@8MkAE&nI!ZHpDAb^y`S>>$i~!#tBc3bnpH^L-UBp9XX||XpazGxccK(WMuxJ zyok4$)GH0~uMMtMRe_Q3r8I>#joP@0(edhk&+WX%vH13DszAPz9@-CjO+zO5KzQ=F zYox+xbvF{K$%D)oz2wX9Zt{t%G>OX%#mOR=)i73*2V0zz(BgiQpD&+Z6Gqn=#n?*< zkqf)r7qxp)AcJrCx(DE@b)L#~QLw*SWW8GCp1k-M`OonQMZr3jQ5Y)`&AsB^WN!Dh zZ}#ur>`OYjYUq-=`VQWsL_!g(_EF*7zpS|^jaGZ|_2zFeSSt^jdr5|=4csiZhLUy| zEY8BSPbN%d)UG&tf-j$bdHRjfGkDw#ey=1g)^~g1%JPFhH(s7;1m1q)NzL80f-kmC z->miQuMGlbcJ%7oK0LOq<-MXAl;XvH)Dbb`*5QC8_=)u`M(+V@O6eEdP2fo-ZF#qCZDVPToO5^Vbz4=X*8teY8)m-+}!lB9kO2k~zfn zPWPxCpt1q)%8;=?x@zwW4>S_kb|&v)WNUEbFMV`E_D?F5QeF!o!2F>{9R7gq0&b?v zKAOxnkA5&YxqM48&wdZ2m*%M!`t4OOixupfM-Q;O881j=+yKN-07C%J9zhULK+GK)ub5FUels=tR<(5fE&v8SlnMO zEUTT)Z~wT`Yt<^f%jG>p$ZPX!dM)QQ#5iwJLdDlU2Jnta>gBpU^y=-&3~z!d##&`BCqLIXCxaLLP+i>&Ue$2kk|V+e!!@ zvioUL#}^yo6=fLPQ@OA~E^>LUxiS&l#{1CB9>-sI$k4fZw|<6p-7ArQ9ky@Xw3NHx zjlce=cD`L#B(0^m2mGcB`%WmiWBLhRV*5e0=9(*^p+9p03Qd!a5*xcGfPozAeLt;)=T{oa?BvTAUQ)Yz|2Rd)buD z$!^aH{bKub#C^|pIj*|lI>-Z!5T4Q%2-;_P&2g4FAy z+9_iDcbN&F(YKhqB8!c3@FkWe#>b?1MnBf2VG{=o`D_ng>kcDFdx$IXYdB1PT$a41 zA8E7Cu2X?o9i}ltINno@K6}Cd$+n%gVGTtJce{_q-~&p66i@WSAGdVZoX`~G$S`Le z(-6yCJ;os*>Z{T4P-2;n9MT4V8m@+|eAX3~j;|sNLLG9!5RHNqHd$zL@y5D2#TJ=j}iVwXE zHpo0`Eb?{pU4{Y5y$Zhebw5iLxCixH9p5K%4=SaLuYpTrK;B#KVoi@onabaqo7zcvm7)|I7T8bm) zBq6eg;RfUb*mJd)&ah=pZdtSS2uE0v#Txl^PCZF6*9I0RzHSMx~_N#(pfjC)F z)PYU}rK8bv!=WZQPlMgi|41!%4j*Qf!P}g5c*J$sVyd4zhks}w&!;hK_yXff!Ey_H za1`*@SwYiu7AG%cEQX0)ZZ}UKzjf2{=3`L;bza?^66KtBH>4H;xvSUc%fsv>6h!en z7eb+8WHL4}Yzp+4W%dhn^r3mNE(IWNS0+-Ir03$OtF4uni zENEj0D@#A6$9-Zs!uC?V_oVb5^7!pFChwgby$IG+IzY7mLOCPadtfjHV(8u`T%XL1C_2~xv>)FAA{e~Ah z!G}>40n4Ka_BayKj9P@_oYzsw7>*Kcx$4xr@Ka;4ZB~ZrS!)e|$Fcv5pTu>stL>GIlgl{n|~; zgf3-#4!1TQc`h?fXFoYEooY>$3TBvhXsX5+jiGIEfUl9<&ce4V9$@FW-hsxtp#o#F zNHagEW>p9Xr%`reW+DxWC;hZAMY^`RGckLoddjiBwns(Ig#fd0p#-+MA0I%ndc-{nOVUK24N48O{c4In$Y3 zZ2XY<;?v{7yE7D|jBdn$jAe?hWK#QLqZvMF$nI6P--#Y8$%ZM)h&d*^SsA&c23oe- z+L6MKntSrn`wN7)PXWqSl5jrh9Ld(C6R~i%YT*9d+5fZK6sMx)ns6&gC(cPkx6p~#hk3u<_uFpab zAx>Gf-scHlXbV4!Xr@S~R-~cGI-ve|AE3^%`rJL_K>V1-n>?I%)}15Kx%KiyR3;Ro zV`IkU*Pi}j1d(Tiuv$=)Wp1{?W3^KcG0O-x?4;|Sk@a`FN!HP%eSbW(yXq;q#Z@SJ zl&O4|J6c}WWpjXH>g86joJ5UOsMbl$UEYFq3*L1%l+QaH8#_0Hx*e=$(UXT9Piv}q zXDD0W>J|oXHoL^=)^2^l=&OnBz%ToC9~w;tAm*JevfjO1CIX%-38B9N9bYrUV3<(* zDdaOPz-kOBl*ryJ#TwJ+J1KPL3YG6r65x0VR4WuJT_=Vf=mR)-k!r1Q`3`uX-FE=a z?lIakJN|E(phvxEKIK6?DImaX7C>$asnr6w|Huq_Dlf|sj=wrx56F?iY0SR(3iA2v z40wl)W)hA8!;u7fO{ZE`wKevI16Ff-0q(q@v)%BCxHkW#PD}rAC6H9GBy4jTVEzb@ z)`zrT8FV4Iuy?WM3Egc02JIrfw?y4vpaFQh{n~x|`uh8GK*ao{{oY3a9S!z=S{L9~ zo8MLGd_tHwXtmy4C}9Pu?n`hwt{Fh@L?InF0;f`XP3IXn5GA((!R~_zB0;o z%pEXJ$&;p2bQSqfsE`MT3S$Il`paDir6lCjHj?K^D=pKBh$ng#f#DA+73YpN5whJ5Oe!*6bd_VR z{-)i8m7G7K0w&nfb9h19al7D;0q83Att;0jX6ehjpy}NO?*=Ng>A0!32DOPW)BB#_jH7PxxbB?9$|)i_*q^8>F65RhA-9wcQbLkbu%fx^^)Md@sg#a{7gzl!Rs&>cmjqV1A&dhVEtdsate&s3(YdWWSV4-0J1l2 zZ0r(|*n!O-$n&7Dt&mJDAf!6uy^)bFHrK#dPK@$AYsgRDr(7hE>i)7T8KeurmdN+R zd&mI*{3by@74BIwfIxmVkOuE0`nRV^Ey~|{nuOvq6%E5ZO-OD$O(s^a;GQPV`o?cX z2`&-v+vO+SVbu@r_~o=pjGp=0$Yyl zdk1<2SUWp<-EKJgSzGJ)xq8BN=kf7#^oP4s{o^^@>VI<%LAP7?Z*xVy%@yt*_B+&y z{IT(8t^)sVu70*&&W`$y0jdiBlrh|$>UWkm!ja$$^fqtwf5^M}<}f_`=XrbEx$)TF z^7yB`(cuDbP8tedZUcM=q%96M!H4!^iJW5%7|x0|Al<;3d6lEbBrf zOMICxB*K(3{2nur78x&bS`AN8&b6jZ5gCu31d|q9wRf1M`yDfztEv7wZ=7-LwQb|rf75b6B%E{%Am6pUbyAa>J>$p zk9Ty;KMI}No!_h8O-|vg*)1GK-tVJZ-OtKk!+j*m@0oGOFx8okSS7V5#MMkIxA~nD zmYyz$;rma>G5h}L44vn#aZ+*jI7ez8zdMS(Z`NyDBB}}~0myLA#!R{D5fPD2m!C$y z6^XI_#QX;G1sfFT4`W5b>`u}PQZ@2J;tcgogl!K=$m@Gw6Ne)RR~4Eh zI9`6*s+#t|aS!yWGkaX=rqrsTC44XSrSLWY9bcd5P_4dq;j@qKt`1#Liss!FIz!(+OTLnp z2_lJ)#N98!%}633DSTN=^kE(r8N#wC>Loh;jXZbvMG;RfbI4NEV8SHl>c`o8&_-OF z@%N}#P?sy~7eDFtH*-%WWOiCZ&$6L)4OQ($^fwh%lq8eNrfqMcu}%n~D0G+ZPxmCu zC|-neAYpU0s(;2?HHcz?n@+>6L95*wl-+MTgGWaHvGu1xll*R0<=}0Fy^Eq(fM1BJ zmyv^|sd)~U=J@3xndR`zZdHFG=5GC$6nKB<{dg3E2w(FM< ztB^*7$Y-yWp%G3Z_={)7P+R~*5Grb2>^TyIWrm^bYk7$eq!X3xEygs(xnkuz1G1#t-E#pEXDS<5k=iS@sl_Nd$-z*95ogc=c^`aK-YUl9h`(Uf|U3{ln(}A%(gD1v@zFwtr^aDPkK~T+OiHBbxr|)0iq-hT`}}MLFg0I#lhGOUnM41Ss+7BEw$RCMxmx^D)PTn7e=KxDcsc(=`+xL9s^nlCf(6v`#nv-Os?lG6kw`XrE*qKiN|tK+`y=?kplCAqSR0Qb{)E1o z(e^DsNSpK{v&IM}MU$em2uua4EdZr#w56y*?T@rDb@NjV&(OT_`Zk2yVWe}Y zPk`c#9@Bv2+wFreK~!uOHnuUO?wKa`I4WWN&b)y6SD`3yJ5s-8AN4o(&2ZoPzp;1p z5A+D|zj>#^jR}(g0a1UjfBM^r-r-LtdR#Sbo(Xn#Ty`~0xYz%0t0MmGL$COs`Os64 zSCZ~v0rEB4AT{z~s{kX=CV*M*pUtTkZccjXH|B)*{TCP&6RV|_B7ebwDeut>bt*nB)xP2OVbg||o@;sgUuOP{LHcE^D zt}|Z=Jk2{^kk$d9V7jc(t?3Br2#n2L@%cnX0ZEx$2$&LtqoA{B_ve8Cyd1wMI7*LO zlr^^~`EROm%i7;i;_3ZH`KN`zaS8wdHUHIRjo((~u|KOaUACD;fxh0iKl>~LSU+rt z7)1}+p@p9hNYabk+zI6>%L@a6-omaxn8t*1{C&_vYYS5js7AExWd!n>vlFN(Wd-94 z0Bq-MlWunVUV;gb1l3!A*B%w2zMt@2;Zb00zqc)m`D* zDx~v4i$6iX(WAx_txm=u@z@Pu)@l;3F&iXE!y6}S3bp?5liS8An;uB*D~qkcChZ8G ztKoCU2as}$6(?5Hih|A7pcEruO!Fr8aAUrywuZa#hY$cr1vjjb^lw=!->`1e{LT92eHzR>yn5c= z0os89K7j$;j`qSr+~SVn!rc4|iq98Y-fVelJ zkPXxwLojdT+=x_=Bk}k3a1C%21UtarD`IEs?+A8+$HPVGor@o!(M!R7u(!#a5Sf1{s=r~3DM5P0H$zsZ9q{?CjW0AQEC zsZL|4f2&R%TQ}7S#Xtl8G7@b406#}tPe;F-0X3n5cc7g|2-w5b%iYld{^K72Zxl}0 z0H|X(*Ro+4dDL@(-*^94CFjsy2?J)^*tTs}aAMoG^~JW6N=|G$so1uyif!Arx}JLn zJ?_E&4=>hUxKmP=!n}VV%W<$`p7n#~_Sc#aqKkwVbmCE}Gq2Cj=3O;gJ1Q(tHv(fo z!J(o}!I6;6@6fPJO<_PcNMo;F2o5|!soe*Brr~cwR>x&?cODv@g041QuFJ1=m(;h^ z3p48XEd{JfIy>HTe{x-}+fQjJ$)bN2f8C+mnJ1+A4+a!$X&9)o>GTXr zndA1pbXDNKSdaS^oh47ZlvmnzvfbO--=;+FQ7iJdvehk-@14pc6j@(b11C$ zupKIPNfs(H@$_Qqb-q79vibrHH7G`Y6oDGeZGfbm^3jy9k7w}|27^7~7S@#+KX?Ou z+TOg`_4#g5BeT@tUq6-j-9qm=8iN7EV)JQZMHh*)GZ{gd1=Q?=^GO}4C&bOSKiG9} zg6M@oAPx_&zoKmS0+7jbzN91*&K9W)J5rWQ&`9C8f%%}9+x(NObLOYi;Wjl4Oj*Gk zE`)O{v*j! zyp1ajBZJ}p>@cGGU}be_nVjsfEVb8>`&rNH21|Y$MTXUA_}Hq7Mxlp(Lp0nAa4Fjl za>)Ac^F*SvImvF#HM3D}1`qzVGst`h&`e!Td$;daT--bb|J`}UX!tVkMe%KS{x_h% zh9S9gpG?=*LhYTMQpeg$`K-9$IbFlxsA6sqx(7|MvgB;3RMf%m;idas4Zh=>W&Y_O z(fM#FFm84w!8ITi`S{hAr+!|H6cbE1KTcFuHY1s^IPcu)lG`6ZyH;dUY{qD`7p<5I zrO1q?ny~6kU2p%DT!IrK7ncg{tfMn=yJvmhze}O3Ye%pYxrg2!dguc9YvG@O=U`Nk z*_xT@{y>^Mgdgk# z^`i~w(O;c$m^p5xQuXHBT3jqX=4OmiU8stEzAF0O;Hn0N#>vNF9Etbg&}LxsHfPF< zu_=+xxv_+nL(oyDGbW2IH@Cj%xDwj!g}ZLh^lO)WF}RnpC;l;F?Y$Tb>b$h?y|e9T zx4|lv^jQZ}XfMJhlJD^adQ&zVgl_>{+Q7qX8k0l45eB*0g~_9^q>)| zH1Sb?q(H6esHE*JLEpk(uCj4rvZ3rRnAgn8{Tn~5D%vM^u;u*NUtYeoGBuLjd@bnl zBV#scs>F+4bn#x=wjEiwN6Fr+gCl+6o+mmW{mS(DDRS`J1X=j*B{o%Pc|mH~%|B8W z!Mw8PF^4zs;MshJk=m+0``d*(mLp=dwlnbj|Qr5UeTQ{^^LrpQ2jQSpAqO z!;q<&gsfUg(ctPZ7u!Jc6BJ3Zu>?p~$!w`rRpOs{M7iiA&Tz`wxB5endNX8`?T~bf z@pS4#N`EymK3wJ1NiLDe_@(W%mHhVpZzadz2+UDPR!#~6xoYlDJCk9Oda@IXWhB&n zzwov~F!}*_2P{~JhKa@sM*M}#?^DfQvG^T|F$XmzOCSUNqZjL;w2>}PBRF~BR8~i7 zW}L}`PyO2ip#mR!ukMX}Of(~)I*1VUdv!IkkoRAz1I(|q1nQ|$5C>%BruUo|Wk*{LTL_5ZOedJG(Xqx{sd~Fia7M*L^ zak6gM`KWeS4YB!C?_q%aV>bIq1E$cF=7LrB{UlSypMO=tB|r+yG%LWSQci76VQZ6v ziH?9$!ksK6CqIwK>*&s`k9G-)@5kt^!&DtVq~e zr+?B=02Cn<(|2autIOfOj~P?Vumj=WO73e5`xu)~d5NiEOUN|Zs)aV?MK)hVi@V`$ zD8!vR4XD(BI!{j(N3Q$uo&Dc7FeBhdMl&G?txCsr@o%y2+c#pM!5~E5PB|*^I~&R% zju6iauU%;3tJiySNB5cI+)=hBp!}bvixpL?)Ag!&PmZ*Ye-x9BDdYRxh=K(+Tn3h# zBcrZD&so8RUEwiz$!?t*Wyna}!9AEU?vDuE#x*}3$C=5Nc#t>r$y@Ou*6P0d(5oUv z?S1lR7HGWT+|E!B*WA4@mL5knXk)n5nN<(9@;I6bvOniZ=AsdS0%DyqEMuT;y+Tz1 z>!wcEb3``WtUmDQ7cHdw)U>MntibeYqUMz4?*8@MpO z_7c*?4u{KQGzo=+26sb%k2m^VtqVWu{f{JDgLG|A6TZAi@hAVpscGnUqooX&X+5u%xA%6E@3D+hI zYhFDl&g}evV=a1z;uv?b7qSo7s}R3ZKl2IsVPE-qqrzUkj zNB!_-I+C@ z3Cc4lxCVGZ2-YZEistq_cnBc07vALFc`xikT{s=6R;)nY3dnyK z1c9OVZ)F#fWfeD;aWQxCmUgOUazSAx>^ zO=K18VNNE!XH*OQuYr}pl_q!#!Hn#3y)MV?YXcl!8uXePvhAS?45%7-Zcx(ns;5_xyiiPuPIe~>>!~3BC&!tGS9T)E@=&8}QH*|rS@_^|u zT<+Tv7TuSuh|OA)5zg8pmU`#apgQw&ds8l|=9Hh@3Gy zCYsGMYztevZlZt|F>%dRRoeU^vO;KGBS>X1S;Dhbq{!8o8JI$OtBhn9p{!D%l}Mr& zhEkvq0PR6rz?iyJj=%2uT3m*unUEV)>{YVp=eZw?#4JM+E>M6WDYHUS{NI1c?&oKZ z1h2)n{k0mTFImJ)AMwQP=wda{oCK zf)kX5W25v%idLFZ@No($KN#st`f3-PAG6l=T1u3~u0*xPpcKF!I4A?dnlM=wx{g+E zGY?}soBl6VG0*&@+rLGxwq{Kq5iO*y4cX5_hotg1^4f?-70IB!)$Ey{06gaFD(loX zQ(AbUsoVU`Lr2`iI=76QUu|mb@`k{hKI*|%k}m|}$By#hMu`D4P&VN#rw@NcD{@mHgECVsr_TXsheA?RUqD z%)cAsJYi%=`))R5YP#L~Yjds$Yx&XO*a51@i%I6H!i>zKRlS8Rs}2sbz2SfN~2s zTy76--=Ok|c*AMt;V0j&c#Q|NPLY@m;~@6%`1>OszNt`PhjWA=%{0w=3UbsQIB-v6 z$PwJ+G@eBc8UgyLOI>Lpe!6==!Z@FwlXMWjs@>@KeCZJb!Lkn2e4S{4SL&=U+8ke` zCF}GX1P~eO(+D2dc37k^bsnMk)i{9#+-s}hmD+c*n!#_~a)w#Qgmy~Q#Hx^TfXqJ^ zMKB~hPi)Aml#s6CA|bV)+#`5o=1Vy$P7?L`1NK=S#s|gt#*x)K%<2r+zC+{cNrf{; zKwTw1Wo{x3Oh#wsRKpVT)A`Mc1R>UH*V6@)CT5wRwFg%^48Vd`8OMV-$x^HeUpb4?HQMs_Bhw14fry67<@H_Cr~-khLbfQJK)wdU5fj6W}F2HRIA zMl7xQ)WsOOehhMI*(3?S3Y)b2QRV_*=7?R_hhzPC0X_RCnXT2Pd5J|Ue;^0w$OT04 zrI4$e0GgBJn>lP~;yXw}8=#6ic^QuHA5^kC=1wjUd$a2DL?9H*}2(x;3Ff^1ZY!iOl3(D1qM9|1W`bLX6BHg4hHn5 z+G5mVG{#RjF@n4hQ=lIai_f7Wk*CwnnRHGBk{wbBuU=A&M95g>HLC~>$EG@#CBzz| zKHJ^#@_J?;TfGH31UFjDn(K1pOeu~?$rBi;$O2O8Rx)U}e|FhBs`HzuEYokD87v9r z(KTddaRSr&tw3I|(O+g>_5_B~E_YG;Ua|ZAo?8sFRmc}dZ=Xev9wrYdnj$vy3?dCe zu!V(0Xuu+rq_{!i?8%9?PMy$7FmM}#4gM5v6%}f}ommF;P2diuabI;?V!pAb1ljLp zV5B28jF+GrXm&pfGda~_Bp`X5l&qS)+E6JZsp-WmQ!Z#@QYgQul16k8`Eg z)Grw@<3htoJ=stRgo3CiR?byD4I4v4bGj#~!jt=Q;v$jfBH}I5XY$38rxXIE*g7}Z}7p+8kpxYZK^v52~YBBQaq@js@{lwT}+2c|)gUaOH zo0!RF#P@Q625@vP0@U>_Qnz&}EA4~gtnD2X*(^CC)18nf^1-bJ&1?&aEt1G;$0(Rd zH6fHI&1JpwXBaBC=D~zR^_tlxA!oBH{>6qzmymfvlwk<1 zGt4QQLwW`?Wxm5qTBu=hX8`!!IC&2|gE5Ya+PjA^@d0i+|qpgVH=y4)?HzT)WdWmEg?usi0?MNE^9`k?KB+ zB4raI`Z=A~;> zmJc|>bVMx30!^i~(ld{0rndBSPQZW1J!wD75Z8q75f{WAv^NLP&n1dRGfvxIEk2a2 zuG%mp1hZrVk)dN=cdtjVmMZEj@fu|f|u54uIj|$AI zI1qDI)Yy88^+sMRZ*a%Bp7vVp`c9*{6OwvuB)1?5Y1n%B-6C_5V%hKhnMGmYO?o^3 zHM(%kmi0&#*g1e_Q{BbQB27Ric-Hv(%2Do@!O6zTET5#aqhihB7=8CQ8W_mGqPv2( zDwd36O}Q^}MN-4Aktc>49EBi+UF%S@qB;O^*SSNTZX^T$Gk)><3=|L%8vgzS0keB} zG-R)K$UwJ{CHvhOTf&Jh3B6m`)R+2_AIlqt^+E)2H0QlM0)Pa{tJ(i|`DJmfN9QP) ztymU=hzMtBV9}N{DP5 zf2SI1%=~e!G*4SYx+*^W*D>ND!=V7Nhj<+>?x&R`6MIXOdixpFKz7HOEBrA&4TvV=L?-$2iT`e{;U}NQiQZ_E#jkc$My0<)UTw(&`i9+;Nrc4Ild@3SE)sYe0?{ z&F+0Qg~5rpHawd5gP9R#sG24CveAz>x)sP5Asai@dZu6W(BrSfPe-qod5U#z7G5=D@ubK$rOif7yk>(0Zrf4$WHpYQ zy4LxLXLm44962VQPn2eUX_}(}1RDZX2j`u@{3C2Q={_Z_L(%|}XbyQYZLqnIGnCUD zn%9e*e3RKkD``6MrVAm-&h|r)PpEIPGuAG~bh0Wjy~DJiY!v=9h49EEu74s`W?0BL zzLVnJ;fB+^x3(5T8qY)b{N04CFM{bEouyOr8~Li{Y3X7%-akjW?eYqGfy^mHo_3?W z1NP#cm{eQG1STlCdQ=UNR*4~XpmYIzHd+<29mROX!bFRtF`tRR7gdaH9c@o+AHv(z zsFZ=V>#T3v@gKAO@ZCm=WyM_n4_tfvMxjBTVBZMtsKX75&Qkgq)*Eobi`)ZBb}GcJ zz7zj5&;0F;%A<1c4foWyU3g{p=gphfoR4ZP1^a(%sL)7SLNxYUN`|}N5&BHe2M2me z)wi-#O83!8_po$@q;iF3nuUBsLun^(VdwlB5r7ft*n1#gpWY7t(+r=Qicp-2@HUar zP+wX-^;p9sdFD-N``9K(-Iwx6wRdR?6$}yQhTLFl&x3(Owy;ZcJtUhv?%w;FsTfSd zCXYGJHnt)vK;6h$jm0JRhEe?>!t-jj?k!IXvETgm!~V~eybc3m3rBo}j z4-9_SaUA?1fcQ?xK%)WpwcEYZrAkse2XUWi>JL!rX8p>x@G)%{bC4YH*LC7rF#f1{ z*0)=O2ml2InllJR!qH=sxcwVJpR6}|)!Gpti!0nZOE7%45_YT0#rE)uX0MbdxKbxF zdH8#bfJY(T5#e1~M`VfPL4qn{t76GAVxM$$0G})ei~dR+42w_?(%2ub;rndpE7Nx0 zR7Jtj~SCoZdt79)TUB$jLV+ zNUsP~51&}S*z>yPwx7ByLxb?Y3^;5z+qa2{?- zGrYGg(Hna{1}Aj~|3M&6RwYtaP0(yas1IK`GCJ*urcyzjnq);1>6nrrjiROZyUP9y z3Gl4*=-qui^ne_t{+XP*^BTH4&xI_XmwMCc&i0;MWZP1r0k4UcX;&}3!9;&c%ocSQ zOqPM5Tk5qX%8Tg#BS4uj;*=MWPji#-D8qC#towte>7Hg~)SqC28n&U$^mAHBKw17vO7Hm?e+1&q*u zYLi83V8jaP`i=9XUjK%oXHhvXyk*ogviU+tG#3>_9+0S)ZZ1I|gSr1|T}cNENL7&F zJ_e1BH6~Uv{3{^Bh66!Nmz!>$WKfoc?Nz6-mHCiC5I0FeQQW7aZt{~I;AR%%KBeNO z<=P`slq;z+&8gV*m^&ME-QbuQ9+~WC9#IO7Lg}Hw(^>JgisMlJn zPB*(wf;5$U`4?FsFy#*n!hDE5D|7V?V*JG!QW}9RWp^SbOI3pJrsY%41zlYt$4eVS zMRXvZ($4={GOqvh9$#@uWe@&(Dc2mxkkA6oJ%e|yIiMb=l=3u)uMV)1)D*8$7N94D z)Ffsm&^1DQOkb4u7Jh#+KAk}O+ti*Tg>c}kFlJMD;OO*t&}8#?uEj+iK3g2*q(8vT zbTR5w?2dw6obFn0N&mR1lv~sCelL8w_UCk%|I5VIW`@M3bb?jlgQdPH9yDAR{}yGa zCf8cC**W$I!4tjN*OgE~xUn_{>9ISasn}kT{u9knD44IqdpVz35?t;%h$ z_upD<_t+<4UD@7cKhVQ{bj1s@HK+M|fTjoki_)2FZ~4DmAlTyw;V^#V_9eHSh$%Wv zv`XduL$;o39SlaO?MmfwAw9@A|H-Blm2oYkbh`u1%x_yU1xz{Bf4&ZO0Dkoi+}b;n z^W?^LWZ{Okp)B!g!}~FuB7YtAHgmk;9s4^b@hB5v{8uDweAe=@q%5~lBpsrYRCyRl zPJG6`XC3dqmtCOVB~u{7H^mrf(eC*Mw$4ppe%?n~GjXaz->&4eQK*1CEd5uYyv zwaks%6CI@96I-e4RwAFxZuWPIWOvk7uM-LtY(&QA8AeADm0XO_QYQCo>Ny;8uMC|W zO8kd^WRuS;j8;#`C7+Xf&RxXsw1-RE%MbOmty%;dY`{5)Hp_hMDm!vjY+JV~PCh2% zr!@0oZ596v!mK?u7scI^4VK6Gej{s4t{(`qY_>SBVA)-g63FY{TUxs<4T$N5C$8{Dg&^eeGDtJG9+Bi?enc3ibG+!Cty&ZBIQmwZ@Y* z$h!;^q(70z^ShxvW~cQ1F(xJC2%kTTFK(p70)HF&BcW$W+WpwPqelb8 zAc5|QP%|S8QZhp^sN>!F{NR-W#cBSE%>#?xNxn{T;?g84LuUaMFk+oI2@|F8AU^<9x;CwX7I45P7!B#TboU#34WNAGK8QyB-a=7 zwkCP55+@o69G9jUEDW5T{x{s+8p<_^yu2&wJ~Z~k-84p;-3JtI?$b8j)6aLGlKY9vgA zxxDnjCDlv~bHZFs|2->8ojiiH5W)puE;Z})02O5=W4Y_X;voj9LOneC4S2^rf8o*YWiCg7n|#?|>HCh_?v98Eq2UX|u9`2M zVG5Lw{Ofbs3{EKvep)Q}CpaZ@Ve{9%vFhrRUdHlXJ{R}6Oz7>B zJvj|08HTdES?NNbrGyDV;3q2VYa`4dTkcv@a;X)(r*(0vk7QQ?>b7z?uofHUoekzo z)xf28Op|vZ5c=pX*Y;R0_}b0dRTg)K`}UvJ_A#%bUP#@IcL@GBUK#7Gg&B0T(!ok4 zfmWxBCi*mMg#Of#Ck>X3AWhwhv>TEJ4LB`-t_tfp3IZLDP+KP+fq0;vwd&s-i&9(; zTEY8zy_TyKL^_|hh%w^E{S0qCgQs`K+O95pj|wZ3y4MnwuuIb(U5MK;ZwQ0<-*IX4 z4X6FG=tDuJ5s-?n^?meVkFFZ&m|<51e+ePJx1>JlJ#7Ou-<}n}uja-JHWH@(Wy#+u zu3{~U$SF>FQvC_WC))brKjkWvS9RH7#S_j7Kc`3=p8 z;2)m&MfJQ3>@EOCmr_{pSCMwss}LYS?|G;p=>T%fa?gM^_|APbQ7ZF{1^h& zdW~WH&J=L49~@ zB&XU8Zx4C2gL#`jVOTO{7CTvoSJnpm&2HM$3qt8v79e>l`t@_S)tK1(_j}{wN8~B% zoEE6IZ^IBmD?BbcTVr;xBy9^r7kU18_z3DYv9XBL&3(5kV*7Dd#Ihgr^8fpVK* za?%Kzn665>MlSQ%>EHhH^1|b)as4rUzCt|Tuvu-bO=EVU60&v|bsDaTypJ?-TmwY) zujUwk-Sb@CFyM#TYs?+?;rk$XxyqI=R$JRV&mctsK1zKL>e=V&wtCaQm8r1GN<%}) zGhSRMYDqsF0nfK|wSW#3q6C8d)`#6%#vioePt=Bv<$g8?FWF_&>aCCV+h6s*JKB z)>L=pk|(o%4THtJlUKH#|PtzQm0-+3=lrPOvdTpi9= znWl(~+bvL;i)g{Rmv4+LYTjPfQCqCNs?Cc~dKh*#ZAA3fMEWjrYb9ogWq#dox`9zP zM^U1#PC34Ji&#e^P>>Xj_UZg=VLxtsQv00QYY)EO*Nne3U%u?`4?wq>>5|=>ROiNH zpS8*__PNKf3>IQMJ3#n$ZN~kV^tK>loLwx2!ZgyttL>BEEo)lv4O8fx>K17%Vi4L3 zzr6R=Q2)~L&$T^{kZow7Z7{ht+QlMo@I{%ow;j905ih)wO&+G#$M0!KLY86v?Eq|G z@{_Wl>|k(*8S2OE=%xHUie$*B>O*c*k10v9v<@oW9%c~l&3)0+Y`HgYrI|>(kj3m! z1tpVolWrdRVB9~z-;3MD@sV+i=4W!bBp28m*e_(do&{v!XHnQEcVrfgFTL$%C$4r2 zp6F|Jnor^B4qOTk_~b>ubeD#`I6HL3LUYP;5w39ekhNtxz&HW|&Q*FdPkcdAr>>al zi1J4FP+iPP2NP;>7ri;`=Q(OF5_pu%_c1IelNlpN303wW-&`asQuZ07RQ3eQk%G*q za(-!Wh1WO&dIsjg*+u%~b?toID^=(*&IX{m0?SVST0_@0C>GMzz&%^s8@Y(6w~RCG z@7ctL*EVs^uR3pcV?bqWa@LTl_b_iU^jz(Vzr7R|{LWDTdHxayA;pWoJ~pH__2$N1 z0N9&$tV(7{UPiPYRCW04Gqmwuwz#VzIE&4=#%2?ST7>PjJ=n3`*)?Z5M2*CV&i{>EXSb^D54C6nE^e*#I)vXSw!CSMcxo`kFdf2 zAUMbW?o-Py9v}#Z*{r-#t?i+FIbTvfPbu0w*lFY}v#1^C|433k*A^Nzk>hzral7S3xqJCg5>RC+2)`UIXQDQl7I8bji+PysXZl~lj K&)ox%4Dvs04zlb3 literal 0 HcmV?d00001 From 270de19792f01da00b54aeb205ad8c07b32391c1 Mon Sep 17 00:00:00 2001 From: sophieMu2e Date: Fri, 1 Oct 2021 16:18:42 -0500 Subject: [PATCH 34/47] update gitignore --- .gitignore | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.gitignore b/.gitignore index 9cb63a6d..259148fa 100644 --- a/.gitignore +++ b/.gitignore @@ -30,7 +30,3 @@ *.exe *.out *.app - -#Data -*.root -*.art From b04e6b600b6e36c1fbffc2a76a9555c555815b4c Mon Sep 17 00:00:00 2001 From: sophieMu2e Date: Fri, 1 Oct 2021 17:31:07 -0500 Subject: [PATCH 35/47] removed accidental root files --- RootOutput-902d-791d-8dad-8719.root | Bin 57718 -> 0 bytes RootOutput-ec54-9e95-1237-37d0.root | Bin 57718 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 RootOutput-902d-791d-8dad-8719.root delete mode 100644 RootOutput-ec54-9e95-1237-37d0.root diff --git a/RootOutput-902d-791d-8dad-8719.root b/RootOutput-902d-791d-8dad-8719.root deleted file mode 100644 index 8b8045eefa0af776a37711c20bb93c9a165de73b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57718 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 IfMk&W0r2tBr2qf` diff --git a/RootOutput-ec54-9e95-1237-37d0.root b/RootOutput-ec54-9e95-1237-37d0.root deleted file mode 100644 index 6766f690524920e3b6f8ddac0301b1e57a2a98a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57718 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 K&)ox%4Dvs04zlb3 From 6ca7e95e8d09e124444de7c8a1385db468c05fc1 Mon Sep 17 00:00:00 2001 From: sophieMu2e Date: Fri, 1 Oct 2021 17:32:03 -0500 Subject: [PATCH 36/47] fixed gitignore --- Validation/ceSimReco.fcl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Validation/ceSimReco.fcl b/Validation/ceSimReco.fcl index 4f234653..e68c8714 100644 --- a/Validation/ceSimReco.fcl +++ b/Validation/ceSimReco.fcl @@ -21,7 +21,7 @@ physics: { module_type : CeEndpoint inputSimParticles: TargetStopResampler stoppingTargetMaterial : "Al" - pdgId : 11 + pdgId : 11 verbosity : 0 } @table::Common.producers From af73e963c1f2ce238001568010e2268465055a61 Mon Sep 17 00:00:00 2001 From: sophieMu2e Date: Sun, 3 Oct 2021 19:49:47 -0500 Subject: [PATCH 37/47] removed for git --- JobConfig/primary/CeplusEndpoint.fcl | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 JobConfig/primary/CeplusEndpoint.fcl diff --git a/JobConfig/primary/CeplusEndpoint.fcl b/JobConfig/primary/CeplusEndpoint.fcl deleted file mode 100644 index 9498d4cf..00000000 --- a/JobConfig/primary/CeplusEndpoint.fcl +++ /dev/null @@ -1,15 +0,0 @@ -# -# generate and produce Detector Steps from mono-energetic e+ using mu- target stops -# -# original author: Sophie Middleton -# -#include "Production/JobConfig/primary/TargetStopParticle.fcl" -physics.producers.generate : { - module_type : CeEndpoint - inputSimParticles: TargetStopResampler - stoppingTargetMaterial : "Al" - pdgId : -11 - verbosity : 0 -} -physics.producers.FindMCPrimary.PrimaryProcess : "mu2eCePlusEndpoint" -outputs.Output.fileName: "dts.owner.CePlusEndpoint.version.sequencer.art" From f02a07e48bc0648a3c5a28187c9e4997ac8106cf Mon Sep 17 00:00:00 2001 From: sophieMu2e Date: Sun, 3 Oct 2021 19:50:53 -0500 Subject: [PATCH 38/47] added Ce Plus back in --- JobConfig/primary/CeplusEndpoint.fcl | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 JobConfig/primary/CeplusEndpoint.fcl diff --git a/JobConfig/primary/CeplusEndpoint.fcl b/JobConfig/primary/CeplusEndpoint.fcl new file mode 100644 index 00000000..9498d4cf --- /dev/null +++ b/JobConfig/primary/CeplusEndpoint.fcl @@ -0,0 +1,15 @@ +# +# generate and produce Detector Steps from mono-energetic e+ using mu- target stops +# +# original author: Sophie Middleton +# +#include "Production/JobConfig/primary/TargetStopParticle.fcl" +physics.producers.generate : { + module_type : CeEndpoint + inputSimParticles: TargetStopResampler + stoppingTargetMaterial : "Al" + pdgId : -11 + verbosity : 0 +} +physics.producers.FindMCPrimary.PrimaryProcess : "mu2eCePlusEndpoint" +outputs.Output.fileName: "dts.owner.CePlusEndpoint.version.sequencer.art" From 1e6b729d67a9425bf24b06879650889b289805ab Mon Sep 17 00:00:00 2001 From: sophieMu2e Date: Sun, 3 Oct 2021 19:51:50 -0500 Subject: [PATCH 39/47] added Ce Plus back in --- JobConfig/primary/CeplusEndpoint.fcl | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 JobConfig/primary/CeplusEndpoint.fcl diff --git a/JobConfig/primary/CeplusEndpoint.fcl b/JobConfig/primary/CeplusEndpoint.fcl deleted file mode 100644 index 9498d4cf..00000000 --- a/JobConfig/primary/CeplusEndpoint.fcl +++ /dev/null @@ -1,15 +0,0 @@ -# -# generate and produce Detector Steps from mono-energetic e+ using mu- target stops -# -# original author: Sophie Middleton -# -#include "Production/JobConfig/primary/TargetStopParticle.fcl" -physics.producers.generate : { - module_type : CeEndpoint - inputSimParticles: TargetStopResampler - stoppingTargetMaterial : "Al" - pdgId : -11 - verbosity : 0 -} -physics.producers.FindMCPrimary.PrimaryProcess : "mu2eCePlusEndpoint" -outputs.Output.fileName: "dts.owner.CePlusEndpoint.version.sequencer.art" From 1620b217e38ed46074ac93f671066becb0731722 Mon Sep 17 00:00:00 2001 From: sophieMu2e Date: Sun, 3 Oct 2021 19:52:34 -0500 Subject: [PATCH 40/47] added Ce Plus back in --- JobConfig/primary/CePlusEndpoint.fcl | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 JobConfig/primary/CePlusEndpoint.fcl diff --git a/JobConfig/primary/CePlusEndpoint.fcl b/JobConfig/primary/CePlusEndpoint.fcl new file mode 100644 index 00000000..9498d4cf --- /dev/null +++ b/JobConfig/primary/CePlusEndpoint.fcl @@ -0,0 +1,15 @@ +# +# generate and produce Detector Steps from mono-energetic e+ using mu- target stops +# +# original author: Sophie Middleton +# +#include "Production/JobConfig/primary/TargetStopParticle.fcl" +physics.producers.generate : { + module_type : CeEndpoint + inputSimParticles: TargetStopResampler + stoppingTargetMaterial : "Al" + pdgId : -11 + verbosity : 0 +} +physics.producers.FindMCPrimary.PrimaryProcess : "mu2eCePlusEndpoint" +outputs.Output.fileName: "dts.owner.CePlusEndpoint.version.sequencer.art" From 2bbb5a1d4bf3e9a72df38022477278342c728ef4 Mon Sep 17 00:00:00 2001 From: sophieMu2e Date: Sun, 3 Oct 2021 19:58:53 -0500 Subject: [PATCH 41/47] added Ce Plus back in --- Tests/CePlusEndpointSteps.fcl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/CePlusEndpointSteps.fcl b/Tests/CePlusEndpointSteps.fcl index 7d93e6b5..ccb18c79 100644 --- a/Tests/CePlusEndpointSteps.fcl +++ b/Tests/CePlusEndpointSteps.fcl @@ -1,4 +1,4 @@ -#include "Production/JobConfig/primary/CeplusEndpoint.fcl" +#include "Production/JobConfig/primary/CePlusEndpoint.fcl" source.firstRun: 501 physics.filters.TargetStopResampler.fileNames : [ "/pnfs/mu2e/tape/phy-sim/sim/mu2e/MuminusStopsCat/MDC2020k/art/39/6a/sim.mu2e.MuminusStopsCat.MDC2020k.001201_00000000.art" From 62c167e3cda3291b7a62c623691d56afdf005b9e Mon Sep 17 00:00:00 2001 From: David Nathan Brown Date: Mon, 4 Oct 2021 12:22:37 -0500 Subject: [PATCH 42/47] Generalize bash script directory name. Move resamplers to pileup, and simplify their structure --- .muse | 4 +- JobConfig/beam/epilog.fcl | 7 +- JobConfig/beam/prolog.fcl | 139 ---------- JobConfig/common/epilog.fcl | 4 + .../{beam => pileup}/EleBeamResampler.fcl | 48 +--- .../{beam => pileup}/MuBeamResampler.fcl | 72 +---- .../{beam => pileup}/MuonStopSelector.fcl | 0 .../{beam => pileup}/NeutralsResampler.fcl | 48 +--- JobConfig/pileup/epilog.fcl | 2 +- JobConfig/pileup/prolog.fcl | 245 +++++++++++++++--- .../beam => Scripts}/CreateSimEfficiency.sh | 0 Scripts/ListBeamProducts.sh | 95 +++++++ {MDC2020 => Scripts}/MDC2020i_SimEff.txt | 0 {MDC2020 => Scripts}/POMS/catAndShuf.sh | 0 .../POMS/fileNamesGenerator.sh | 0 {MDC2020 => Scripts}/POMS/getFilename.sh | 0 {MDC2020 => Scripts}/POMS/loggedMu2e.sh | 0 {MDC2020 => Scripts}/POMS/printJsonSave.sh | 0 {MDC2020 => Scripts}/POMS/samCountEvents.sh | 0 {MDC2020 => Scripts}/POMS/samCountFiles.sh | 0 {MDC2020 => Scripts}/POMS/samListLocations.sh | 0 {MDC2020 => Scripts}/gen_BeamSplitter.sh | 0 {MDC2020 => Scripts}/gen_CeEndpoint.sh | 0 {MDC2020 => Scripts}/gen_CosmicNoField.sh | 0 {MDC2020 => Scripts}/gen_CosmicsOffSpill.sh | 0 {MDC2020 => Scripts}/gen_EleBeamResampler.sh | 0 {MDC2020 => Scripts}/gen_FlateMinus.sh | 0 {MDC2020 => Scripts}/gen_FlatePlus.sh | 0 {MDC2020 => Scripts}/gen_Mix.sh | 0 {MDC2020 => Scripts}/gen_MuBeamResampler.sh | 7 +- {MDC2020 => Scripts}/gen_MuStopPileup.sh | 0 {MDC2020 => Scripts}/gen_MuonStops.sh | 0 {MDC2020 => Scripts}/gen_NeutralsResampler.sh | 0 {MDC2020 => Scripts}/gen_OffSpill.sh | 0 {MDC2020 => Scripts}/gen_OnSpill.sh | 0 {MDC2020 => Scripts}/gen_POT.sh | 0 {MDC2020 => Scripts}/gen_Reco.sh | 0 37 files changed, 352 insertions(+), 319 deletions(-) rename JobConfig/{beam => pileup}/EleBeamResampler.fcl (55%) rename JobConfig/{beam => pileup}/MuBeamResampler.fcl (51%) rename JobConfig/{beam => pileup}/MuonStopSelector.fcl (100%) rename JobConfig/{beam => pileup}/NeutralsResampler.fcl (53%) rename {JobConfig/beam => Scripts}/CreateSimEfficiency.sh (100%) create mode 100644 Scripts/ListBeamProducts.sh rename {MDC2020 => Scripts}/MDC2020i_SimEff.txt (100%) rename {MDC2020 => Scripts}/POMS/catAndShuf.sh (100%) rename {MDC2020 => Scripts}/POMS/fileNamesGenerator.sh (100%) rename {MDC2020 => Scripts}/POMS/getFilename.sh (100%) rename {MDC2020 => Scripts}/POMS/loggedMu2e.sh (100%) rename {MDC2020 => Scripts}/POMS/printJsonSave.sh (100%) rename {MDC2020 => Scripts}/POMS/samCountEvents.sh (100%) rename {MDC2020 => Scripts}/POMS/samCountFiles.sh (100%) rename {MDC2020 => Scripts}/POMS/samListLocations.sh (100%) rename {MDC2020 => Scripts}/gen_BeamSplitter.sh (100%) rename {MDC2020 => Scripts}/gen_CeEndpoint.sh (100%) rename {MDC2020 => Scripts}/gen_CosmicNoField.sh (100%) rename {MDC2020 => Scripts}/gen_CosmicsOffSpill.sh (100%) rename {MDC2020 => Scripts}/gen_EleBeamResampler.sh (100%) rename {MDC2020 => Scripts}/gen_FlateMinus.sh (100%) rename {MDC2020 => Scripts}/gen_FlatePlus.sh (100%) rename {MDC2020 => Scripts}/gen_Mix.sh (100%) rename {MDC2020 => Scripts}/gen_MuBeamResampler.sh (82%) rename {MDC2020 => Scripts}/gen_MuStopPileup.sh (100%) rename {MDC2020 => Scripts}/gen_MuonStops.sh (100%) rename {MDC2020 => Scripts}/gen_NeutralsResampler.sh (100%) rename {MDC2020 => Scripts}/gen_OffSpill.sh (100%) rename {MDC2020 => Scripts}/gen_OnSpill.sh (100%) rename {MDC2020 => Scripts}/gen_POT.sh (100%) rename {MDC2020 => Scripts}/gen_Reco.sh (100%) diff --git a/.muse b/.muse index c89bbd72..8b1c4c1b 100644 --- a/.muse +++ b/.muse @@ -1,2 +1,2 @@ -PATH MDC2020 -PATH MDC2020/POMS +PATH Scripts +PATH Scripts/POMS diff --git a/JobConfig/beam/epilog.fcl b/JobConfig/beam/epilog.fcl index 75064279..a44e8e84 100644 --- a/JobConfig/beam/epilog.fcl +++ b/JobConfig/beam/epilog.fcl @@ -1,4 +1,3 @@ -# limit printout -services.message.destinations.log.categories.ArtReport.reportEvery : 1 -services.message.destinations.log.categories.ArtReport.limit : 1 -services.message.destinations.log.categories.ArtReport.timespan : 300 +# don't create MCTrajectories +physics.producers.g4run.TrajectoryControl.produce : false + diff --git a/JobConfig/beam/prolog.fcl b/JobConfig/beam/prolog.fcl index 2fc6fb2e..8b6d866b 100644 --- a/JobConfig/beam/prolog.fcl +++ b/JobConfig/beam/prolog.fcl @@ -41,50 +41,6 @@ Beam: { hitInputs : [] particleInputs : [ "g4run" ] } - - compressPVTargetStops: { - module_type: CompressPhysicalVolumes - volumesInput : "g4run" - hitInputs : [] - particleInputs : [ "TargetStopFilter" ] - } - - compressPVIPAStops: { - module_type: CompressPhysicalVolumes - volumesInput : "g4run" - hitInputs : [] - particleInputs : [ "IPAStopFilter" ] - } - - # below are used for stopped muon daughter selecting/vetoing - - TargetMuonFinder: { - module_type: "StoppedParticlesFinder" - particleInput: "g4run" - particleTypes: [ 13, -13 ] - physVolInfoInput: "g4run:eventlevel" - useEventLevelVolumeInfo: true - stoppingMaterial: "StoppingTarget_Al" - verbosityLevel: 1 - } - - IPAMuonFinder : { - module_type : StoppedParticlesFinder - particleInput : "g4run" - useEventLevelVolumeInfo: true - physVolInfoInput: "g4run:eventlevel" - stoppingMaterial : "IPAPolyethylene" - particleTypes : [ 13, -13 ] - verbosityLevel: 1 - } - - stoppedMuonDaughters: { - module_type: SimParticleDaughterSelector - particleInput: "TargetMuonFinder" - # EMCascade should not be vetoed because we do not re-simulate it - processes: [ "DIO", "NuclearCapture" ] - } - } filters: { @@ -117,90 +73,6 @@ Beam: { vetoDaughters: [] } - TargetStopFilter: { - module_type: FilterG4Out - mainHitInputs: [] - extraHitInputs: [ "g4run:virtualdetector" ] - mainSPPtrInputs: [ "TargetMuonFinder" ] - } - - IPAStopFilter: { - module_type: FilterG4Out - mainHitInputs: [] - extraHitInputs: [ "g4run:virtualdetector" ] - mainSPPtrInputs: [ "IPAMuonFinder" ] - } - - FlashFilter: { - module_type: FilterG4Out - mainHitInputs: [ "g4run:tracker", "g4run:calorimeter", "g4run:CRV", "g4run:virtualdetector" ] - vetoParticles: [ "stoppedMuonDaughters" ] - } - - # DetectorSteFilter with time cut for the main flash stream - # these select energy deposits after the peak of the flash has passed, to keep useless payload down - # Note this is a partial config, it must be combined with Pileup definition - DetStepFilter : { - TimeCutConfig : { - MinimumTime : 250 # good hits are after this time - MaximumTime : 10 # not a typo: good hits are before this time - } - } - - # resamplers - - beamResampler: { - module_type: ResamplingMixer - fileNames: @nil - readMode: "sequential" - wrapFiles: true - mu2e: { - writeEventIDs : true - MaxEventsToSkip: @nil - debugLevel : 0 - products: { - genParticleMixer: { mixingMap: [ [ "generate", "" ] ] } - simParticleMixer: { mixingMap: [ [ "BeamFilter", "" ] ] } - stepPointMCMixer: { mixingMap: [ - [ "BeamFilter:virtualdetector", ":" ], - [ "BeamFilter:Beam", ":" ] - ] } - simTimeOffset : "protonTimeOffset" - volumeInfoMixer: { - srInput: "compressPVBeam" - evtOutInstanceName: "eventlevel" - } - } - } - } - - neutralsResampler: { - module_type: ResamplingMixer - fileNames: @nil - readMode: "sequential" - wrapFiles: true - mu2e: { - writeEventIDs : true - MaxEventsToSkip: @nil - debugLevel : 0 - products: { - genParticleMixer: { mixingMap: [ [ "generate", "" ] ] } - simParticleMixer: { mixingMap: [ [ "NeutralsFilter", "" ] ] } - stepPointMCMixer: { mixingMap: [ - [ "NeutralsFilter:Neutrals", ":" ] - ] } - simTimeOffset : "protonTimeOffset" - volumeInfoMixer: { - srInput: "compressPVNeutrals" - evtOutInstanceName: "eventlevel" - } - } - } - } - - PrescaleFilter : { - module_type : RandomPrescaleFilter - } } # define regions where particles may eventually interact with the detectors (CRV or trracker/calo), See doc 26541 for a graphical description @@ -292,16 +164,5 @@ Beam: { "keep mu2e::StatusG4_*_*_*" ] - DtsKeptProducts : [ - "keep art::EventIDs_*_*_*", - "keep mu2e::GenEventCount_*_*_*", - "keep mu2e::StatusG4_*_*_*", - "keep mu2e::SimParticleart::Ptrdoublestd::map_*_*_*" - ] - - # some commen sequences - beamResamplerSequence : [genCounter, protonTimeOffset, beamResampler] - neutralsResamplerSequence : [genCounter, protonTimeOffset, neutralsResampler] - } END_PROLOG diff --git a/JobConfig/common/epilog.fcl b/JobConfig/common/epilog.fcl index c01f3821..fb03f029 100644 --- a/JobConfig/common/epilog.fcl +++ b/JobConfig/common/epilog.fcl @@ -2,3 +2,7 @@ services.TFileService.fileName : "/dev/null" # provide time information services.TimeTracker.printSummary: true +# limit printout +services.message.destinations.log.categories.ArtReport.reportEvery : 1 +services.message.destinations.log.categories.ArtReport.limit : 1 +services.message.destinations.log.categories.ArtReport.timespan : 300 diff --git a/JobConfig/beam/EleBeamResampler.fcl b/JobConfig/pileup/EleBeamResampler.fcl similarity index 55% rename from JobConfig/beam/EleBeamResampler.fcl rename to JobConfig/pileup/EleBeamResampler.fcl index 289dedd8..55484570 100644 --- a/JobConfig/beam/EleBeamResampler.fcl +++ b/JobConfig/pileup/EleBeamResampler.fcl @@ -9,8 +9,6 @@ #include "Offline/fcl/standardServices.fcl" #include "Offline/CommonMC/fcl/prolog.fcl" #include "Production/JobConfig/common/prolog.fcl" -#include "Production/JobConfig/beam/prolog.fcl" -#include "Production/JobConfig/primary/prolog.fcl" #include "Production/JobConfig/pileup/prolog.fcl" process_name: EleBeamResampler @@ -24,38 +22,18 @@ services : @local::Services.Sim physics: { producers : { @table::Common.producers - @table::Primary.producers - compressDetStepMCs : { - @table::Primary.producers.compressDetStepMCs - @table::Pileup.producers.compressDetStepMCs - } - protonTimeOffset : @local::CommonMC.producers.protonTimeOffset + @table::Pileup.producers } filters : { @table::Common.filters - @table::Primary.filters - EarlyPrescaleFilter : { - @table::Beam.filters.PrescaleFilter - nPrescale : 1000 - } - beamResampler : @local::Beam.filters.beamResampler - DetStepFilter : { - @table::Primary.filters.DetStepFilter - @table::Pileup.filters.DetStepFilter - @table::Beam.filters.DetStepFilter - } - # instance to select flash without time cuts (prescaled) - EarlyDetStepFilter : { - @table::Primary.filters.DetStepFilter - @table::Pileup.filters.DetStepFilter - } + @table::Pileup.filters } analyzers : { @table::Common.analyzers } # setup paths - flashPath : [ @sequence::Beam.beamResamplerSequence, @sequence::Common.g4Sequence, @sequence::Primary.DetStepSequence, DetStepFilter, compressDetStepMCs ] - earlyFlashPath : [ @sequence::Beam.beamResamplerSequence, @sequence::Common.g4Sequence, EarlyPrescaleFilter, @sequence::Primary.DetStepSequence, EarlyDetStepFilter, compressDetStepMCs ] + flashPath : [ @sequence::Pileup.beamResamplerSequence, @sequence::Common.g4Sequence, @sequence::Pileup.DetStepSequence ] + earlyFlashPath : [ @sequence::Pileup.beamResamplerSequence, @sequence::Common.g4Sequence, @sequence::Pileup.EarlyDetStepSequence ] trigger_paths: [ flashPath, earlyFlashPath ] outPath : [ FlashOutput, EarlyFlashOutput ] end_paths: [outPath] @@ -66,8 +44,7 @@ outputs: { FlashOutput : { module_type: RootOutput outputCommands: [ "drop *_*_*_*", - @sequence::Beam.DtsKeptProducts, - @sequence::Pileup.KeptProducts + @sequence::Pileup.DtsKeptProducts, ] SelectEvents: [flashPath] fileName : "dts.owner.EleBeamFlash.version.sequencer.art" @@ -76,13 +53,14 @@ outputs: { EarlyFlashOutput : { module_type: RootOutput outputCommands: [ "drop *_*_*_*", - @sequence::Beam.DtsKeptProducts, - @sequence::Pileup.KeptProducts + @sequence::Pileup.DtsKeptProducts, ] SelectEvents: [earlyFlashPath] fileName : "dts.owner.EarlyEleBeamFlash.version.sequencer.art" } } +# set prescale factor +phusics.filters.EarlyPrescaleFilter.nPrescale : 1000 # Point Mu2eG4 to the pre-simulated data physics.producers.g4run.inputs: { @@ -99,17 +77,7 @@ physics.producers.g4run.inputs: { } # copy over VD hits physics.producers.g4run.SDConfig.preSimulatedHits: ["beamResampler:virtualdetector"] -# Kill stuck e+/e- -physics.producers.g4run.Mu2eG4CommonCut:{ - type: intersection - pars: - [ - {type: intersection pars: [ { type: kineticEnergy cut: 1.0 }, { type: pdgId pars: [ 11, -11] }]}, - {type: inVolume pars: [ TS2Vacuum, TS3Vacuum, TS4Vacuum, TS5Vacuum, DS2Vacuum, HallAir ]} - ] -} #include "Production/JobConfig/common/MT.fcl" #include "Production/JobConfig/common/epilog.fcl" #include "Production/JobConfig/pileup/epilog.fcl" -#include "Production/JobConfig/beam/epilog.fcl" services.GeometryService.inputFile : "Offline/Mu2eG4/geom/geom_common_no_tsu_ps.txt" diff --git a/JobConfig/beam/MuBeamResampler.fcl b/JobConfig/pileup/MuBeamResampler.fcl similarity index 51% rename from JobConfig/beam/MuBeamResampler.fcl rename to JobConfig/pileup/MuBeamResampler.fcl index 940b7549..2e301490 100644 --- a/JobConfig/beam/MuBeamResampler.fcl +++ b/JobConfig/pileup/MuBeamResampler.fcl @@ -7,10 +7,7 @@ # Updated for MDC2020 (DetectorSteps): D. Brown #include "Offline/fcl/standardServices.fcl" -#include "Offline/CommonMC/fcl/prolog.fcl" #include "Production/JobConfig/common/prolog.fcl" -#include "Production/JobConfig/beam/prolog.fcl" -#include "Production/JobConfig/primary/prolog.fcl" #include "Production/JobConfig/pileup/prolog.fcl" process_name: MuBeamResampler @@ -24,54 +21,20 @@ services : @local::Services.Sim physics: { producers : { @table::Common.producers - @table::Primary.producers - compressDetStepMCs : { - @table::Primary.producers.compressDetStepMCs - @table::Pileup.producers.compressDetStepMCs - } - compressPVTargetStops : @local::Beam.producers.compressPVTargetStops - compressPVIPAStops : @local::Beam.producers.compressPVIPAStops - TargetMuonFinder : @local::Beam.producers.TargetMuonFinder - IPAMuonFinder : @local::Beam.producers.IPAMuonFinder - stoppedMuonDaughters : @local::Beam.producers.stoppedMuonDaughters - protonTimeOffset : @local::CommonMC.producers.protonTimeOffset + @table::Pileup.producers } filters : { @table::Common.filters - @table::Primary.filters - EarlyPrescaleFilter : { - @table::Beam.filters.PrescaleFilter - nPrescale : 30 - } - TargetStopPrescaleFilter: { - @table::Beam.filters.PrescaleFilter - nPrescale : 1000 # this depends on the resampling factor. If you change this, you MUST ALSO update Production/JobConfig/mixing/Mix.fcl - } - beamResampler : @local::Beam.filters.beamResampler - TargetStopFilter : @local::Beam.filters.TargetStopFilter - IPAStopFilter : @local::Beam.filters.IPAStopFilter - FlashFilter : @local::Beam.filters.FlashFilter - DetStepFilter : { - @table::Primary.filters.DetStepFilter - @table::Pileup.filters.DetStepFilter - @table::Beam.filters.DetStepFilter - } - # instance to select flash without time cuts (prescaled) - EarlyDetStepFilter : { - @table::Primary.filters.DetStepFilter - @table::Pileup.filters.DetStepFilter - } + @table::Pileup.filters } analyzers : { @table::Common.analyzers } # setup paths - targetStopPath : [ @sequence::Beam.beamResamplerSequence, @sequence::Common.g4Sequence, TargetStopPrescaleFilter, TargetMuonFinder, TargetStopFilter, compressPVTargetStops] - IPAStopPath : [ @sequence::Beam.beamResamplerSequence, @sequence::Common.g4Sequence, IPAMuonFinder, IPAStopFilter, compressPVIPAStops] - flashPath : [ @sequence::Beam.beamResamplerSequence, @sequence::Common.g4Sequence, TargetMuonFinder, stoppedMuonDaughters, FlashFilter, - @sequence::Primary.DetStepSequence, DetStepFilter, compressDetStepMCs ] - earlyFlashPath : [ @sequence::Beam.beamResamplerSequence, @sequence::Common.g4Sequence, TargetMuonFinder, stoppedMuonDaughters, FlashFilter, EarlyPrescaleFilter, - @sequence::Primary.DetStepSequence, EarlyDetStepFilter, compressDetStepMCs ] + targetStopPath : [ @sequence::Pileup.beamResamplerSequence, @sequence::Common.g4Sequence, TargetStopPrescaleFilter, TargetMuonFinder, TargetStopFilter, compressPVTargetStops] + IPAStopPath : [ @sequence::Pileup.beamResamplerSequence, @sequence::Common.g4Sequence, IPAMuonFinder, IPAStopFilter, compressPVIPAStops] + flashPath : [ @sequence::Pileup.beamResamplerSequence, @sequence::Common.g4Sequence, @sequence::Pileup.flashSequence, @sequence::Pileup.DetStepSequence ] + earlyFlashPath : [ @sequence::Pileup.beamResamplerSequence, @sequence::Common.g4Sequence, @sequence::Pileup.flashSequence, @sequence::Pileup.EarlyDetStepSequence ] trigger_paths: [ flashPath, earlyFlashPath, targetStopPath, IPAStopPath ] outPath : [ FlashOutput, EarlyFlashOutput, TargetStopOutput, IPAStopOutput ] end_paths: [outPath] @@ -81,7 +44,7 @@ outputs: { TargetStopOutput : { module_type: RootOutput outputCommands: [ "drop *_*_*_*", - @sequence::Beam.SimKeptProducts, + @sequence::Pileup.SimKeptProducts, "keep *_TargetStopFilter_*_*", "keep *_compressPVTargetStops_*_*" ] @@ -92,7 +55,7 @@ outputs: { IPAStopOutput : { module_type: RootOutput outputCommands: [ "drop *_*_*_*", - @sequence::Beam.SimKeptProducts, + @sequence::Pileup.SimKeptProducts, "keep *_IPAStopFilter_*_*", "keep *_compressPVIPAStops_*_*" ] @@ -103,8 +66,7 @@ outputs: { FlashOutput : { module_type: RootOutput outputCommands: [ "drop *_*_*_*", - @sequence::Beam.DtsKeptProducts, - @sequence::Pileup.KeptProducts + @sequence::Pileup.DtsKeptProducts, ] SelectEvents: [flashPath] fileName : "dts.owner.MuBeamFlash.version.sequencer.art" @@ -113,13 +75,15 @@ outputs: { EarlyFlashOutput : { module_type: RootOutput outputCommands: [ "drop *_*_*_*", - @sequence::Beam.DtsKeptProducts, - @sequence::Pileup.KeptProducts + @sequence::Pileup.DtsKeptProducts, ] SelectEvents: [earlyFlashPath] fileName : "dts.owner.EarlyMuBeamFlash.version.sequencer.art" } } +# set prescale factors +phusics.filters.TargetStopPrescaleFilter.nPrescale : 1000 +phusics.filters.EarlyPrescaleFilter.nPrescale : 30 # Point Mu2eG4 to the pre-simulated data physics.producers.g4run.inputs: { @@ -136,19 +100,9 @@ physics.producers.g4run.inputs: { } # copy over VD hits physics.producers.g4run.SDConfig.preSimulatedHits: ["beamResampler:virtualdetector"] -# Kill stuck e+/e- -physics.producers.g4run.Mu2eG4CommonCut:{ - type: intersection - pars: - [ - {type: intersection pars: [ { type: kineticEnergy cut: 1.0 }, { type: pdgId pars: [ 11, -11] }]}, - {type: inVolume pars: [ TS2Vacuum, TS3Vacuum, TS4Vacuum, TS5Vacuum, DS2Vacuum, HallAir ]} - ] -} #include "Production/JobConfig/common/MT.fcl" #include "Production/JobConfig/common/epilog.fcl" #include "Production/JobConfig/pileup/epilog.fcl" -#include "Production/JobConfig/beam/epilog.fcl" # reconfigure StepPoint producers to avoid double-counting particles from the mustop filter deep copy physics.producers.StrawGasStepMaker.SkipTheseStepPoints : "g4run" physics.producers.StrawGasStepMaker.KeepDeltasModule : "" diff --git a/JobConfig/beam/MuonStopSelector.fcl b/JobConfig/pileup/MuonStopSelector.fcl similarity index 100% rename from JobConfig/beam/MuonStopSelector.fcl rename to JobConfig/pileup/MuonStopSelector.fcl diff --git a/JobConfig/beam/NeutralsResampler.fcl b/JobConfig/pileup/NeutralsResampler.fcl similarity index 53% rename from JobConfig/beam/NeutralsResampler.fcl rename to JobConfig/pileup/NeutralsResampler.fcl index c5b0b64a..fb9bca6e 100644 --- a/JobConfig/beam/NeutralsResampler.fcl +++ b/JobConfig/pileup/NeutralsResampler.fcl @@ -8,8 +8,6 @@ #include "Offline/fcl/standardServices.fcl" #include "Offline/CommonMC/fcl/prolog.fcl" #include "Production/JobConfig/common/prolog.fcl" -#include "Production/JobConfig/beam/prolog.fcl" -#include "Production/JobConfig/primary/prolog.fcl" #include "Production/JobConfig/pileup/prolog.fcl" process_name: NeutralsResampler @@ -23,38 +21,18 @@ services : @local::Services.Sim physics: { producers : { @table::Common.producers - @table::Primary.producers - compressDetStepMCs : { - @table::Primary.producers.compressDetStepMCs - @table::Pileup.producers.compressDetStepMCs - } - protonTimeOffset : @local::CommonMC.producers.protonTimeOffset + @table::Pileup.producers } filters : { @table::Common.filters - EarlyPrescaleFilter : { - @table::Beam.filters.PrescaleFilter - nPrescale : 20 - } - neutralsResampler : @local::Beam.filters.neutralsResampler - DetStepFilter : { - @table::Primary.filters.DetStepFilter - @table::Pileup.filters.DetStepFilter - @table::Beam.filters.DetStepFilter - } - # instance to select flash without time cuts (prescaled) - EarlyDetStepFilter : { - @table::Primary.filters.DetStepFilter - @table::Pileup.filters.DetStepFilter - } + @table::Pileup.filters } analyzers : { @table::Common.analyzers } # setup paths - flashPath : [ @sequence::Beam.neutralsResamplerSequence, @sequence::Common.g4Sequence, @sequence::Primary.DetStepSequence, DetStepFilter, compressDetStepMCs ] - earlyFlashPath : [ @sequence::Beam.neutralsResamplerSequence, @sequence::Common.g4Sequence, EarlyPrescaleFilter, - @sequence::Primary.DetStepSequence, EarlyDetStepFilter, compressDetStepMCs ] + flashPath : [ @sequence::Pileup.neutralsResamplerSequence, @sequence::Common.g4Sequence, @sequence::Pileup.DetStepSequence ] + earlyFlashPath : [ @sequence::Pileup.neutralsResamplerSequence, @sequence::Common.g4Sequence, @sequence::Pileup.EarlyDetStepSequence ] trigger_paths: [ flashPath , earlyFlashPath ] outPath : [ FlashOutput, EarlyFlashOutput ] end_paths: [outPath] @@ -64,8 +42,7 @@ outputs: { FlashOutput : { module_type: RootOutput outputCommands: [ "drop *_*_*_*", - @sequence::Beam.DtsKeptProducts, - @sequence::Pileup.KeptProducts + @sequence::Pileup.DtsKeptProducts, ] SelectEvents: [flashPath] fileName: "dts.owner.NeutralsFlash.version.sequencer.art" @@ -74,13 +51,14 @@ outputs: { EarlyFlashOutput : { module_type: RootOutput outputCommands: [ "drop *_*_*_*", - @sequence::Beam.DtsKeptProducts, - @sequence::Pileup.KeptProducts + @sequence::Pileup.DtsKeptProducts, ] SelectEvents: [earlyFlashPath] fileName : "dts.owner.EarlyNeutralsFlash.version.sequencer.art" } } +# set prescale factor +phusics.filters.EarlyPrescaleFilter.nPrescale : 20 # Point Mu2eG4 to the pre-simulated data physics.producers.g4run.inputs: { @@ -95,17 +73,7 @@ physics.producers.g4run.inputs: { outInstance: "eventlevel" } } -# Kill stuck e+/e- -physics.producers.g4run.Mu2eG4CommonCut:{ - type: intersection - pars: - [ - {type: intersection pars: [ { type: kineticEnergy cut: 1.0 }, { type: pdgId pars: [ 11, -11] }]}, - {type: inVolume pars: [ TS2Vacuum, TS3Vacuum, TS4Vacuum, TS5Vacuum, DS2Vacuum, HallAir ]} - ] -} #include "Production/JobConfig/common/MT.fcl" #include "Production/JobConfig/common/epilog.fcl" #include "Production/JobConfig/pileup/epilog.fcl" -#include "Production/JobConfig/beam/epilog.fcl" services.GeometryService.inputFile : "Offline/Mu2eG4/geom/geom_common_no_tsu_ps.txt" diff --git a/JobConfig/pileup/epilog.fcl b/JobConfig/pileup/epilog.fcl index 3d059645..6760cda3 100644 --- a/JobConfig/pileup/epilog.fcl +++ b/JobConfig/pileup/epilog.fcl @@ -1,6 +1,6 @@ # don't create MCTrajectories physics.producers.g4run.TrajectoryControl.produce : false -# only detector SDs +# turn on detector SDs physics.producers.g4run.SDConfig.enableSD: [@sequence::physics.producers.g4run.SDConfig.enableSD ] # no special deltas treatment for pileup physics.producers.StrawGasStepMaker.KeepDeltasModule : "" diff --git a/JobConfig/pileup/prolog.fcl b/JobConfig/pileup/prolog.fcl index db3aa141..97c1641a 100644 --- a/JobConfig/pileup/prolog.fcl +++ b/JobConfig/pileup/prolog.fcl @@ -1,50 +1,186 @@ # # Prolog to create pileup particle steps for mixing # +#include "Offline/TrackerMC/fcl/prolog.fcl" +#include "Offline/CaloMC/fcl/prolog.fcl" +#include "Offline/CRVResponse/fcl/prolog.fcl" +#include "Offline/Filters/fcl/prolog.fcl" +#include "Offline/Compression/fcl/prolog.fcl" +# BEGIN_PROLOG Pileup: { producers : { - # override compression to be more selective - compressDetStepMCs: { + @table::TrackerMC.StepProducers + @table::CaloMC.StepProducers + CrvSteps :{ + @table::CrvSteps + stepPointsModuleLabels : ["g4run"] + } + + compressDetStepMCs : { + module_type : CompressDetStepMCs + strawGasStepTag : "StrawGasStepMaker" + caloShowerStepTag : "CaloShowerStepMaker" + crvStepTag : "CrvSteps" + simParticleTag : "g4run" + debugLevel : 0 + # save StepPoints in VDs, ProtonAbsorber and ST stepPointMCTags : [ ] # turn off VD hits for pileup compressionOptions : { - @table::DetStepCompression.extraCompression # remove some intermediate genealogy steps - keepNGenerations : 1 # only keep SimParticles producing DetectorSteps and their direct parents + @table::DetStepCompression.extraCompression # remove some intermediate genealogy steps + keepNGenerations : 1 # only keep SimParticles producing DetectorSteps and their direct parents } mcTrajectoryTag : "" # no MC Trajectories } + + TargetMuonFinder: { + module_type: "StoppedParticlesFinder" + particleInput: "g4run" + particleTypes: [ 13, -13 ] + physVolInfoInput: "g4run:eventlevel" + useEventLevelVolumeInfo: true + stoppingMaterial: "StoppingTarget_Al" + verbosityLevel: 1 + } + + IPAMuonFinder : { + module_type : StoppedParticlesFinder + particleInput : "g4run" + useEventLevelVolumeInfo: true + physVolInfoInput: "g4run:eventlevel" + stoppingMaterial : "IPAPolyethylene" + particleTypes : [ 13, -13 ] + verbosityLevel: 1 + } + + stoppedMuonDaughters: { + module_type: SimParticleDaughterSelector + particleInput: "TargetMuonFinder" + # EMCascade should not be vetoed because we do not re-simulate it + processes: [ "DIO", "NuclearCapture" ] + } + + compressPVTargetStops: { + module_type: CompressPhysicalVolumes + volumesInput : "g4run" + hitInputs : [] + particleInputs : [ "TargetStopFilter" ] + } + + compressPVIPAStops: { + module_type: CompressPhysicalVolumes + volumesInput : "g4run" + hitInputs : [] + particleInputs : [ "IPAStopFilter" ] + } + + protonTimeOffset : @local::CommonMC.producers.protonTimeOffset + } filters : { -# override step filter to select any detectable signal - DetStepFilter : { + # filter to select any detectable signal, without time cuts + EarlyDetStepFilter : { + module_type : DetectorStepFilter + StrawGasSteps : [ "StrawGasStepMaker" ] + CaloShowerSteps : [ "CaloShowerStepMaker" ] CrvSteps : [ "CrvSteps" ] # include CRV steps for pileup - # lower all the thresholds for saving an event - MinimumPartMom : 0.0 # MeV/c - MinimumTrkSteps : 1 - MinimumSumCaloStepE : 0.01 - MinimumCrvSteps : 1 + MinimumTrkStepEnergy : 1.0e-6 # 1 ev + MinimumCaloStepEnergy : 0.0 + MinimumCrvStepEnergy : 1.0e-6 # get a real value from CRV experts FIXME! + MaximumPartMom : 1e6 # MeV/c + KeepPDG : [ ] # Loop at steps from all particle types + } + + TargetStopFilter: { + module_type: FilterG4Out + mainHitInputs: [] + extraHitInputs: [ "g4run:virtualdetector" ] + mainSPPtrInputs: [ "TargetMuonFinder" ] + } + + IPAStopFilter: { + module_type: FilterG4Out + mainHitInputs: [] + extraHitInputs: [ "g4run:virtualdetector" ] + mainSPPtrInputs: [ "IPAMuonFinder" ] + } + + FlashFilter: { + module_type: FilterG4Out + mainHitInputs: [ "g4run:tracker", "g4run:calorimeter", "g4run:CRV", "g4run:virtualdetector" ] + vetoParticles: [ "stoppedMuonDaughters" ] + } + + TargetStopPrescaleFilter : { + module_type : RandomPrescaleFilter + } + EarlyPrescaleFilter : { + module_type : RandomPrescaleFilter + } + + # resamplers + + beamResampler: { + module_type: ResamplingMixer + fileNames: @nil + readMode: "sequential" + wrapFiles: true + mu2e: { + writeEventIDs : true + MaxEventsToSkip: @nil + debugLevel : 0 + products: { + genParticleMixer: { mixingMap: [ [ "generate", "" ] ] } + simParticleMixer: { mixingMap: [ [ "BeamFilter", "" ] ] } + stepPointMCMixer: { mixingMap: [ + [ "BeamFilter:virtualdetector", ":" ], + [ "BeamFilter:Beam", ":" ] + ] } + simTimeOffset : "protonTimeOffset" + volumeInfoMixer: { + srInput: "compressPVBeam" + evtOutInstanceName: "eventlevel" + } + } + } + } + + neutralsResampler: { + module_type: ResamplingMixer + fileNames: @nil + readMode: "sequential" + wrapFiles: true + mu2e: { + writeEventIDs : true + MaxEventsToSkip: @nil + debugLevel : 0 + products: { + genParticleMixer: { mixingMap: [ [ "generate", "" ] ] } + simParticleMixer: { mixingMap: [ [ "NeutralsFilter", "" ] ] } + stepPointMCMixer: { mixingMap: [ + [ "NeutralsFilter:Neutrals", ":" ] + ] } + simTimeOffset : "protonTimeOffset" + volumeInfoMixer: { + srInput: "compressPVNeutrals" + evtOutInstanceName: "eventlevel" + } + } + } } } -# define products needed to run mixing - KeptProducts : [ "keep mu2e::StrawGasSteps_compressDetStepMCs_*_*", - "keep mu2e::CaloShowerSteps_compressDetStepMCs_*_*", - "keep mu2e::CrvSteps_compressDetStepMCs_*_*", - "keep mu2e::SimParticlemv_compressDetStepMCs_*_*", - "keep mu2e::GenParticles_compressDetStepMCs_*_*", - "keep mu2e::StatusG4_*_*_*", - "keep mu2e::GenEventCount_*_*_*" ] Output : { - module_type : RootOutput - SelectEvents : [ PileupPath ] - fileName : @nil - # drop StepPoints from calorimeter + module_type : RootOutput + SelectEvents : [ PileupPath ] + fileName : @nil + # drop StepPoints from calorimeter } -# define paths + # define paths EndPath : [ genCountLogger, Output ] -# define tools used in mustop daughter generation + # define tools used in mustop daughter generation dioGenTool : { tool_type : DIOGenerator spectrum : { @@ -54,7 +190,7 @@ Pileup: { spectrumResolution : 0.1 #MeV } } - + muonCaptureProtonGenTool : { tool_type : MuCapProtonGenerator spectrumVariable : kineticEnergy @@ -63,7 +199,7 @@ Pileup: { nbins: 1000 } } - + muonCaptureDeuteronGenTool : { tool_type : MuCapDeuteronGenerator spectrumVariable : kineticEnergy @@ -72,7 +208,7 @@ Pileup: { nbins: 1000 } } - + muonCaptureNeutronGenTool : { tool_type : MuCapNeutronGenerator spectrumVariable: kineticEnergy @@ -81,7 +217,7 @@ Pileup: { spectrumFileName: "Offline/ConditionsService/data/neutronSpectrum.txt" } } - + muonCapturePhotonGenTool : { tool_type : MuCapPhotonGenerator spectrum : { @@ -90,14 +226,57 @@ Pileup: { ehi: 7.0 # MeV } } - + # An example that isn't used in this fcl #muonCapture1809keVGammaGenTool : { # tool_type : MuCap1809keVGammaGenerator #} + # + # define products that need to be kept + # + SimKeptProducts : [ + "keep art::EventIDs_*_*_*", + "keep mu2e::GenParticles_*_*_*", + "keep mu2e::GenEventCount_*_*_*", + "keep mu2e::StatusG4_*_*_*" + ] + + DtsKeptProducts : [ + "keep art::EventIDs_*_*_*", + "keep mu2e::GenEventCount_*_*_*", + "keep mu2e::StatusG4_*_*_*", + "keep mu2e::SimParticleart::Ptrdoublestd::map_*_*_*", + "keep mu2e::StrawGasSteps_compressDetStepMCs_*_*", + "keep mu2e::CaloShowerSteps_compressDetStepMCs_*_*", + "keep mu2e::CrvSteps_compressDetStepMCs_*_*", + "keep mu2e::SimParticlemv_compressDetStepMCs_*_*", + "keep mu2e::GenParticles_compressDetStepMCs_*_*" ] + # define some common sequences + beamResamplerSequence : [genCounter, protonTimeOffset, beamResampler] + neutralsResamplerSequence : [genCounter, protonTimeOffset, neutralsResampler] + flashSequence : [ TargetMuonFinder, stoppedMuonDaughters, FlashFilter ] + + DetStepSequence : [ + @sequence::TrackerMC.StepSim, + @sequence::CaloMC.StepSim, + CrvSteps , DetStepFilter, compressDetStepMCs ] + EarlyDetStepSequence : [ + EarlyPrescaleFilter, + @sequence::TrackerMC.StepSim, + @sequence::CaloMC.StepSim, + CrvSteps , EarlyDetStepFilter, compressDetStepMCs ] + } -# define output -Pileup.Output.outputCommands : [ "drop *_*_*_*", - @sequence::Pileup.KeptProducts] +# DetctorStepFilter instance to select DetSteps outside the flash +Pileup.filters.DetStepFilter : { + @table::Pileup.filters.EarlyDetStepFilter + # select energy deposits after the peak of the flash has passed, to keep useless payload down + # Note the cut excludes hits before the digitization lower edge and after the MBtime + digitization upper edge + TimeCutConfig : { + MinimumTime : 250 # good hits are after this time + MaximumTime : 10 # not a typo: good hits are before this time + } +} + END_PROLOG diff --git a/JobConfig/beam/CreateSimEfficiency.sh b/Scripts/CreateSimEfficiency.sh similarity index 100% rename from JobConfig/beam/CreateSimEfficiency.sh rename to Scripts/CreateSimEfficiency.sh diff --git a/Scripts/ListBeamProducts.sh b/Scripts/ListBeamProducts.sh new file mode 100644 index 00000000..e851a34c --- /dev/null +++ b/Scripts/ListBeamProducts.sh @@ -0,0 +1,95 @@ +#!/usr/bin/bash +# +# This script dumps the output list to a text file for validation and verification +# It can either run on the output of an official production, or by running the tree of Production/JobConfig/beam jobs (with minimal statistics). +# Execute from a valid Mu2e muse workdir after 'muse setup' and 'dhtools setup' and 'vomsCert' +# Original author: Dave Brown (LBNL) +# +echo $1 +if [[ ${1} == "" ]]; then + echo "Dumping products from current Offline + Production" + # create a small number of POT + rm POT.log +# mu2e -c Production/JobConfig/beam/POT.fcl --nevts 2000 >& POT.log + # split the beam + rm BeamSplitter.log +# mu2e -c Production/JobConfig/beam/BeamSplitter.fcl sim.mu2e.Beam.owner.version.sequencer.art > BeamSplitter.log +# echo "sim.mu2e.EleBeamCat.owner.version.sequencer.art" >> EleBeam.txt +# echo "sim.mu2e.MuBeamCat.owner.version.sequencer.art" >> MuBeam.txt +# echo "sim.mu2e.Neutrals.owner.version.sequencer.art" >> Neutrals.txt + # create scripts for running changed and neutral resampling off these outputs. These need the resampler inputs + rm mubeamresample.fcl + rm elebeamresample.fcl + rm neutresample.fcl + rm mustopresample.fcl + echo '#include "Production/JobConfig/beam/MuBeamResampler.fcl"' >> mubeamresample.fcl + echo 'source.firstRun: 1202' >> mubeamresample.fcl + echo 'source.firstSubRun: 0' >> mubeamresample.fcl + echo 'source.maxEvents: 1000' >> mubeamresample.fcl + echo 'services.SeedService.baseSeed: 502016040' >> mubeamresample.fcl + echo 'physics.filters.beamResampler.mu2e.MaxEventsToSkip: 0' >> mubeamresample.fcl + echo 'physics.filters.TargetStopPrescaleFilter.nPrescale : 1' >> mubeamresample.fcl + echo 'physics.filters.EarlyPrescaleFilter.nPrescale : 100' >> mubeamresample.fcl + echo 'physics.filters.beamResampler.fileNames : [' >> mubeamresample.fcl + echo "\"`cat MuBeam.txt`\"" >> mubeamresample.fcl + echo ']' >> mubeamresample.fcl + + echo '#include "Production/JobConfig/beam/EleBeamResampler.fcl"' >> elebeamresample.fcl + echo 'source.firstRun: 1202' >> elebeamresample.fcl + echo 'source.firstSubRun: 0' >> elebeamresample.fcl + echo 'source.maxEvents: 10000' >> elebeamresample.fcl + echo 'services.SeedService.baseSeed: 502016040' >> elebeamresample.fcl + echo 'physics.filters.beamResampler.mu2e.MaxEventsToSkip: 0' >> elebeamresample.fcl + echo 'physics.filters.TargetStopPrescaleFilter.nPrescale : 1' >> elebeamresample.fcl + echo 'physics.filters.EarlyPrescaleFilter.nPrescale : 100' >> elebeamresample.fcl + echo 'physics.filters.beamResampler.fileNames : [' >> elebeamresample.fcl + echo "\"`cat EleBeam.txt`\"" >> elebeamresample.fcl + echo ']' >> elebeamresample.fcl + + echo '#include "Production/JobConfig/beam/MuBeamResampler.fcl"' >> mubeamresample.fcl + echo 'source.firstRun: 1202' >> mubeamresample.fcl + echo 'source.firstSubRun: 0' >> mubeamresample.fcl + echo 'source.maxEvents: 10000' >> mubeamresample.fcl + echo 'services.SeedService.baseSeed: 502016040' >> mubeamresample.fcl + echo 'physics.filters.beamResampler.mu2e.MaxEventsToSkip: 0' >> mubeamresample.fcl + echo 'physics.filters.TargetStopPrescaleFilter.nPrescale : 1' >> mubeamresample.fcl + echo 'physics.filters.EarlyPrescaleFilter.nPrescale : 1' >> mubeamresample.fcl + echo 'physics.filters.beamResampler.fileNames : [' >> mubeamresample.fcl + echo "\"`cat MuBeam.txt`\"" >> mubeamresample.fcl + echo ']' >> mubeamresample.fcl + + return 0 + +else + echo "Dumping products from Production version $1" + # locate the specified output + samweb list-file-locations --schema=root --defname="sim.mu2e.EleBeamCat.$1.art" | cut -f1 > EleBeam.txt + samweb list-file-locations --schema=root --defname="sim.mu2e.MuBeamCat.$1.art" | cut -f1 > MuBeam.txt + samweb list-file-locations --schema=root --defname="sim.mu2e.NeutralsCat.$1.art" | cut -f1 > Neutrals.txt + samweb list-file-locations --schema=root --defname="sim.mu2e.TargetStopsCat.$1.art" | cut -f1 > TargetStops.txt + samweb list-file-locations --schema=root --defname="sim.mu2e.IPAStopsCat.$1.art" | cut -f1 > IPAStops.txt + samweb list-file-locations --schema=root --defname="dts.mu2e.MuBeamFlashCat.$1.art" | cut -f1 > MuBeamFlash.txt + samweb list-file-locations --schema=root --defname="dts.mu2e.EleBeamFlashCat.$1.art" | cut -f1 > EleBeamFlash.txt + samweb list-file-locations --schema=root --defname="dts.mu2e.NeutralsFlashCat.$1.art" | cut -f1 > NeutralsFlash.txt + samweb list-file-locations --schema=root --defname="dts.mu2e.MuStopPileupCat.$1.art" | cut -f1 > MuStopPileup.txt +fi +# dump the contents of the first events of all the collections +rm MuBeamProducts$1.txt +rm EleBeamProducts$1.txt +rm NeutralsProducts$1.txt +rm TargetStopsProducts$1.txt +rm IPAStopsProducts$1.txt +rm MuBeamFlashProducts$1.txt +rm EleBeamFlashProducts$1.txt +rm NeutralsFlashProducts$1.txt +mu2e -c Offline/Print/fcl/fileDumper.fcl --source-list MuBeam.txt --nevts 1 | grep -E 'POT|PROCESS|PRINCIPAL' > MuBeamProducts$1.txt +mu2e -c Offline/Print/fcl/fileDumper.fcl --source-list EleBeam.txt --nevts 1 | grep -E 'POT|PROCESS|PRINCIPAL' > EleBeamProducts$1.txt +mu2e -c Offline/Print/fcl/fileDumper.fcl --source-list Neutrals.txt --nevts 1 | grep -E 'POT|PROCESS|PRINCIPAL' > NeutralsProducts$1.txt + +mu2e -c Offline/Print/fcl/fileDumper.fcl --source-list TargetStops.txt --nevts 1 | grep -E 'MuBeamResampler|PROCESS|PRINCIPAL' > TargetStopsProducts$1.txt +mu2e -c Offline/Print/fcl/fileDumper.fcl --source-list IPAStops.txt --nevts 1 | grep -E 'MuBeamResampler|PROCESS|PRINCIPAL' > IPAStopsProducts$1.txt +mu2e -c Offline/Print/fcl/fileDumper.fcl --source-list MuBeamFlash.txt --nevts 1 | grep -E 'MuBeamResampler|PROCESS|PRINCIPAL' > MuBeamFlashProducts$1.txt +mu2e -c Offline/Print/fcl/fileDumper.fcl --source-list EleBeamFlash.txt --nevts 1 | grep -E 'EleBeamResampler|PROCESS|PRINCIPAL' > EleBeamFlashProducts$1.txt +mu2e -c Offline/Print/fcl/fileDumper.fcl --source-list NeutralsFlash.txt --nevts 1 | grep -E 'NeutralsResampler|PROCESS|PRINCIPAL' > NeutralsFlashProducts$1.txt +mu2e -c Offline/Print/fcl/fileDumper.fcl --source-list MuStopPileup.txt --nevts 1 | grep -E 'MuStopResampler|PROCESS|PRINCIPAL' > MuStopPileupProducts$1.txt + diff --git a/MDC2020/MDC2020i_SimEff.txt b/Scripts/MDC2020i_SimEff.txt similarity index 100% rename from MDC2020/MDC2020i_SimEff.txt rename to Scripts/MDC2020i_SimEff.txt diff --git a/MDC2020/POMS/catAndShuf.sh b/Scripts/POMS/catAndShuf.sh similarity index 100% rename from MDC2020/POMS/catAndShuf.sh rename to Scripts/POMS/catAndShuf.sh diff --git a/MDC2020/POMS/fileNamesGenerator.sh b/Scripts/POMS/fileNamesGenerator.sh similarity index 100% rename from MDC2020/POMS/fileNamesGenerator.sh rename to Scripts/POMS/fileNamesGenerator.sh diff --git a/MDC2020/POMS/getFilename.sh b/Scripts/POMS/getFilename.sh similarity index 100% rename from MDC2020/POMS/getFilename.sh rename to Scripts/POMS/getFilename.sh diff --git a/MDC2020/POMS/loggedMu2e.sh b/Scripts/POMS/loggedMu2e.sh similarity index 100% rename from MDC2020/POMS/loggedMu2e.sh rename to Scripts/POMS/loggedMu2e.sh diff --git a/MDC2020/POMS/printJsonSave.sh b/Scripts/POMS/printJsonSave.sh similarity index 100% rename from MDC2020/POMS/printJsonSave.sh rename to Scripts/POMS/printJsonSave.sh diff --git a/MDC2020/POMS/samCountEvents.sh b/Scripts/POMS/samCountEvents.sh similarity index 100% rename from MDC2020/POMS/samCountEvents.sh rename to Scripts/POMS/samCountEvents.sh diff --git a/MDC2020/POMS/samCountFiles.sh b/Scripts/POMS/samCountFiles.sh similarity index 100% rename from MDC2020/POMS/samCountFiles.sh rename to Scripts/POMS/samCountFiles.sh diff --git a/MDC2020/POMS/samListLocations.sh b/Scripts/POMS/samListLocations.sh similarity index 100% rename from MDC2020/POMS/samListLocations.sh rename to Scripts/POMS/samListLocations.sh diff --git a/MDC2020/gen_BeamSplitter.sh b/Scripts/gen_BeamSplitter.sh similarity index 100% rename from MDC2020/gen_BeamSplitter.sh rename to Scripts/gen_BeamSplitter.sh diff --git a/MDC2020/gen_CeEndpoint.sh b/Scripts/gen_CeEndpoint.sh similarity index 100% rename from MDC2020/gen_CeEndpoint.sh rename to Scripts/gen_CeEndpoint.sh diff --git a/MDC2020/gen_CosmicNoField.sh b/Scripts/gen_CosmicNoField.sh similarity index 100% rename from MDC2020/gen_CosmicNoField.sh rename to Scripts/gen_CosmicNoField.sh diff --git a/MDC2020/gen_CosmicsOffSpill.sh b/Scripts/gen_CosmicsOffSpill.sh similarity index 100% rename from MDC2020/gen_CosmicsOffSpill.sh rename to Scripts/gen_CosmicsOffSpill.sh diff --git a/MDC2020/gen_EleBeamResampler.sh b/Scripts/gen_EleBeamResampler.sh similarity index 100% rename from MDC2020/gen_EleBeamResampler.sh rename to Scripts/gen_EleBeamResampler.sh diff --git a/MDC2020/gen_FlateMinus.sh b/Scripts/gen_FlateMinus.sh similarity index 100% rename from MDC2020/gen_FlateMinus.sh rename to Scripts/gen_FlateMinus.sh diff --git a/MDC2020/gen_FlatePlus.sh b/Scripts/gen_FlatePlus.sh similarity index 100% rename from MDC2020/gen_FlatePlus.sh rename to Scripts/gen_FlatePlus.sh diff --git a/MDC2020/gen_Mix.sh b/Scripts/gen_Mix.sh similarity index 100% rename from MDC2020/gen_Mix.sh rename to Scripts/gen_Mix.sh diff --git a/MDC2020/gen_MuBeamResampler.sh b/Scripts/gen_MuBeamResampler.sh similarity index 82% rename from MDC2020/gen_MuBeamResampler.sh rename to Scripts/gen_MuBeamResampler.sh index 6605446c..bef6ae6f 100755 --- a/MDC2020/gen_MuBeamResampler.sh +++ b/Scripts/gen_MuBeamResampler.sh @@ -1,6 +1,11 @@ #!/usr/bin/bash +# +# create a script for running the MuBeamResampler, either from an official dataset, or from a hand-supplied file +# + +if [[ !${1} == "" ]]; then # create the input list -dataset=sim.mu2e.MuBeamCat.MDC2020$1.art +dataset=sim.mu2e.MuBeamCat.$1.art samListLocations --defname="$dataset" > MuBeamCat.txt # calucate the max skip from the dataset nfiles=`samCountFiles.sh $dataset` diff --git a/MDC2020/gen_MuStopPileup.sh b/Scripts/gen_MuStopPileup.sh similarity index 100% rename from MDC2020/gen_MuStopPileup.sh rename to Scripts/gen_MuStopPileup.sh diff --git a/MDC2020/gen_MuonStops.sh b/Scripts/gen_MuonStops.sh similarity index 100% rename from MDC2020/gen_MuonStops.sh rename to Scripts/gen_MuonStops.sh diff --git a/MDC2020/gen_NeutralsResampler.sh b/Scripts/gen_NeutralsResampler.sh similarity index 100% rename from MDC2020/gen_NeutralsResampler.sh rename to Scripts/gen_NeutralsResampler.sh diff --git a/MDC2020/gen_OffSpill.sh b/Scripts/gen_OffSpill.sh similarity index 100% rename from MDC2020/gen_OffSpill.sh rename to Scripts/gen_OffSpill.sh diff --git a/MDC2020/gen_OnSpill.sh b/Scripts/gen_OnSpill.sh similarity index 100% rename from MDC2020/gen_OnSpill.sh rename to Scripts/gen_OnSpill.sh diff --git a/MDC2020/gen_POT.sh b/Scripts/gen_POT.sh similarity index 100% rename from MDC2020/gen_POT.sh rename to Scripts/gen_POT.sh diff --git a/MDC2020/gen_Reco.sh b/Scripts/gen_Reco.sh similarity index 100% rename from MDC2020/gen_Reco.sh rename to Scripts/gen_Reco.sh From bc8be9297bf900d7cef16a5e2daf380350deface Mon Sep 17 00:00:00 2001 From: David Nathan Brown Date: Mon, 4 Oct 2021 18:30:54 -0500 Subject: [PATCH 43/47] Debugging and cleanup --- JobConfig/pileup/EleBeamResampler.fcl | 8 +- JobConfig/pileup/MuBeamResampler.fcl | 10 +-- JobConfig/pileup/MuStopPileup.fcl | 111 +++++++++++-------------- JobConfig/pileup/NeutralsResampler.fcl | 8 +- JobConfig/pileup/epilog.fcl | 11 +++ JobConfig/pileup/prolog.fcl | 6 +- Scripts/ListBeamProducts.sh | 61 -------------- Scripts/ListPileupProducts.sh | 91 ++++++++++++++++++++ 8 files changed, 167 insertions(+), 139 deletions(-) create mode 100644 Scripts/ListPileupProducts.sh diff --git a/JobConfig/pileup/EleBeamResampler.fcl b/JobConfig/pileup/EleBeamResampler.fcl index 55484570..49b68a5f 100644 --- a/JobConfig/pileup/EleBeamResampler.fcl +++ b/JobConfig/pileup/EleBeamResampler.fcl @@ -44,7 +44,7 @@ outputs: { FlashOutput : { module_type: RootOutput outputCommands: [ "drop *_*_*_*", - @sequence::Pileup.DtsKeptProducts, + @sequence::Pileup.DtsKeptProducts ] SelectEvents: [flashPath] fileName : "dts.owner.EleBeamFlash.version.sequencer.art" @@ -53,21 +53,20 @@ outputs: { EarlyFlashOutput : { module_type: RootOutput outputCommands: [ "drop *_*_*_*", - @sequence::Pileup.DtsKeptProducts, + @sequence::Pileup.DtsKeptProducts ] SelectEvents: [earlyFlashPath] fileName : "dts.owner.EarlyEleBeamFlash.version.sequencer.art" } } # set prescale factor -phusics.filters.EarlyPrescaleFilter.nPrescale : 1000 +physics.filters.EarlyPrescaleFilter.nPrescale : 1000 # Point Mu2eG4 to the pre-simulated data physics.producers.g4run.inputs: { primaryType: "StepPoints" primaryTag: "beamResampler:Beam" inputMCTrajectories: "" - simStageOverride: 1 inputPhysVolumeMultiInfo: "beamResampler" updateEventLevelVolumeInfos: { @@ -80,4 +79,3 @@ physics.producers.g4run.SDConfig.preSimulatedHits: ["beamResampler:virtualdetec #include "Production/JobConfig/common/MT.fcl" #include "Production/JobConfig/common/epilog.fcl" #include "Production/JobConfig/pileup/epilog.fcl" -services.GeometryService.inputFile : "Offline/Mu2eG4/geom/geom_common_no_tsu_ps.txt" diff --git a/JobConfig/pileup/MuBeamResampler.fcl b/JobConfig/pileup/MuBeamResampler.fcl index 2e301490..35b51b37 100644 --- a/JobConfig/pileup/MuBeamResampler.fcl +++ b/JobConfig/pileup/MuBeamResampler.fcl @@ -66,7 +66,7 @@ outputs: { FlashOutput : { module_type: RootOutput outputCommands: [ "drop *_*_*_*", - @sequence::Pileup.DtsKeptProducts, + @sequence::Pileup.DtsKeptProducts ] SelectEvents: [flashPath] fileName : "dts.owner.MuBeamFlash.version.sequencer.art" @@ -75,22 +75,21 @@ outputs: { EarlyFlashOutput : { module_type: RootOutput outputCommands: [ "drop *_*_*_*", - @sequence::Pileup.DtsKeptProducts, + @sequence::Pileup.DtsKeptProducts ] SelectEvents: [earlyFlashPath] fileName : "dts.owner.EarlyMuBeamFlash.version.sequencer.art" } } # set prescale factors -phusics.filters.TargetStopPrescaleFilter.nPrescale : 1000 -phusics.filters.EarlyPrescaleFilter.nPrescale : 30 +physics.filters.TargetStopPrescaleFilter.nPrescale : 1000 +physics.filters.EarlyPrescaleFilter.nPrescale : 30 # Point Mu2eG4 to the pre-simulated data physics.producers.g4run.inputs: { primaryType: "StepPoints" primaryTag: "beamResampler:Beam" inputMCTrajectories: "" - simStageOverride: 1 inputPhysVolumeMultiInfo: "beamResampler" updateEventLevelVolumeInfos: { @@ -109,4 +108,3 @@ physics.producers.StrawGasStepMaker.KeepDeltasModule : "" physics.producers.CaloShowerStepMaker.caloStepPointCollection : ["FlashFilter:calorimeter"] physics.producers.CrvSteps.stepPointsModuleLabels : [ "FlashFilter" ] physics.producers.compressDetStepMCs.simParticleTag : "FlashFilter" -services.GeometryService.inputFile : "Offline/Mu2eG4/geom/geom_common_no_tsu_ps.txt" diff --git a/JobConfig/pileup/MuStopPileup.fcl b/JobConfig/pileup/MuStopPileup.fcl index ff4939d1..5ce14963 100644 --- a/JobConfig/pileup/MuStopPileup.fcl +++ b/JobConfig/pileup/MuStopPileup.fcl @@ -15,11 +15,7 @@ services : @local::Services.Sim physics : { producers : { @table::Common.producers - @table::Primary.producers - compressDetStepMCs : { - @table::Primary.producers.compressDetStepMCs - @table::Pileup.producers.compressDetStepMCs - } + @table::Pileup.producers # resampling generator generate : { module_type: Pileup @@ -27,95 +23,88 @@ physics : { stoppingTargetMaterial : "Al" verbosity: 0 captureProducts: [ - { + { spectrum: { - nbins: 1000 - spectrumShape: "ejectedProtons" + nbins: 1000 + spectrumShape: "ejectedProtons" } spectrumVariable: "kineticEnergy" tool_type: "MuCapProtonGenerator" - }, - { + }, + { spectrum: { - nbins: 1000 - spectrumShape: "ejectedProtons" + nbins: 1000 + spectrumShape: "ejectedProtons" } spectrumVariable: "kineticEnergy" tool_type: "MuCapDeuteronGenerator" - }, - { + }, + { spectrum: { - spectrumFileName: "Offline/ConditionsService/data/neutronSpectrum.txt" - spectrumShape: "tabulated" + spectrumFileName: "Offline/ConditionsService/data/neutronSpectrum.txt" + spectrumShape: "tabulated" } spectrumVariable: "kineticEnergy" tool_type: "MuCapNeutronGenerator" - }, - { + }, + { spectrum: { - ehi: 7 - elow: 0 - spectrumShape: "flat" + ehi: 7 + elow: 0 + spectrumShape: "flat" } tool_type: "MuCapPhotonGenerator" - } + } ] decayProducts: [ - { + { spectrum: { - elow: 1 - pdgId: 11 - spectrumResolution: 1e-1 - spectrumShape: "Czarnecki" + elow: 1 + pdgId: 11 + spectrumResolution: 1e-1 + spectrumShape: "Czarnecki" } tool_type: "DIOGenerator" - } + } ] } } filters : { @table::Common.filters - @table::Primary.filters - # override step filter to select any detectable signal from any particle - DetStepFilter : { - @table::Primary.filters.DetStepFilter - @table::Pileup.filters.DetStepFilter - # No need for a timing cut: the muon stop products are already late compared to that - } + @table::Pileup.filters + TargetStopResampler : @local::Primary.filters.TargetStopResampler } - analyzers : { @table::Primary.analyzers } - PileupPath : [ TargetStopResampler, @sequence::Common.generateSequence, @sequence::Common.g4Sequence, @sequence::Primary.DetStepSequence, @sequence::Primary.DetStepFilterSequence ] - EndPath : @local::Primary.EndPath + analyzers : { @table::Common.analyzers } + PileupPath : [ TargetStopResampler, @sequence::Common.generateSequence, @sequence::Common.g4Sequence, @sequence::Pileup.DetStepSequence ] + EndPath : [ Output ] trigger_paths : [ PileupPath ] end_paths : [ EndPath ] } -outputs : { Output : { - @table::Pileup.Output - fileName: "dts.owner.MuStopPileup.version.sequencer.art" - outputCommands : [ "drop *_*_*_*", - "keep art::EventIDs_*_*_*", - "keep mu2e::GenEventCount_*_*_*", - "keep mu2e::StatusG4_*_*_*", - @sequence::Pileup.KeptProducts ] - } - # some consolidation is needed TODO +outputs : { + Output : { + module_type: RootOutput + outputCommands : [ "drop *_*_*_*", + @sequence::Pileup.DtsKeptProducts ] + SelectEvents: [PileupPath] + fileName: "dts.owner.MuStopPileup.version.sequencer.art" + } } #include "Production/JobConfig/common/MT.fcl" #include "Production/JobConfig/common/epilog.fcl" -#include "Production/JobConfig/primary/epilog.fcl" #include "Production/JobConfig/pileup/epilog.fcl" +# No time cut; muons decay late anyways, this lets us use the output for both regulary and 'Early' mixing +physics.filters.DetStepFilter.TimeCutConfig : @erase -# resampling configuration; this should be somewhere common TODO +# resampling configuration physics.producers.g4run.inputs: { - primaryType: StageParticles - primaryTag: "generate" - inputMCTrajectories: "" - simStageOverride: 2 - inputPhysVolumeMultiInfo: "TargetStopResampler" - updateEventLevelVolumeInfos: { - input: "TargetStopResampler:eventlevel" - outInstance: "eventlevel" - } + primaryType: StageParticles + primaryTag: "generate" + inputMCTrajectories: "" + simStageOverride: 2 + inputPhysVolumeMultiInfo: "TargetStopResampler" + updateEventLevelVolumeInfos: { + input: "TargetStopResampler:eventlevel" + outInstance: "eventlevel" + } } -# use reduced BField for these jobs -services.GeometryService.inputFile : "Offline/Mu2eG4/geom/geom_common_no_tsu_ps.txt" + diff --git a/JobConfig/pileup/NeutralsResampler.fcl b/JobConfig/pileup/NeutralsResampler.fcl index fb9bca6e..2b94a0c0 100644 --- a/JobConfig/pileup/NeutralsResampler.fcl +++ b/JobConfig/pileup/NeutralsResampler.fcl @@ -42,7 +42,7 @@ outputs: { FlashOutput : { module_type: RootOutput outputCommands: [ "drop *_*_*_*", - @sequence::Pileup.DtsKeptProducts, + @sequence::Pileup.DtsKeptProducts ] SelectEvents: [flashPath] fileName: "dts.owner.NeutralsFlash.version.sequencer.art" @@ -51,21 +51,20 @@ outputs: { EarlyFlashOutput : { module_type: RootOutput outputCommands: [ "drop *_*_*_*", - @sequence::Pileup.DtsKeptProducts, + @sequence::Pileup.DtsKeptProducts ] SelectEvents: [earlyFlashPath] fileName : "dts.owner.EarlyNeutralsFlash.version.sequencer.art" } } # set prescale factor -phusics.filters.EarlyPrescaleFilter.nPrescale : 20 +physics.filters.EarlyPrescaleFilter.nPrescale : 20 # Point Mu2eG4 to the pre-simulated data physics.producers.g4run.inputs: { primaryType: "StepPoints" primaryTag: "neutralsResampler:Neutrals" inputMCTrajectories: "" - simStageOverride: 1 inputPhysVolumeMultiInfo: "neutralsResampler" updateEventLevelVolumeInfos: { @@ -76,4 +75,3 @@ physics.producers.g4run.inputs: { #include "Production/JobConfig/common/MT.fcl" #include "Production/JobConfig/common/epilog.fcl" #include "Production/JobConfig/pileup/epilog.fcl" -services.GeometryService.inputFile : "Offline/Mu2eG4/geom/geom_common_no_tsu_ps.txt" diff --git a/JobConfig/pileup/epilog.fcl b/JobConfig/pileup/epilog.fcl index 6760cda3..e262e76b 100644 --- a/JobConfig/pileup/epilog.fcl +++ b/JobConfig/pileup/epilog.fcl @@ -4,3 +4,14 @@ physics.producers.g4run.TrajectoryControl.produce : false physics.producers.g4run.SDConfig.enableSD: [@sequence::physics.producers.g4run.SDConfig.enableSD ] # no special deltas treatment for pileup physics.producers.StrawGasStepMaker.KeepDeltasModule : "" +# Kill stuck e+/e- +physics.producers.g4run.Mu2eG4CommonCut:{ + type: intersection + pars: + [ + {type: intersection pars: [ { type: kineticEnergy cut: 1.0 }, { type: pdgId pars: [ 11, -11] }]}, + {type: inVolume pars: [ TS2Vacuum, TS3Vacuum, TS4Vacuum, TS5Vacuum, DS2Vacuum, HallAir ]} + ] +} +# restricted BField for efficiency +services.GeometryService.inputFile : "Offline/Mu2eG4/geom/geom_common_no_tsu_ps.txt" diff --git a/JobConfig/pileup/prolog.fcl b/JobConfig/pileup/prolog.fcl index 97c1641a..12d19555 100644 --- a/JobConfig/pileup/prolog.fcl +++ b/JobConfig/pileup/prolog.fcl @@ -85,10 +85,14 @@ Pileup: { StrawGasSteps : [ "StrawGasStepMaker" ] CaloShowerSteps : [ "CaloShowerStepMaker" ] CrvSteps : [ "CrvSteps" ] # include CRV steps for pileup + MaximumPartMom : 1e6 # MeV/c + MinimumPartMom : 0 # MeV/c MinimumTrkStepEnergy : 1.0e-6 # 1 ev MinimumCaloStepEnergy : 0.0 MinimumCrvStepEnergy : 1.0e-6 # get a real value from CRV experts FIXME! - MaximumPartMom : 1e6 # MeV/c + MinimumTrkSteps : 1 # primary must produce at least this many TrkSteps + MinimumCrvSteps : 1 # primary must produce at least this many TrkSteps + MinimumSumCaloStepE : 1.0e-2 # or at least this much calo energy KeepPDG : [ ] # Loop at steps from all particle types } diff --git a/Scripts/ListBeamProducts.sh b/Scripts/ListBeamProducts.sh index e851a34c..61160930 100644 --- a/Scripts/ListBeamProducts.sh +++ b/Scripts/ListBeamProducts.sh @@ -17,79 +17,18 @@ if [[ ${1} == "" ]]; then # echo "sim.mu2e.EleBeamCat.owner.version.sequencer.art" >> EleBeam.txt # echo "sim.mu2e.MuBeamCat.owner.version.sequencer.art" >> MuBeam.txt # echo "sim.mu2e.Neutrals.owner.version.sequencer.art" >> Neutrals.txt - # create scripts for running changed and neutral resampling off these outputs. These need the resampler inputs - rm mubeamresample.fcl - rm elebeamresample.fcl - rm neutresample.fcl - rm mustopresample.fcl - echo '#include "Production/JobConfig/beam/MuBeamResampler.fcl"' >> mubeamresample.fcl - echo 'source.firstRun: 1202' >> mubeamresample.fcl - echo 'source.firstSubRun: 0' >> mubeamresample.fcl - echo 'source.maxEvents: 1000' >> mubeamresample.fcl - echo 'services.SeedService.baseSeed: 502016040' >> mubeamresample.fcl - echo 'physics.filters.beamResampler.mu2e.MaxEventsToSkip: 0' >> mubeamresample.fcl - echo 'physics.filters.TargetStopPrescaleFilter.nPrescale : 1' >> mubeamresample.fcl - echo 'physics.filters.EarlyPrescaleFilter.nPrescale : 100' >> mubeamresample.fcl - echo 'physics.filters.beamResampler.fileNames : [' >> mubeamresample.fcl - echo "\"`cat MuBeam.txt`\"" >> mubeamresample.fcl - echo ']' >> mubeamresample.fcl - - echo '#include "Production/JobConfig/beam/EleBeamResampler.fcl"' >> elebeamresample.fcl - echo 'source.firstRun: 1202' >> elebeamresample.fcl - echo 'source.firstSubRun: 0' >> elebeamresample.fcl - echo 'source.maxEvents: 10000' >> elebeamresample.fcl - echo 'services.SeedService.baseSeed: 502016040' >> elebeamresample.fcl - echo 'physics.filters.beamResampler.mu2e.MaxEventsToSkip: 0' >> elebeamresample.fcl - echo 'physics.filters.TargetStopPrescaleFilter.nPrescale : 1' >> elebeamresample.fcl - echo 'physics.filters.EarlyPrescaleFilter.nPrescale : 100' >> elebeamresample.fcl - echo 'physics.filters.beamResampler.fileNames : [' >> elebeamresample.fcl - echo "\"`cat EleBeam.txt`\"" >> elebeamresample.fcl - echo ']' >> elebeamresample.fcl - - echo '#include "Production/JobConfig/beam/MuBeamResampler.fcl"' >> mubeamresample.fcl - echo 'source.firstRun: 1202' >> mubeamresample.fcl - echo 'source.firstSubRun: 0' >> mubeamresample.fcl - echo 'source.maxEvents: 10000' >> mubeamresample.fcl - echo 'services.SeedService.baseSeed: 502016040' >> mubeamresample.fcl - echo 'physics.filters.beamResampler.mu2e.MaxEventsToSkip: 0' >> mubeamresample.fcl - echo 'physics.filters.TargetStopPrescaleFilter.nPrescale : 1' >> mubeamresample.fcl - echo 'physics.filters.EarlyPrescaleFilter.nPrescale : 1' >> mubeamresample.fcl - echo 'physics.filters.beamResampler.fileNames : [' >> mubeamresample.fcl - echo "\"`cat MuBeam.txt`\"" >> mubeamresample.fcl - echo ']' >> mubeamresample.fcl - - return 0 - else echo "Dumping products from Production version $1" # locate the specified output samweb list-file-locations --schema=root --defname="sim.mu2e.EleBeamCat.$1.art" | cut -f1 > EleBeam.txt samweb list-file-locations --schema=root --defname="sim.mu2e.MuBeamCat.$1.art" | cut -f1 > MuBeam.txt samweb list-file-locations --schema=root --defname="sim.mu2e.NeutralsCat.$1.art" | cut -f1 > Neutrals.txt - samweb list-file-locations --schema=root --defname="sim.mu2e.TargetStopsCat.$1.art" | cut -f1 > TargetStops.txt - samweb list-file-locations --schema=root --defname="sim.mu2e.IPAStopsCat.$1.art" | cut -f1 > IPAStops.txt - samweb list-file-locations --schema=root --defname="dts.mu2e.MuBeamFlashCat.$1.art" | cut -f1 > MuBeamFlash.txt - samweb list-file-locations --schema=root --defname="dts.mu2e.EleBeamFlashCat.$1.art" | cut -f1 > EleBeamFlash.txt - samweb list-file-locations --schema=root --defname="dts.mu2e.NeutralsFlashCat.$1.art" | cut -f1 > NeutralsFlash.txt - samweb list-file-locations --schema=root --defname="dts.mu2e.MuStopPileupCat.$1.art" | cut -f1 > MuStopPileup.txt fi # dump the contents of the first events of all the collections rm MuBeamProducts$1.txt rm EleBeamProducts$1.txt rm NeutralsProducts$1.txt -rm TargetStopsProducts$1.txt -rm IPAStopsProducts$1.txt -rm MuBeamFlashProducts$1.txt -rm EleBeamFlashProducts$1.txt -rm NeutralsFlashProducts$1.txt mu2e -c Offline/Print/fcl/fileDumper.fcl --source-list MuBeam.txt --nevts 1 | grep -E 'POT|PROCESS|PRINCIPAL' > MuBeamProducts$1.txt mu2e -c Offline/Print/fcl/fileDumper.fcl --source-list EleBeam.txt --nevts 1 | grep -E 'POT|PROCESS|PRINCIPAL' > EleBeamProducts$1.txt mu2e -c Offline/Print/fcl/fileDumper.fcl --source-list Neutrals.txt --nevts 1 | grep -E 'POT|PROCESS|PRINCIPAL' > NeutralsProducts$1.txt -mu2e -c Offline/Print/fcl/fileDumper.fcl --source-list TargetStops.txt --nevts 1 | grep -E 'MuBeamResampler|PROCESS|PRINCIPAL' > TargetStopsProducts$1.txt -mu2e -c Offline/Print/fcl/fileDumper.fcl --source-list IPAStops.txt --nevts 1 | grep -E 'MuBeamResampler|PROCESS|PRINCIPAL' > IPAStopsProducts$1.txt -mu2e -c Offline/Print/fcl/fileDumper.fcl --source-list MuBeamFlash.txt --nevts 1 | grep -E 'MuBeamResampler|PROCESS|PRINCIPAL' > MuBeamFlashProducts$1.txt -mu2e -c Offline/Print/fcl/fileDumper.fcl --source-list EleBeamFlash.txt --nevts 1 | grep -E 'EleBeamResampler|PROCESS|PRINCIPAL' > EleBeamFlashProducts$1.txt -mu2e -c Offline/Print/fcl/fileDumper.fcl --source-list NeutralsFlash.txt --nevts 1 | grep -E 'NeutralsResampler|PROCESS|PRINCIPAL' > NeutralsFlashProducts$1.txt -mu2e -c Offline/Print/fcl/fileDumper.fcl --source-list MuStopPileup.txt --nevts 1 | grep -E 'MuStopResampler|PROCESS|PRINCIPAL' > MuStopPileupProducts$1.txt - diff --git a/Scripts/ListPileupProducts.sh b/Scripts/ListPileupProducts.sh new file mode 100644 index 00000000..f1cfc574 --- /dev/null +++ b/Scripts/ListPileupProducts.sh @@ -0,0 +1,91 @@ +#!/usr/bin/bash +# +# This script dumps the output list to a text file for validation and verification +# It can either run on the output of an official production, or by running the tree of Production/JobConfig/beam jobs (with minimal statistics). +# Execute from a valid Mu2e muse workdir after 'muse setup' and 'dhtools setup' and 'vomsCert' +# Original author: Dave Brown (LBNL) +# +if [[ ${2} == "" ]]; then + echo "Getting beam products from Production version $1" + # locate the specified output + samweb list-file-locations --schema=root --defname="sim.mu2e.EleBeamCat.$1.art" | cut -f1 > EleBeam.txt + samweb list-file-locations --schema=root --defname="sim.mu2e.MuBeamCat.$1.art" | cut -f1 > MuBeam.txt + samweb list-file-locations --schema=root --defname="sim.mu2e.NeutralsCat.$1.art" | cut -f1 > Neutrals.txt + samweb list-file-locations --schema=root --defname="sim.mu2e.TargetStopsCat.$1.art" | cut -f1 > TargetStops.txt + # create scripts for running changed and neutral resampling off these outputs. These need the resampler inputs + rm mubeamresample.fcl + rm elebeamresample.fcl + rm neutresample.fcl + rm tgtresample.fcl + echo '#include "Production/JobConfig/pileup/MuBeamResampler.fcl"' >> mubeamresample.fcl + echo 'source.firstRun: 1202' >> mubeamresample.fcl + echo 'source.firstSubRun: 0' >> mubeamresample.fcl + echo 'source.maxEvents: 1000' >> mubeamresample.fcl + echo 'services.SeedService.baseSeed: 502016040' >> mubeamresample.fcl + echo 'physics.filters.beamResampler.mu2e.MaxEventsToSkip: 0' >> mubeamresample.fcl + echo 'physics.filters.TargetStopPrescaleFilter.nPrescale : 1' >> mubeamresample.fcl + echo 'physics.filters.EarlyPrescaleFilter.nPrescale : 100' >> mubeamresample.fcl + echo 'physics.filters.beamResampler.fileNames : [' >> mubeamresample.fcl + echo "\"`cat MuBeam.txt`\"" >> mubeamresample.fcl + echo ']' >> mubeamresample.fcl + + echo '#include "Production/JobConfig/pileup/EleBeamResampler.fcl"' >> elebeamresample.fcl + echo 'source.firstRun: 1202' >> elebeamresample.fcl + echo 'source.firstSubRun: 0' >> elebeamresample.fcl + echo 'source.maxEvents: 10000' >> elebeamresample.fcl + echo 'services.SeedService.baseSeed: 502016040' >> elebeamresample.fcl + echo 'physics.filters.beamResampler.mu2e.MaxEventsToSkip: 0' >> elebeamresample.fcl + echo 'physics.filters.EarlyPrescaleFilter.nPrescale : 100' >> elebeamresample.fcl + echo 'physics.filters.beamResampler.fileNames : [' >> elebeamresample.fcl + echo "\"`cat EleBeam.txt`\"" >> elebeamresample.fcl + echo ']' >> elebeamresample.fcl + + echo '#include "Production/JobConfig/pileup/NeutralsResampler.fcl"' >> neutresample.fcl + echo 'source.firstRun: 1202' >> neutresample.fcl + echo 'source.firstSubRun: 0' >> neutresample.fcl + echo 'source.maxEvents: 10000' >> neutresample.fcl + echo 'services.SeedService.baseSeed: 502016040' >> neutresample.fcl + echo 'physics.filters.neutralsResampler.mu2e.MaxEventsToSkip: 0' >> neutresample.fcl + echo 'physics.filters.TargetStopPrescaleFilter.nPrescale : 1' >> neutresample.fcl + echo 'physics.filters.EarlyPrescaleFilter.nPrescale : 1' >> neutresample.fcl + echo 'physics.filters.neutralsResampler.fileNames : [' >> neutresample.fcl + echo "\"`cat Neutrals.txt`\"" >> neutresample.fcl + echo ']' >> neutresample.fcl + + echo '#include "Production/JobConfig/pileup/MuStopPileup.fcl"' >> tgtresample.fcl + echo 'source.firstRun: 1202' >> tgtresample.fcl + echo 'source.firstSubRun: 0' >> tgtresample.fcl + echo 'source.maxEvents: 10000' >> tgtresample.fcl + echo 'services.SeedService.baseSeed: 502016040' >> tgtresample.fcl + echo 'physics.filters.TargetStopResampler.mu2e.MaxEventsToSkip: 0' >> tgtresample.fcl + echo 'physics.filters.TargetStopResampler.fileNames : [' >> tgtresample.fcl + echo "\"`cat TargetStops.txt`\"" >> tgtresample.fcl + echo ']' >> tgtresample.fcl + + # run a small number of these jobs: TODO + return 0 + +else + echo "Dumping products from Production version $1" + # locate the specified output + samweb list-file-locations --schema=root --defname="sim.mu2e.TargetStopsCat.$1.art" | cut -f1 > TargetStops.txt + samweb list-file-locations --schema=root --defname="sim.mu2e.IPAStopsCat.$1.art" | cut -f1 > IPAStops.txt + samweb list-file-locations --schema=root --defname="dts.mu2e.MuBeamFlashCat.$1.art" | cut -f1 > MuBeamFlash.txt + samweb list-file-locations --schema=root --defname="dts.mu2e.EleBeamFlashCat.$1.art" | cut -f1 > EleBeamFlash.txt + samweb list-file-locations --schema=root --defname="dts.mu2e.NeutralsFlashCat.$1.art" | cut -f1 > NeutralsFlash.txt + samweb list-file-locations --schema=root --defname="dts.mu2e.MuStopPileupCat.$1.art" | cut -f1 > MuStopPileup.txt +fi +# dump the contents of the first events of all the collections +rm TargetStopsProducts$1.txt +rm IPAStopsProducts$1.txt +rm MuBeamFlashProducts$1.txt +rm EleBeamFlashProducts$1.txt +rm NeutralsFlashProducts$1.txt + +mu2e -c Offline/Print/fcl/fileDumper.fcl --source-list TargetStops.txt --nevts 1 | grep -E 'MuBeamResampler|PROCESS|PRINCIPAL' > TargetStopsProducts$1.txt +mu2e -c Offline/Print/fcl/fileDumper.fcl --source-list IPAStops.txt --nevts 1 | grep -E 'MuBeamResampler|PROCESS|PRINCIPAL' > IPAStopsProducts$1.txt +mu2e -c Offline/Print/fcl/fileDumper.fcl --source-list MuBeamFlash.txt --nevts 1 | grep -E 'MuBeamResampler|PROCESS|PRINCIPAL' > MuBeamFlashProducts$1.txt +mu2e -c Offline/Print/fcl/fileDumper.fcl --source-list EleBeamFlash.txt --nevts 1 | grep -E 'EleBeamResampler|PROCESS|PRINCIPAL' > EleBeamFlashProducts$1.txt +mu2e -c Offline/Print/fcl/fileDumper.fcl --source-list NeutralsFlash.txt --nevts 1 | grep -E 'NeutralsResampler|PROCESS|PRINCIPAL' > NeutralsFlashProducts$1.txt +mu2e -c Offline/Print/fcl/fileDumper.fcl --source-list MuStopPileup.txt --nevts 1 | grep -E 'MuStopResampler|PROCESS|PRINCIPAL' > MuStopPileupProducts$1.txt + From b51a8d1cf979457b4aa49c3c5738aa26049b57b7 Mon Sep 17 00:00:00 2001 From: David Nathan Brown Date: Tue, 5 Oct 2021 14:49:49 -0500 Subject: [PATCH 44/47] Add script to create PBISequence primaries --- Scripts/CreatePBISequence.sh | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 Scripts/CreatePBISequence.sh diff --git a/Scripts/CreatePBISequence.sh b/Scripts/CreatePBISequence.sh new file mode 100644 index 00000000..178c5f45 --- /dev/null +++ b/Scripts/CreatePBISequence.sh @@ -0,0 +1,33 @@ +#!/usr/bin/bash +# script to convert a PBI sequence in text format into art primaries +# you must have 'setup muse' in a valid directory to run this script +# +# $1 is the DocDB number from which the sequence is taken (currently 33344) +# $2 is the PBI sequence type (either Normal or Pathological) +# $3 is the maximum number of events/job +# $4 is the run number +# +infile=PBI_$2_$1.txt +nlines=`wc -l < $infile` +let nfiles=$nlines/$3 +outroot=PBI_$2_$1_ + +echo "spliiting file $infile into $nfiles files" +split --lines $3 --numeric-suffixes --additional-suffix .txt $infile $outroot +# +# Now generate the fcl scripts to turn these into art files with PBI objects +# +for pbifile in $outroot*.txt; do + fclfile=`echo ${pbifile} | sed s/txt/fcl/` + artfile=`echo ${pbifile} | sed s/txt/art/` + logfile=`echo ${pbifile} | sed s/txt/log/` + echo '#include "Production/JobConfig/mixing/CreatePBISequence.fcl"' >> $fclfile + echo source.fileNames : [ \"$pbifile\" ] >> $fclfile + echo source.runNumber : $4 >> $fclfile + echo outputs.Output.fileName : \"$artfile\" >> $fclfile +# now run the jobs + echo creating art file $artfile + mu2e -c $fclfile >& $logfile +done + + From 7a3b067f83067a06a2484ba3f22bd0e42ad8ff48 Mon Sep 17 00:00:00 2001 From: soleti Date: Tue, 5 Oct 2021 17:16:02 -0500 Subject: [PATCH 45/47] Fixing fcl paths in POMS --- CampaignConfig/mdc2020_beam.cfg | 18 +++++++++--------- CampaignConfig/mdc2020_beam.ini | 2 +- CampaignConfig/mdc2020_corsika.cfg | 9 ++++----- CampaignConfig/mdc2020_corsika.ini | 2 +- CampaignConfig/mdc2020_mix.cfg | 7 +++---- CampaignConfig/mdc2020_mix.ini | 2 +- Scripts/CreatePBISequence.sh | 1 + 7 files changed, 20 insertions(+), 21 deletions(-) diff --git a/CampaignConfig/mdc2020_beam.cfg b/CampaignConfig/mdc2020_beam.cfg index 69063eae..e058af2e 100644 --- a/CampaignConfig/mdc2020_beam.cfg +++ b/CampaignConfig/mdc2020_beam.cfg @@ -3,12 +3,12 @@ group = mu2e experiment = mu2e wrapper = file:///${FIFE_UTILS_DIR}/libexec/fife_wrap submitter = mu2e -outdir_fcl = /pnfs/mu2e/scratch/datasets/phy-etc/cnf/mu2e/ +outdir_fcl = /pnfs/mu2e/persistent/datasets/phy-etc/cnf/mu2e/ outdir_sim = /pnfs/mu2e/scratch/datasets/phy-sim/sim/mu2e/ outdir_dts = /pnfs/mu2e/scratch/datasets/phy-sim/dts/mu2e/ outdir_sim_tape = /pnfs/mu2e/tape/phy-sim/sim/mu2e/ outdir_dts_tape = /pnfs/mu2e/tape/phy-sim/dts/mu2e/ -logdir_bck = /pnfs/mu2e/scratch/datasets/phy-etc/bck/mu2e/ +logdir_bck = /pnfs/mu2e/persistent/datasets/phy-etc/bck/mu2e/ desc = MDC2020k run_number = 1201 njobs = 500 @@ -31,7 +31,7 @@ e = SAM_EXPERIMENT e_1 = IFDH_DEBUG e_2 = POMS4_CAMPAIGN_NAME e_3 = POMS4_CAMPAIGN_STAGE_NAME -resource-provides = usage_model=DEDICATED,OPPORTUNISTIC,OFFSITE +resource-provides = usage_model=DEDICATED,OPPORTUNISTIC generate-email-summary = True expected-lifetime = 23h memory = 2500MB @@ -183,7 +183,7 @@ executable_2.name = generate_fcl executable_2.arg_4 = --run-number=%(run_number)s executable_2.arg_5 = --events-per-job=4000 executable_2.arg_6 = --njobs=%(njobs)s -executable_2.arg_7 = --embed +executable_2.arg_7 = --include executable_2.arg_8 = Production/JobConfig/beam/POT.fcl job_setup.ifdh_art = False @@ -217,7 +217,7 @@ executable.name = true executable_2.name = generate_fcl executable_2.arg_4 = --merge=500 executable_2.arg_5 = --inputs=inputs.txt -executable_2.arg_6 = --embed +executable_2.arg_6 = --include executable_2.arg_7 = Production/JobConfig/beam/BeamSplitter.fcl job_setup.ifdh_art = False @@ -255,7 +255,7 @@ job_setup.prescript_2 = dataset=sim.%(submitter)s.EleBeamCat.%(desc)s.art job_setup.prescript_3 = nfiles=`samCountFiles.sh $dataset` job_setup.prescript_4 = nevts=`samCountEvents.sh $dataset` job_setup.prescript_5 = let nskip=nevts/nfiles -job_setup.prescript_6 = echo '#include "Production/JobConfig/beam/EleBeamResampler.fcl"' >> template.fcl +job_setup.prescript_6 = echo '#include "Production/JobConfig/pileup/EleBeamResampler.fcl"' >> template.fcl job_setup.prescript_7 = echo 'physics.filters.beamResampler.mu2e.MaxEventsToSkip: '${nskip} >> template.fcl executable.name = true @@ -300,7 +300,7 @@ job_setup.prescript_2 = dataset=sim.%(submitter)s.MuBeamCat.%(desc)s.art job_setup.prescript_3 = nfiles=`samCountFiles.sh $dataset` job_setup.prescript_4 = nevts=`samCountEvents.sh $dataset` job_setup.prescript_5 = let nskip=nevts/nfiles -job_setup.prescript_6 = echo '#include "Production/JobConfig/beam/MuBeamResampler.fcl"' >> template.fcl +job_setup.prescript_6 = echo '#include "Production/JobConfig/pileup/MuBeamResampler.fcl"' >> template.fcl job_setup.prescript_7 = echo 'physics.filters.beamResampler.mu2e.MaxEventsToSkip: '${nskip} >> template.fcl executable.name = true @@ -383,7 +383,7 @@ job_setup.prescript_2 = dataset=sim.%(submitter)s.NeutralsCat.%(desc)s.art job_setup.prescript_3 = nfiles=`samCountFiles.sh $dataset` job_setup.prescript_4 = nevts=`samCountEvents.sh $dataset` job_setup.prescript_5 = let nskip=nevts/nfiles -job_setup.prescript_6 = echo '#include "Production/JobConfig/beam/NeutralsResampler.fcl"' >> template.fcl +job_setup.prescript_6 = echo '#include "Production/JobConfig/pileup/NeutralsResampler.fcl"' >> template.fcl job_setup.prescript_7 = echo 'physics.filters.neutralsResampler.mu2e.MaxEventsToSkip: '${nskip} >> template.fcl executable.name = true @@ -718,7 +718,7 @@ executable_2.name = generate_fcl executable_2.arg_4 = --inputs=inputs.txt executable_2.arg_5 = --merge=500 executable_2.arg_6 = --include -executable_2.arg_7 = Production/JobConfig/beam/MuonStopSelector.fcl +executable_2.arg_7 = Production/JobConfig/pileup/MuonStopSelector.fcl job_setup.ifdh_art = False diff --git a/CampaignConfig/mdc2020_beam.ini b/CampaignConfig/mdc2020_beam.ini index da8312b4..910bf6c0 100644 --- a/CampaignConfig/mdc2020_beam.ini +++ b/CampaignConfig/mdc2020_beam.ini @@ -1,7 +1,7 @@ [campaign] experiment = mu2e poms_role = production -name = MDC2020f_beam +name = MDC2020_beam_pileup campaign_stage_list = pot_fcl, pot, beam_cat_fcl, beam_cat, neutrals_cat_fcl, neutrals_cat, mubeam_resampler_fcl, mubeam_resampler, elebeam_resampler_fcl, elebeam_resampler, neutrals_resampler_fcl, neutrals_resampler, elebeamflash_cat_fcl, elebeamflash_cat, earlyelebeamflash_cat_fcl, earlyelebeamflash_cat, mubeamflash_cat_fcl, mubeamflash_cat, earlymubeamflash_cat_fcl, earlymubeamflash_cat, ipastops_cat_fcl, ipastops_cat, targetstops_cat_fcl, targetstops_cat, neutralsflash_cat_fcl, neutralsflash_cat, earlyneutralsflash_cat_fcl, earlyneutralsflash_cat, muonstops_fcl, muonstops, mustoppileup_fcl, mustoppileup, mustoppileup_cat_fcl, mustoppileup_cat [campaign_defaults] diff --git a/CampaignConfig/mdc2020_corsika.cfg b/CampaignConfig/mdc2020_corsika.cfg index 76eef023..cb9303f5 100644 --- a/CampaignConfig/mdc2020_corsika.cfg +++ b/CampaignConfig/mdc2020_corsika.cfg @@ -3,10 +3,10 @@ group = mu2e experiment = mu2e wrapper = file:///${FIFE_UTILS_DIR}/libexec/fife_wrap submitter = mu2e -outdir_fcl = /pnfs/mu2e/scratch/datasets/phy-etc/cnf/mu2e/ +outdir_fcl = /pnfs/mu2e/persistent/datasets/phy-etc/cnf/mu2e/ outdir_sim = /pnfs/mu2e/scratch/datasets/phy-sim/sim/mu2e/ outdir_dts = /pnfs/mu2e/scratch/datasets/phy-sim/dts/mu2e/ -logdir_bck = /pnfs/mu2e/scratch/datasets/phy-etc/bck/mu2e/ +logdir_bck = /pnfs/mu2e/persistent/datasets/phy-etc/bck/mu2e/ outdir_dig_tape = /pnfs/mu2e/tape/phy-sim/dig/mu2e/ outdir_dts_tape = /pnfs/mu2e/tape/phy-sim/dts/mu2e/ outdir_sim_tape = /pnfs/mu2e/tape/phy-sim/sim/mu2e/ @@ -31,7 +31,7 @@ e = SAM_EXPERIMENT e_1 = IFDH_DEBUG e_2 = POMS4_CAMPAIGN_NAME e_3 = POMS4_CAMPAIGN_STAGE_NAME -resource-provides = usage_model=DEDICATED,OPPORTUNISTIC,OFFSITE +resource-provides = usage_model=DEDICATED,OPPORTUNISTIC generate-email-summary = True expected-lifetime = 23h memory = 2000MB @@ -111,7 +111,6 @@ executable_2.arg_6 = --include executable_2.arg_7 = JobConfig/cosmic/S1DSStopsCORSIKA.fcl job_setup.ifdh_art = False - [stage_generation] global.stage_name = CosmicDSStopsCORSIKA job_output_2.add_to_dataset = sim.%(submitter)s.CosmicDSStopsCORSIKA.%(desc)s.art @@ -132,7 +131,7 @@ job_setup.postscript_1 = samweb file-lineage parents `basename ${fname}` > paren job_setup.postscript_2 = CORSIKA_EXE=`which corsika77400Linux_QGSJET_fluka` job_setup.postscript_3 = DATDIR=`dirname $CORSIKA_EXE` job_setup.postscript_4 = IFS='.' read -r -a FIELDS <<< "`cat filename.txt`" -job_setup.postscript_5 = sed -e "s:_DATDIR_:$DATDIR/:" -e "s:_DIRECT_:`pwd`/:" -e "s:_SEED1_:$RANDOM:" -e "s:_SEED2_:$RANDOM:" -e "s:_NSHOW_:3000000:" -e "s:RUNNR 1:RUNNR ${FIELDS[4]}:" /cvmfs/mu2e.opensciencegrid.org/Musings/SimJob/current/link/Production/JobConfig/cosmic/CORSIKAInput.txt > corsika_conf.txt +job_setup.postscript_5 = sed -e "s:_DATDIR_:$DATDIR/:" -e "s:_DIRECT_:`pwd`/:" -e "s:_SEED1_:$RANDOM:" -e "s:_SEED2_:$RANDOM:" -e "s:_NSHOW_:3000000:" -e "s:RUNNR 1:RUNNR ${FIELDS[4]}:" /cvmfs/mu2e.opensciencegrid.org/Musings/SimJob/%(release)s/link/Production/JobConfig/cosmic/CORSIKAInput.txt > corsika_conf.txt job_setup.postscript_6 = cat corsika_conf.txt job_setup.postscript_7 = corsika77400Linux_QGSJET_fluka < corsika_conf.txt > corsika_log.txt job_setup.postscript_8 = mv DAT* `cat filename.txt` diff --git a/CampaignConfig/mdc2020_corsika.ini b/CampaignConfig/mdc2020_corsika.ini index 0aeb1d00..dc85bcfe 100644 --- a/CampaignConfig/mdc2020_corsika.ini +++ b/CampaignConfig/mdc2020_corsika.ini @@ -1,7 +1,7 @@ [campaign] experiment = mu2e poms_role = production -name = MDC2020_CORSIKAf +name = MDC2020_CORSIKA campaign_stage_list = generation_fcl, generation, generation_cat_fcl, generation_cat, resampler_fcl, resampler [campaign_defaults] diff --git a/CampaignConfig/mdc2020_mix.cfg b/CampaignConfig/mdc2020_mix.cfg index f69a03c4..3ad1e1ba 100644 --- a/CampaignConfig/mdc2020_mix.cfg +++ b/CampaignConfig/mdc2020_mix.cfg @@ -3,11 +3,10 @@ group = mu2e experiment = mu2e wrapper = file:///${FIFE_UTILS_DIR}/libexec/fife_wrap submitter = mu2e -outdir_fcl = /pnfs/mu2e/scratch/datasets/phy-etc/cnf/mu2e/ +outdir_fcl = /pnfs/mu2e/persistent/datasets/phy-etc/cnf/mu2e/ outdir_dig_tape = /pnfs/mu2e/tape/phy-sim/dig/mu2e/ outdir_dts_tape = /pnfs/mu2e/tape/phy-sim/dts/mu2e/ - -logdir_bck = /pnfs/mu2e/scratch/datasets/phy-etc/bck/mu2e/ +logdir_bck = /pnfs/mu2e/persistent/datasets/phy-etc/bck/mu2e/ desc = MDC2020k run_number = 1210 njobs = 10 @@ -32,7 +31,7 @@ e = SAM_EXPERIMENT e_1 = IFDH_DEBUG e_2 = POMS4_CAMPAIGN_NAME e_3 = POMS4_CAMPAIGN_STAGE_NAME -resource-provides = usage_model=DEDICATED,OPPORTUNISTIC,OFFSITE +resource-provides = usage_model=DEDICATED,OPPORTUNISTIC generate-email-summary = True expected-lifetime = 23h memory = 2500MB diff --git a/CampaignConfig/mdc2020_mix.ini b/CampaignConfig/mdc2020_mix.ini index ef758e75..e32a0c76 100644 --- a/CampaignConfig/mdc2020_mix.ini +++ b/CampaignConfig/mdc2020_mix.ini @@ -1,7 +1,7 @@ [campaign] experiment = mu2e poms_role = production -name = MDC2020j_mix +name = MDC2020_mix campaign_stage_list = ceendpoint_fcl, ceendpoint, ceendpointdigi_fcl, ceendpointdigi, ceendpointmix_fcl, ceendpointmix, noprimarymix_fcl, noprimary_mix, noprimarypbimix_fcl, noprimarypbimix, flateminus_fcl, flateminus, flateminusmix_fcl, flateminusmix [campaign_defaults] diff --git a/Scripts/CreatePBISequence.sh b/Scripts/CreatePBISequence.sh index 178c5f45..879c28f7 100644 --- a/Scripts/CreatePBISequence.sh +++ b/Scripts/CreatePBISequence.sh @@ -28,6 +28,7 @@ for pbifile in $outroot*.txt; do # now run the jobs echo creating art file $artfile mu2e -c $fclfile >& $logfile + printJson --no-parents $artfile > $artfile.json done From c120b4d259a3297942cffb1894f75ee307f8d1dd Mon Sep 17 00:00:00 2001 From: soleti Date: Tue, 5 Oct 2021 17:24:20 -0500 Subject: [PATCH 46/47] Adding executable permission to scripts --- Scripts/CreatePBISequence.sh | 0 Scripts/ListBeamProducts.sh | 0 Scripts/ListPileupProducts.sh | 0 Scripts/gen_FlateMinus.sh | 0 Scripts/gen_FlatePlus.sh | 0 5 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 Scripts/CreatePBISequence.sh mode change 100644 => 100755 Scripts/ListBeamProducts.sh mode change 100644 => 100755 Scripts/ListPileupProducts.sh mode change 100644 => 100755 Scripts/gen_FlateMinus.sh mode change 100644 => 100755 Scripts/gen_FlatePlus.sh diff --git a/Scripts/CreatePBISequence.sh b/Scripts/CreatePBISequence.sh old mode 100644 new mode 100755 diff --git a/Scripts/ListBeamProducts.sh b/Scripts/ListBeamProducts.sh old mode 100644 new mode 100755 diff --git a/Scripts/ListPileupProducts.sh b/Scripts/ListPileupProducts.sh old mode 100644 new mode 100755 diff --git a/Scripts/gen_FlateMinus.sh b/Scripts/gen_FlateMinus.sh old mode 100644 new mode 100755 diff --git a/Scripts/gen_FlatePlus.sh b/Scripts/gen_FlatePlus.sh old mode 100644 new mode 100755 From 574a6a6e695291ffd056ed14292033076116b4c5 Mon Sep 17 00:00:00 2001 From: michaelmackenzie Date: Fri, 8 Oct 2021 16:43:53 -0500 Subject: [PATCH 47/47] Re-remove pbar volume references --- JobConfig/beam/prolog.fcl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/JobConfig/beam/prolog.fcl b/JobConfig/beam/prolog.fcl index 8b6d866b..dd12fa95 100644 --- a/JobConfig/beam/prolog.fcl +++ b/JobConfig/beam/prolog.fcl @@ -93,7 +93,7 @@ Beam: { { type: plane normal: [ -1, 0, 0 ] point : [ 2800., 0, 0 ] }, # Make sure the charged particle beam reaches our DS2Vacuum stopping volume - {type: notInVolume pars:[TS2Vacuum, TS3Vacuum, TS4Vacuum, TS5Vacuum, Coll31, Coll32, Coll51, TS2InnerCryoShell, TS3InnerCryoShell, TS4InnerCryoShell, TS2CryoInsVac, TS3CryoInsVac, PbarAbsDisk, PbarAbsWedge, VirtualDetector_Coll31_In, VirtualDetector_Coll32_In, VirtualDetector_Coll31_Out, VirtualDetector_Coll32_Out, Coll31OutRecord, Coll32InRecord, Coll31OutRecord, VirtualDetector_TS4_Bend, VirtualDetector_Coll5_In, VirtualDetector_Coll5_Out, VirtualDetector_Coll5_OutSurf]}, + {type: notInVolume pars:[TS2Vacuum, TS3Vacuum, TS4Vacuum, TS5Vacuum, Coll31, Coll32, Coll51, TS2InnerCryoShell, TS3InnerCryoShell, TS4InnerCryoShell, TS2CryoInsVac, TS3CryoInsVac, VirtualDetector_Coll31_In, VirtualDetector_Coll32_In, VirtualDetector_Coll31_Out, VirtualDetector_Coll32_Out, Coll31OutRecord, Coll32InRecord, Coll31OutRecord, VirtualDetector_TS4_Bend, VirtualDetector_Coll5_In, VirtualDetector_Coll5_Out, VirtualDetector_Coll5_OutSurf]}, # This union splits the output of the above cuts # into two exclusive streams; Beam (charged particles entering the DS) and Neutrals ((mostly)neutral particles approaching the CRV