Public Member Functions | Private Member Functions | Private Attributes | List of all members
skim::SelectionNue2017 Class Reference

#include "/cvmfs/nova-development.opensciencegrid.org/novasoft/releases/N20-09-17/AnalysisSkimmer/evaluators/SelectionNue2017.h"

Inheritance diagram for skim::SelectionNue2017:
skim::SelectionBase

Public Member Functions

 SelectionNue2017 ()
 
 SelectionNue2017 (SelectionNue2017 const &)=delete
 
 SelectionNue2017 (SelectionNue2017 &&)=delete
 
SelectionNue2017operator= (SelectionNue2017 const &)=delete
 
SelectionNue2017operator= (SelectionNue2017 &&)=delete
 
void reconfigure (fhicl::ParameterSet const &p)
 
bool PassesSelection (skim::Parameters *pars, novadaq::cnv::DetId const &detId)
 

Private Member Functions

bool PassesPreselection (skim::ParametersNue const &params)
 
bool KeepNueFarDetectorSlice (skim::ParametersNue const &params)
 
bool KeepNueNearDetectorSlice (skim::ParametersNue const &params)
 
bool CheckSlicePID (skim::ParametersNue const &params)
 

Private Attributes

float fFDDistAllTop
 minimum distance to the top wall More...
 
float fFDDistAllBottom
 minimum distance to the bottom wall More...
 
float fFDDistAllWest
 minimum distance to the west wall More...
 
float fFDDistAllEast
 minimum distance to the east wall More...
 
float fFDDistAllFront
 minimum distance to the front wall More...
 
float fFDDistAllBack
 minimum distance to the back wall More...
 
float fFDMaxSparsenessAsymm
 maximum asymmetry in the zero-hit planes at the start and end of the shower More...
 
float fFDMaxDistAllBack
 maximum distance to the back wall More...
 
float fFarCloseBoundary
 distance at which we are no longer close to top of detector More...
 
float fVeryFarBoundary
 distance at which we are very far from the top of detector More...
 
float fMaxTransverseMomentumClose
 maximum transverse momentum when close to top of detector More...
 
float fMaxTransverseMomentumFar
 maximum transverse momentum when away from top of detector More...
 
float fSliceHitsPerPlane
 maximum number of hits per plane in a slice More...
 
float fFDMinSliceHits
 minimum number of hits required in FD slices. More...
 
float fFDMaxSliceHits
 maximum number of hits required in FD slices. More...
 
float fFDMaxNueEnergy
 max NueEnergy at FD More...
 
float fFDMinNueEnergy
 min NueEnergy at FD More...
 
float fMinCVNVal
 min cvn value optimised on S/sqrt(B) More...
 
float fFDMaxProngLength
 maximum length of longest prong More...
 
float fFDMinProngLength
 minimum length of longest prong More...
 
float fFDClosestSliceTimeBefore
 closest time distance allowed for previous slice More...
 
float fFDClosestSliceTimeAfter
 closest time distance allowed for next slice More...
 
float fFDClosestSliceHighCVNTopDist
 minimum distance from top for closest slice ( CVN > 0.87 ) More...
 
float fFDClosestSliceLowCVNTopDist
 minimum distance from top for closest slice ( 0.75 < CVN < 0.87 ) More...
 
float fFDClosestSliceMinDist
 minimum distance for closest slice More...
 
float fFDClosestSliceCVNBoundary
 CVN boundary for closest slice check. More...
 
float fNDMaxVertexX
 
float fNDMinVertexX
 
float fNDMaxVertexY
 
float fNDMinVertexY
 
float fNDMaxVertexZ
 
float fNDMinVertexZ
 
float fNDMaxShowerW
 
float fNDMinShowerZ
 
float fNDMaxShowerZ
 
float fNDMinSliceHits
 
float fNDMaxSliceHits
 
float fNDMaxNueEnergy
 
float fNDMinNueEnergy
 
float fNDMaxProngLength
 
float fNDMinProngLength
 
unsigned int fNDMinPlanesToFront
 

Detailed Description

Definition at line 17 of file SelectionNue2017.h.

Constructor & Destructor Documentation

skim::SelectionNue2017::SelectionNue2017 ( )

Definition at line 11 of file SelectionNue2017.cxx.

12 {
13 
14 }
skim::SelectionNue2017::SelectionNue2017 ( SelectionNue2017 const &  )
delete
skim::SelectionNue2017::SelectionNue2017 ( SelectionNue2017 &&  )
delete

Member Function Documentation

bool skim::SelectionNue2017::CheckSlicePID ( skim::ParametersNue const &  params)
private

Definition at line 111 of file SelectionNue2017.cxx.

References skim::ParametersNue::CVNVal(), fMinCVNVal, and LOG_DEBUG.

