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

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

Inheritance diagram for skim::SelectionNueSA:
skim::SelectionBase

Public Member Functions

 SelectionNueSA ()
 
 SelectionNueSA (SelectionNueSA const &)=delete
 
 SelectionNueSA (SelectionNueSA &&)=delete
 
SelectionNueSAoperator= (SelectionNueSA const &)=delete
 
SelectionNueSAoperator= (SelectionNueSA &&)=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 fShowerHitsXView
 minimum number of hits required in x view More...
 
float fShowerHitsYView
 minimum number of hits required in y view More...
 
float fShowerHitsViewAsym
 maximum asymmetery in the number of hits in the views More...
 
float fSliceCosAngleShowers
 minimum cosine of angle between leading showers More...
 
float fSliceFracHitsInShowers
 minimum fraction of slice hits in showers More...
 
float fSliceDistLeadShowerToVtx
 maximum gap between the lead shower and the vertex More...
 
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 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 fMinLIDVal
 min EventLID value optimised on S/sqrt(B) More...
 
float fMinLEMVal
 min lem value optimised on S/sqrt(B) 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 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 SelectionNueSA.h.

Constructor & Destructor Documentation

skim::SelectionNueSA::SelectionNueSA ( )

Definition at line 11 of file SelectionNueSA.cxx.

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

Member Function Documentation

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

Definition at line 87 of file SelectionNueSA.cxx.

References skim::ParametersNue::CVNVal(), fMinCVNVal, fMinLEMVal, fMinLIDVal, skim::ParametersNue::LEMVal(), skim::ParametersNue::LIDVal(), and LOG_DEBUG.

Referenced by PassesSelection().

88 {
89  // only get rid of an event if both PID values are less than the minimum
90  // required. keep the event if it satisfies either cut.
91 
92  if(params.LIDVal() < fMinLIDVal &&
93  params.LEMVal() < fMinLEMVal &&
94  params.CVNVal() < fMinCVNVal){
95  LOG_DEBUG("SelectionNueSA")
96  << "failed PID Cuts"
97  << "\nLID: " << params.LIDVal() << " " << fMinLIDVal
98  << "\nLEM: " << params.LEMVal() << " " << fMinLEMVal
99  << "\nCVN: " << params.CVNVal() << " " << fMinCVNVal;
100 
101  return false;
102  }
103 
104  return true;
105 }
#define LOG_DEBUG(stream)
Definition: Messenger.h:149
float fMinCVNVal
min cvn value optimised on S/sqrt(B)
float fMinLIDVal
min EventLID value optimised on S/sqrt(B)
float fMinLEMVal
min lem value optimised on S/sqrt(B)
bool skim::SelectionNueSA::KeepNueFarDetectorSlice ( skim::ParametersNue const &  params)
private

Definition at line 136 of file SelectionNueSA.cxx.

References skim::ParametersNue::DistAllBack(), skim::ParametersNue::DistAllBottom(), skim::ParametersNue::DistAllEast(), skim::ParametersNue::DistAllFront(), skim::ParametersNue::DistAllTop(), skim::ParametersNue::DistAllWest(), fFarCloseBoundary, fFDDistAllBack, fFDDistAllBottom, fFDDistAllEast, fFDDistAllFront, fFDDistAllTop, fFDDistAllWest, fFDMaxDistAllBack, fFDMaxNueEnergy, fFDMaxProngLength, fFDMaxSliceHits, fFDMaxSparsenessAsymm, fFDMinNueEnergy, fFDMinProngLength, fFDMinSliceHits, fMaxTransverseMomentumClose, fMaxTransverseMomentumFar, LOG_DEBUG, skim::ParametersNue::NueEnergy(), PassesPreselection(), skim::ParametersNue::ProngLength(), skim::ParametersNue::ShowerMaxY(), skim::ParametersNue::ShowerPt(), skim::ParametersNue::SliceHits(), skim::ParametersNue::SparsenessAsymm(), and skim::ParametersNue::VetoKeepNue().

Referenced by PassesSelection().

