Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

NuCut Class Reference

#include <NuCut.h>

Inheritance diagram for NuCut:

NuCutImps::Bravo NuCutImps::BravoPrime NuCutImps::CC0325Std NuCutImps::CC0720Test NuCutImps::CCA NuCutImps::CCA_NC NuCutImps::CCAPresel NuCutImps::ChairSound NuCutImps::Charlie NuCutImps::Delta NuCutImps::MSRock_Nov09 NuCutImps::NuCutsSelection NuCutImps::PassThrough List of all members.

Public Member Functions

 NuCut (TString name, const NuPlots *plots=0)
virtual ~NuCut ()
virtual Bool_t MakeCuts (const NuEvent &nu)
virtual Bool_t MakePreselectionCuts (const NuEvent &nu)
 Applies just the preselection cut.
virtual Bool_t MakeSelectionCuts (const NuEvent &nu)
 Applies just the selection cut.
void ResetStatus (void)
 Resets the stored status of the cut pass.
virtual Bool_t InFidVol (const NuEvent &nu) const
virtual Bool_t InFidVolEvt (const NuEvent &nu) const
virtual Bool_t InFidVolTrueEvt (const NuMCEvent &mc) const
void SetFidVol (const TString &fidvol="")
 Sets the 'infid' fiducial volume.
Bool_t Failed (void) const
 Have we failed the selection?
Bool_t Passed (void) const
Bool_t Passed (TString cutname) const
 Have we passed the cut with the given name.
Bool_t Failed (TString cutname) const
 Have we failed the cut with the given name.
Bool_t PassedExcept (TString cutname) const
 Have we passed all cuts except the named one.
virtual TString GetName () const
 Return the name of the current cut.
virtual void PrintCurrent (void) const
 Prints current status of cuts.
virtual void PrintSummary (void)
 Prints a summary of all cuts.
Int_t AnaVersion (void) const
 Returns the AnaVersion (an integer signature) of this cut class.

Protected Member Functions

virtual void Preselection (const NuEvent &nu)=0
virtual void Selection (const NuEvent &nu)=0
virtual void Defer_Preselection (NuCut &tocut, const NuEvent &nu)
virtual void Defer_Selection (NuCut &tocut, const NuEvent &nu)
Bool_t Cut_If (Bool_t condition, const TString &name="")
Bool_t Keep_If (Bool_t condition, const TString &name="")
Bool_t Keep_Data_If (Bool_t condition, const NuEvent &nu, const TString &name="")
Bool_t Cut_Data_If (Bool_t condition, const NuEvent &nu, const TString &name="")
Bool_t SafeToReturn (void)
 Is it safe to return? This will mean we can abort partway through a cut.
Int_t AnaVersionHash (const TString name)
 Calculate a new ana version from the name, by hashing.
void SetAnaVersion (Int_t anaVersion)
 Sets the Ana Version for this class.

Protected Attributes

TString fFidVol
 The desired 'infid' fiducial volume.
const TString fSelName
const NuPlotsfPlots
 A pointer to the plots object.

Private Attributes

Int_t fAnaVersion
 What 'ana version' to associate with this cut.
Bool_t fPassCuts
std::vector< std::pair< TString,
Int_t > > 
fCutList
 A list of cuts applied this instance, that stores the name and condition.
Int_t fEventCount
std::vector< std::pair< TString,
Int_t > > 
fCutTotals
 Stores a total for events passing all cuts.

Constructor & Destructor Documentation

NuCut::NuCut TString  name,
const NuPlots plots = 0
 

Definition at line 20 of file NuCut.cxx.

References AnaVersionHash(), fAnaVersion, fEventCount, and plots().

00020                                                : 
00021   fFidVol(), 
00022   fSelName(name), 
00023   fPlots(plots),
00024   fPassCuts(true)
00025 {
00026   fEventCount = 0;
00027   fAnaVersion = AnaVersionHash(name);
00028 }