Referenced by PassesSelection().

112 {
113  // only get rid of an event if both PID values are less than the minimum
114  // required. keep the event if it satisfies either cut.
115 
116  if( params.CVNVal() <= fMinCVNVal){
117  LOG_DEBUG("SelectionNue2017")
118  << "failed PID Cuts"
119  << "\nCVN: " << params.CVNVal() << " " << fMinCVNVal;
120  return false;
121  }
122 
123  return true;
124 }
#define LOG_DEBUG(stream)
Definition: Messenger.h:149
float fMinCVNVal
min cvn value optimised on S/sqrt(B)
bool skim::SelectionNue2017::KeepNueFarDetectorSlice ( skim::ParametersNue const &  params)
private

Definition at line 142 of file SelectionNue2017.cxx.

References skim::ParametersNue::ClosestSliceDistFromTop(), skim::ParametersNue::ClosestSliceMinDist(), skim::ParametersNue::ClosestSliceTime(), skim::ParametersNue::CVNVal(), skim::ParametersNue::DistAllBack(), skim::ParametersNue::DistAllBottom(), skim::ParametersNue::DistAllEast(), skim::ParametersNue::DistAllFront(), skim::ParametersNue::DistAllTop(), skim::ParametersNue::DistAllWest(), fFarCloseBoundary, fFDClosestSliceCVNBoundary, fFDClosestSliceHighCVNTopDist, fFDClosestSliceLowCVNTopDist, fFDClosestSliceMinDist, fFDClosestSliceTimeAfter, fFDClosestSliceTimeBefore, fFDDistAllBack, fFDDistAllBottom, fFDDistAllEast, fFDDistAllFront, fFDDistAllTop, fFDDistAllWest, fFDMaxDistAllBack, fFDMaxProngLength, fFDMaxSliceHits, fFDMaxSparsenessAsymm, fFDMinProngLength, fFDMinSliceHits, fMaxTransverseMomentumClose, fMaxTransverseMomentumFar, fMinCVNVal, fVeryFarBoundary, LOG_DEBUG, PassesPreselection(), skim::ParametersNue::ProngLength(), skim::ParametersNue::ShowerMaxY(), skim::ParametersNue::ShowerPt(), skim::ParametersNue::SliceHits(), skim::ParametersNue::SparsenessAsymm(), and skim::ParametersNue::VetoKeepNue().

Referenced by PassesSelection().