137 {
138 
139  if(!this->PassesPreselection(params)) return false;
140 
141  // cuts based on slice info include cuts on number of hits,
142  // energy of slice, fraction of slice hits in 3D showers
143  //
144  if(params.SliceHits() < fFDMinSliceHits ||
145  params.SliceHits() > fFDMaxSliceHits ||
146  params.NueEnergy() > fFDMaxNueEnergy ||
147  params.NueEnergy() < fFDMinNueEnergy ){
148  LOG_DEBUG("SelectionNueSA")
149  << "failed Cell/Hit Checks"
150  << "\nSliceHits: " << params.SliceHits()
151  << "\nSliceEnergy: " << params.NueEnergy();
152 
153  return false;
154  }
155 
156  // check the prong length
157  if(params.ProngLength() < fFDMinProngLength ||
158  params.ProngLength() > fFDMaxProngLength ){
159  LOG_DEBUG("SelectionNueSA")
160  << "failed shower length cuts"
161  << "\nProngLength: " << params.ProngLength() << " " << fFDMaxProngLength
162  << "\nProngLength: " << params.ProngLength() << " " << fFDMinProngLength;
163  return false;
164  }
165 
166  // cuts based on the showers - we already checked the number of showers
167  // in the KeepSlice method, so don't bother doing it again
168  if((params.ShowerMaxY() < fFarCloseBoundary && params.ShowerPt() > fMaxTransverseMomentumFar) ||
169  (params.ShowerMaxY() > fFarCloseBoundary && params.ShowerPt() > fMaxTransverseMomentumClose ) ){
170  LOG_DEBUG("SelectionNueSA")
171  << "failed boundary for pt"
172  << "\nMinTopDist: " << params.ShowerMaxY() << " " << fFarCloseBoundary
173  << "\nShowerPt: " << params.ShowerPt() << " " << fMaxTransverseMomentumFar
174  << "\nShowerPt: " << params.ShowerPt() << " " << fMaxTransverseMomentumClose;
175  return false;
176  }
177 
178 
179  // check the containment
180  if(params.DistAllTop() <= fFDDistAllTop ||
181  params.DistAllBottom() <= fFDDistAllBottom ||
182  params.DistAllWest() <= fFDDistAllWest ||
183  params.DistAllEast() <= fFDDistAllEast ||
184  params.DistAllFront() <= fFDDistAllFront ||
185  params.DistAllBack() <= fFDDistAllBack ){
186  LOG_DEBUG("SelectionNueSA")
187  << "failed containment"
188  << "\nDistAllTop: " << params.DistAllTop() << " " << fFDDistAllTop
189  << "\nDistAllBottom: " << params.DistAllBottom() << " " << fFDDistAllBottom
190  << "\nDistAllWest: " << params.DistAllWest() << " " << fFDDistAllWest
191  << "\nDistAllEast: " << params.DistAllEast() << " " << fFDDistAllEast
192  << "\nDistAllFront: " << params.DistAllFront() << " " << fFDDistAllFront
193  << "\nDistAllBack: " << params.DistAllBack() << " " << fFDDistAllBack;
194 
195  return false;
196  }
197 
198  // FD backward cosmic photon rejection cut
199  if(params.DistAllBack() <= fFDMaxDistAllBack &&
200  params.SparsenessAsymm() >= fFDMaxSparsenessAsymm ){
201  LOG_DEBUG("SelectionNueSA")
202  << "failed backward cosmic photon rejection cut"
203  << "\nDistAllBack: " << params.DistAllBack() << " " << fFDMaxDistAllBack
204  << "\nSparsenessAsymm: " << params.SparsenessAsymm() << " " << fFDMaxSparsenessAsymm;
205 
206  return false;
207  }
208 
209  // cosmic veto cut
210  if (!params.VetoKeepNue()){
211  LOG_DEBUG("SelectionNueSA")
212  << "failed cosmic veto cut"
213  << "\nVetoKeepNue: " << params.VetoKeepNue() ;
214  return false;
215  }
216 
217  return true;
218 }
#define LOG_DEBUG(stream)
Definition: Messenger.h:149
float fFarCloseBoundary
distance at which we are no longer close to top of detector
float fFDMinSliceHits
minimum number of hits required in FD slices.
float fFDMaxNueEnergy
max NueEnergy at FD
float fFDDistAllFront
minimum distance to the front wall
float fFDDistAllBottom
minimum distance to the bottom wall
float fFDMaxDistAllBack
maximum distance to the back wall
float fFDMaxProngLength
maximum length of longest prong
float fFDDistAllEast
minimum distance to the east wall
float fFDDistAllBack
minimum distance to the back wall
float fFDMaxSparsenessAsymm
maximum asymmetry in the zero-hit planes at the start and end of the shower
bool PassesPreselection(skim::ParametersNue const &params)
float fMaxTransverseMomentumFar
maximum transverse momentum when away from top of detector
float fFDMinNueEnergy
min NueEnergy at FD
float fFDDistAllTop
minimum distance to the top wall
float fFDMaxSliceHits
maximum number of hits required in FD slices.
float fFDDistAllWest
minimum distance to the west wall
float fFDMinProngLength
minimum length of longest prong
float fMaxTransverseMomentumClose
maximum transverse momentum when close to top of detector
bool skim::SelectionNueSA::KeepNueNearDetectorSlice ( skim::ParametersNue const &  params)
private