NuCut::~NuCut  )  [virtual]
 

Definition at line 31 of file NuCut.cxx.

00032 {
00033   
00034 }


Member Function Documentation

Int_t NuCut::AnaVersion void   )  const [inline]
 

Returns the AnaVersion (an integer signature) of this cut class.

Definition at line 82 of file NuCut.h.

Referenced by NuCutter::AnaVersion(), NuCutImps::NuCutsSelection::InFidVol(), NuCutImps::NuCutsSelection::InFidVolEvt(), NuCutImps::NuCutsSelection::InFidVolTrueEvt(), NuCutImps::NuCutsSelection::Preselection(), and NuCutImps::NuCutsSelection::Selection().

00082 { return fAnaVersion; }

Int_t NuCut::AnaVersionHash const TString  name  )  [protected]
 

Calculate a new ana version from the name, by hashing.

Definition at line 375 of file NuCut.cxx.

Referenced by NuCut().

00376 {
00377   TString upper(name);
00378   name.Hash();
00379   upper.ToUpper();
00380   Int_t hash = upper.Hash();
00381   // This will reduce the hash space by half, but will ensure that we never
00382   // get any conflict from real (old) anaVersion numbers
00383   if (hash > 0) hash *= -1;
00384   
00385   return hash;
00386 }

Bool_t NuCut::Cut_Data_If Bool_t  condition,
const NuEvent nu,
const TString &  name = ""
[protected]
 

Definition at line 158 of file NuCut.cxx.

References Cut_If(), and NuEvent::simFlag.

00159 {
00160   // Only cuts if data
00161   if (nu.simFlag == SimFlag::kData)
00162   {
00163     return Cut_If(condition, name);
00164   }
00165   
00166   return fPassCuts;
00167 }

Bool_t NuCut::Cut_If Bool_t  condition,
const TString &  name = ""
[protected]
 

Definition at line 119 of file NuCut.cxx.

References fCutList, fPassCuts, and s().

Referenced by Cut_Data_If(), NuCutImps::CCA_NC::FDCleaning(), NuCutImps::CCA_NC::NDCleaning(), NuCutImps::MSRock_Nov09::Preselection(), NuCutImps::ChairSound::Preselection(), NuCutImps::CCAPresel::Preselection(), and NuCutImps::CC0325Std::Preselection().

00120 {
00121   fPassCuts = fPassCuts && (!condition);
00122 
00123   // Store this cut, whatever for now
00124   fCutList.push_back(pair<TString,Int_t>(s,!condition));
00125   
00126   return fPassCuts;
00127 }

void NuCut::Defer_Preselection NuCut tocut,
const NuEvent nu
[protected, virtual]
 

Defers preselection to a different class. This function will take care of all syncing issues i.e. the aim is for calling this to have the same effect as the cuts being in this class instance.

WARNING: The internal state of the cut object passed in will *NOT* be respected.

Definition at line 246 of file NuCut.cxx.

References fCutList, Keep_If(), MakePreselectionCuts(), and ResetStatus().

Referenced by NuCutImps::CCA_NC::Preselection(), NuCutImps::CCA::Preselection(), NuCutImps::Delta::Preselection(), NuCutImps::Charlie::Preselection(), NuCutImps::BravoPrime::Preselection(), NuCutImps::Bravo::Preselection(), and NuCutImps::CC0720Test::Preselection().

00247 {
00248   // Make sure the object is in a fresh state
00249   cut.ResetStatus();
00250   
00251   // Now, run the preselection cut
00252   cut.MakePreselectionCuts(nu);
00253   
00254   // // Now, combine out status - this is currently very simple, as we are
00255   // // not yet tracking named cuts. This will become a bit more involved 
00256   // // at that stage, but for now, this works!
00257   // //fPassCuts = fPassCuts && !cut.Failed();
00258   // 
00259   // 
00260   // // Not yet tracking individual cuts, but in the interm track
00261   // // what the whole deferred selection does
00262   // Keep_If(cut.Passed(), "DeferredPreselection");
00263 
00264   // Now copy out all the selections into our list!
00265   for (UInt_t i = 0; i < cut.fCutList.size(); ++i) {
00266     Keep_If(cut.fCutList[i].second, cut.fCutList[i].first);
00267   }
00268 }