143 {
144  if(!this->PassesPreselection(params)) return false;
145 
146  // cuts based on slice info include cuts on number of hits,
147  // energy of slice, fraction of slice hits in 3D showers
148  //
149  if(params.SliceHits() < fFDMinSliceHits ||
150  params.SliceHits() > fFDMaxSliceHits
151  // params.NueEnergy() > fFDMaxNueEnergy ||
152  // params.NueEnergy() < fFDMinNueEnergy
153  ){
154  LOG_DEBUG("SelectionNue2017")
155  << "failed Cell/Hit Checks"
156  << "\nSliceHits: " << params.SliceHits();
157 
158  return false;
159  }
160 
161  // check the prong length
162  if(params.ProngLength() <= fFDMinProngLength ||
163  params.ProngLength() >= fFDMaxProngLength ){
164  LOG_DEBUG("SelectionNue2017")
165  << "failed shower length cuts"
166  << "\nProngLength: " << params.ProngLength() << " " << fFDMaxProngLength
167  << "\nProngLength: " << params.ProngLength() << " " << fFDMinProngLength;
168  return false;
169  }
170 
171  // cuts based on the showers - we already checked the number of showers
172  // in the KeepSlice method, so don't bother doing it again
173  if((params.ShowerMaxY() >= fVeryFarBoundary && params.ShowerMaxY() < fFarCloseBoundary && params.ShowerPt() >= fMaxTransverseMomentumFar ) ||
174  (params.ShowerMaxY() >= fFarCloseBoundary && params.ShowerPt() >= fMaxTransverseMomentumClose)
175  ){
176  LOG_DEBUG("SelectionNue2017")
177  << "failed boundary for pt"
178  << "\nMinTopDist: " << params.ShowerMaxY() << " " << fVeryFarBoundary
179  << "\nMinTopDist: " << params.ShowerMaxY() << " " << fFarCloseBoundary
180  << "\nShowerPt: " << params.ShowerPt() << " " << fMaxTransverseMomentumFar
181  << "\nShowerPt: " << params.ShowerPt() << " " << fMaxTransverseMomentumClose;
182  return false;
183  }
184 
185  // check the containment
186  if(params.DistAllTop() <= fFDDistAllTop ||
187  params.DistAllBottom() <= fFDDistAllBottom ||
188  params.DistAllWest() <= fFDDistAllWest ||
189  params.DistAllEast() <= fFDDistAllEast ||
190  params.DistAllFront() <= fFDDistAllFront ||
191  params.DistAllBack() <= fFDDistAllBack ){
192  LOG_DEBUG("SelectionNue2017")
193  << "failed containment"
194  << "\nDistAllTop: " << params.DistAllTop() << " " << fFDDistAllTop
195  << "\nDistAllBottom: " << params.DistAllBottom() << " " << fFDDistAllBottom
196  << "\nDistAllWest: " << params.DistAllWest() << " " << fFDDistAllWest
197  << "\nDistAllEast: " << params.DistAllEast() << " " << fFDDistAllEast
198  << "\nDistAllFront: " << params.DistAllFront() << " " << fFDDistAllFront
199  << "\nDistAllBack: " << params.DistAllBack() << " " << fFDDistAllBack;
200 
201  return false;
202  }
203 
204  // FD backward cosmic photon rejection cut
205  if(params.DistAllBack() < fFDMaxDistAllBack &&
206  params.SparsenessAsymm() >= fFDMaxSparsenessAsymm ){
207  LOG_DEBUG("SelectionNue2017")
208  << "failed backward cosmic photon rejection cut"
209  << "\nDistAllBack: " << params.DistAllBack() << " " << fFDMaxDistAllBack
210  << "\nSparsenessAsymm: " << params.SparsenessAsymm() << " " << fFDMaxSparsenessAsymm;
211 
212  return false;
213  }
214 
215 
216  //FD Nerest Slice
217  if( params.CVNVal() > fMinCVNVal &&
218  params.CVNVal() < fFDClosestSliceCVNBoundary &&
219  params.ClosestSliceTime() > fFDClosestSliceTimeBefore &&
220  params.ClosestSliceTime() < fFDClosestSliceTimeAfter &&
221  params.ClosestSliceMinDist() < fFDClosestSliceMinDist &&
222  params.ClosestSliceDistFromTop() < fFDClosestSliceLowCVNTopDist ){
223 
224  LOG_DEBUG("SelectionNue2017")
225  << "failed nearest slice cut"
226  << "\nMinCVNVal " << params.CVNVal() << fMinCVNVal
227  << "\nFDClosestSliceCVNBoundary " << params.CVNVal() << fFDClosestSliceCVNBoundary
228  << "\nFDClosestSliceTimeBefore " << params.ClosestSliceTime() << fFDClosestSliceTimeBefore
229  << "\nFDClosestSliceTimeAfter " << params.ClosestSliceTime() << fFDClosestSliceTimeAfter
230  << "\nFDClosestSliceMinDist " << params.ClosestSliceMinDist() << fFDClosestSliceMinDist
231  << "\nFDClosestSliceLowCVNTopDist " << params.ClosestSliceDistFromTop() << fFDClosestSliceLowCVNTopDist;
232 
233  return false;
234  }
235 
236  if( params.CVNVal() > fFDClosestSliceCVNBoundary &&
237  params.ClosestSliceTime() > fFDClosestSliceTimeBefore &&
238  params.ClosestSliceTime() < fFDClosestSliceTimeAfter &&
239  params.ClosestSliceMinDist() < fFDClosestSliceMinDist &&
240  params.ClosestSliceDistFromTop() < fFDClosestSliceHighCVNTopDist ){
241 
242  LOG_DEBUG("SelectionNue2017")
243  << "failed nearest slice cut"
244  << "\nFDClosestSliceCVNBoundary " << params.CVNVal() << fFDClosestSliceCVNBoundary
245  << "\nFDClosestSliceTimeBefore " << params.ClosestSliceTime() << fFDClosestSliceTimeBefore
246  << "\nFDClosestSliceTimeAfter " << params.ClosestSliceTime() << fFDClosestSliceTimeAfter
247  << "\nFDClosestSliceMinDist " << params.ClosestSliceMinDist() << fFDClosestSliceMinDist
248  << "\nFDClosestSliceHighCVNTopDist " << params.ClosestSliceDistFromTop() << fFDClosestSliceHighCVNTopDist;
249 
250  return false;
251  }
252 
253  // cosmic veto cut
254  if (!params.VetoKeepNue()){
255  LOG_DEBUG("SelectionNue2017")
256  << "failed cosmic veto cut"
257  << "\nVetoKeepNue: " << params.VetoKeepNue() ;
258  return false;
259  }
260 
261  return true;
262 }
float fFDDistAllBottom
minimum distance to the bottom wall
#define LOG_DEBUG(stream)
Definition: Messenger.h:149
float fMaxTransverseMomentumFar
maximum transverse momentum when away from top of detector
bool PassesPreselection(skim::ParametersNue const &params)
float fFDClosestSliceHighCVNTopDist
minimum distance from top for closest slice ( CVN > 0.87 )
float fMinCVNVal
min cvn value optimised on S/sqrt(B)
float fFDDistAllBack
minimum distance to the back wall
float fFDMaxSliceHits
maximum number of hits required in FD slices.
float fFDMinProngLength
minimum length of longest prong
float fMaxTransverseMomentumClose
maximum transverse momentum when close to top of detector
float fFDClosestSliceMinDist
minimum distance for closest slice
float fFDMaxSparsenessAsymm
maximum asymmetry in the zero-hit planes at the start and end of the shower
float fFarCloseBoundary
distance at which we are no longer close to top of detector
float fFDMaxProngLength
maximum length of longest prong
float fFDClosestSliceTimeBefore
closest time distance allowed for previous slice
float fFDClosestSliceCVNBoundary
CVN boundary for closest slice check.
float fFDDistAllEast
minimum distance to the east wall
float fFDClosestSliceLowCVNTopDist
minimum distance from top for closest slice ( 0.75 < CVN < 0.87 )
float fFDDistAllTop
minimum distance to the top wall
float fFDDistAllWest
minimum distance to the west wall
float fFDClosestSliceTimeAfter
closest time distance allowed for next slice
float fVeryFarBoundary
distance at which we are very far from the top of detector
float fFDMaxDistAllBack
maximum distance to the back wall
float fFDMinSliceHits
minimum number of hits required in FD slices.
float fFDDistAllFront
minimum distance to the front wall
bool skim::SelectionNue2017::KeepNueNearDetectorSlice ( skim::ParametersNue const &  params)
private

