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:


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