void NuCut::Defer_Selection NuCut tocut,
const NuEvent nu
[protected, virtual]
 

Defers the main selection to a different class As with Defer_Preselection, but for the main selection part

Definition at line 272 of file NuCut.cxx.

References fCutList, Keep_If(), MakeSelectionCuts(), and ResetStatus().

Referenced by NuCutImps::Delta::Selection(), NuCutImps::Charlie::Selection(), NuCutImps::BravoPrime::Selection(), and NuCutImps::Bravo::Selection().

00273 {
00274   // Make sure the object is in a fresh state
00275   cut.ResetStatus();
00276   
00277   // Now, run the preselection cut
00278   cut.MakeSelectionCuts(nu);
00279   
00280   // Now copy out all the selections
00281   for (UInt_t i = 0; i < cut.fCutList.size(); ++i) {
00282     Keep_If(cut.fCutList[i].second, cut.fCutList[i].first);
00283   }
00284   
00285   // Now, combine out status - this is currently very simple, as we are
00286   // not yet tracking named cuts. This will become a bit more involved 
00287   // at that stage, but for now, this works!
00288   //fPassCuts = fPassCuts && !cut.Failed();
00289 }

Bool_t NuCut::Failed TString  cutname  )  const [inline]
 

Have we failed the cut with the given name.

Definition at line 67 of file NuCut.h.

00067 { return !Passed(cutname);};

Bool_t NuCut::Failed void   )  const [inline]
 

Have we failed the selection?

Definition at line 56 of file NuCut.h.

Referenced by NuCutter::Failed().

00056 { return !fPassCuts; }

virtual TString NuCut::GetName void   )  const [inline, virtual]
 

Return the name of the current cut.

Definition at line 73 of file NuCut.h.

Referenced by InFidVol(), InFidVolEvt(), InFidVolTrueEvt(), MakePreselectionCuts(), Passed(), PassedExcept(), PrintCurrent(), PrintSummary(), and SetFidVol().

00073 { return fSelName; }

Bool_t NuCut::InFidVol const NuEvent nu  )  const [virtual]
 

Fiducial volume calculation function. This is the basic 'infid' derived version, and should be overridden/passed to for any more complicated evaluations.

Reimplemented in NuCutImps::CC0325Std, NuCutImps::CCA, NuCutImps::CCA_NC, and NuCutImps::NuCutsSelection.

Definition at line 187 of file NuCut.cxx.

References choose_infid_set(), NuEvent::detector, fFidVol, GetName(), FidVol::getName(), infid(), MAXMSG, MSG, NuEvent::ntrk, NuEvent::simFlag, NuEvent::xTrkVtx, NuEvent::yTrkVtx, and NuEvent::zTrkVtx.

Referenced by NuCutImps::CCA_NC::InFidVol(), NuCutImps::CCA::InFidVol(), and NuCutImps::CC0325Std::InFidVol().

00188 {
00189   // Check we are still in the correct fiducial volume (and we have set one)
00190   if (FidVol::getName() != fFidVol) {
00191     MSG("NuCut",Msg::kInfo) << "Fiducial volume has changed in " << GetName() << ", resetting to \"" << fFidVol << "\"" << endl;
00192     // Reset the fiducial volume to outs
00193     if (FidVol::getName() != fFidVol) {
00194       choose_infid_set(fFidVol.Data());
00195     }
00196   }
00197   
00198   // assert(nu.ntrk > 0);  // No track means the track vertex is meaningless
00199   if (nu.ntrk == 0) {
00200     MAXMSG("NuCut",Msg::kWarning,3) << "Testing vertex against Fiducial volume, but no tracks!" << endl;
00201   }
00202   
00203   return infid(static_cast<Detector::Detector_t>(nu.detector),
00204     static_cast<SimFlag::SimFlag_t>(nu.simFlag),
00205     nu.xTrkVtx,nu.yTrkVtx,nu.zTrkVtx);
00206 }