Definition at line 265 of file SelectionNue2017.cxx.

References std::abs(), fNDMaxProngLength, fNDMaxShowerW, fNDMaxShowerZ, fNDMaxSliceHits, fNDMaxVertexX, fNDMaxVertexY, fNDMaxVertexZ, fNDMinPlanesToFront, fNDMinProngLength, fNDMinShowerZ, fNDMinSliceHits, fNDMinVertexX, fNDMinVertexY, fNDMinVertexZ, LOG_DEBUG, std::max(), PassesPreselection(), skim::ParametersNue::PlanesToFront(), skim::ParametersNue::ProngLength(), skim::ParametersNue::ShowerMaxEndZ(), skim::ParametersNue::ShowerMaxVtxZ(), skim::ParametersNue::ShowerMaxX(), skim::ParametersNue::ShowerMaxY(), skim::ParametersNue::ShowerMinEndZ(), skim::ParametersNue::ShowerMinVtxZ(), skim::ParametersNue::ShowerMinX(), skim::ParametersNue::ShowerMinY(), skim::ParametersNue::SliceHits(), and skim::ParametersNue::Vertex().

Referenced by PassesSelection().

266 {
267 
268  if(!this->PassesPreselection(params)) return false;
269 
270  // cuts based on slice info
271  if(params.PlanesToFront() < fNDMinPlanesToFront ||
272  params.SliceHits() < fNDMinSliceHits ||
273  params.SliceHits() > fNDMaxSliceHits
274  // params.NueEnergy() > fNDMaxNueEnergy ||
275  // params.NueEnergy() < fNDMinNueEnergy
276  ){
277  LOG_DEBUG("SelectionNue2017")
278  << "failed Cells/Calorimetry"
279  << "\nPlanesToFront: " << params.PlanesToFront() << " " << fNDMinPlanesToFront
280  << "\nSliceHits: " << params.SliceHits() << " " << fNDMinSliceHits
281  << "\nSliceHits: " << params.SliceHits() << " " << fNDMaxSliceHits;
282 
283  return false;
284  }
285 
286  // cuts based on the showers - we already checked the number of showers
287  // in the KeepSlice method, so don't bother doing it again
288  if(params.ProngLength() < fNDMinProngLength ||
289  params.ProngLength() > fNDMaxProngLength ){
290  LOG_DEBUG("SelectionNue2017")
291  << "failed shower length cuts"
292  << "\nProngLength: " << params.ProngLength() << " " << fNDMaxProngLength
293  << "\nProngLength: " << params.ProngLength() << " " << fNDMinProngLength;
294 
295  return false;
296  }
297 
298  float maxW = std::max(std::max(std::abs(params.ShowerMaxX()), std::abs(params.ShowerMinX())),
299  std::max(std::abs(params.ShowerMaxY()), std::abs(params.ShowerMinY())));
300 
301  // check the containment
302  if(params.Vertex().X() < fNDMinVertexX ||
303  params.Vertex().X() > fNDMaxVertexX ||
304  params.Vertex().Y() < fNDMinVertexY ||
305  params.Vertex().Y() > fNDMaxVertexY ||
306  params.Vertex().Z() < fNDMinVertexZ ||
307  params.Vertex().Z() > fNDMaxVertexZ ||
308  maxW > fNDMaxShowerW ||
309  params.ShowerMinVtxZ() < fNDMinShowerZ ||
310  params.ShowerMinEndZ() < fNDMinShowerZ ||
311  params.ShowerMaxVtxZ() > fNDMaxShowerZ ||
312  params.ShowerMaxEndZ() > fNDMaxShowerZ){
313  LOG_DEBUG("SelectionNue2017")
314  << "failed containment cuts"
315  << "\nVertexX: " << params.Vertex().X() << " " << fNDMinVertexX
316  << "\nVertexX: " << params.Vertex().X() << " " << fNDMaxVertexX
317  << "\nVertexY: " << params.Vertex().Y() << " " << fNDMinVertexY
318  << "\nVertexY: " << params.Vertex().Y() << " " << fNDMaxVertexY
319  << "\nVertexZ: " << params.Vertex().Z() << " " << fNDMinVertexZ
320  << "\nVertexZ: " << params.Vertex().Z() << " " << fNDMaxVertexZ
321  << "\nShowerMaxX: " << params.ShowerMaxX() << " " << fNDMaxShowerW
322  << "\nShowerMaxY: " << params.ShowerMaxY() << " " << fNDMaxShowerW
323  << "\nmaxW: " << maxW << " " << fNDMaxShowerW
324  << "\nShowerMinVtxZ: " << params.ShowerMinVtxZ() << " " << fNDMinShowerZ
325  << "\nShowerMinEndZ: " << params.ShowerMinEndZ() << " " << fNDMinShowerZ
326  << "\nShowerMaxVtxZ: " << params.ShowerMaxVtxZ() << " " << fNDMaxShowerZ
327  << "\nShowerMaxEndZ: " << params.ShowerMaxEndZ() << " " << fNDMaxShowerZ;
328 
329  return false;
330  }
331 
332  return true;
333 }
T max(const caf::Proxy< T > &a, T b)
#define LOG_DEBUG(stream)
Definition: Messenger.h:149
bool PassesPreselection(skim::ParametersNue const &params)
float abs(float number)
Definition: d0nt_math.hpp:39
unsigned int fNDMinPlanesToFront
SelectionNue2017& skim::SelectionNue2017::operator= ( SelectionNue2017 const &  )
delete
SelectionNue2017& skim::SelectionNue2017::operator= ( SelectionNue2017 &&  )
delete
bool skim::SelectionNue2017::PassesPreselection ( skim::ParametersNue const &  params)
private