Definition at line 221 of file SelectionNueSA.cxx.

References std::abs(), fMaxTransverseMomentumFar, fNDMaxNueEnergy, fNDMaxProngLength, fNDMaxShowerW, fNDMaxShowerZ, fNDMaxSliceHits, fNDMaxVertexX, fNDMaxVertexY, fNDMaxVertexZ, fNDMinNueEnergy, fNDMinPlanesToFront, fNDMinProngLength, fNDMinShowerZ, fNDMinSliceHits, fNDMinVertexX, fNDMinVertexY, fNDMinVertexZ, LOG_DEBUG, std::max(), skim::ParametersNue::NueEnergy(), 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::ShowerPt(), skim::ParametersNue::SliceHits(), and skim::ParametersNue::Vertex().

Referenced by PassesSelection().

222 {
223 
224  if(!this->PassesPreselection(params)) return false;
225 
226  // cuts based on slice info
227  if(params.PlanesToFront() < fNDMinPlanesToFront ||
228  params.SliceHits() < fNDMinSliceHits ||
229  params.SliceHits() > fNDMaxSliceHits ||
230  params.NueEnergy() > fNDMaxNueEnergy ||
231  params.NueEnergy() < fNDMinNueEnergy ){
232  LOG_DEBUG("SelectionNueSA")
233  << "failed Cells/Calorimetry"
234  << "\nPlanesToFront: " << params.PlanesToFront() << " " << fNDMinPlanesToFront
235  << "\nSliceHits: " << params.SliceHits() << " " << fNDMinSliceHits
236  << "\nSliceHits: " << params.SliceHits() << " " << fNDMaxSliceHits
237  << "\nNueEnergy: " << params.NueEnergy() << " " << fNDMaxNueEnergy;
238  return false;
239  }
240 
241  // cuts based on the showers - we already checked the number of showers
242  // in the KeepSlice method, so don't bother doing it again
243  if(params.ProngLength() < fNDMinProngLength ||
244  params.ProngLength() > fNDMaxProngLength ){
245  LOG_DEBUG("SelectionNueSA")
246  << "failed shower length cuts"
247  << "\nProngLength: " << params.ProngLength() << " " << fNDMaxProngLength
248  << "\nProngLength: " << params.ProngLength() << " " << fNDMinProngLength;
249 
250  return false;
251  }
252 
253  float maxW = std::max(std::max(std::abs(params.ShowerMaxX()), std::abs(params.ShowerMinX())),
254  std::max(std::abs(params.ShowerMaxY()), std::abs(params.ShowerMinY())));
255 
256  // check the containment
257  if(params.Vertex().X() < fNDMinVertexX ||
258  params.Vertex().X() > fNDMaxVertexX ||
259  params.Vertex().Y() < fNDMinVertexY ||
260  params.Vertex().Y() > fNDMaxVertexY ||
261  params.Vertex().Z() < fNDMinVertexZ ||
262  params.Vertex().Z() > fNDMaxVertexZ ||
263  maxW > fNDMaxShowerW ||
264  params.ShowerMinVtxZ() < fNDMinShowerZ ||
265  params.ShowerMinEndZ() < fNDMinShowerZ ||
266  params.ShowerMaxVtxZ() > fNDMaxShowerZ ||
267  params.ShowerMaxEndZ() > fNDMaxShowerZ){
268  LOG_DEBUG("SelectionNueSA")
269  << "failed containment cuts"
270  << "\nVertexX: " << params.Vertex().X() << " " << fNDMinVertexX
271  << "\nVertexX: " << params.Vertex().X() << " " << fNDMaxVertexX
272  << "\nVertexY: " << params.Vertex().Y() << " " << fNDMinVertexY
273  << "\nVertexY: " << params.Vertex().Y() << " " << fNDMaxVertexY
274  << "\nVertexZ: " << params.Vertex().Z() << " " << fNDMinVertexZ
275  << "\nVertexZ: " << params.Vertex().Z() << " " << fNDMaxVertexZ
276  << "\nShowerMaxX: " << params.ShowerMaxX() << " " << fNDMaxShowerW
277  << "\nShowerMaxY: " << params.ShowerMaxY() << " " << fNDMaxShowerW
278  << "\nmaxW: " << maxW << " " << fNDMaxShowerW
279  << "\nShowerMinVtxZ: " << params.ShowerMinVtxZ() << " " << fNDMinShowerZ
280  << "\nShowerMinEndZ: " << params.ShowerMinEndZ() << " " << fNDMinShowerZ
281  << "\nShowerMaxVtxZ: " << params.ShowerMaxVtxZ() << " " << fNDMaxShowerZ
282  << "\nShowerMaxEndZ: " << params.ShowerMaxEndZ() << " " << fNDMaxShowerZ;
283 
284  return false;
285  }
286 
287  if( params.ShowerPt() > fMaxTransverseMomentumFar ){
288  LOG_DEBUG("SelectionNueSA")
289  << "failed boundary for pt"
290  << "\nShowerPt: " << params.ShowerPt() << " " << fMaxTransverseMomentumFar;
291  return false;
292  }
293 
294  return true;
295 }
T max(const caf::Proxy< T > &a, T b)
#define LOG_DEBUG(stream)
Definition: Messenger.h:149
float abs(float number)
Definition: d0nt_math.hpp:39
bool PassesPreselection(skim::ParametersNue const &params)
float fMaxTransverseMomentumFar
maximum transverse momentum when away from top of detector
unsigned int fNDMinPlanesToFront
SelectionNueSA& skim::SelectionNueSA::operator= ( SelectionNueSA const &  )
delete
SelectionNueSA& skim::SelectionNueSA::operator= ( SelectionNueSA &&  )
delete
bool skim::SelectionNueSA::PassesPreselection ( skim::ParametersNue const &  params)
private