Bool_t NuCut::InFidVolEvt const NuEvent nu  )  const [virtual]
 

Duplicate of InFidVol except acting on event vertex instead of track vertex.

Reimplemented in NuCutImps::NuCutsSelection.

Definition at line 210 of file NuCut.cxx.

References choose_infid_set(), NuEvent::detector, fFidVol, GetName(), FidVol::getName(), infid(), MSG, NuEvent::simFlag, NuEvent::xEvtVtx, NuEvent::yEvtVtx, and NuEvent::zEvtVtx.

Referenced by NuCutImps::CCA_NC::InFidVol().

00211 {
00212   // Check we are still in the correct fiducial volume (and we have set one)
00213   if (FidVol::getName() != fFidVol) {
00214     MSG("NuCut",Msg::kInfo) << "Fiducial volume has changed in " << GetName() << ", resetting to \"" << fFidVol << "\"" << endl;
00215     // Reset the fiducial volume to outs
00216     if (FidVol::getName() != fFidVol) {
00217       choose_infid_set(fFidVol.Data());
00218     }
00219   }
00220 
00221   return infid(Detector::Detector_t(nu.detector),
00222                SimFlag::SimFlag_t(nu.simFlag),
00223                nu.xEvtVtx, nu.yEvtVtx, nu.zEvtVtx);
00224 }

Bool_t NuCut::InFidVolTrueEvt const NuMCEvent mc  )  const [virtual]
 

Determines if a MC event is truly in the fiducial volume. Behaves just like InFidVol

Reimplemented in NuCutImps::NuCutsSelection.

Definition at line 228 of file NuCut.cxx.

References choose_infid_set(), NuMCEvent::detector, fFidVol, GetName(), FidVol::getName(), infid(), MSG, NuMCEvent::simFlag, NuMCEvent::vtxxMC, NuMCEvent::vtxyMC, and NuMCEvent::vtxzMC.

Referenced by NuDSTAna::MakeMicroDST().

00229 {
00230   // Check we are still in the correct fiducial volume (and we have set one)
00231   if (FidVol::getName() != fFidVol) {
00232     MSG("NuCut",Msg::kInfo) << "Fiducial volume has changed in " << GetName() << ", resetting to \"" << fFidVol << "\"" << endl;
00233     // Reset the fiducial volume to outs
00234     if (FidVol::getName() != fFidVol) {
00235       choose_infid_set(fFidVol.Data());
00236     }
00237   }
00238   
00239   return infid(Detector::Detector_t(mc.detector),
00240                SimFlag::SimFlag_t(mc.simFlag),
00241                mc.vtxxMC,mc.vtxyMC,mc.vtxzMC);
00242 }

Bool_t NuCut::Keep_Data_If Bool_t  condition,
const NuEvent nu,
const TString &  name = ""
[protected]
 

Definition at line 144 of file NuCut.cxx.

References Keep_If(), and NuEvent::simFlag.

Referenced by NuCutImps::MSRock_Nov09::Preselection(), NuCutImps::ChairSound::Preselection(), NuCutImps::CCAPresel::Preselection(), and NuCutImps::CC0325Std::Preselection().

00145 {
00146   // Only cuts if data
00147   if (nu.simFlag == SimFlag::kData)
00148   {
00149     return Keep_If(condition, name);
00150   }
00151   
00152   return fPassCuts;
00153 }