Definition at line 127 of file SelectionNue2017.cxx.

References skim::ParametersNue::CellsPerPlane(), fSliceHitsPerPlane, and LOG_DEBUG.

Referenced by KeepNueFarDetectorSlice(), and KeepNueNearDetectorSlice().

128 {
129 
130  if(params.CellsPerPlane() >= fSliceHitsPerPlane ){
131  LOG_DEBUG("SelectionNue2017")
132  << "failed preselection cuts"
133  << "\nCellsPerPlane: " << params.CellsPerPlane() << " " << fSliceHitsPerPlane;
134  return false;
135  }
136 
137  return true;
138 }
#define LOG_DEBUG(stream)
Definition: Messenger.h:149
float fSliceHitsPerPlane
maximum number of hits per plane in a slice
bool skim::SelectionNue2017::PassesSelection ( skim::Parameters pars,
novadaq::cnv::DetId const &  detId 
)
virtual

Implements skim::SelectionBase.

Definition at line 94 of file SelectionNue2017.cxx.

References CheckSlicePID(), KeepNueFarDetectorSlice(), KeepNueNearDetectorSlice(), novadaq::cnv::kFARDET, and novadaq::cnv::kNEARDET.

96 {
97  skim::ParametersNue *params = dynamic_cast<skim::ParametersNue*>(pars);
98 
99  // check the PID values
100  if( !this->CheckSlicePID(*params) ) return false;
101 
102  // if the nue criteria are satified, keep the slice
103  if (detId == novadaq::cnv::kFARDET) return this->KeepNueFarDetectorSlice (*params);
104  else if(detId == novadaq::cnv::kNEARDET) return this->KeepNueNearDetectorSlice(*params);
105 
106  return false;
107 
108 }
bool KeepNueFarDetectorSlice(skim::ParametersNue const &params)
bool CheckSlicePID(skim::ParametersNue const &params)
Far Detector at Ash River, MN.
Near Detector in the NuMI cavern.
bool KeepNueNearDetectorSlice(skim::ParametersNue const &params)
void skim::SelectionNue2017::reconfigure ( fhicl::ParameterSet const &  p)
virtual

Implements skim::SelectionBase.