Definition at line 108 of file SelectionNueSA.cxx.

References skim::ParametersNue::CellsPerPlane(), skim::ParametersNue::CosShowers(), skim::ParametersNue::FracShowerHits(), fShowerHitsViewAsym, fShowerHitsXView, fShowerHitsYView, fSliceCosAngleShowers, fSliceDistLeadShowerToVtx, fSliceFracHitsInShowers, fSliceHitsPerPlane, skim::ParametersNue::HitAsymmetry(), LOG_DEBUG, skim::ParametersNue::ShowerNumXCell(), skim::ParametersNue::ShowerNumYCell(), and skim::ParametersNue::ShowerVtxDist().

Referenced by KeepNueFarDetectorSlice(), and KeepNueNearDetectorSlice().

109 {
110 
111  if(params.CellsPerPlane() > fSliceHitsPerPlane ||
112  params.ShowerNumXCell() < fShowerHitsXView ||
113  params.ShowerNumYCell() < fShowerHitsYView ||
114  params.ShowerVtxDist() > fSliceDistLeadShowerToVtx ||
115  params.CosShowers() < fSliceCosAngleShowers ||
116  params.HitAsymmetry() >= fShowerHitsViewAsym ||
117  params.FracShowerHits() < fSliceFracHitsInShowers ){
118  LOG_DEBUG("SelectionNueSA")
119  << "failed shower preselection cuts"
120  << "\nCellsPerPlane: " << params.CellsPerPlane() << " " << fSliceHitsPerPlane
121  << "\nCosShowers: " << params.CosShowers() << " " << fSliceCosAngleShowers
122  << "\nShowerNumXCell: " << params.ShowerNumXCell() << " " << fShowerHitsXView
123  << "\nShowerNumYCell: " << params.ShowerNumYCell() << " " << fShowerHitsYView
124  << "\nHitAsymmetry: " << params.HitAsymmetry() << " " << fShowerHitsViewAsym
125  << "\nFracShowerHits: " << params.FracShowerHits() << " " << fSliceFracHitsInShowers
126  << "\nShowerVtxDist: " << params.ShowerVtxDist() << " " << fSliceDistLeadShowerToVtx;
127 
128  return false;
129  }
130 
131  return true;
132 }
#define LOG_DEBUG(stream)
Definition: Messenger.h:149
float fSliceHitsPerPlane
maximum number of hits per plane in a slice
float fSliceFracHitsInShowers
minimum fraction of slice hits in showers
float fShowerHitsViewAsym
maximum asymmetery in the number of hits in the views
float fShowerHitsYView
minimum number of hits required in y view
float fSliceDistLeadShowerToVtx
maximum gap between the lead shower and the vertex
float fSliceCosAngleShowers
minimum cosine of angle between leading showers
float fShowerHitsXView
minimum number of hits required in x view
bool skim::SelectionNueSA::PassesSelection ( skim::Parameters pars,
novadaq::cnv::DetId const &  detId 
)
virtual

