Muon Parent Reweighting
Currently, to reweight neutrinos with a muon parent, the parent of the
muon itself must be found from the flux files.
Code to extract this information is now available in MCReweight.
Generating "MuPi Trees"
The first step is to generate a new set of trees which contain both the
muon and muon parent information for each neutrino-from-muon in the
flux file.
This can be done because any particle which produces a neutrino has an
entry in the flux file; hence the details of a pion whose decay
produces a muon + neutrino can be extracted.
The macro: MCReweight/macros/muonInfo.C can be used to generate one of
these mupi trees for a set of flux files.
To make such a file, at the root prompt do:
root>
gSystem->CompileMacro("MCReweight/macros/muonInfo.C");
root>
muonInfo("gnumi/v18/fluka05_le010z185i/root/*.root","fluka05_le010z185i");
The first argument is the path to the flux files (note that the program
requires the h2root'd versions of the hbook files).
The second argument is a tag which is added to the output files.
Two output files are produced:
mupiTree_fluka05_le010z185i.root
mupiTreeMini_fluka05_le010z185i.root
The first contains the full set of variables for both the muon and it's
parent for each neutrino-from-muon in the set of flux files passed to
the function.
The second contains the limited set of variables required for beam
reweighting.
The first file is 30M for the 207 fluka05_le010z185i flux files and the
second file is 4.1M.
For ease of implementation, the smaller files are employed in the muon
parent look-up code described in a later section.
Limitations of the MuPi Trees
Considering the fluka05_le010z185i flux files, looking at the figures
below we can learn several things:
- The total number of neutrinos-from-muon in the 207 files (1.035e8
POT) is ~150000
- Approximately 8% of muons have no parent in the flux files!
- The Pz of the muons with missing parent
info is typically small (< 2 GeV)

Tptype of the muon parent, (GEANT particle codes). The bin at zero
corresponds to muons for which no parent information was available.



Using the MuPi trees
A new class in MCReweight can be used to obtain the muon parent
information:
MuParentHelper
To use the code, the following directory structure and file naming
convention is expected:
fluka05_le010z200i/mupiTreeMini_fluka05_le010z200i.root
fluka05_le010z185i/mupiTreeMini_fluka05_le010z185i.root
etc...
To set up the helper class in code, do the following:
MuParentHelper
mupar;
// if enviromental variable
$GNUMIAUX points to the appropriate directory
// ( e.g. export GNUMIAUX=/my/path/to/files/fluka05_le010z185i )
// then the files will be picked up in the constructor call.
[
mupar.SetFileDir("/path/to/mupiTreeMini"); // Else call SetFileDir("/my/path/to/files/fluka05_le010z185i").
]
Note that all files of type "mupiTreeMini_blah.root" in the directory
"blah" specified will be picked up.
Now, within a loop over the MC events, the muon parent information can
be obtained:
if(tptype==5
|| tptype==6) {
NuParent par;
mupar.GetMuParent(fluxrun,fluxevtno,tpx,tpy,tpz,par);
}
The NtpMCRecord/NtpStRecord + mcevent index can also be passed if the
flux information is available in the NtpSt file:
void
MuParentHelper::GetMuParent(NtpMCRecord *rec,int mcevent,NuParent
&par)
void
MuParentHelper::GetMuParent(NtpStRecord *rec,int mcevent,NuParent
&par)
If AnalysisNtuples is being used, similar calls are available:
void
MuParentHelper::FillANtpTruth(NtpMCRecord *rec,int
mcevent,ANtpTruthInfoBeam &ntpBeam)
void
MuParentHelper::FillANtpTruth(NtpStRecord *rec,int
mcevent,ANtpTruthInfoBeam &ntpBeam)
Getting Pre-made Trees
On afs at FNAL:
/afs/fnal.gov/files/data/minos/d19/muonInfo/v18/fluka05_*
Any problems: cbs@hep.ucl.ac.uk