Bool_t NuCut::Keep_If Bool_t  condition,
const TString &  name = ""
[protected]
 

Definition at line 131 of file NuCut.cxx.

References fCutList, fPassCuts, and s().

Referenced by Defer_Preselection(), Defer_Selection(), Keep_Data_If(), NuCutImps::NuCutsSelection::Preselection(), NuCutImps::MSRock_Nov09::Preselection(), NuCutImps::ChairSound::Preselection(), NuCutImps::CCA_NC::Preselection(), NuCutImps::CCA::Preselection(), NuCutImps::CC0325Std::Preselection(), NuCutImps::CCA::Resolution(), NuCutImps::NuCutsSelection::Selection(), NuCutImps::MSRock_Nov09::Selection(), NuCutImps::ChairSound::Selection(), NuCutImps::CCA_NC::Selection(), NuCutImps::CCA::Selection(), NuCutImps::Delta::Selection(), NuCutImps::Charlie::Selection(), NuCutImps::BravoPrime::Selection(), NuCutImps::Bravo::Selection(), NuCutImps::CC0720Test::Selection(), and NuCutImps::CC0325Std::Selection().

00132 {
00133   fPassCuts = fPassCuts && condition;
00134 
00135   // Store this cut, whatever for now
00136   fCutList.push_back(pair<TString,Int_t>(s,condition));
00137   
00138   return fPassCuts;
00139 }

Bool_t NuCut::MakeCuts const NuEvent nu  )  [virtual]
 

Applies the full cut to this event. This includes both the preselection and selection

Parameters:
nu The NuEvent to cut
Returns:
The conclusion of the cut - true for pass

Definition at line 39 of file NuCut.cxx.

References MakePreselectionCuts(), MakeSelectionCuts(), and ResetStatus().

Referenced by NuSystematic::AllBackgroundsScaleBothShift(), NuSystematic::CCBackgroundShift(), NuCutter::MakeCuts(), NuSystematic::NCBackgroundShift(), NuSystematic::NDCleaningShift(), NuDSTAna::QPStudy(), NuDSTAna::SelectorTable(), and NuDSTAna::TestNuSyst().

00040 {
00041   // Since we are asking for a full cut, reset the pass status
00042   ResetStatus();
00043   
00044   MakePreselectionCuts(nu);
00045   MakeSelectionCuts(nu);
00046   
00047   return fPassCuts;
00048 }

Bool_t NuCut::MakePreselectionCuts const NuEvent nu  )  [virtual]
 

Applies just the preselection cut.

Definition at line 53 of file NuCut.cxx.

References fPassCuts, GetName(), MAXMSG, and Preselection().

Referenced by Defer_Preselection(), MakeCuts(), and NuCutter::MakePreselectionCuts().

00054 {
00055   Preselection(nu);
00056   MAXMSG("NuCut",Msg::kDebug,50) << "Passed " << GetName() << " Preselection = " << (fPassCuts ? "Yes" : "No") << endl;
00057   return fPassCuts;
00058 }

Bool_t NuCut::MakeSelectionCuts const NuEvent nu  )  [virtual]
 

Applies just the selection cut.

Definition at line 63 of file NuCut.cxx.

References Selection().

Referenced by Defer_Selection(), MakeCuts(), and NuCutter::MakeSelectionCuts().

00064 {
00065   Selection(nu);
00066   return fPassCuts;
00067 }

Bool_t NuCut::Passed TString  cutname  )  const
 

Have we passed the cut with the given name.

Definition at line 293 of file NuCut.cxx.

References fCutList, GetName(), MSG, and PrintCurrent().

00294 {
00295   for (UInt_t i = 0; i < i < fCutList.size(); ++i) {
00296     if (fCutList[i].first == cutname) {
00297       return fCutList[i].second;
00298     }
00299   }
00300   MSG("NuCut",Msg::kWarning) << "Cut " << cutname << " not found in selection " << GetName() << ".  Assuming failed." << endl;
00301   PrintCurrent();
00302   return false;
00303 }