Implements skim::SelectionBase.

Definition at line 70 of file SelectionNueSA.cxx.

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

72 {
73  skim::ParametersNue *params = dynamic_cast<skim::ParametersNue*>(pars);
74 
75  // check the PID values
76  if( !this->CheckSlicePID(*params) ) return false;
77 
78  // if the nue criteria are satified, keep the slice
79  if (detId == novadaq::cnv::kFARDET) return this->KeepNueFarDetectorSlice (*params);
80  else if(detId == novadaq::cnv::kNEARDET) return this->KeepNueNearDetectorSlice(*params);
81 
82  return false;
83 
84 }
bool CheckSlicePID(skim::ParametersNue const &params)
Far Detector at Ash River, MN.
Near Detector in the NuMI cavern.
bool KeepNueNearDetectorSlice(skim::ParametersNue const &params)
bool KeepNueFarDetectorSlice(skim::ParametersNue const &params)
void skim::SelectionNueSA::reconfigure ( fhicl::ParameterSet const &  p)
virtual

Implements skim::SelectionBase.

Definition at line 17 of file SelectionNueSA.cxx.

References fFarCloseBoundary, fFDDistAllBack, fFDDistAllBottom, fFDDistAllEast, fFDDistAllFront, fFDDistAllTop, fFDDistAllWest, fFDMaxDistAllBack, fFDMaxNueEnergy, fFDMaxProngLength, fFDMaxSliceHits, fFDMaxSparsenessAsymm, fFDMinNueEnergy, fFDMinProngLength, fFDMinSliceHits, fMaxTransverseMomentumClose, fMaxTransverseMomentumFar, fMinCVNVal, fMinLEMVal, fMinLIDVal, fNDMaxNueEnergy, fNDMaxProngLength, fNDMaxShowerW, fNDMaxShowerZ, fNDMaxSliceHits, fNDMaxVertexX, fNDMaxVertexY, fNDMaxVertexZ, fNDMinNueEnergy, fNDMinPlanesToFront, fNDMinProngLength, fNDMinShowerZ, fNDMinSliceHits, fNDMinVertexX, fNDMinVertexY, fNDMinVertexZ, fShowerHitsViewAsym, fShowerHitsXView, fShowerHitsYView, fSliceCosAngleShowers, fSliceDistLeadShowerToVtx, fSliceFracHitsInShowers, fSliceHitsPerPlane, and fhicl::ParameterSet::get().