Definition at line 17 of file SelectionNue2017.cxx.

References fFarCloseBoundary, fFDClosestSliceCVNBoundary, fFDClosestSliceHighCVNTopDist, fFDClosestSliceLowCVNTopDist, fFDClosestSliceMinDist, fFDClosestSliceTimeAfter, fFDClosestSliceTimeBefore, fFDDistAllBack, fFDDistAllBottom, fFDDistAllEast, fFDDistAllFront, fFDDistAllTop, fFDDistAllWest, fFDMaxDistAllBack, fFDMaxNueEnergy, fFDMaxProngLength, fFDMaxSliceHits, fFDMaxSparsenessAsymm, fFDMinNueEnergy, fFDMinProngLength, fFDMinSliceHits, fMaxTransverseMomentumClose, fMaxTransverseMomentumFar, fMinCVNVal, fNDMaxNueEnergy, fNDMaxProngLength, fNDMaxShowerW, fNDMaxShowerZ, fNDMaxSliceHits, fNDMaxVertexX, fNDMaxVertexY, fNDMaxVertexZ, fNDMinNueEnergy, fNDMinPlanesToFront, fNDMinProngLength, fNDMinShowerZ, fNDMinSliceHits, fNDMinVertexX, fNDMinVertexY, fNDMinVertexZ, fSliceHitsPerPlane, fVeryFarBoundary, and fhicl::ParameterSet::get().