Bool_t NuCut::Passed void   )  const [inline]
 

Have we passed the selection? Something of a misnomer, as this will return true if we haven't even made a selection.

Definition at line 61 of file NuCut.h.

Referenced by NuSystematic::AllBackgroundsScaleBothShift(), NuSystematic::CCBackgroundShift(), NuSystematic::NCBackgroundShift(), NuSystematic::NDCleaningShift(), NuCutter::Passed(), PrintCurrent(), NuDSTAna::QPStudy(), NuDSTAna::SelectorTable(), and NuDSTAna::TestNuSyst().

00061 { return fPassCuts; }

Bool_t NuCut::PassedExcept TString  cutname  )  const
 

Have we passed all cuts except the named one.

Definition at line 307 of file NuCut.cxx.

References fCutList, GetName(), MSG, and PrintCurrent().

Referenced by NuDSTAna::QPStudy(), and NuDSTAna::SelectorTable().

00308 {
00309   Bool_t found = false;
00310   Bool_t pass = true;
00311   for (UInt_t i = 0; i < fCutList.size(); ++i) {
00312     if (fCutList[i].first != cutname) {
00313       pass = pass && fCutList[i].second;
00314     } else {
00315       found = true;
00316     }
00317   }
00318   if (!found) {
00319     MSG("NuCut",Msg::kWarning) << "Cut " << cutname << " not found in selection " << GetName() << ".  Just returning selection, not N-1." << endl;
00320     PrintCurrent();
00321   }
00322 
00323   return pass;
00324 }

virtual void NuCut::Preselection const NuEvent nu  )  [protected, pure virtual]
 

Implemented in NuCutImps::CC0325Std, NuCutImps::CC0720Test, NuCutImps::Bravo, NuCutImps::BravoPrime, NuCutImps::Charlie, NuCutImps::Delta, NuCutImps::CCAPresel, NuCutImps::CCA, NuCutImps::CCA_NC, NuCutImps::ChairSound, NuCutImps::PassThrough, NuCutImps::MSRock_Nov09, and NuCutImps::NuCutsSelection.

Referenced by MakePreselectionCuts().

void NuCut::PrintCurrent void   )  const [virtual]
 

Prints current status of cuts.

Definition at line 328 of file NuCut.cxx.

References fCutList, GetName(), MSG, and Passed().

Referenced by Passed(), PassedExcept(), and NuCutter::PrintCurrent().

00329 {
00330   MSG("NuCut",Msg::kInfo) << "Selection " << GetName() << " has " << fCutList.size() << " cuts:" << endl;
00331   for (UInt_t i = 0; i < fCutList.size(); ++i) {
00332     MSG("NuCut",Msg::kInfo) << "  " << fCutList[i].first << " " << (fCutList[i].second?"Passed":"Failed") << endl;
00333   }
00334   if (Passed()) MSG("NuCut",Msg::kInfo) << "  -- Event Passed" << endl;
00335   else          MSG("NuCut",Msg::kInfo) << "  ** Event Failed" << endl;
00336 
00337 }

void NuCut::PrintSummary void   )  [virtual]
 

Prints a summary of all cuts.

Reimplemented in NuCutImps::NuCutsSelection.

Definition at line 342 of file NuCut.cxx.

References fCutTotals, fEventCount, GetName(), len, MSG, and ResetStatus().

Referenced by NuCutter::PrintSummary(), NuSystematic::SetCCSelector(), NuSystematic::SetNCSelector(), NuSystematic::SetNuBarSelector(), and NuSystematic::SetRockSelector().