18 {
19  // Values updated to SA
20  fShowerHitsXView = p.get<float>("ShowerHitsXView", 5. ); // ok
21  fShowerHitsYView = p.get<float>("ShowerHitsYView", 5. ); // ok
22  fShowerHitsViewAsym = p.get<float>("ShowerHitsViewAsym", 0.4 ); // ok
23  fSliceCosAngleShowers = p.get<float>("SliceCosAngleShowers", -0.95 ); // ok
24  fSliceFracHitsInShowers = p.get<float>("SliceFracHitsInShowers", 0.7 ); // ok
25  fSliceDistLeadShowerToVtx = p.get<float>("SliceDistLeadShowerToVtx", 100. ); // ok
26  fFarCloseBoundary = p.get<float>("FarCloseBoundary", 600. ); // ok
27  fMaxTransverseMomentumClose = p.get<float>("MaxTransverseMomentum", 0.4 ); // ok
28  fMaxTransverseMomentumFar = p.get<float>("MaxTransverseMomentum", 0.65 ); // ok
29  fSliceHitsPerPlane = p.get<float>("SliceHitsPerPlane", 8. ); // ok
30  fMinLIDVal = p.get<float>("MinLIDVal", 0.95 ); // ok
31  fMinLEMVal = p.get<float>("MinLEMVal", 0.80 ); // ok
32  fMinCVNVal = p.get<float>("MinCVNVal", 0.95 ); // ok
33 
34  // FD specific
35  fFDMinSliceHits = p.get<float>("FDMinSliceHits", 41. ); // ok
36  fFDMaxSliceHits = p.get<float>("FDMaxSliceHits", 114. ); // ok
37  fFDDistAllEast = p.get<float>("FDDistAllEast", 12. ); // ok
38  fFDDistAllWest = p.get<float>("FDDistAllWest", 12. ); // ok
39  fFDDistAllTop = p.get<float>("FDDistAllTop", 63. ); // ok
40  fFDDistAllBottom = p.get<float>("FDDistAllBottom", 12. ); // ok
41  fFDDistAllFront = p.get<float>("FDDistAllFront", 18. ); // ok
42  fFDDistAllBack = p.get<float>("FDDistAllBack", 18. ); // ok
43  fFDMaxNueEnergy = p.get<float>("FDMaxNueEnergy", 3. ); // ok
44  fFDMinNueEnergy = p.get<float>("FDMinNueEnergy", 1. ); // ok
45  fFDMaxProngLength = p.get<float>("FDMaxProngLength", 500. ); // ok
46  fFDMinProngLength = p.get<float>("FDMinProngLength", 140. ); // ok
47  fFDMaxDistAllBack = p.get<float>("FDMaxDistAllBack", 200. );
48  fFDMaxSparsenessAsymm = p.get<float>("FDMaxSparsenessAsymm", -0.1 );
49 
50  // ND specific
51  fNDMaxVertexX = p.get<float>("NDMaxVertexX", -100. ); // ok
52  fNDMinVertexX = p.get<float>("NDMinVertexX", 160. ); // ok
53  fNDMaxVertexY = p.get<float>("NDMaxVertexY", -160. ); // ok
54  fNDMinVertexY = p.get<float>("NDMinVertexY", 100. ); // ok
55  fNDMaxVertexZ = p.get<float>("NDMaxVertexZ", 900. ); // ok
56  fNDMinVertexZ = p.get<float>("NDMinVertexZ", 150. ); // ok
57  fNDMaxShowerW = p.get<float>("NDMaxShowerW", 170. ); // ok
58  fNDMinShowerZ = p.get<float>("NDMinShowerZ", 100. ); // ok
59  fNDMaxShowerZ = p.get<float>("NDMaxShowerZ", 1225.); // ok
60  fNDMinSliceHits = p.get<float>("NDMinSliceHits", 20. ); // ok
61  fNDMaxSliceHits = p.get<float>("NDMaxSliceHits", 200. ); // ok
62  fNDMaxNueEnergy = p.get<float>("NDMaxNueEnergy", 5. ); // ok
63  fNDMaxProngLength = p.get<float>("NDMaxProngLength", 500. ); // ok
64  fNDMinProngLength = p.get<float>("NDMinProngLength", 140. ); // ok
65  fNDMinNueEnergy = p.get<float>("fNDMinNueEnergy", 0. ); // ok
66  fNDMinPlanesToFront = p.get<unsigned int>("NDMinPlanesToFront", 6 ); // ok
67 }
float fFarCloseBoundary
distance at which we are no longer close to top of detector
float fFDMinSliceHits
minimum number of hits required in FD slices.
float fFDMaxNueEnergy
max NueEnergy at FD
float fSliceHitsPerPlane
maximum number of hits per plane in a slice
float fFDDistAllFront
minimum distance to the front wall
float fSliceFracHitsInShowers
minimum fraction of slice hits in showers
const char * p
Definition: xmltok.h:285
float fMinCVNVal
min cvn value optimised on S/sqrt(B)
float fFDDistAllBottom
minimum distance to the bottom wall
float fFDMaxDistAllBack
maximum distance to the back wall
float fFDMaxProngLength
maximum length of longest prong
float fFDDistAllEast
minimum distance to the east wall
float fFDDistAllBack
minimum distance to the back wall
float fFDMaxSparsenessAsymm
maximum asymmetry in the zero-hit planes at the start and end of the shower
float fMinLIDVal
min EventLID value optimised on S/sqrt(B)
float fMaxTransverseMomentumFar
maximum transverse momentum when away from top of detector
float fFDMinNueEnergy
min NueEnergy at FD
float fShowerHitsViewAsym
maximum asymmetery in the number of hits in the views
float fFDDistAllTop
minimum distance to the top wall
float fShowerHitsYView
minimum number of hits required in y view
float fSliceDistLeadShowerToVtx
maximum gap between the lead shower and the vertex
unsigned int fNDMinPlanesToFront
float fFDMaxSliceHits
maximum number of hits required in FD slices.
float fSliceCosAngleShowers
minimum cosine of angle between leading showers
float fMinLEMVal
min lem value optimised on S/sqrt(B)
float fFDDistAllWest
minimum distance to the west wall
float fShowerHitsXView
minimum number of hits required in x view
float fFDMinProngLength
minimum length of longest prong
float fMaxTransverseMomentumClose
maximum transverse momentum when close to top of detector