18 {
19 
20  // Pt/P kNue2017PtPCutCVN
21  fFarCloseBoundary = p.get<float>("FarCloseBoundary", 590. ); // ok
22  fVeryFarBoundary = p.get<float>("VeryFarBoundary", 350. ); // ok
23  fMaxTransverseMomentumClose = p.get<float>("MaxTransverseMomentumClose", 0.58 ); // ok
24  fMaxTransverseMomentumFar = p.get<float>("MaxTransverseMomentumFar", 0.80 ); // ok
25 
26  // kNueDQ2017CVN
27  fSliceHitsPerPlane = p.get<float>("SliceHitsPerPlane", 8. ); //
28 
29  // kNue2017CVNCut
30  fMinCVNVal = p.get<float>("MinCVNVal", 0.75 ); // ok
31 
32  // FD specific Cuts
33  //Preselection (kNue2017Presel)
34  fFDMinSliceHits = p.get<float>("FDMinSliceHits", 31. ); // ok
35  fFDMaxSliceHits = p.get<float>("FDMaxSliceHits", 149. ); // ok
36  fFDMaxProngLength = p.get<float>("FDMaxProngLength", 500. ); // ok
37  fFDMinProngLength = p.get<float>("FDMinProngLength", 100. ); // ok
38  //------------> Energy Cut Not Applied
39  fFDMaxNueEnergy = p.get<float>("FDMaxNueEnergy", 3. ); //
40  fFDMinNueEnergy = p.get<float>("FDMinNueEnergy", 1. ); //
41  //<------------
42 
43  // Containment kNue2017ProngContainment
44  fFDDistAllEast = p.get<float>("FDDistAllEast", 12. ); // ok
45  fFDDistAllWest = p.get<float>("FDDistAllWest", 12. ); // ok
46  fFDDistAllTop = p.get<float>("FDDistAllTop", 63. ); // ok
47  fFDDistAllBottom = p.get<float>("FDDistAllBottom", 12. ); // ok
48  fFDDistAllFront = p.get<float>("FDDistAllFront", 18. ); // ok
49  fFDDistAllBack = p.get<float>("FDDistAllBack", 18. ); // ok
50 
51  //kNearestSlice ...
52  fFDClosestSliceTimeBefore = p.get<float>("FDClosestSliceTimeBefore", -100); // ok
53  fFDClosestSliceTimeAfter = p.get<float>("FDClosestSliceTimeAfter", 100); // ok
54  fFDClosestSliceHighCVNTopDist = p.get<float>("FDClosestSliceHighCVNTopDist", 50); // ok
55  fFDClosestSliceLowCVNTopDist = p.get<float>("FDClosestSliceLowCVNTopDist", 400); // ok
56  fFDClosestSliceMinDist = p.get<float>("FDClosestSliceMinDist", 500); // ok
57  fFDClosestSliceCVNBoundary = p.get<float>("FDClosestSliceCVNBoundary", 0.87); // ok
58 
59 
60  // Backward Photon kNue2017BackwardCut
61  fFDMaxDistAllBack = p.get<float>("FDMaxDistAllBack", 200. ); // ok
62  fFDMaxSparsenessAsymm = p.get<float>("FDMaxSparsenessAsymm", -0.1 ); // ok
63 
64  // ND specific -------------------------------------------------------
65  // kNue2017NDFiducial
66  fNDMaxVertexX = p.get<float>("NDMaxVertexX", 160. ); // ok
67  fNDMinVertexX = p.get<float>("NDMinVertexX", -100. ); // ok
68  fNDMaxVertexY = p.get<float>("NDMaxVertexY", 100. ); // ok
69  fNDMinVertexY = p.get<float>("NDMinVertexY", -160. ); // ok
70  fNDMaxVertexZ = p.get<float>("NDMaxVertexZ", 900. ); // ok
71  fNDMinVertexZ = p.get<float>("NDMinVertexZ", 150. ); // ok
72  // kNue2017NDContain
73  fNDMaxShowerW = p.get<float>("NDMaxShowerW", 170. ); // ok
74  fNDMinShowerZ = p.get<float>("NDMinShowerZ", 100. ); // ok
75  fNDMaxShowerZ = p.get<float>("NDMaxShowerZ", 1225.); // ok
76  // kNue2017NDNHits
77  fNDMinSliceHits = p.get<float>("NDMinSliceHits", 20. ); // ok
78  fNDMaxSliceHits = p.get<float>("NDMaxSliceHits", 200. ); // ok
79 
80  fNDMaxNueEnergy = p.get<float>("NDMaxNueEnergy", 5. ); // Not Used
81  fNDMinNueEnergy = p.get<float>("fNDMinNueEnergy", 0. ); // Not Used
82 
83  //kNue2017NDProngLength
84  fNDMaxProngLength = p.get<float>("NDMaxProngLength", 500. );
85  fNDMinProngLength = p.get<float>("NDMinProngLength", 100. );
86 
87  // kNue2017NDFrontPlanes
88  fNDMinPlanesToFront = p.get<unsigned int>("NDMinPlanesToFront", 7 ); // ok
89 
90  return;
91 }
float fFDDistAllBottom
minimum distance to the bottom wall
float fMaxTransverseMomentumFar
maximum transverse momentum when away from top of detector
float fFDClosestSliceHighCVNTopDist
minimum distance from top for closest slice ( CVN > 0.87 )
const char * p
Definition: xmltok.h:285
float fMinCVNVal
min cvn value optimised on S/sqrt(B)
float fFDDistAllBack
minimum distance to the back wall
float fSliceHitsPerPlane
maximum number of hits per plane in a slice
float fFDMaxNueEnergy
max NueEnergy at FD
float fFDMaxSliceHits
maximum number of hits required in FD slices.
float fFDMinProngLength
minimum length of longest prong
float fMaxTransverseMomentumClose
maximum transverse momentum when close to top of detector
float fFDClosestSliceMinDist
minimum distance for closest slice
float fFDMaxSparsenessAsymm
maximum asymmetry in the zero-hit planes at the start and end of the shower
float fFarCloseBoundary
distance at which we are no longer close to top of detector
float fFDMaxProngLength
maximum length of longest prong
float fFDClosestSliceTimeBefore
closest time distance allowed for previous slice
float fFDClosestSliceCVNBoundary
CVN boundary for closest slice check.
unsigned int fNDMinPlanesToFront
float fFDDistAllEast
minimum distance to the east wall
float fFDMinNueEnergy
min NueEnergy at FD
float fFDClosestSliceLowCVNTopDist
minimum distance from top for closest slice ( 0.75 < CVN < 0.87 )
float fFDDistAllTop
minimum distance to the top wall
float fFDDistAllWest
minimum distance to the west wall
float fFDClosestSliceTimeAfter
closest time distance allowed for next slice
float fVeryFarBoundary
distance at which we are very far from the top of detector
float fFDMaxDistAllBack
maximum distance to the back wall
float fFDMinSliceHits
minimum number of hits required in FD slices.
float fFDDistAllFront
minimum distance to the front wall

Member Data Documentation

float skim::SelectionNue2017::fFarCloseBoundary
private

distance at which we are no longer close to top of detector

Definition at line 69 of file SelectionNue2017.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fFDClosestSliceCVNBoundary
private

CVN boundary for closest slice check.

Definition at line 90 of file SelectionNue2017.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fFDClosestSliceHighCVNTopDist
private

minimum distance from top for closest slice ( CVN > 0.87 )

Definition at line 87 of file SelectionNue2017.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fFDClosestSliceLowCVNTopDist
private

minimum distance from top for closest slice ( 0.75 < CVN < 0.87 )

Definition at line 88 of file SelectionNue2017.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fFDClosestSliceMinDist
private

minimum distance for closest slice

Definition at line 89 of file SelectionNue2017.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fFDClosestSliceTimeAfter
private

closest time distance allowed for next slice

Definition at line 86 of file SelectionNue2017.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fFDClosestSliceTimeBefore
private

closest time distance allowed for previous slice