00343 {
00344   // Make sure we are reset and counted
00345   ResetStatus();
00346   
00347   // Find the longest name
00348   Int_t lsize = 12;
00349   for (UInt_t i = 0; i < fCutTotals.size(); ++i)
00350   {
00351     Int_t len = fCutTotals[i].first.Length();
00352     if (len > lsize) lsize = len;
00353   }
00354   // The 'total width'
00355   Int_t width = lsize + 20;
00356   // Print a summary of this events cuts
00357   MSG("NuCut",Msg::kInfo) << setw(width/2) << right << setfill('=') << (" "+GetName()) << setw(width/2+width%2) << left << " Summary " << '\n';
00358   MSG("NuCut",Msg::kInfo) << setw(lsize) << left << setfill(' ') << "Cut" << "  # Passed  % Passed\n";
00359 
00360   MSG("NuCut",Msg::kInfo) << setw(width) << left << setfill('=') << "" << "\n";
00361   MSG("NuCut",Msg::kInfo) << setw(lsize) << left << setfill(' ') << "Total Events" << "  " << setw(8) << right << fEventCount << "   100.00%\n";
00362   for (UInt_t i = 0; i < fCutTotals.size(); ++i)
00363   {
00364     // stat = stat && fCutList[i].second;
00365     MSG("NuCut",Msg::kInfo)
00366       << setw(lsize) << left << fCutTotals[i].first
00367       << "  " << setw(8) << right << fCutTotals[i].second
00368       << "  " << setw(7) << right << fixed << setprecision(2) << fCutTotals[i].second*100./fEventCount << "%\n";
00369   }
00370   MSG("NuCut",Msg::kInfo) << endl;
00371 }

void NuCut::ResetStatus void   ) 
 

Resets the stored status of the cut pass.

Definition at line 72 of file NuCut.cxx.

References fCutList, fCutTotals, fEventCount, and fPassCuts.

Referenced by Defer_Preselection(), Defer_Selection(), MakeCuts(), PrintSummary(), and NuCutter::ResetStatus().

00073 {
00074   fPassCuts = true;
00075   
00076   // Push back the cut statii onto the central list. This shouldn't go here, probably
00077   // but has for now.
00078   Bool_t passed = true;
00079   for (UInt_t i = 0; i < fCutList.size(); ++i) {
00080     // Take each of these, and push them back onto the cut totals list.
00081     TString &cutname = fCutList[i].first;
00082     Bool_t passcut = fCutList[i].second;
00083     
00084     // Check if it already exists in the vector
00085     UInt_t sumindex;
00086     for (sumindex = 0; sumindex < fCutTotals.size(); ++sumindex)
00087     {
00088       if (fCutTotals[sumindex].first == cutname) break;
00089     }
00090     
00091     // Now check if we have to push_back a new entry
00092     if (sumindex == fCutTotals.size())
00093     {
00094       // We have to push back
00095       fCutTotals.push_back(pair<TString,Int_t>(cutname, 0));
00096     }
00097     
00098     // Now, shall we add to this?
00099     // Add to totals, if we have still passed after this cut
00100     passed = passed && passcut;
00101     if (passed)
00102     {
00103       fCutTotals[sumindex].second++;
00104     }
00105     
00106     
00107     // std::pair<TString,Int_t>
00108   }
00109   
00110   // If the cut list was not empty, add to the event count
00111   if (!fCutList.empty()) fEventCount++;
00112   
00113   // Now, clear the interim list
00114   fCutList.clear();
00115 }

Bool_t NuCut::SafeToReturn void   )  [inline, protected]
 

Is it safe to return? This will mean we can abort partway through a cut.

Definition at line 122 of file NuCut.h.

00122 { return fPassCuts; }

virtual void NuCut::Selection const NuEvent nu  )  [protected, pure virtual]
 

Implemented in NuCutImps::CC0325Std, NuCutImps::CC0720Test, NuCutImps::Bravo, NuCutImps::BravoPrime, NuCutImps::Charlie, NuCutImps::Delta, NuCutImps::CCAPresel, NuCutImps::CCA, NuCutImps::CCA_NC, NuCutImps::ChairSound, NuCutImps::PassThrough, NuCutImps::MSRock_Nov09, and NuCutImps::NuCutsSelection.