Member Data Documentation

float skim::SelectionNueSA::fFarCloseBoundary
private

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

Definition at line 69 of file SelectionNueSA.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fFDDistAllBack
private

minimum distance to the back wall

Definition at line 66 of file SelectionNueSA.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fFDDistAllBottom
private

minimum distance to the bottom wall

Definition at line 62 of file SelectionNueSA.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fFDDistAllEast
private

minimum distance to the east wall

Definition at line 64 of file SelectionNueSA.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fFDDistAllFront
private

minimum distance to the front wall

Definition at line 65 of file SelectionNueSA.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fFDDistAllTop
private

minimum distance to the top wall

Definition at line 61 of file SelectionNueSA.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fFDDistAllWest
private

minimum distance to the west wall

Definition at line 63 of file SelectionNueSA.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fFDMaxDistAllBack
private

maximum distance to the back wall

Definition at line 68 of file SelectionNueSA.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fFDMaxNueEnergy
private

max NueEnergy at FD

Definition at line 77 of file SelectionNueSA.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fFDMaxProngLength
private

maximum length of longest prong

Definition at line 82 of file SelectionNueSA.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fFDMaxSliceHits
private

maximum number of hits required in FD slices.

Definition at line 74 of file SelectionNueSA.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fFDMaxSparsenessAsymm
private

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

Definition at line 67 of file SelectionNueSA.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fFDMinNueEnergy
private

min NueEnergy at FD

Definition at line 78 of file SelectionNueSA.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fFDMinProngLength
private

minimum length of longest prong

Definition at line 83 of file SelectionNueSA.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fFDMinSliceHits
private

minimum number of hits required in FD slices.

Definition at line 73 of file SelectionNueSA.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fMaxTransverseMomentumClose
private

maximum transverse momentum when close to top of detector

Definition at line 70 of file SelectionNueSA.h.

Referenced by KeepNueFarDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fMaxTransverseMomentumFar
private

maximum transverse momentum when away from top of detector

Definition at line 71 of file SelectionNueSA.h.

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

float skim::SelectionNueSA::fMinCVNVal
private

min cvn value optimised on S/sqrt(B)

Definition at line 81 of file SelectionNueSA.h.

