=
{{
"count",
"", Binning::Simple(3,0,3),
kCounting},
{
"mucosth",
"cos#theta", Binning::Simple(50,-1,1),
kPrimTrkCosth},
{
"vtxx",
"X (cm)", Binning::Simple(50,-200,200),
kSlcVtxX},
{
"vtxy",
"Y (cm)", Binning::Simple(50,-200,200),
kSlcVtxY},
{
"vtxz",
"Z (cm)", Binning::Simple(50,0,500),
kSlcVtxZ},
{
"mulen",
"Primary Track Length", Binning::Simple(50,0,200),
kPrimTrkLen},
{
"mucrtdist",
"Primary Track Distance to CRT hit", Binning::Simple(50,0,100),
kPrimTrkCRTdist},
}
const Var kPrimTrkCRTdist([](const caf::SRSliceProxy *slc){int muIdx=kPrimMuonIdx(slc);if(muIdx< 0) return-5.;return(double) slc->reco.trk[muIdx].crthit.distance;})
const Var kPrimTrkCosth([](const caf::SRSliceProxy *slc) -> double{int muIdx=kPrimMuonIdx(slc);if(muIdx< 0) return-5.;return(double) slc->reco.trk[muIdx].costh;})
const Var kSlcVtxX([](const caf::SRSliceProxy *slc) -> double{return slc->slc.vertex.x;})
const Var kPrimTrkLen([](const caf::SRSliceProxy *slc) -> double{double len=-5.0;if(slc->reco.ntrk > 0){int muIdx=(int) kPrimMuonIdx(slc);if(muIdx >=0){len=slc->reco.trk[muIdx].len;}}return len;})
const Var kSlcVtxZ([](const caf::SRSliceProxy *slc) -> double{return slc->slc.vertex.z;})
const Var kSlcVtxY([](const caf::SRSliceProxy *slc) -> double{return slc->slc.vertex.y;})