Referenced by MakeSelectionCuts().

void NuCut::SetAnaVersion Int_t  anaVersion  )  [inline, protected]
 

Sets the Ana Version for this class.

Definition at line 128 of file NuCut.h.

Referenced by NuCutImps::Bravo::Bravo(), NuCutImps::BravoPrime::BravoPrime(), NuCutImps::CC0325Std::CC0325Std(), NuCutImps::Charlie::Charlie(), NuCutImps::Delta::Delta(), and NuCutImps::NuCutsSelection::NuCutsSelection().

00128 { fAnaVersion = anaVersion; };

void NuCut::SetFidVol const TString &  fidvol = ""  ) 
 

Sets the 'infid' fiducial volume.

Definition at line 172 of file NuCut.cxx.

References choose_infid_set(), fFidVol, FidVol::getName(), GetName(), and MSG.

Referenced by NuCutImps::Bravo::Bravo(), NuCutImps::BravoPrime::BravoPrime(), NuCutImps::CC0325Std::CC0325Std(), NuCutImps::CC0720Test::CC0720Test(), NuCutImps::CCA::CCA(), NuCutImps::CCA_NC::CCA_NC(), NuCutImps::ChairSound::ChairSound(), NuCutImps::Charlie::Charlie(), NuCutImps::Delta::Delta(), and NuCutImps::MSRock_Nov09::MSRock_Nov09().

00173 {
00174   if (fFidVol != "" && fidvol == "") {
00175     MSG("NuCut", Msg::kWarning) << "Setting blank fiducial volume in " << GetName() << ", but one has already been set."
00176       << "Cannot reset - will continue using whatever is set (but not forcing it)" << endl;
00177   }
00178   fFidVol = fidvol;
00179   // Set the fiducial volume
00180   if (FidVol::getName() != fidvol) {
00181     choose_infid_set(fidvol.Data());
00182   }
00183 }


Member Data Documentation

Int_t NuCut::fAnaVersion [private]
 

What 'ana version' to associate with this cut.

Definition at line 138 of file NuCut.h.

Referenced by NuCut().

std::vector<std::pair<TString,Int_t> > NuCut::fCutList [private]
 

A list of cuts applied this instance, that stores the name and condition.

Definition at line 146 of file NuCut.h.

Referenced by Cut_If(), Defer_Preselection(), Defer_Selection(), Keep_If(), Passed(), PassedExcept(), PrintCurrent(), and ResetStatus().

std::vector<std::pair<TString,Int_t> > NuCut::fCutTotals [private]
 

Stores a total for events passing all cuts.

Definition at line 153 of file NuCut.h.

Referenced by PrintSummary(), and ResetStatus().

Int_t NuCut::fEventCount [private]
 

Counts the number of events that we have treated. An event is counted every time ResetStatus() is called, after having made cuts

Definition at line 151 of file NuCut.h.

Referenced by NuCut(), PrintSummary(), and ResetStatus().

TString NuCut::fFidVol [protected]
 

The desired 'infid' fiducial volume.

Definition at line 130 of file NuCut.h.

Referenced by InFidVol(), InFidVolEvt(), InFidVolTrueEvt(), and SetFidVol().

Bool_t NuCut::fPassCuts [private]
 

Definition at line 141 of file NuCut.h.

Referenced by Cut_If(), Keep_If(), MakePreselectionCuts(), and ResetStatus().

const NuPlots* NuCut::fPlots [protected]
 

A pointer to the plots object.

Definition at line 133 of file NuCut.h.

const TString NuCut::fSelName [protected]
 

Definition at line 131 of file NuCut.h.


The documentation for this class was generated from the following files:
Generated on Mon Feb 15 11:09:45 2010 for loon by  doxygen 1.3.9.1