Referenced by CheckSlicePID(), and reconfigure().

float skim::SelectionNueSA::fMinLEMVal
private

min lem value optimised on S/sqrt(B)

Definition at line 80 of file SelectionNueSA.h.

Referenced by CheckSlicePID(), and reconfigure().

float skim::SelectionNueSA::fMinLIDVal
private

min EventLID value optimised on S/sqrt(B)

Definition at line 79 of file SelectionNueSA.h.

Referenced by CheckSlicePID(), and reconfigure().

float skim::SelectionNueSA::fNDMaxNueEnergy
private

Definition at line 98 of file SelectionNueSA.h.

Referenced by KeepNueNearDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fNDMaxProngLength
private

Definition at line 100 of file SelectionNueSA.h.

Referenced by KeepNueNearDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fNDMaxShowerW
private

Definition at line 92 of file SelectionNueSA.h.

Referenced by KeepNueNearDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fNDMaxShowerZ
private

Definition at line 94 of file SelectionNueSA.h.

Referenced by KeepNueNearDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fNDMaxSliceHits
private

Definition at line 96 of file SelectionNueSA.h.

Referenced by KeepNueNearDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fNDMaxVertexX
private

Definition at line 86 of file SelectionNueSA.h.

Referenced by KeepNueNearDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fNDMaxVertexY
private

Definition at line 88 of file SelectionNueSA.h.

Referenced by KeepNueNearDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fNDMaxVertexZ
private

Definition at line 90 of file SelectionNueSA.h.

Referenced by KeepNueNearDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fNDMinNueEnergy
private

Definition at line 99 of file SelectionNueSA.h.

Referenced by KeepNueNearDetectorSlice(), and reconfigure().

unsigned int skim::SelectionNueSA::fNDMinPlanesToFront
private

Definition at line 102 of file SelectionNueSA.h.

Referenced by KeepNueNearDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fNDMinProngLength
private

Definition at line 101 of file SelectionNueSA.h.

Referenced by KeepNueNearDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fNDMinShowerZ
private

Definition at line 93 of file SelectionNueSA.h.

Referenced by KeepNueNearDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fNDMinSliceHits
private

Definition at line 95 of file SelectionNueSA.h.

Referenced by KeepNueNearDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fNDMinVertexX
private

Definition at line 87 of file SelectionNueSA.h.

Referenced by KeepNueNearDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fNDMinVertexY
private

Definition at line 89 of file SelectionNueSA.h.

Referenced by KeepNueNearDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fNDMinVertexZ
private

Definition at line 91 of file SelectionNueSA.h.

Referenced by KeepNueNearDetectorSlice(), and reconfigure().

float skim::SelectionNueSA::fShowerHitsViewAsym
private

maximum asymmetery in the number of hits in the views

Definition at line 51 of file SelectionNueSA.h.

Referenced by PassesPreselection(), and reconfigure().

float skim::SelectionNueSA::fShowerHitsXView
private

minimum number of hits required in x view

Definition at line 49 of file SelectionNueSA.h.

Referenced by PassesPreselection(), and reconfigure().

float skim::SelectionNueSA::fShowerHitsYView
private

minimum number of hits required in y view

Definition at line 50 of file SelectionNueSA.h.

Referenced by PassesPreselection(), and reconfigure().

float skim::SelectionNueSA::fSliceCosAngleShowers
private

minimum cosine of angle between leading showers

Definition at line 52 of file SelectionNueSA.h.

Referenced by PassesPreselection(), and reconfigure().

float skim::SelectionNueSA::fSliceDistLeadShowerToVtx
private

maximum gap between the lead shower and the vertex

Definition at line 54 of file SelectionNueSA.h.

Referenced by PassesPreselection(), and reconfigure().

float skim::SelectionNueSA::fSliceFracHitsInShowers
private

minimum fraction of slice hits in showers

Definition at line 53 of file SelectionNueSA.h.

Referenced by PassesPreselection(), and reconfigure().

float skim::SelectionNueSA::fSliceHitsPerPlane
private

maximum number of hits per plane in a slice

Definition at line 72 of file SelectionNueSA.h.

Referenced by PassesPreselection(), and reconfigure().


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