#include "TObject.h"#include <iostream>#include "NueRecord.h"#include "NueAna/NueAnaTools/Selection.h"#include "DataUtil/OscCalc.h"Go to the source code of this file.
|
|
Definition at line 354 of file NueStandard.cxx. References BagTree::bt_var1, NueRecord::dtree, and NueStandard::PassesCosmicCutFunction(). Referenced by NueStandard::PassesCosmicCut(). 00355 {
00356 int bv = 0;
00357 if (NueStandard::PassesCosmicCutFunction(nr)) bv=1;
00358 nr->dtree.bt_var1=bv;
00359 }
|
|
|
Definition at line 993 of file NueStandard.cxx. 00994 {
00995 Double_t dm2_12 = 8.0e-5; // best fit SNO
00996 Double_t dm2_23 = 2.43e-3;
00997
00998 par[OscPar::kL] = 735.0;
00999 par[OscPar::kTh23] = 3.1415926/4.0;
01000 par[OscPar::kTh12] = 0.59365; // Sin2(2Th12) = 0.86
01001 par[OscPar::kTh13] = 0.19885; // Sin2(2Th13) = 0.15;
01002 par[OscPar::kDeltaM23] = dm2_23; //normal heirarchy
01003 par[OscPar::kDeltaM12] = dm2_12;
01004 par[OscPar::kDensity] = 2.75; //standard rock density
01005 par[OscPar::kDelta] = 0;
01006 par[OscPar::kNuAntiNu] = 1;
01007 }
|
|
|
Definition at line 1030 of file NueStandard.cxx. References RecRecordImp< T >::GetHeader(), VldContext::GetSimFlag(), NueStandard::GetSKZPBeamWeight(), and RecHeader::GetVldContext(). Referenced by NueMiniAnaPID::FillMini(). 01031 {
01032 //Function to calculate MC event weights to correct for various effect
01033 Double_t eventWeight = 1.0;
01034
01035 //Check if it is MC
01036 if(nr->GetHeader().GetVldContext().GetSimFlag() == SimFlag::kMC)
01037 {
01038 //Correct MC flux (i.e. SKZP and Helium)
01039 eventWeight *= NueStandard::GetSKZPBeamWeight(nr);
01040 }
01041
01042 return(eventWeight);
01043 }
|
|
|
Definition at line 1009 of file NueStandard.cxx. Referenced by NNTrain::MakeTrainTree(), MiniPlotMaker::SaveHistos(), and SysFileGen2D::WriteToFile(). 01009 {
01010 fOscGen.GetOscParam(par);
01011 }
|
|
||||||||||||||||
|
Definition at line 988 of file NueStandard.cxx. Referenced by NueUtilities::AnaNueProcessor::GetOscWeight_f210f213f214Separate(), NNTrain::MakeTrainTree(), and MiniMakerPID::RunMiniMakerPID(). 00989 {
00990 return fOscGen.Oscillate(nuFlavor, nonOsc, E);
00991 }
|
|
||||||||||||
|
Definition at line 548 of file NueStandard.cxx. References NueRecord::ann, MCNNVars::bestmatches, PRecord::event, TreePID::fCutPID, MCNNVars::mcnn_var1, NueRecord::mcnnv, NueStandard::PassesParticlePIDPreselectionCut(), SubShowerVar::pid, Ann::pid, Ann::pid_11inp, Ann::pid_11inp_daikon04, Ann::pid_30inp, Ann::pid_6inp, Event::pidF, NueRecord::precord, NueRecord::subshowervars, and NueRecord::treepid. Referenced by NueSystematic::DoPIDSkew(), Trimmer::EvaluateCuts(), NueUtilities::AnaNueProcessor::GetANN11(), NueUtilities::AnaNueProcessor::GetANN14(), NueUtilities::AnaNueProcessor::GetOldANN11(), NueUtilities::AnaNueProcessor::GetParticlePID(), NueUtilities::AnaNueProcessor::GetSSPID(), NueModule::PassesBlindingCuts(), and NueStandard::PassesPIDSelection(). 00549 {
00550 double retval = -9999;
00551
00552 switch(sel) {
00553 case Selection::kCuts: retval = nr->treepid.fCutPID; break;
00554 case Selection::kANN6: retval = nr->ann.pid_6inp; break;
00555 case Selection::kANN30: retval = nr->ann.pid_30inp; break;
00556 case Selection::kANN2PE: retval = nr->ann.pid_11inp; break;
00557 case Selection::kANN2PE_DAIKON04: retval = nr->ann.pid_11inp_daikon04; break;
00558 case Selection::kANN14_DAIKON04: retval = nr->ann.pid; break;
00559 // case Selection::kANN14_DAIKON04: retval = nr->ann.pid_14inp_daikon04; break;
00560 case Selection::kSSPID: retval = nr->subshowervars.pid; break;
00561 case Selection::kMCNN:
00562 if (nr->mcnnv.bestmatches < 50) retval = -0.5;
00563 else retval = nr->mcnnv.mcnn_var1; break;
00564
00565
00566 case Selection::kParticlePID:
00567 if(PassesParticlePIDPreselectionCut(nr))retval = nr->precord.event.pidF;
00568 break;
00569
00570 default: break;
00571 }
00572
00573 return retval;
00574 }
|
|
||||||||||||
|
Definition at line 882 of file NueStandard.cxx. 00883 {
00884
00885 double w=0.;
00886 double p=0.;
00887 for(unsigned int i=0;i<weights.size();i++){
00888 w+=weights[i]*pots[i];
00889 p+=pots[i];
00890 }
00891
00892 if (p==0){
00893 cout<<"Total pots is set to zero, can not compute a exposure weighted average beam weight. Returning 1"<<endl;
00894 return 1;
00895 }
00896
00897 return w/p;
00898 }
|
|
||||||||||||
|
Definition at line 784 of file NueStandard.cxx. References det, NueRecord::fluxweights, NueHeader::GetBeamType(), VldContext::GetDetector(), RecRecordImp< T >::GetHeader(), RecHeader::GetVldContext(), MAXMSG, NueRecord::mctrue, ANtpTruthInfo::nuFlavor, and NueFluxWeights::RPtotbeamweight. Referenced by NueExpBuilder::GenerateExperiment(), and NNTrain::MakeTrainTree(). 00785 {
00786
00787
00788 std::vector<double> pots;
00789
00790 Detector::Detector_t det = nr->GetHeader().GetVldContext().GetDetector();
00791 BeamType::BeamType_t beam = nr->GetHeader().GetBeamType();
00792
00793 if(beam != BeamType::kL010z185i
00794 &&beam != BeamType::kL010z185i_i124
00795 &&beam != BeamType::kL010z185i_i191
00796 &&beam != BeamType::kL010z185i_i213
00797 &&beam != BeamType::kL010z185i_i224
00798 &&beam != BeamType::kL010z185i_i232
00799 &&beam != BeamType::kL010z185i_i243
00800 &&beam != BeamType::kL010z185i_i257
00801 &&beam != BeamType::kL010z185i_i282
00802 &&beam != BeamType::kL010z185i_i303
00803 &&beam != BeamType::kL010z185i_i324
00804
00805 &&beam != BeamType::kL010z000i
00806 &&beam != BeamType::kL010z000i_i209
00807 &&beam != BeamType::kL010z000i_i225
00808 &&beam != BeamType::kL010z000i_i232
00809 &&beam != BeamType::kL010z000i_i259
00810 &&beam != BeamType::kL010z000i_i300
00811 &&beam != BeamType::kL010z000i_i317
00812 &&beam != BeamType::kL010z000i_i326
00813 &&beam != BeamType::kL010z000i_i380){
00814
00815 MAXMSG("NueStandard",Msg::kWarning,5)<<"Can't use NueStandard::GetRPWBeamWeight for non L010185 or L010000 beams, stop it!"<<endl;
00816 return 0;
00817 }
00818
00819 if (det==Detector::kNear){
00820 if (ismrcc){
00821 for(int i=0;i<NRUNPERIODS;i++){
00822 pots.push_back(pot_ndmrcc[i]);
00823 }
00824 }
00825 else if (beam == BeamType::kL010z185i
00826 ||beam == BeamType::kL010z185i_i124
00827 ||beam == BeamType::kL010z185i_i191
00828 ||beam == BeamType::kL010z185i_i213
00829 ||beam == BeamType::kL010z185i_i224
00830 ||beam == BeamType::kL010z185i_i232
00831 ||beam == BeamType::kL010z185i_i243
00832 ||beam == BeamType::kL010z185i_i257
00833 ||beam == BeamType::kL010z185i_i282
00834 ||beam == BeamType::kL010z185i_i303
00835 ||beam == BeamType::kL010z185i_i324){
00836 for(int i=0;i<NRUNPERIODS;i++){
00837 pots.push_back(pot_nd[i]);
00838 }
00839 }
00840 else if (beam==BeamType::kL010z000i
00841 ||beam == BeamType::kL010z000i_i209
00842 ||beam == BeamType::kL010z000i_i225
00843 ||beam == BeamType::kL010z000i_i232
00844 ||beam == BeamType::kL010z000i_i259
00845 ||beam == BeamType::kL010z000i_i300
00846 ||beam == BeamType::kL010z000i_i317
00847 ||beam == BeamType::kL010z000i_i326
00848 ||beam == BeamType::kL010z000i_i380){
00849 for(int i=0;i<NRUNPERIODS;i++){
00850 pots.push_back(pot_ndhornoff[i]);
00851 }
00852 }
00853 }
00854 else{
00855 if (ismrcc){
00856 for(int i=0;i<NRUNPERIODS;i++){
00857 pots.push_back(pot_fdmrcc[i]);
00858 }
00859 }
00860 //FD has no intensity samples
00861 else if (beam==BeamType::kL010z185i){
00862 for(int i=0;i<NRUNPERIODS;i++){
00863 pots.push_back(pot_fd[i]);
00864 }
00865 }
00866 //FD has no intensity samples
00867 else if (beam==BeamType::kL010z000i){
00868 MAXMSG("NueStandard",Msg::kWarning,5)<<"Can't use NueStandard::GetRPWBeamWeight for FD L010000 beams, stop it!"<<endl;
00869 return 0;
00870 }
00871 }
00872
00873 if(nr->mctrue.nuFlavor < -1000){
00874 MAXMSG("NueStandard",Msg::kWarning,5)<<"No truth info for this event returning 0 for beamweight"<<endl;
00875 return 0;
00876 }
00877
00878 double weight = GetRPWBeamWeight(nr->fluxweights.RPtotbeamweight,pots);
00879 return weight;
00880 }
|
|
|
Definition at line 1047 of file NueStandard.cxx. References NueRecord::fluxinfo, NueHeader::GetBeamType(), SKZPWeightCalculator::GetBeamWeight(), VldContext::GetDetector(), RecRecordImp< T >::GetHeader(), VldContext::GetSimFlag(), RecHeader::GetVldContext(), NueRecord::mctrue, ANtpTruthInfoBeam::nonOscNuFlavor, ANtpTruthInfo::nuEnergy, SKZPWeightCalculator::PrintReweightConfig(), BeamType::ToZarko(), NtpMCFluxInfo::tptype, NtpMCFluxInfo::tpx, NtpMCFluxInfo::tpy, and NtpMCFluxInfo::tpz. Referenced by NueStandard::GetMCWeights(). 01048 {
01049 //One time intialization
01050 static SKZPWeightCalculator skzpWC("DetXs",true); //static because we only want this created once
01051 //and not every time it's called within a loop
01052 static bool firstTimeFunctionCalled = true;
01053
01054 if(firstTimeFunctionCalled)
01055 {
01056 //print out the configuration information once
01057 skzpWC.PrintReweightConfig(std::cout);
01058 firstTimeFunctionCalled = false;
01059 }
01060
01061 //Now get the weight
01062 Double_t eventWeight = 1.0;
01063
01064 //Check if it is MC
01065 if(nr->GetHeader().GetVldContext().GetSimFlag() == SimFlag::kMC)
01066 {
01067
01068 //Correct MC flux (i.e. SKZP and Helium)
01069 double pt = (nr->fluxinfo.tpx * nr->fluxinfo.tpx);
01070 pt += (nr->fluxinfo.tpy * nr->fluxinfo.tpy);
01071 pt = sqrt(pt);
01072
01073 eventWeight = skzpWC.GetBeamWeight(
01074 nr->GetHeader().GetVldContext().GetDetector() /*int det*/,
01075 BeamType::ToZarko( nr->GetHeader().GetBeamType() ) /*int Ibeam*/,
01076
01077 nr->fluxinfo.tptype /*int tptype*/,
01078 pt /*double pt*/,
01079 nr->fluxinfo.tpz /*double pz*/,
01080
01081 nr->mctrue.nuEnergy /*double true_enu*/,
01082 nr->mctrue.nonOscNuFlavor /*int inu*/, //want weight before neutrino oscillations
01083 nr->GetHeader().GetVldContext() /*VldContext vc*/
01084 );
01085 }
01086
01087 return(eventWeight);
01088 }
|
|
|
Definition at line 196 of file NueStandard.cxx. References FilePosition::Event, Form(), VldContext::GetDetector(), RecRecordImp< T >::GetHeader(), NueHeader::GetRun(), VldContext::GetSimFlag(), NueHeader::GetSubRun(), RecHeader::GetVldContext(), MSG, FilePosition::Run, FilePosition::Snarl, and FilePosition::SubRun. Referenced by NueStandard::IsGoodRun(). 00197 {
00198 if(nr->GetHeader().GetVldContext().GetSimFlag() == SimFlag::kMC)
00199 {
00200 return true;
00201 }
00202
00203 if(nr->GetHeader().GetVldContext().GetDetector() == Detector::kNear)
00204 {
00205 return true;
00206 }
00207
00208 //for far detector data
00209 static vector<FilePosition> badFDrunlist;
00210 static unsigned int listpos = 0;
00211 int Run, SubRun;
00212
00213 // If this is the first call fill the file list
00214 if(badFDrunlist.size() == 0)
00215 {
00216 std::ifstream ins;
00217 char *srt_dir = getenv("SRT_PRIVATE_CONTEXT");
00218 ins.open(Form("%s/NueAna/badrunsFD_list.txt",srt_dir));
00219 if(!ins.is_open())
00220 {
00221 MSG("NueStandard", Msg::kError)<<"IsGoodFarRun(): Unable to open badrunsFD_list.txt"<<endl;
00222 }
00223
00224 while(!ins.eof())
00225 {
00226 ins>>Run>>SubRun;
00227 FilePosition temp;
00228 if(!ins.eof()){
00229 temp.Run = Run;
00230 temp.SubRun = SubRun;
00231 temp.Snarl = -1;
00232 temp.Event = -1;
00233 badFDrunlist.push_back(temp);
00234 }
00235 }
00236
00237 if(badFDrunlist.size() == 0) return true;
00238 }
00239
00240 FilePosition current;
00241
00242 current.Snarl = -1;
00243 current.Event = -1;
00244 current.Run = nr->GetHeader().GetRun();
00245 current.SubRun = nr->GetHeader().GetSubRun();
00246
00247 if(current < badFDrunlist[0]) return true;
00248
00249 if(current > badFDrunlist[badFDrunlist.size() - 1]) return true;
00250
00251 if(current > badFDrunlist[listpos] )
00252 {
00253 while(current > badFDrunlist[listpos] && listpos < badFDrunlist.size())
00254 listpos++;
00255 }
00256 else if(current < badFDrunlist[listpos] )
00257 {
00258 while(current < badFDrunlist[listpos] && listpos > 0)
00259 listpos--;
00260 }
00261
00262 if(current == badFDrunlist[listpos])
00263 {
00264 return false;
00265 }
00266
00267
00268 return true;
00269 }
|
|
|
Definition at line 155 of file NueStandard.cxx. References VldContext::GetDetector(), RecRecordImp< T >::GetHeader(), NueHeader::GetRun(), VldContext::GetSimFlag(), NueHeader::GetSubRun(), and RecHeader::GetVldContext(). 00156 {
00157 if(nr->GetHeader().GetVldContext().GetSimFlag() == SimFlag::kMC)
00158 {
00159 return true;
00160 }
00161
00162 if(nr->GetHeader().GetVldContext().GetDetector() == Detector::kFar)
00163 {
00164 return true;
00165 }
00166
00167 //for near detector data
00168 if(nr->GetHeader().GetRun()==8165 || nr->GetHeader().GetRun()==11318)
00169 {
00170 return false;
00171 }
00172
00173 if(nr->GetHeader().GetRun()==7942 && nr->GetHeader().GetSubRun()==0)
00174 {
00175 return false;
00176 }
00177
00178 if(nr->GetHeader().GetRun()==7982 && nr->GetHeader().GetSubRun()==0)
00179 {
00180 return false;
00181 }
00182
00183 if(nr->GetHeader().GetRun()==8214 && nr->GetHeader().GetSubRun()==0)
00184 {
00185 return false;
00186 }
00187
00188 if(nr->GetHeader().GetRun()==9809 && nr->GetHeader().GetSubRun()==0)
00189 {
00190 return false;
00191 }
00192
00193 return true;
00194 }
|
|
|
Definition at line 140 of file NueStandard.cxx. References VldContext::GetDetector(), RecRecordImp< T >::GetHeader(), VldContext::GetSimFlag(), RecHeader::GetVldContext(), and NueStandard::IsGoodFarRun(). Referenced by Trimmer::EvaluateCuts(). 00141 {
00142 if(nr->GetHeader().GetVldContext().GetSimFlag() == SimFlag::kMC)
00143 {
00144 return true;
00145 }
00146
00147 if(nr->GetHeader().GetVldContext().GetDetector() == Detector::kFar)
00148 {
00149 return NueStandard::IsGoodFarRun(nr);
00150 }
00151
00152 return false;
00153 }
|
|
|
|
Definition at line 655 of file NueStandard.cxx. References VldContext::GetDetector(), RecRecordImp< T >::GetHeader(), RecHeader::GetVldContext(), ANtpEventInfoNue::largestEvent, and NueRecord::srevent. Referenced by NueStandard::PassesPreSelectionBasicCuts(). 00656 {
00657 if(nr->GetHeader().GetVldContext().GetDetector() == Detector::kFar){
00658 if(nr->srevent.largestEvent == 1) return true;
00659 return false;
00660 }
00661 return true;
00662 }
|
|
|
Definition at line 1013 of file NueStandard.cxx. References RecRecordImp< T >::GetHeader(), VldTimeStamp::GetSec(), VldContext::GetTimeStamp(), and RecHeader::GetVldContext(). Referenced by NueUtilities::AnaNueProcessor::isRun1(), and NueUtilities::AnaNueProcessor::Normalization_RunSeparatedSample(). 01014 {
01015 return(nr->GetHeader().GetVldContext().GetTimeStamp().GetSec() < 1145036420);
01016 }
|
|
|
Definition at line 1019 of file NueStandard.cxx. References RecRecordImp< T >::GetHeader(), VldTimeStamp::GetSec(), VldContext::GetTimeStamp(), and RecHeader::GetVldContext(). Referenced by NueUtilities::AnaNueProcessor::isRun2(), and NueUtilities::AnaNueProcessor::Normalization_RunSeparatedSample(). 01020 {
01021 return(nr->GetHeader().GetVldContext().GetTimeStamp().GetSec() > 1145036420 && nr->GetHeader().GetVldContext().GetTimeStamp().GetSec() < 1190028111);
01022 }
|
|
|
Definition at line 1024 of file NueStandard.cxx. References RecRecordImp< T >::GetHeader(), VldTimeStamp::GetSec(), VldContext::GetTimeStamp(), and RecHeader::GetVldContext(). Referenced by NueUtilities::AnaNueProcessor::isRun3(), and NueUtilities::AnaNueProcessor::Normalization_RunSeparatedSample(). 01025 {
01026 return(nr->GetHeader().GetVldContext().GetTimeStamp().GetSec() > 1190028111 && nr->GetHeader().GetVldContext().GetTimeStamp().GetSec() < 1249594050);
01027 }
|
|
|
Definition at line 1090 of file NueStandard.cxx. References NueRecord::ann, ANtpEventInfo::begPlane, FracVar::dis2stp, ANtpEventInfo::endPlane, FracVar::fract_1_plane, FracVar::fract_20_counters, FracVar::fract_5_planes, FracVar::fract_6_counters, FracVar::fract_road, NueRecord::fracvars, Shwfit::LongE, NueConvention::NueEnergyCorrection(), Shwfit::par_a, Shwfit::par_b, ANtpEventInfoNue::phNueGeV, Ann::pid, FracVar::shw_max, FracVar::shw_slp, NueRecord::shwfit, NueRecord::srevent, and Shwfit::uv_rms_9s_2pe_dw. Referenced by Trimmer::RunTrimmer(). 01090 {
01091
01092 // This is only a temporary solution for the ANN14 PID.
01093
01094 static bool firstcall = true;
01095 static TMultiLayerPerceptron* fneuralNet_14inp_daikon04 = 0;
01096
01097 double ann14pid = -9999.9;
01098
01099 char *srt_dir = getenv("SRT_PRIVATE_CONTEXT");
01100 char annfile[1000];
01101
01102 if (firstcall) {
01103 srt_dir = getenv("SRT_PRIVATE_CONTEXT");
01104 sprintf(annfile,"%s/NueAna/data/ann14_400_14_9.root",srt_dir);
01105 ifstream Test2(annfile);
01106 if (!Test2){
01107 srt_dir = getenv("SRT_PUBLIC_CONTEXT");
01108 sprintf(annfile,"%s/NueAna/data/ann14_400_14_9.root",srt_dir);
01109 ifstream Test_again2(annfile);
01110 if (!Test_again2){
01111 cout<<"Couldn't find ANN object, blame Jiajie"<<endl;
01112 exit(0);
01113 }
01114 }
01115
01116 static TFile *f = TFile::Open(annfile);
01117 fneuralNet_14inp_daikon04 = (TMultiLayerPerceptron*) f->Get("mlp");
01118 }
01119
01120 if (!fneuralNet_14inp_daikon04) {
01121 cout << "Couldn't find ANN object, blame Jiajie" << endl;
01122 exit(0);
01123 }
01124
01125 if (firstcall) {
01126 cout << "Get ann14 value from : " << annfile << endl;
01127 firstcall = false;
01128 }
01129
01130 NueConvention::NueEnergyCorrection(nr);
01131
01132 double paras[14];
01133 paras[0] = nr->shwfit.par_a;
01134 paras[1] = nr->shwfit.par_b;
01135 paras[2] = nr->shwfit.uv_rms_9s_2pe_dw;
01136 paras[3] = nr->fracvars.fract_road;
01137 paras[4] = nr->shwfit.LongE;
01138 paras[5] = nr->fracvars.shw_max;
01139 paras[6] = nr->fracvars.shw_slp;
01140 paras[7] = nr->srevent.phNueGeV;
01141 paras[8] = nr->fracvars.dis2stp;
01142 paras[9] = nr->fracvars.fract_1_plane;
01143 paras[10] = nr->fracvars.fract_5_planes;
01144 paras[11] = nr->fracvars.fract_6_counters;
01145 paras[12] = nr->fracvars.fract_20_counters;
01146 paras[13] = TMath::Abs(nr->srevent.endPlane - nr->srevent.begPlane);
01147
01148 int pass = 1;
01149
01150 if (nr->shwfit.par_a<-1000) pass = 0;
01151 if (nr->shwfit.par_b<-1000) pass = 0;
01152 if (nr->shwfit.uv_rms_9s_2pe_dw<-1000) pass = 0;
01153 if (nr->fracvars.fract_1_plane<-1000) pass = 0;
01154 if (nr->fracvars.fract_5_planes<-1000) pass = 0;
01155 if (nr->fracvars.fract_6_counters<-1000) pass = 0;
01156 if (nr->fracvars.fract_20_counters<-1000) pass = 0;
01157 if (nr->fracvars.fract_road<-1000) pass = 0;
01158 if (nr->shwfit.LongE<-1000) pass = 0;
01159 if (nr->shwfit.LongE>1000) pass = 0;
01160 if (nr->fracvars.shw_max<-1000) pass = 0;
01161 if (nr->fracvars.dis2stp<-1000) pass = 0;
01162 if (nr->fracvars.shw_slp<0) pass = 0;
01163 if (nr->srevent.endPlane<-1000) pass = 0;
01164 if (nr->srevent.begPlane<-1000) pass = 0;
01165
01166 if (pass) {
01167 ann14pid = fneuralNet_14inp_daikon04->Evaluate(0, paras);
01168 }
01169
01170 // set the ann.pid value to be ANN14
01171 nr->ann.pid = ann14pid;
01172 }
|
|
|
Definition at line 765 of file NueStandard.cxx. References NueRecord::anainfo, ANtpTrackInfoNue::deltaUVVtx, ANtpTrackInfo::endPlaneU, ANtpTrackInfo::endPlaneV, ANtpTrackInfo::passedFit, AnalysisInfoNue::roCCPID, NueRecord::srevent, NueRecord::srtrack, and ANtpEventInfo::tracks. Referenced by NueExtrapolationJB::BuildAppTrueHistExact(), NueExtrapolationJB::MakeDataHistograms(), NueStandard::PassesSelection(), and NueExtrapolationJB::PrepareExtrapHistograms(). 00766 {
00767 int ntrack = nr->srevent.tracks;
00768 int pass = nr->srtrack.passedFit;
00769 int endPlaneU = nr->srtrack.endPlaneU;
00770 int endPlaneV = nr->srtrack.endPlaneV;
00771 int deltaUVVtx = nr->srtrack.deltaUVVtx;
00772
00773 if (ntrack < 1){ pass = 0; endPlaneU = endPlaneV = deltaUVVtx = 300; }
00774
00775 bool trackPass = (pass == 1) ||
00776 (deltaUVVtx <= 5 && TMath::Abs(endPlaneU - endPlaneV) <= 40
00777 && endPlaneU < 270 && endPlaneV < 270);
00778
00779
00780 return (ntrack > 0) && trackPass && nr->anainfo.roCCPID > 0.3;
00781 }
|
|
|
Definition at line 332 of file NueStandard.cxx. References BagTree::bt_var1, NueRecord::dtree, NueRecord::eventq, NueStandard::FillCosmicCut(), VldContext::GetDetector(), RecRecordImp< T >::GetHeader(), RecHeader::GetVldContext(), and EventQual::passCosmicCut. Referenced by NueMiniAnaPID::FillMini(), NueMiniAna::FillMini(), and NueStandard::PassesPreSelectionBasicCuts(). 00333 {
00334 if(nr->GetHeader().GetVldContext().GetDetector() == Detector::kNear)
00335 return true;
00336
00337 bool ret=true;
00338 if(nr->eventq.passCosmicCut > -10)
00339 return (nr->eventq.passCosmicCut == 1);
00340
00341 //or we are still in Ent
00342
00343 if(nr->dtree.bt_var1==0)ret = false;
00344 else if(nr->dtree.bt_var1==1)ret = true;
00345 else{ NueStandard::FillCosmicCut(nr); ret = nr->dtree.bt_var1; }
00346
00347 Detector::Detector_t fDet;
00348 fDet = nr->GetHeader().GetVldContext().GetDetector();
00349 if (fDet != Detector::kFar) ret = true;
00350
00351 return ret;
00352 }
|
|
|
Definition at line 307 of file NueStandard.cxx. References ANtpTrackInfo::endX, ANtpTrackInfo::endY, ANtpTrackInfo::endZ, NueRecord::shwfit, NueRecord::srevent, NueRecord::srtrack, ANtpEventInfo::tracks, Shwfit::UVSlope, ANtpTrackInfo::vtxX, ANtpTrackInfo::vtxY, and ANtpTrackInfo::vtxZ. Referenced by EventQualAna::Analyze(), and NueStandard::FillCosmicCut(). 00308 {
00309 bool result=true;
00310 //cosmicy shower cut
00311 result = result && !(nr->shwfit.UVSlope > 10);
00312
00313 //cosmicy track cut
00314 if (nr->srevent.tracks<1) return result; //require a track to apply this cut
00315
00316 float ex = nr->srtrack.endX;
00317 float ey = nr->srtrack.endY;
00318 float ez = nr->srtrack.endZ;
00319
00320 float vx = nr->srtrack.vtxX;
00321 float vy = nr->srtrack.vtxY;
00322 float vz = nr->srtrack.vtxZ;
00323
00324 float cosy = acos(fabs(vy-ey)/sqrt((vx-ex)*(vx-ex)+(vy-ey)*(vy-ey)+(vz-ez)*(vz-ez)));
00325 float dy=fabs(vy-ey);
00326
00327 result = result && !(dy>2 && cosy < 0.6);
00328
00329 return result;
00330 }
|
|
|
||||||||||||||||||||||||
|
Definition at line 130 of file NueStandard.cxx. Referenced by NueStandard::PassesDataQuality(). 00132 {
00133 if (li == -1 && rc == 0 && dpfddq == 1
00134 && (tmin - spillt) > -20e-6 && (tmin - spillt) < 30e-6)
00135 return true;
00136
00137 return false;
00138 }
|
|
|
Definition at line 116 of file NueStandard.cxx. References NueRecord::bmon, BeamMon::dt_stnd, ANtpEventInfoNue::eventTimeMin, VldContext::GetDetector(), RecRecordImp< T >::GetHeader(), VldContext::GetSimFlag(), RecHeader::GetVldContext(), and NueRecord::srevent. 00117 {
00118 if(
00119 Detector::kFar == nr->GetHeader().GetVldContext().GetDetector()
00120 && SimFlag::kData == nr->GetHeader().GetVldContext().GetSimFlag()
00121 )
00122 {
00123 float tmin = nr->srevent.eventTimeMin;
00124 double spillT = nr->bmon.dt_stnd;
00125 return( (tmin - spillT) > -2e-6 && (tmin - spillT) < 12e-6 );
00126 }
00127 return true;
00128 }
|
|
|
Definition at line 389 of file NueStandard.cxx. 00390 {
00391 return (energy < 8.0);
00392 }
|
|
|
Definition at line 383 of file NueStandard.cxx. References ANtpEventInfoNue::phNueGeV, and NueRecord::srevent. Referenced by NueMiniAnaPID::FillMini(), NueMiniAna::FillMini(), and NueStandard::PassesPreSelection(). 00384 {
00385 float energy = nr->srevent.phNueGeV;
00386 return PassesHighEnergyCut(energy);
00387 }
|
|
|
Definition at line 378 of file NueStandard.cxx. 00379 {
00380 return (energy > 1.0);
00381 }
|
|
|
Definition at line 372 of file NueStandard.cxx. References ANtpEventInfoNue::phNueGeV, and NueRecord::srevent. Referenced by NueMiniAnaPID::FillMini(), NueMiniAna::FillMini(), and NueStandard::PassesNonHEPreSelection(). 00373 {
00374 float energy = nr->srevent.phNueGeV;
00375 return PassesLowEnergyCut(energy);
00376 }
|
|
|
Definition at line 291 of file NueStandard.cxx. 00292 {
00293 return (planes > 4);
00294 }
|
|
|
Definition at line 285 of file NueStandard.cxx. References Shwfit::contPlaneCount050, and NueRecord::shwfit. Referenced by NueMiniAnaPID::FillMini(), NueMiniAna::FillMini(), and NueStandard::PassesPreSelectionBasicCuts(). 00286 {
00287 int planes = nr->shwfit.contPlaneCount050;
00288 return PassesMinPlaneCut(planes);
00289 }
|
|
|
Definition at line 449 of file NueStandard.cxx. References VldContext::GetDetector(), RecRecordImp< T >::GetHeader(), VldContext::GetSimFlag(), RecHeader::GetVldContext(), NueConvention::IsInsideNearFiducial_MRE_Standard(), isMC, NueRecord::mri, MuonRemovalInfo::vtxx, MuonRemovalInfo::vtxy, and MuonRemovalInfo::vtxz. Referenced by NueMiniAnaPID::FillMini(), NueMiniAna::FillMini(), NueStandard::PassesMREFiducial(), and NueStandard::PassesSelection(). 00450 {
00451 float x = nr->mri.vtxx;
00452 float y = nr->mri.vtxy;
00453 float z = nr->mri.vtxz;
00454
00455 Detector::Detector_t fDet;
00456 fDet = nr->GetHeader().GetVldContext().GetDetector();
00457
00458 SimFlag::SimFlag_t sim = nr->GetHeader().GetVldContext().GetSimFlag();
00459 bool isMC = (sim == SimFlag::kMC);
00460 int retval = 0;
00461
00462 if (fDet == Detector::kFar)
00463 {
00464 if(sqrt((x*x) + (y*y))>0.3 && sqrt((x*x) + (y*y))<sqrt(15.5) && ((z>0.3 && z<14.4)||(z>16.1 && z<28.2)))
00465 {
00466 retval=1;
00467 }
00468 }
00469
00470 if (fDet == Detector::kNear)
00471 retval = NueConvention::IsInsideNearFiducial_MRE_Standard(x,y,z, isMC);
00472
00473 return (retval == 1);
00474 }
|
|
||||||||||||||||
|
Definition at line 485 of file NueStandard.cxx. 00486 {
00487 //currently assumes RO-PID
00488 bool good = true;
00489 good = good && (bestComp > -10);
00490 good = good && (fitp == 1);
00491 good = good && (pid > 0.3);
00492
00493 return good;
00494 }
|
|
|
Definition at line 476 of file NueStandard.cxx. References MuonRemovalInfo::best_complete, MuonRemovalInfo::fitp, NueRecord::mri, and MuonRemovalInfo::orig_roCCPID. Referenced by NueMiniAnaPID::FillMini(), NueMiniAna::FillMini(), NueStandard::PassesMREPreSelection(), and NueStandard::PassesSelection(). 00477 {
00478 double pid = nr->mri.orig_roCCPID;
00479 int fitp = nr->mri.fitp;
00480 float bestC = nr->mri.best_complete;
00481
00482 return NueStandard::PassesMRCCPreSelection(bestC, fitp, pid);
00483 }
|
|
|
Definition at line 496 of file NueStandard.cxx. References NueStandard::PassesMRCCFiducial(). Referenced by Trimmer::EvaluateCuts(), NueExpBuilder::EvaluateCuts(), MiniMakerPID::EvaluateCuts(), and MiniMaker::EvaluateCuts(). 00497 {
00498 return NueStandard::PassesMRCCFiducial(nr);
00499 }
|
|
||||||||||||||||
|
Definition at line 506 of file NueStandard.cxx. References NueStandard::PassesMRCCPreSelection(). 00507 {
00508 return NueStandard::PassesMRCCPreSelection(bestC, fitp, pid);
00509 }
|
|
|
Definition at line 501 of file NueStandard.cxx. References NueStandard::PassesMRCCPreSelection(). Referenced by NueExpBuilder::EvaluateCuts(), MiniMakerPID::EvaluateCuts(), and MiniMaker::EvaluateCuts(). 00502 {
00503 return NueStandard::PassesMRCCPreSelection(nr);
00504 }
|
|
|
Definition at line 900 of file NueStandard.cxx. References EventQual::closeTimeDeltaZ, EventQual::edgeActivityPH, EventQual::edgeActivityStrips, ANtpEventInfo::energyGeV, NueRecord::eventq, EventQual::minTimeSeparation, EventQual::oppEdgePH, EventQual::oppEdgeStrips, ANtpTrackInfo::planes, ANtpShowerInfo::planes, ANtpEventInfo::planes, NueRecord::srevent, NueRecord::srshower, NueRecord::srtrack, and ANtpEventInfo::totalStrips. 00901 {
00902 // 40ns timing cut
00903 if (TMath::Abs(nr->eventq.minTimeSeparation)<40e-9)
00904 return false;
00905
00906 // tiny events are mostly junk
00907 if (nr->srevent.totalStrips<5) return false;
00908
00909 // this cuts very steep showers, leaking in
00910 if ( (nr->srevent.totalStrips/(nr->srevent.planes*nr->srevent.planes))>1.0)
00911 return false;
00912
00913 // this cuts leakage which leaves activity in partially instrumented
00914 // region
00915 if ( (nr->eventq.edgeActivityStrips>3)
00916 && (nr->eventq.edgeActivityPH>1000)
00917 && (nr->srevent.energyGeV<5.0)
00918 && (nr->srshower.planes>nr->srtrack.planes) ) // don't cut out CC
00919 return false;
00920 // also cut out events with too much activity in the opposite edge region
00921 if ( (nr->eventq.oppEdgeStrips>3)
00922 && (nr->eventq.oppEdgePH>1000)
00923 && (nr->srevent.energyGeV<5.0 )
00924 && (nr->srshower.planes>nr->srtrack.planes) ) // don't cut out CC
00925 return false;
00926
00927 // make additional deltaZ cuts if (40ns<|minDeltaT|<120ns)
00928 if (TMath::Abs(nr->eventq.closeTimeDeltaZ)<1.0
00929 && TMath::Abs(nr->eventq.minTimeSeparation)<120e-9)
00930 return false;
00931
00932 // Survived all cuts
00933 return true;
00934 }
|
|
||||||||||||||||
|
Definition at line 106 of file NueStandard.cxx. 00107 {
00108 //Assumes it is taking:
00109 // nr->bmon.goodBeamMon, nr->srevent.coilCurrent, nr->srevent.spillType
00110 if (gbm == 1 && cc < -1000.0 && st != 3)
00111 return true;
00112
00113 return false;
00114 }
|
|
||||||||||||||||
|
Definition at line 418 of file NueStandard.cxx. References NueStandard::PassesLowEnergyCut(), and NueStandard::PassesPreSelectionTrackCuts(). 00419 {
00420 bool temp = PassesPreSelectionTrackCuts(trkplane, tlp);
00421 temp = temp && PassesLowEnergyCut(energy);
00422 return temp;
00423 }
|
|
|
Definition at line 410 of file NueStandard.cxx. References NueStandard::PassesLowEnergyCut(), NueStandard::PassesPreSelectionBasicCuts(), and NueStandard::PassesPreSelectionTrackCuts(). Referenced by Trimmer::EvaluateCuts(), NueExpBuilder::EvaluateCuts(), MiniMakerPID::EvaluateCuts(), MiniMaker::EvaluateCuts(), NueMiniAnaPID::FillMini(), NueMiniAna::FillMini(), and NueStandard::PassesPreSelection(). 00411 {
00412 bool temp = PassesPreSelectionTrackCuts(nr);
00413 temp = temp && PassesLowEnergyCut(nr);
00414 temp = temp && PassesPreSelectionBasicCuts(nr);
00415
00416 return temp;
00417 }
|
|
|
Definition at line 597 of file NueStandard.cxx. References PRecord::event, NueStandard::PassesParticlePIDPreselectionCut(), Event::pidF, and NueRecord::precord. Referenced by NueStandard::PassesPIDSelection(). 00598 {
00599 bool passPID=true;
00600
00601 passPID = passPID && nr->precord.event.pidF>0.7;
00602
00603 if(!passPID)return false;
00604
00605
00606 return passPID && PassesParticlePIDPreselectionCut(nr);
00607
00608
00609 }
|
|
|
Definition at line 612 of file NueStandard.cxx. References det, PRecord::event, VldContext::GetDetector(), RecRecordImp< T >::GetHeader(), RecHeader::GetVldContext(), Event::inFiducial, Particles::longest_s_particle_s, Event::max_z, Event::min_z, Particles::ntot, PRecord::particles, NueRecord::precord, and Event::visenergy. Referenced by NueStandard::GetPIDValue(), and NueStandard::PassesParticlePIDCut(). 00613 {
00614
00615 //fiducial cut
00616 bool passFid=true;
00617 passFid = passFid && (nr->precord.event.inFiducial==1);
00618
00619 if(!passFid)return false;
00620
00621
00622 double visenergy = nr->precord.event.visenergy;
00623
00624 //preselection cut
00625 int det = nr->GetHeader().GetVldContext().GetDetector();
00626 if(det == Detector::kFar)
00627 {
00628 float offset = 0.489987;
00629 float slope = 0.0387301;
00630 visenergy = visenergy*slope+offset;
00631 }else if(det == Detector::kNear)
00632 {
00633 float offset = 0.4803261;
00634 float slope = 0.03799819;
00635 visenergy = visenergy*slope+offset;
00636 }else{
00637 printf("please don't run in a detector that is not near or far (NueStandard::PassesParticlePIDCut)\n");
00638 exit(1);
00639 }
00640
00641 bool passPre=true;
00642
00643 double event_length=nr->precord.event.max_z-nr->precord.event.min_z;
00644 passPre = passPre && event_length>0.1 && event_length<1.2;
00645 passPre = passPre && nr->precord.particles.longest_s_particle_s>0.1 &&
00646 nr->precord.particles.longest_s_particle_s<1.2;
00647 passPre = passPre && nr->precord.particles.ntot>0;
00648 passPre = passPre && visenergy>0.5 && visenergy<8;
00649
00650 return passPre && passFid;
00651
00652 }
|
|
||||||||||||
|
Definition at line 576 of file NueStandard.cxx. References NueStandard::GetPIDValue(), and NueStandard::PassesParticlePIDCut(). Referenced by NueExtrapolationJB::MakeDataHistograms(), NueStandard::PassesSelection(), and NueExtrapolationJB::PrepareExtrapHistograms(). 00577 {
00578 bool pass = false;
00579 double val = GetPIDValue(nr, sel);
00580
00581 switch(sel) {
00582 case Selection::kCuts: pass = (int(val) == 1); break;
00583 case Selection::kANN6: pass = val > 0.5; break;
00584 case Selection::kANN30: pass = val > 0.5; break;
00585 case Selection::kANN2PE: pass = val > 0.7; break;
00586 case Selection::kANN2PE_DAIKON04: pass = val > 0.7; break;
00587 case Selection::kANN14_DAIKON04: pass = val > 0.75; break;
00588 case Selection::kSSPID: pass = val > 0.67; break;
00589 case Selection::kMCNN: pass = val > 0.80; break;
00590 case Selection::kParticlePID: pass = PassesParticlePIDCut(nr); break;
00591 default: break;
00592 }
00593
00594 return pass;
00595 }
|
|
|
Definition at line 52 of file NueStandard.cxx. References NueRecord::bmon, EventQual::coilDirection, EventQual::coilQuality, NueRecord::eventq, VldContext::GetDetector(), NueHeader::GetEventNo(), RecRecordImp< T >::GetHeader(), VldContext::GetSimFlag(), RecHeader::GetVldContext(), BeamMon::goodBeamMon, isMC, EventQual::passFarDetQuality, EventQual::passLI, EventQual::passNearDetQuality, and EventQual::spillType. Referenced by NueMiniAnaPID::FillMini(), NueMiniAna::FillMini(), NueStandard::PassesDataQuality(), NueBeamMonModule::Reco(), MiniMakerPID::RunMiniMakerPID(), and Trimmer::RunTrimmer(). 00053 {
00054 SimFlag::SimFlag_t sim = nr->GetHeader().GetVldContext().GetSimFlag();
00055 bool isMC = (sim == SimFlag::kMC);
00056 VldContext vld = nr->GetHeader().GetVldContext();
00057
00058 if (isMC) return true;
00059
00060 //common to both
00061 if (nr->bmon.goodBeamMon != 1) return false;
00062
00063 if (nr->GetHeader().GetVldContext().GetDetector() == Detector::kNear )
00064 {
00065 bool goodCoil = nr->eventq.coilQuality && (nr->eventq.coilDirection ==1);
00066 //CoilTools::IsOK(vld) && !CoilTools::IsReverse(vld);
00067 int dpDQ = nr->eventq.passNearDetQuality;
00068 return goodCoil && (dpDQ == 1);
00069 }
00070
00071 if (nr->GetHeader().GetVldContext().GetDetector() == Detector::kFar)
00072 {
00073
00074 if (nr->eventq.spillType != 1) return false;
00075 int dpDQ = nr->eventq.passFarDetQuality;
00076 if (nr->GetHeader().GetEventNo() < 0) return (dpDQ == 1);
00077
00078 return (dpDQ == 1) && (nr->eventq.passLI == 1);
00079 }
00080
00081 return false;
00082 }
|
|
||||||||||||||||
|
Definition at line 403 of file NueStandard.cxx. References NueStandard::PassesHighEnergyCut(), and NueStandard::PassesNonHEPreSelection(). 00404 {
00405 bool temp = PassesNonHEPreSelection(trkplane, tlp, energy);
00406 temp = temp && PassesHighEnergyCut(energy);
00407 return temp;
00408 }
|
|
|
Definition at line 395 of file NueStandard.cxx. References NueStandard::PassesHighEnergyCut(), and NueStandard::PassesNonHEPreSelection(). Referenced by NueMiniAnaPID::FillMini(), NueMiniAna::FillMini(), NueExtrapolationJB::MakeDataHistograms(), NNTrain::MakeTrainTree(), NueStandard::PassesSelection(), and NueExtrapolationJB::PrepareExtrapHistograms(). 00396 {
00397 bool temp = PassesNonHEPreSelection(nr);
00398 temp = temp && PassesHighEnergyCut(nr);
00399
00400 return temp;
00401 }
|
|
|
Definition at line 439 of file NueStandard.cxx. References NueStandard::IsLargestEvent(), NueStandard::PassesCosmicCut(), NueStandard::PassesMinPlaneCut(), and NueStandard::PassesShowerCut(). Referenced by NueStandard::PassesNonHEPreSelection(), and NueStandard::PassesSelection(). 00440 {
00441 bool one = PassesMinPlaneCut(nr);
00442 one = one && PassesCosmicCut(nr);
00443 one = one && IsLargestEvent(nr);
00444 one = one && PassesShowerCut(nr);
00445
00446 return one;
00447 }
|
|
||||||||||||
|
Definition at line 432 of file NueStandard.cxx. References NueStandard::PassesTrackLikePlaneCut(), and NueStandard::PassesTrackPlaneCut(). 00433 {
00434 bool temp = PassesTrackPlaneCut(trkplane);
00435 temp = temp && PassesTrackLikePlaneCut(tlp);
00436 return temp;
00437 }
|
|
|
Definition at line 425 of file NueStandard.cxx. References NueStandard::PassesTrackLikePlaneCut(), and NueStandard::PassesTrackPlaneCut(). Referenced by Trimmer::EvaluateCuts(), and NueStandard::PassesNonHEPreSelection(). 00426 {
00427 bool temp = PassesTrackPlaneCut(nr);
00428 temp = temp && PassesTrackLikePlaneCut(nr);
00429 return temp;
00430 }
|
|
||||||||||||||||
|
Definition at line 709 of file NueStandard.cxx. References NueHeader::FoundMR(), RecRecordImp< T >::GetHeader(), infid(), NueStandard::IsInFid(), NueStandard::PassesCCSelection(), NueStandard::PassesDataQuality(), NueStandard::PassesMRCCPreSelection(), NueStandard::PassesPIDSelection(), NueStandard::PassesPreSelection(), and NueStandard::PassesPreSelectionBasicCuts(). 00710 {
00711 bool pass = false;
00712
00713 bool dq = NueStandard::PassesDataQuality(nr);
00714 bool infid = NueStandard::IsInFid(nr) && dq;
00715 bool basic = NueStandard::PassesPreSelectionBasicCuts(nr);
00716 bool presel = NueStandard::PassesPreSelection(nr);
00717 bool pid = NueStandard::PassesPIDSelection(nr,sel);
00718
00719 switch(sel2) {
00720 case Selection::kDataQual: dq = true; break;
00721 case Selection::kFid: infid = true; break;
00722 case Selection::kBasic: basic = true; break;
00723 case Selection::kPre: presel = true; break;
00724 default: break;
00725 }
00726
00727 bool isMR = nr->GetHeader().FoundMR();
00728
00729 if(isMR){
00730 bool mrfid = true; //PassesMRCCFiducial(nr);
00731 bool mrps = PassesMRCCPreSelection(nr);
00732
00733 infid = infid && mrfid && mrps;
00734 }
00735
00736 basic = basic && infid;
00737 presel = dq && infid && presel;
00738
00739 switch(sel) {
00740 case Selection::kNone: pass = true; break;
00741 case Selection::kDataQual: pass = dq; break;
00742 case Selection::kFid: pass = infid; break;
00743 case Selection::kBasic: pass = basic; break;
00744 case Selection::kPre: pass = presel; break;
00745 case Selection::kCuts: pass = presel && pid; break;
00746 case Selection::kANN6: pass = presel && pid; break;
00747 case Selection::kANN30: pass = presel && pid; break;
00748 case Selection::kANN2PE: pass = presel && pid; break;
00749 case Selection::kANN2PE_DAIKON04: pass = presel && pid; break;
00750 case Selection::kANN14_DAIKON04: pass = presel && pid; break;
00751 case Selection::kSSPID: pass = presel && pid; break;
00752 case Selection::kMCNN: pass = presel && pid; break;
00753 case Selection::kMDA: pass = presel && false; break;
00754 case Selection::kBDT: pass = presel && false; break;
00755 case Selection::kKNue: pass = presel && false; break;
00756 case Selection::kCC: pass = infid &&
00757 NueStandard::PassesCCSelection(nr); break;
00758 default: break;
00759 }
00760
00761 return pass;
00762 }
|
|
||||||||||||
|
Definition at line 664 of file NueStandard.cxx. References NueHeader::FoundMR(), RecRecordImp< T >::GetHeader(), infid(), NueStandard::IsInFid(), NueStandard::PassesCCSelection(), NueStandard::PassesDataQuality(), NueStandard::PassesMRCCFiducial(), NueStandard::PassesMRCCPreSelection(), NueStandard::PassesPIDSelection(), NueStandard::PassesPreSelection(), and NueStandard::PassesPreSelectionBasicCuts(). Referenced by Trimmer::EvaluateCuts(), NueExpBuilder::EvaluateCuts(), MiniMakerPID::EvaluateCuts(), MiniMaker::EvaluateCuts(), NueExtrapHelper::PassCuts(), and MiniMaker::RunMiniMaker(). 00665 {
00666 bool pass = false;
00667
00668 bool dq = NueStandard::PassesDataQuality(nr);
00669 bool infid = NueStandard::IsInFid(nr) && dq;
00670
00671 bool isMR = nr->GetHeader().FoundMR();
00672
00673 if (isMR){
00674 bool mrfid = PassesMRCCFiducial(nr);
00675 bool mrps = PassesMRCCPreSelection(nr);
00676
00677 infid = infid && mrfid && mrps;
00678 }
00679
00680 bool basic = NueStandard::PassesPreSelectionBasicCuts(nr) && infid;
00681 bool presel = infid && NueStandard::PassesPreSelection(nr);
00682 bool pid = NueStandard::PassesPIDSelection(nr,sel);
00683
00684 switch(sel) {
00685 case Selection::kNone: pass = true; break;
00686 case Selection::kDataQual: pass = dq; break;
00687 case Selection::kFid: pass = infid; break;
00688 case Selection::kBasic: pass = basic; break;
00689 case Selection::kPre: pass = presel; break;
00690 case Selection::kCuts: pass = presel && pid; break;
00691 case Selection::kANN6: pass = presel && pid; break;
00692 case Selection::kANN30: pass = presel && pid; break;
00693 case Selection::kANN2PE: pass = presel && pid; break;
00694 case Selection::kANN2PE_DAIKON04: pass = presel && pid; break;
00695 case Selection::kANN14_DAIKON04: pass = presel && pid; break;
00696 case Selection::kSSPID: pass = presel && pid; break;
00697 case Selection::kMCNN: pass = presel && pid; break;
00698 case Selection::kMDA: pass = presel && false; break;
00699 case Selection::kBDT: pass = presel && false; break;
00700 case Selection::kKNue: pass = presel && false; break;
00701 case Selection::kCC: pass = infid &&
00702 NueStandard::PassesCCSelection(nr); break;
00703 default: break;
00704 }
00705
00706 return pass;
00707 }
|
|
|
Definition at line 302 of file NueStandard.cxx. 00303 {
00304 return (nshw > 0);
00305 }
|
|
|
Definition at line 296 of file NueStandard.cxx. References ANtpEventInfo::showers, and NueRecord::srevent. Referenced by NueMiniAnaPID::FillMini(), NueMiniAna::FillMini(), and NueStandard::PassesPreSelectionBasicCuts(). 00297 {
00298 int nshw = nr->srevent.showers;
00299 return PassesShowerCut(nshw);
00300 }
|
|
||||||||||||||||
|
Definition at line 539 of file NueStandard.cxx. 00540 {
00541 bool good = true;
00542 good = good && (trkplane < 28);
00543 good = good && (tlp < 18);
00544 good = good && (energy > 0.5 && energy < 10);
00545 return good;
00546 }
|
|
|
Definition at line 530 of file NueStandard.cxx. References ANtpTrackInfo::begPlane, ANtpTrackInfo::endPlane, ANtpEventInfoNue::phNueGeV, NueRecord::srevent, NueRecord::srtrack, and ANtpTrackInfoNue::trklikePlanes. Referenced by Trimmer::EvaluateCuts(), NueExpBuilder::EvaluateCuts(), MiniMakerPID::EvaluateCuts(), and MiniMaker::EvaluateCuts(). 00531 {
00532 int tp = TMath::Abs(nr->srtrack.endPlane - nr->srtrack.begPlane);
00533 int tlp = nr->srtrack.trklikePlanes;
00534 float energy = nr->srevent.phNueGeV;
00535
00536 return PassesSysPreSelection(tp, tlp, energy);
00537 }
|
|
||||||||||||||||
|
Definition at line 520 of file NueStandard.cxx. 00521 {
00522 bool good = true;
00523 good = good && (trkplane < 28);
00524 good = good && (tlp < 18);
00525 good = good && (energy > 0.5);
00526 return good;
00527 }
|
|
|
Definition at line 511 of file NueStandard.cxx. References ANtpTrackInfo::begPlane, ANtpTrackInfo::endPlane, ANtpEventInfoNue::phNueGeV, NueRecord::srevent, NueRecord::srtrack, and ANtpTrackInfoNue::trklikePlanes. Referenced by Trimmer::EvaluateCuts(), and NueExpBuilder::EvaluateCuts(). 00512 {
00513 int tp = TMath::Abs(nr->srtrack.endPlane - nr->srtrack.begPlane);
00514 int tlp = nr->srtrack.trklikePlanes;
00515 float energy = nr->srevent.phNueGeV;
00516
00517 return PassesSysPreSelectionNoHE(tp, tlp, energy);
00518 }
|
|
|
Definition at line 367 of file NueStandard.cxx. 00368 {
00369 return (tlp < 16);
00370 }
|
|
|
Definition at line 361 of file NueStandard.cxx. References NueRecord::srtrack, and ANtpTrackInfoNue::trklikePlanes. Referenced by NueMiniAnaPID::FillMini(), NueMiniAna::FillMini(), and NueStandard::PassesPreSelectionTrackCuts(). 00362 {
00363 int tlp = nr->srtrack.trklikePlanes;
00364 return PassesTrackLikePlaneCut(tlp);
00365 }
|
|
|
Definition at line 280 of file NueStandard.cxx. 00281 {
00282 return (trkplane < 25);
00283 }
|
|
|
Definition at line 273 of file NueStandard.cxx. References ANtpTrackInfo::begPlane, ANtpTrackInfo::endPlane, and NueRecord::srtrack. Referenced by NueMiniAnaPID::FillMini(), NueMiniAna::FillMini(), and NueStandard::PassesPreSelectionTrackCuts(). 00274 {
00275 int tp = TMath::Abs(nr->srtrack.endPlane - nr->srtrack.begPlane);
00276
00277 return PassesTrackPlaneCut(tp);
00278 }
|
|
|
Definition at line 936 of file NueStandard.cxx. Referenced by NNTrain::MakeTrainTree(), MiniPlotMaker::MiniPlotMaker(), MiniMakerPID::RunMiniMakerPID(), SysFileGen2D::SetDefaultOsc(), NueStandard::SetDefaultOscParamNoNue(), NueStandard::SetOscParamBestFitANN(), and NueStandard::SetOscParamBestFitkNN(). 00937 {
00938 Double_t dm2_12 = 8.0e-5; // best fit SNO
00939 Double_t dm2_23 = 2.43e-3;
00940
00941 Double_t par[9] = {0};
00942 par[OscPar::kL] = 735.0;
00943 par[OscPar::kTh23] = 3.1415926/4.0;
00944 par[OscPar::kTh12] = 0.59365; // Sin2(2Th12) = 0.86
00945 par[OscPar::kTh13] = 0.19885; // Sin2(2Th13) = 0.15;
00946 par[OscPar::kDeltaM23] = dm2_23; //normal heirarchy
00947 par[OscPar::kDeltaM12] = dm2_12;
00948 par[OscPar::kDensity] = 2.75; //standard rock density
00949 par[OscPar::kDelta] = 0;
00950 par[OscPar::kNuAntiNu] = 1;
00951
00952 fOscGen.SetOscParam(par);
00953 }
|
|
|
Definition at line 955 of file NueStandard.cxx. References NueStandard::SetDefaultOscParam(), and NueStandard::SetOscParam(). 00956 {
00957 NueStandard::SetDefaultOscParam();
00958 NueStandard::SetOscParam(OscPar::kTh13, 0);
00959 }
|
|
|
Definition at line 973 of file NueStandard.cxx. Referenced by NNTrain::MakeTrainTree(), and MiniMakerPID::RunMiniMakerPID(). 00974 {
00975 fOscGen.SetOscParam(OscPar::kDensity, 1e-9);
00976 }
|
|
||||||||||||
|
Definition at line 983 of file NueStandard.cxx. 00984 {
00985 fOscGen.SetOscParam(pos, val);
00986 }
|
|
|
Definition at line 978 of file NueStandard.cxx. Referenced by NueStandard::SetDefaultOscParamNoNue(), NueStandard::SetOscParamBestFitANN(), and NueStandard::SetOscParamBestFitkNN(). 00979 {
00980 fOscGen.SetOscParam(par);
00981 }
|
|
|
Definition at line 961 of file NueStandard.cxx. References NueStandard::SetDefaultOscParam(), and NueStandard::SetOscParam(). 00962 {
00963 NueStandard::SetDefaultOscParam();
00964 NueStandard::SetOscParam(OscPar::kTh13, 0.172088);
00965 }
|
|
|
Definition at line 967 of file NueStandard.cxx. References NueStandard::SetDefaultOscParam(), and NueStandard::SetOscParam(). 00968 {
00969 NueStandard::SetDefaultOscParam();
00970 NueStandard::SetOscParam(OscPar::kTh13, 0.145518);
00971 }
|
|
|
Definition at line 39 of file NueStandard.h. |
|
|
Definition at line 37 of file NueStandard.h. |
|
|
Definition at line 34 of file NueStandard.h. |
|
|
Definition at line 35 of file NueStandard.h. |
|
|
Definition at line 36 of file NueStandard.h. |
|
|
Definition at line 33 of file NueStandard.h. |
|
|
Definition at line 26 of file NueStandard.h. |
|
|
Definition at line 27 of file NueStandard.h. |
|
|
Definition at line 30 of file NueStandard.h. |
|
|
Definition at line 28 of file NueStandard.h. |
|
|
Definition at line 31 of file NueStandard.h. |
|
|
Definition at line 29 of file NueStandard.h. |
1.3.9.1