#include <NuCutImps.h>
Inheritance diagram for NuCutImps::CCA_NC:

Public Member Functions | |
| CCA_NC (const NuPlots *plots=0) | |
| Bool_t | InFidVol (const NuEvent &nu) const |
| void | Preselection (const NuEvent &nu) |
| void | Selection (const NuEvent &nu) |
Protected Member Functions | |
| void | FDCleaning (const NuEvent &nu) |
| void | FDCosmics (const NuEvent &nu) |
| void | NDCleaning (const NuEvent &nu) |
Private Attributes | |
| CCAPresel | fCCAPresel |
|
|
Definition at line 582 of file NuCutImps.cxx. References plots(), and NuCut::SetFidVol(). 00582 : 00583 NuCut("CCA_NC", plots) 00584 { 00585 // Match CC fiducial volume for simplicity 00586 // TODO CJB - will this try to use the track vertex? Is that bad? 00587 SetFidVol("cc2008"); 00588 }
|
|
|
Definition at line 632 of file NuCutImps.cxx. References NuCut::Cut_If(), NuEvent::evtphsigcor, FDCosmics(), max, NuEvent::nearestSpillNanosec, NuEvent::nevt, NuEvent::nstripEvt, NuEvent::snarlPulseHeight, and NuEvent::trigtime. Referenced by Preselection(). 00633 {
00634 // See NCUtils/Cuts/NCAnalysisCutsNC for original version
00635
00636 Cut_If(nu.nevt == 0, "NumEvents");
00637
00638 const double phFrac = nu.evtphsigcor/max(nu.snarlPulseHeight, 1e-10);
00639 Cut_If(nu.nevt > 2 || (nu.nevt == 2 && phFrac < .75), "PHfrac");
00640
00641 FDCosmics(nu); // Cut out cosmics
00642
00643 Cut_If(nu.evtphsigcor < 5000 && nu.nstripEvt <= 4, "FibreNoise");
00644
00645 // Timing cut. Data only
00646 const double dt_spill = nu.trigtime*Munits::s - nu.nearestSpillNanosec*Munits::ns;
00647
00648 Cut_Data_If(dt_spill < -2*Munits::microsecond ||
00649 dt_spill > 12*Munits::microsecond,
00650 nu, "Timing");
00651 }
|
|
|
Definition at line 656 of file NuCutImps.cxx. Referenced by FDCleaning(). 00657 {
00658 //Ultra-steep showers
00659 Cut_If(nu.planeEvtN == 0 || nu.nstripEvt >= SQR(nu.planeEvtN),
00660 "UltraSteep");
00661
00662 //Steep showers
00663 const double tRMS = TMath::Sqrt(SQR(nu.transverseRMSU)+
00664 SQR(nu.transverseRMSV));
00665 Cut_If(nu.nshw > 0 && tRMS > .3+.1901*TMath::Log10(nu.planeEvtN), "Steep");
00666
00667 //Track angle
00668 Cut_If(nu.ntrk > 0 && nu.trkvtxdcosz < 0.4, "TrkDCosZ");
00669
00670 const bool upExitTrack = ((nu.zTrkEnd > 28.78 ||
00671 nu.endMetersToCloseEdge < .5) &&
00672 nu.yTrkEnd > -1.657);
00673
00674 Cut_If(nu.ntrk > 0 && upExitTrack && nu.dtdz < -.5 && nu.trkvtxdcosy < -.4,
00675 "UpExitTrack");
00676 }
|
|
|
Fiducial volume calculation function. This is the basic 'infid' derived version, and should be overridden/passed to for any more complicated evaluations. Reimplemented from NuCut. Definition at line 591 of file NuCutImps.cxx. References NuCut::InFidVol(), NuCut::InFidVolEvt(), NuEvent::nplaneShw, NuEvent::ntrk, NuEvent::trknplane, and NuEvent::zTrkVtx. Referenced by Preselection(). 00592 {
00593 // If there's a track and it's longer than the shower then use its
00594 // vertex, otherwise use the event vertex. This is what is done in
00595 // the NC analysis.
00596 // TODO CJB - is this maximally consistent with the CC analysis?
00597 if(nu.ntrk > 0 && nu.trknplane > nu.nplaneShw){
00598 // Move trk vtx upstream by 3.92cm from scintillator to steel
00599 NuEvent nuc = nu;
00600 nuc.zTrkVtx = nu.zTrkVtx - (0.0392*Munits::m);
00601 return NuCut::InFidVol(nuc);
00602 }
00603 return NuCut::InFidVolEvt(nu);
00604 }
|
|
|
Definition at line 679 of file NuCutImps.cxx. References NuCut::Cut_If(). Referenced by Preselection(). 00680 {
00681 // See NCUtils/Cuts/NCAnalysisCuts::IsMultiCutsClean for original version
00682
00683 // 35ns timing cut
00684 Cut_If(TMath::Abs(nu.minTimeSeparation) < 35e-9, "TimeSep");
00685
00686 // tiny events are mostly junk
00687 Cut_If(nu.nstripEvt < 5, "TotalStrips");
00688
00689 // this cuts very steep showers, leaking in
00690 Cut_If(nu.nstripEvt > 1.15*SQR(nu.planeEvtN), "Steep");
00691
00692 // this cuts leakage which leaves activity in partially instrumented
00693 // region
00694 Cut_If(nu.edgeActivityStrips > 2 &&
00695 nu.edgeActivityPH > 1000 &&
00696 nu.energy < 5 &&
00697 nu.nplaneShw > nu.trknplane,
00698 "Leakage");
00699
00700 Cut_If(nu.oppEdgeStrips > 2 &&
00701 nu.energy < 5.0 &&
00702 nu.nplaneShw > nu.trknplane,
00703 "OppositeEdge");
00704
00705 // make additional deltaZ cuts if (|minDeltaT|<175ns)
00706 Cut_If(TMath::Abs(nu.closeTimeDeltaZ) < 1.0 &&
00707 TMath::Abs(nu.minTimeSeparation) < 175e-9,
00708 "dz&dt");
00709 }
|
|
|
Implements NuCut. Definition at line 607 of file NuCutImps.cxx. References NuCut::Defer_Preselection(), NuEvent::detector, fCCAPresel, FDCleaning(), InFidVol(), NuCut::Keep_If(), and NDCleaning(). 00608 {
00609 Defer_Preselection(fCCAPresel, nu);
00610
00611 // Now do the rest of the preselection
00612
00613 // No good track cut
00614
00615 // Is it in the fiducial volume?
00616 Keep_If(InFidVol(nu), "FidVol");
00617
00618 // No track fit pass or direction cosines or track reclamation
00619
00620 // TODO CJB - check CC cuts don't overcut these
00621 if(nu.detector == Detector::kFar ) FDCleaning(nu);
00622 if(nu.detector == Detector::kNear) NDCleaning(nu);
00623 }
|
|
|
Implements NuCut. Definition at line 626 of file NuCutImps.cxx. References NuCut::Keep_If(), and NuEvent::roID.
|
|
|
Definition at line 138 of file NuCutImps.h. Referenced by Preselection(). |
1.3.9.1