Definition at line 85 of file SelectionNue2017.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fFDDistAllBack
private

minimum distance to the back wall

Definition at line 66 of file SelectionNue2017.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fFDDistAllBottom
private

minimum distance to the bottom wall

Definition at line 62 of file SelectionNue2017.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fFDDistAllEast
private

minimum distance to the east wall

Definition at line 64 of file SelectionNue2017.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fFDDistAllFront
private

minimum distance to the front wall

Definition at line 65 of file SelectionNue2017.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fFDDistAllTop
private

minimum distance to the top wall

Definition at line 61 of file SelectionNue2017.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fFDDistAllWest
private

minimum distance to the west wall

Definition at line 63 of file SelectionNue2017.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fFDMaxDistAllBack
private

maximum distance to the back wall

Definition at line 68 of file SelectionNue2017.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fFDMaxNueEnergy
private

max NueEnergy at FD

Definition at line 78 of file SelectionNue2017.h.

Referenced by reconfigure().

float skim::SelectionNue2017::fFDMaxProngLength
private

maximum length of longest prong

Definition at line 83 of file SelectionNue2017.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fFDMaxSliceHits
private

maximum number of hits required in FD slices.

Definition at line 75 of file SelectionNue2017.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fFDMaxSparsenessAsymm
private

maximum asymmetry in the zero-hit planes at the start and end of the shower

Definition at line 67 of file SelectionNue2017.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fFDMinNueEnergy
private

min NueEnergy at FD

Definition at line 79 of file SelectionNue2017.h.

Referenced by reconfigure().

float skim::SelectionNue2017::fFDMinProngLength
private

minimum length of longest prong

Definition at line 84 of file SelectionNue2017.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fFDMinSliceHits
private

minimum number of hits required in FD slices.

Definition at line 74 of file SelectionNue2017.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fMaxTransverseMomentumClose
private

maximum transverse momentum when close to top of detector

Definition at line 71 of file SelectionNue2017.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fMaxTransverseMomentumFar
private

maximum transverse momentum when away from top of detector

Definition at line 72 of file SelectionNue2017.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fMinCVNVal
private

min cvn value optimised on S/sqrt(B)

Definition at line 82 of file SelectionNue2017.h.

Referenced by CheckSlicePID(), KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fNDMaxNueEnergy
private

Definition at line 105 of file SelectionNue2017.h.

Referenced by reconfigure().

float skim::SelectionNue2017::fNDMaxProngLength
private

Definition at line 107 of file SelectionNue2017.h.

Referenced by KeepNueNearDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fNDMaxShowerW
private

Definition at line 99 of file SelectionNue2017.h.

Referenced by KeepNueNearDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fNDMaxShowerZ
private

Definition at line 101 of file SelectionNue2017.h.

Referenced by KeepNueNearDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fNDMaxSliceHits
private

Definition at line 103 of file SelectionNue2017.h.

Referenced by KeepNueNearDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fNDMaxVertexX
private

Definition at line 93 of file SelectionNue2017.h.

Referenced by KeepNueNearDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fNDMaxVertexY
private

Definition at line 95 of file SelectionNue2017.h.

Referenced by KeepNueNearDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fNDMaxVertexZ
private

Definition at line 97 of file SelectionNue2017.h.

Referenced by KeepNueNearDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fNDMinNueEnergy
private

Definition at line 106 of file SelectionNue2017.h.

Referenced by reconfigure().

unsigned int skim::SelectionNue2017::fNDMinPlanesToFront
private

Definition at line 109 of file SelectionNue2017.h.

Referenced by KeepNueNearDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fNDMinProngLength
private

Definition at line 108 of file SelectionNue2017.h.

Referenced by KeepNueNearDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fNDMinShowerZ
private

Definition at line 100 of file SelectionNue2017.h.

Referenced by KeepNueNearDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fNDMinSliceHits
private

Definition at line 102 of file SelectionNue2017.h.

Referenced by KeepNueNearDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fNDMinVertexX
private

Definition at line 94 of file SelectionNue2017.h.

Referenced by KeepNueNearDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fNDMinVertexY
private

Definition at line 96 of file SelectionNue2017.h.

Referenced by KeepNueNearDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fNDMinVertexZ
private

Definition at line 98 of file SelectionNue2017.h.

Referenced by KeepNueNearDetectorSlice(), and reconfigure().

float skim::SelectionNue2017::fSliceHitsPerPlane
private

maximum number of hits per plane in a slice

Definition at line 73 of file SelectionNue2017.h.

Referenced by PassesPreselection(), and reconfigure().

float skim::SelectionNue2017::fVeryFarBoundary
private

distance at which we are very far from the top of detector

Definition at line 70 of file SelectionNue2017.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().


The documentation for this class was generated from the following files: