Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ana::SpectrumLoader Class Reference

Collaborates with Spectrum and OscillatableSpectrum to fill spectra from CAF files. More...

#include "/cvmfs/nova-development.opensciencegrid.org/novasoft/releases/N21-01-15/CAFAna/Core/SpectrumLoader.h"

Inheritance diagram for ana::SpectrumLoader:
ana::SpectrumLoaderBase ana::ASCIIMaker ana::CSVMaker ana::SpectrumLoaderNuTreeSpillCuts ana::TreeMaker CAFTreeMaker CAFTreeMaker DecTreeLoader

Public Member Functions

 SpectrumLoader (const std::string &wildcard)
 
 SpectrumLoader (const std::vector< std::string > &fnames)
 
 SpectrumLoader (SpectrumLoader &&)=default
 
SpectrumLoaderoperator= (SpectrumLoader &&)=default
 
virtual ~SpectrumLoader ()
 
virtual void Go () override
 Load all the registered spectra. More...
 
void SetSpillCut (const SpillCut &cut)
 
virtual void AddSpectrum (Spectrum &spect, const Var &var, const Cut &cut, const SystShifts &shift, const Var &wei=kUnweighted)
 For use by the Spectrum constructor. More...
 
virtual void AddSpectrum (Spectrum &spect, const MultiVar &var, const Cut &cut, const SystShifts &shift, const Var &wei=kUnweighted)
 For use by the Spectrum constructor. More...
 
virtual void AddSpectrum (Spectrum &spect, const NuTruthVar &var, const NuTruthCut &cut, const SystShifts &shift, const NuTruthVar &wei=kNuTruthUnweighted)
 For use by the Spectrum constructor. More...
 
virtual void AddSpectrum (Spectrum &spect, const NuTruthMultiVar &var, const NuTruthCut &cut, const SystShifts &shift, const NuTruthVar &wei=kNuTruthUnweighted)
 
virtual void AddReweightableSpectrum (ReweightableSpectrum &spect, const Var &xvar, const Var &yvar, const Cut &cut, const SystShifts &shift, const Var &wei)
 For use by the constructors of ReweightableSpectrum subclasses. More...
 
virtual void AddSpillHistogram (TH1 *h, const SpillVar &var, const SpillCut &cut, const SpillVar &wei=kSpillUnweighted)
 Uses include counting the total POT or spills in a run. More...
 
virtual bool Gone () const
 Indicate whether or not Go has been called. More...
 
double GetWeightedPOT ()
 

Static Public Member Functions

static SpectrumLoader FromSAMProject (const std::string &proj, int fileLimit=-1)
 Named constructor for SAM projects. More...
 

Protected Member Functions

 SpectrumLoader ()
 
 SpectrumLoader (const SpectrumLoader &)=delete
 
SpectrumLoaderoperator= (const SpectrumLoader &)=delete
 
void AccumulateExposures (const caf::SRSpillProxy *spill) override
 
virtual void HandleFile (TFile *f, Progress *prog=0)
 
virtual void HandleRecord (caf::SRProxy *sr)
 
IFileSourceWildcardOrSAMQuery (const std::string &str) const
 Figure out if str is a wildcard or SAM query and return a source. More...
 
int NFiles () const
 Forwards to fFileSource. More...
 
TFile * GetNextFile ()
 Forwards to fFileSource but also accumulates POT and livetime. More...
 
WeightApplierGetSinkSCW (const SystShifts &shift, const Cut &cut, const Var &wei)
 

Protected Attributes

std::string fWildcard
 
std::unique_ptr< IFileSourcefFileSource
 
bool fGone
 Has Go() been called? Can't add more histograms after that. More...
 
double fPOT
 Accumulated by calls to GetNextFile. More...
 
double fRunPOT
 Crude measure, not including spill cuts. More...
 
double fSinglePOT
 
double fBeamNue
 
double fSingleNue
 
double fWeightedPOT
 
std::set< IRecordSink * > fSpectrumSinks
 
std::unordered_map< std::tuple< int, int, int >, WeightApplier * > fSinksSCW
 
std::unordered_map< std::pair< int, int >, CutApplier * > fSinksSC
 
std::unordered_map< int, SystApplier * > fSinksS
 
RecordMultiSink fSink
 
ExposureSource fExposureSource
 
std::list< SpillHistDeffSpillHistDefs
 
std::list< NuHistDeffNuHistDefs
 
std::unique_ptr< SpillCutfSpillCut
 Cut applied to the spill branch for every event. More...
 

Detailed Description

Collaborates with Spectrum and OscillatableSpectrum to fill spectra from CAF files.

The outside user should just pass a filename, wildcard, SAM dataset name, or query to the constructor. Then construct all the spectra you need. They will register with this loader. Finally, calling Go will cause all the spectra to be filled at once. After this the loader may not be used again.

Definition at line 21 of file SpectrumLoader.h.

Constructor & Destructor Documentation

ana::SpectrumLoader::SpectrumLoader ( const std::string wildcard)

Definition at line 26 of file SpectrumLoader.cxx.

28  {
29  }
std::vector< std::string > wildcard(const std::string &wildcardString)
Definition: convert.C:9
SpectrumLoaderBase()
Component of other constructors.
ana::SpectrumLoader::SpectrumLoader ( const std::vector< std::string > &  fnames)

Definition at line 32 of file SpectrumLoader.cxx.

33  : SpectrumLoaderBase(fnames)
34  {
35  }
SpectrumLoaderBase()
Component of other constructors.
ana::SpectrumLoader::SpectrumLoader ( SpectrumLoader &&  )
default
ana::SpectrumLoader::~SpectrumLoader ( )
virtual

Definition at line 53 of file SpectrumLoader.cxx.

54  {
55  }
ana::SpectrumLoader::SpectrumLoader ( )
protected

Definition at line 38 of file SpectrumLoader.cxx.

39  {
40  }
ana::SpectrumLoader::SpectrumLoader ( const SpectrumLoader )
protecteddelete

Member Function Documentation

void ana::SpectrumLoader::AccumulateExposures ( const caf::SRSpillProxy spill)
overrideprotectedvirtual

Implements ana::SpectrumLoaderBase.

Reimplemented in ana::SpectrumLoaderNuTreeSpillCuts.

Definition at line 179 of file SpectrumLoader.cxx.

References ana::SpectrumLoaderBase::fExposureSource, and ana::ExposureSource::HandleSpill().

Referenced by ana::SpectrumLoaderNuTreeSpillCuts::AccumulateExposures().

180  {
182  }
void HandleSpill(const caf::SRSpillProxy *spill) override
void ana::SpectrumLoaderBase::AddReweightableSpectrum ( ReweightableSpectrum spect,
const Var xvar,
const Var yvar,
const Cut cut,
const SystShifts shift,
const Var wei 
)
virtualinherited

For use by the constructors of ReweightableSpectrum subclasses.

Reimplemented in ana::NullLoader.

Definition at line 199 of file SpectrumLoaderBase.cxx.

References ana::RecordMultiSink::AddSink(), ana::ExposureSource::AddSink(), om::cerr, allTimeWatchdog::endl, ana::SpectrumLoaderBase::fExposureSource, ana::SpectrumLoaderBase::fGone, ana::SpectrumLoaderBase::fSpectrumSinks, and ana::SpectrumLoaderBase::GetSinkSCW().

Referenced by ana::FluxReweight::FluxReweight(), ana::NoReweight::NoReweight(), and ana::RecoReweight::RecoReweight().

205  {
206  if(fGone){
207  std::cerr << "Error: can't add Spectra after the call to Go()" << std::endl;
208  abort();
209  }
210 
211  ReweightableSpectrumSink* sink = new ReweightableSpectrumSink(xvar, yvar, &spect);
212  fSpectrumSinks.insert(sink);
213  GetSinkSCW(shift, cut, wei)->AddSink(sink);
214  fExposureSource.AddSink(cut, sink);
215  }
bool fGone
Has Go() been called? Can&#39;t add more histograms after that.
OStream cerr
Definition: OStream.cxx:7
void AddSink(const Cut &cut, IExposureSink *s)
std::set< IRecordSink * > fSpectrumSinks
void AddSink(IRecordSink *s)
WeightApplier * GetSinkSCW(const SystShifts &shift, const Cut &cut, const Var &wei)
const Cut cut
Definition: exporter_fd.C:30
void ana::SpectrumLoaderBase::AddSpectrum ( Spectrum spect,
const Var var,
const Cut cut,
const SystShifts shift,
const Var wei = kUnweighted 
)
virtualinherited

For use by the Spectrum constructor.

Reimplemented in ana::NullLoader, and ana::SpectrumLoaderNuTreeSpillCuts.

Definition at line 141 of file SpectrumLoaderBase.cxx.

References ana::RecordMultiSink::AddSink(), ana::ExposureSource::AddSink(), om::cerr, allTimeWatchdog::endl, ana::SpectrumLoaderBase::fExposureSource, ana::SpectrumLoaderBase::fGone, ana::SpectrumLoaderBase::fSpectrumSinks, and ana::SpectrumLoaderBase::GetSinkSCW().

Referenced by ana::SpectrumLoaderNuTreeSpillCuts::AddSpectrum(), and ana::TrivialExtrap::TrivialExtrap().

146  {
147  if(fGone){
148  std::cerr << "Error: can't add Spectra after the call to Go()" << std::endl;
149  abort();
150  }
151 
152  SpectrumSink* sink = new SpectrumSink(var, &spect);
153  fSpectrumSinks.insert(sink);
154  GetSinkSCW(shift, cut, wei)->AddSink(sink);
155  fExposureSource.AddSink(cut, sink);
156  }
bool fGone
Has Go() been called? Can&#39;t add more histograms after that.
OStream cerr
Definition: OStream.cxx:7
void AddSink(const Cut &cut, IExposureSink *s)
std::set< IRecordSink * > fSpectrumSinks
void AddSink(IRecordSink *s)
WeightApplier * GetSinkSCW(const SystShifts &shift, const Cut &cut, const Var &wei)
const Cut cut
Definition: exporter_fd.C:30
void ana::SpectrumLoaderBase::AddSpectrum ( Spectrum spect,
const MultiVar var,
const Cut cut,
const SystShifts shift,
const Var wei = kUnweighted 
)
virtualinherited

For use by the Spectrum constructor.

Reimplemented in ana::NullLoader, and ana::SpectrumLoaderNuTreeSpillCuts.

Definition at line 159 of file SpectrumLoaderBase.cxx.

References ana::RecordMultiSink::AddSink(), ana::ExposureSource::AddSink(), om::cerr, allTimeWatchdog::endl, ana::SpectrumLoaderBase::fExposureSource, ana::SpectrumLoaderBase::fGone, ana::SpectrumLoaderBase::fSpectrumSinks, and ana::SpectrumLoaderBase::GetSinkSCW().

164  {
165  if(fGone){
166  std::cerr << "Error: can't add Spectra after the call to Go()" << std::endl;
167  abort();
168  }
169 
170  MultiVarSpectrumSink* sink = new MultiVarSpectrumSink(var, &spect);
171  fSpectrumSinks.insert(sink);
172  GetSinkSCW(shift, cut, wei)->AddSink(sink);
173  fExposureSource.AddSink(cut, sink);
174  }
bool fGone
Has Go() been called? Can&#39;t add more histograms after that.
OStream cerr
Definition: OStream.cxx:7
void AddSink(const Cut &cut, IExposureSink *s)
std::set< IRecordSink * > fSpectrumSinks
void AddSink(IRecordSink *s)
WeightApplier * GetSinkSCW(const SystShifts &shift, const Cut &cut, const Var &wei)
const Cut cut
Definition: exporter_fd.C:30
void ana::SpectrumLoaderBase::AddSpectrum ( Spectrum spect,
const NuTruthVar var,
const NuTruthCut cut,
const SystShifts shift,
const NuTruthVar wei = kNuTruthUnweighted 
)
virtualinherited

For use by the Spectrum constructor.

Reimplemented in ana::NullLoader, and ana::SpectrumLoaderNuTreeSpillCuts.

Definition at line 177 of file SpectrumLoaderBase.cxx.

References ana::SpectrumLoaderBase::fNuHistDefs.

182  {
183  // TODO - implement with the same source/sink deal as regular spectra
184  fNuHistDefs.emplace_back(spect, var, cut, shift, wei);
185  }
const Cut cut
Definition: exporter_fd.C:30
std::list< NuHistDef > fNuHistDefs
void ana::SpectrumLoaderBase::AddSpectrum ( Spectrum spect,
const NuTruthMultiVar var,
const NuTruthCut cut,
const SystShifts shift,
const NuTruthVar wei = kNuTruthUnweighted 
)
virtualinherited

Reimplemented in ana::NullLoader, and ana::SpectrumLoaderNuTreeSpillCuts.

Definition at line 188 of file SpectrumLoaderBase.cxx.

References ana::SpectrumLoaderBase::fNuHistDefs.

193  {
194  // TODO - implement with the same source/sink deal as regular spectra
195  fNuHistDefs.emplace_back(spect, multivar, cut, shift, wei);
196  }
const Cut cut
Definition: exporter_fd.C:30
std::list< NuHistDef > fNuHistDefs
void ana::SpectrumLoaderBase::AddSpillHistogram ( TH1 *  h,
const SpillVar var,
const SpillCut cut,
const SpillVar wei = kSpillUnweighted 
)
virtualinherited
SpectrumLoader ana::SpectrumLoader::FromSAMProject ( const std::string proj,
int  fileLimit = -1 
)
static

Named constructor for SAM projects.

Definition at line 43 of file SpectrumLoader.cxx.

References ana::SpectrumLoaderBase::fFileSource, ana::SpectrumLoaderBase::fWildcard, proj, and runNovaSAM::ret.

Referenced by test_sam_project().

45  {
47  ret.fWildcard = "project "+proj;
48  ret.fFileSource = std::unique_ptr<IFileSource>(new SAMProjectSource(proj, fileLimit));
49  return ret;
50  }
fileLimit
Definition: ProjMan.py:109
Float_t proj
Definition: plot.C:35
TFile * ana::SpectrumLoaderBase::GetNextFile ( )
protectedinherited

Forwards to fFileSource but also accumulates POT and livetime.

Definition at line 234 of file SpectrumLoaderBase.cxx.

References ana::SpectrumLoaderBase::AccumulateExposures(), ana::assert(), caf::SRProxySystController::BeginTransaction(), om::cout, allTimeWatchdog::endl, MakeMiniprodValidationCuts::f, ana::SpectrumLoaderBase::fBeamNue, ana::SpectrumLoaderBase::fFileSource, ana::SpectrumLoaderBase::fNuHistDefs, genie::utils::style::Format(), ana::SpectrumLoaderBase::fPOT, ana::SpectrumLoaderBase::fRunPOT, ana::SpectrumLoaderBase::fSingleNue, ana::SpectrumLoaderBase::fSinglePOT, ana::SpectrumLoaderBase::fSpillCut, ana::SpectrumLoaderBase::fSpillHistDefs, ana::SpectrumLoaderBase::fWildcard, caf::GetCAFType(), hd, findDuplicateFiles::key, caf::kFlatMultiTree, getGoodRuns4SAM::n, cacheDefinitionData::prog, caf::SRProxySystController::Rollback(), ana::Progress::SetProgress(), caf_analysis::spill, caf::Proxy< caf::SRSpill >::spillpot, string, and febshutoff_auto::val.

Referenced by Go(), and ana::FileReducer::Go().

235  {
236  TFile* f = fFileSource->GetNextFile();
237  if(!f) return 0; // out of files
238 
239  if(f->IsZombie()){
240  std::cout << "Bad file (zombie): " << f->GetName() << std::endl;
241  abort();
242  }
243 
244  // Crude way to count POT, at a file level without referring to spill cuts
245  TH1* hPOT = (TH1*)f->Get("TotalPOT");
246 
247  if(!hPOT){
248  std::cout << "Bad file (no POT tree): " << f->GetName() << std::endl;
249  abort();
250  }
251 
252  fRunPOT += hPOT->Integral();
253 
254  TKey *key = f->FindKey("TotalSinglePOT");
255 
256  // Initialise and only fill these histos if they exist
257  // We know they exist for nue overlay files
258  TH1* hSinglePOT = 0;
259  TH1* hTotalTrueSingleNue = 0;
260  TH1* hTotalTrueNonswapNue = 0;
261  if(key != 0){
262  hSinglePOT = (TH1*)f->Get("TotalSinglePOT");
263  assert(hSinglePOT);
264  fSinglePOT = hSinglePOT->Integral();
265 
266  hTotalTrueNonswapNue = (TH1*)f->Get("TotalTrueNonswapNue");
267  assert(hTotalTrueNonswapNue);
268  fBeamNue = hTotalTrueNonswapNue->Integral();
269 
270  hTotalTrueSingleNue = (TH1*)f->Get("TotalTrueSingleNue");
271  assert(hTotalTrueSingleNue);
272  fSingleNue = hTotalTrueSingleNue->Integral();
273  }
274  else{
275  delete hSinglePOT;
276  delete hTotalTrueSingleNue;
277  delete hTotalTrueNonswapNue;
278  }
279 
280  // Test for multi (trees are inside a directory) or single (tree is at top
281  // level) tree cases.
282  TDirectory* spillDir = 0;
283  TTree* spillTree = 0;
284 
285  TObject* obj = f->Get("spillTree");
286  assert(obj); // Must exist in one form or the other
287 
288  // It might seem like you could use GetObject() to do the type-checking
289  // directly, but that method seems to have a memory leak in the case that
290  // the types don't match.
291  if(obj->ClassName() == std::string("TTree")){
292  spillTree = (TTree*)obj;
293  }
294  else{
295  spillDir = (TDirectory*)obj;
296  spillTree = (TTree*)spillDir->Get("spill");
297  assert(spillTree);
298  }
299 
300  const caf::CAFType type = caf::GetCAFType(spillDir, spillTree);
301 
302  long n = 0;
303  caf::SRSpillProxy spill(spillDir, spillTree, "spill", n, 0);
304 
305  // FloatingExceptionOnNaN fpnan;
306 
307  // With multiple files exposure counting alternates with histogram filling,
308  // but with one file they deserve to be reported as two separate steps.
309  Progress* prog = 0;
310  if(fFileSource->NFiles() == 1)
311  prog = new Progress(TString::Format("Counting exposure from 1 file matching '%s'", fWildcard.c_str()).Data());
312 
313  const int Nentries = spillTree->GetEntries();
314 
315  double totFilePOT = 0;
316 
317  for(n = 0; n < Nentries; ++n){
318  if(type != caf::kFlatMultiTree) spillTree->LoadTree(n); // for all single-tree modes
319 
320  if(!fSpillCut || (*fSpillCut)(&spill)){
322 
323  totFilePOT += spill.spillpot;
324 
325  for(const SpillHistDef& hd: fSpillHistDefs){
326  // No cut, or cut passes
327  if(hd.cut(&spill)){
328  const double wei = hd.wei(&spill);
329  if(wei){
330  const double val = hd.var(&spill);
331  hd.h->Fill(val, wei);
332  }
333  } // end if(cut passes)
334  } // end for hd
335  }
336 
337  if(prog && n%100 == 0) prog->SetProgress(double(n)/Nentries);
338  } // end for n
339 
340  // The POT we want to use is either the singles POT in case of overlay files
341  // i.e the singlepot histo exists, or the standard after spill cuts
342  // Note: must be sure to run spill cuts for the overlays otherwise this gets
343  // reset to the fRunPOT
344  if(key != 0) fPOT += fSinglePOT;
345  else fPOT += totFilePOT;
346 
347  delete prog;
348  prog = 0;
349 
350  if(!fNuHistDefs.empty()){
351  // Test for flat (trees are inside a directory) or nested (tree is at top
352  // level) cases.
353 
354  TDirectory* nuDir = 0;
355  TTree* nuTree = 0;
356 
357  TObject* obj = f->Get("nuTree");
358  assert(obj); // Must exist in one form or the other
359 
360  // It might seem like you could use GetObject() to do the type-checking
361  // directly, but that method seems to have a memory leak in the case that
362  // the types don't match.
363  if(obj->ClassName() == std::string("TTree")){
364  nuTree = (TTree*)obj;
365  }
366  else{
367  nuDir = (TDirectory*)obj;
368  nuTree = (TTree*)spillDir->Get("nu");
369  assert(nuTree);
370  }
371 
372  const caf::CAFType type = caf::GetCAFType(nuDir, nuTree);
373 
374  const int NNuEntries = nuTree->GetEntries();
375 
376  long n = 0;
377  caf::SRNeutrinoProxy nu(nuDir, nuTree, nuDir ? "nu" : "mc.nu", n, 0);
378 
379  if(fFileSource->NFiles() == 1)
380  prog = new Progress(TString::Format("Filling from nuTree from 1 file matching '%s'", fWildcard.c_str()).Data());
381 
382 
383  for(n = 0; n < NNuEntries; ++n){
384  if(type != caf::kFlatMultiTree) nuTree->LoadTree(n); // for all single-tree modes
385 
386  for(const NuHistDef& hd: fNuHistDefs){
388 
389  double systWeight = 1;
390  // Can special-case nominal to not pay cost of Shift()
391  if(!hd.shift.IsNominal()){
392  hd.shift.Shift(&nu, systWeight);
393  }
394 
395  if(hd.cut(&nu)){
396  const double wei = hd.wei(&nu)*systWeight;
397  if(wei){
398  if(hd.var){
399  const double val = (*hd.var)(&nu);
400  hd.spect.Fill(val, wei);
401  }
402  else{
403  for(double val: (*hd.multivar)(&nu)) hd.spect.Fill(val, wei);
404  }
405  }
406  }
407 
408  // Return SRNeutrino to its unshifted form ready for the next
409  // histogram.
411  } // end for hd
412 
413  if(prog && n%10000 == 0) prog->SetProgress(double(n)/NNuEntries);
414  } // end for n
415 
416  for(const NuHistDef& hd: fNuHistDefs) hd.spect.fPOT += totFilePOT;
417 
418  delete prog;
419  } // end if NuHistDefs
420 
421  return f;
422  }
Proxy for caf::SRNeutrino.
Definition: SRProxy.h:510
double fRunPOT
Crude measure, not including spill cuts.
CAFType GetCAFType(const TDirectory *dir, TTree *tr)
std::unique_ptr< SpillCut > fSpillCut
Cut applied to the spill branch for every event.
virtual void AccumulateExposures(const caf::SRSpillProxy *spill)=0
std::list< SpillHistDef > fSpillHistDefs
Proxy for caf::SRSpill.
Definition: SRProxy.h:1346
OStream cout
Definition: OStream.cxx:6
std::unique_ptr< IFileSource > fFileSource
assert(nhit_max >=nhit_nbins)
void Format(TGraph *gr, int lcol, int lsty, int lwid, int mcol, int msty, double msiz)
Definition: Style.cxx:154
double fPOT
Accumulated by calls to GetNextFile.
std::list< NuHistDef > fNuHistDefs
TH1F * hd
Definition: Xdiff_gwt.C:57
enum BeamMode string
WeightApplier * ana::SpectrumLoaderBase::GetSinkSCW ( const SystShifts shift,
const Cut cut,
const Var wei 
)
protectedinherited

Definition at line 110 of file SpectrumLoaderBase.cxx.

References ana::RecordMultiSink::AddSink(), PandAna.Demos.tute_pid_validation::cid, ana::SpectrumLoaderBase::fSink, ana::SpectrumLoaderBase::fSinksS, ana::SpectrumLoaderBase::fSinksSC, ana::SpectrumLoaderBase::fSinksSCW, ana::SystShifts::ID(), ana::_Var< T >::ID(), and ana::_Cut< T >::ID().

Referenced by ana::SpectrumLoaderBase::AddReweightableSpectrum(), and ana::SpectrumLoaderBase::AddSpectrum().

113  {
114  const int sid = shift.ID();
115  const int cid = cut.ID();
116  const int wid = wei.ID();
117 
118  const std::pair<int, int> sc(sid, cid);
119  const std::tuple<int, int, int> scw(sid, cid, wid);
120 
121  if(fSinksS.find(sid) == fSinksS.end()){
122  SystApplier* sa = new SystApplier(shift);
123  fSinksS[sid] = sa;
124  fSink.AddSink(sa);
125  }
126  if(fSinksSC.find(sc) == fSinksSC.end()){
127  CutApplier* ca = new CutApplier(cut);
128  fSinksS[sid]->AddSink(ca);
129  fSinksSC[sc] = ca;
130  }
131  if(fSinksSCW.find(scw) == fSinksSCW.end()){
132  WeightApplier* wa = new WeightApplier(wei);
133  fSinksSC[sc]->AddSink(wa);
134  fSinksSCW[scw] = wa;
135  }
136 
137  return fSinksSCW[scw];
138  }
void AddSink(IRecordSink *s)
std::unordered_map< int, SystApplier * > fSinksS
std::unordered_map< std::pair< int, int >, CutApplier * > fSinksSC
const Cut cut
Definition: exporter_fd.C:30
std::unordered_map< std::tuple< int, int, int >, WeightApplier * > fSinksSCW
double ana::SpectrumLoaderBase::GetWeightedPOT ( )
inherited
void ana::SpectrumLoader::Go ( )
overridevirtual

Load all the registered spectra.

Implements ana::SpectrumLoaderBase.

Reimplemented in ana::CSVMaker.

Definition at line 66 of file SpectrumLoader.cxx.

References om::cerr, caf::SRBranchRegistry::clear(), om::cout, ana::Progress::Done(), allTimeWatchdog::endl, MakeMiniprodValidationCuts::f, ana::SpectrumLoaderBase::fExposureSource, ana::SpectrumLoaderBase::fGone, ana::ExposureSource::Finalize(), ana::SpectrumLoaderBase::fNuHistDefs, genie::utils::style::Format(), ana::SpectrumLoaderBase::fRunPOT, ana::SpectrumLoaderBase::fSink, ana::SpectrumLoaderBase::fSinksS, ana::SpectrumLoaderBase::fSinksSC, ana::SpectrumLoaderBase::fSinksSCW, ana::SpectrumLoaderBase::fSpectrumSinks, ana::SpectrumLoaderBase::fSpillHistDefs, ana::SpectrumLoaderBase::fWildcard, ana::SpectrumLoaderBase::GetNextFile(), HandleFile(), it, ana::SpectrumLoaderBase::NFiles(), ana::RecordMultiSink::NSinks(), cacheDefinitionData::prog, ana::ExposureSource::ReportExposures(), ana::Progress::SetProgress(), string, and sum.

Referenced by Ana2017_box_opening_macro(), Ana2017_sb_opening_macro(), Ana2018_box_opening_macro(), AnaResultsLoad(), angle(), bdtstudyspectrums(), BlessedPlotsLoad(), caf_nue_data_mc(), caf_numu_fd_validation_data(), caf_numu_fd_validation_MC(), caf_numu_fd_validation_MC_no_tau(), caf_numu_nd_cutflow(), caf_numu_nuenergy_vs_xy(), caf_numu_reco_minus_true(), caf_numu_sensitivity(), caf_numu_sensitivity_no_tau(), caf_numu_validation(), caf_numu_vars(), CalcCutVals(), ccpiinc_mc_studies(), compare_cos_numi(), Compare_Spectra(), ComparisonPlots_Data(), containmentstudy(), CosmicPred(), CreateAndFillSpectra(), CutFlow_Cosmic(), CutFlow_Data(), CutFlow_NearDet(), CutTableLoad(), CVNphoton(), CVNphotonSplit(), datamc_ND_numu_kinematics(), datamc_ND_numu_kinematics_FHC(), datamc_ND_numu_kinematics_FHC_pTBins(), datamc_ND_numu_kinematics_FHC_REW(), datamc_ND_numu_kinematics_FHC_REW_pTBins(), datamc_ND_numu_kinematics_REW(), datamc_ND_numu_kinematics_RHC(), datamc_ND_numu_kinematics_RHC_pTBins(), datamc_ND_numu_kinematics_RHC_REW(), datamc_ND_numu_kinematics_RHC_REW_pTBins(), dataprocess_numuccinc(), DataVtxDistributionLoad(), demo0(), demo1(), demo2(), demo2p5a(), demo3(), demo4(), demo5(), demo6(), demo_CPT(), demo_flat(), demo_trivial_xsec_analysis(), drawIntensityEffect_2019(), drawLongTerm(), drawLongTerm_2019(), drawShortTerm_2019(), drawTimePlots(), drawVsPOT(), EnergyCont_macro(), energyResolution(), estimate_energy(), Evaluate_BDTMLP_Algs_Spectra(), event_reweighting_all_knobs(), example_macro(), ExampleCode(), ExtendedAxesLoad(), extract_resolution(), FD_Data_PosComp(), FDDataMCSystBandLoad(), FidOpt(), FidWShwCuts(), FillSpectra(), FitSystEffectsLoad(), genie_syst(), genie_syst_make(), get_cosmic_sample(), get_cosmic_spectra(), get_data_and_cosmic(), get_data_histogram(), get_fd_dataspectrum(), get_numi_data_histogram(), get_numu_data_histogram(), get_spectra_2dplots(), getBNBPlots(), getCrossSectionAnalysisSpectra(), getData(), GetHistsFD(), GetHistsND(), getSpectra_ForFitting(), getStabilitySpectra(), getTimePeakTotal(), ana::CSVMaker::Go(), hadEFrac_nd_data_mc_systs(), hyperon_macro(), hyperon_nom_macro(), make_DataMCComp_numu(), make_decomp(), make_michel(), make_nue_ana2018_pot(), make_nue_ana2019_epoch7d_pot(), make_nue_ana2019_epoch8b_pot(), make_nue_ana2019_fhc_ub_pot(), make_nue_ana2019_rhc_ub_pot(), make_nue_thirdana_pot(), make_numu_thirdana_pot(), make_nus17_pot(), make_quantiles_histogram_2020(), make_rhcpred_2017(), make_rockpred_2017(), make_xsec_tuning_hists_mp5(), make_xsec_wgts_2018_hists(), MakeCosmics(), MakeNus17CosBkgd(), MakeNus17Prediction(), MakeNus18CosBkgd(), MakeNus18ExtrapPred(), MakeNus18SidebandPred(), MakeNusPrediction(), ana::MakeQuantileHistogram(), makeRealDataFluxes(), ana::MakeTextListFileHelper(), MakeUnoscPlots(), mcTruthPredictions(), meanWeight_macro(), MichelDecompTest(), modularextrap_demo_nue(), modularextrap_demo_numu(), mrbrem_get_initial_spectra(), mrbrem_get_reweighted_spectra(), MRDiFStudy_FHC_Step1(), MRDiFStudy_FHC_Step2(), MRDiFStudy_RHC_Step1(), MRDiFStudy_RHC_Step2(), mre_blessed(), mre_comp_split(), mre_example_test(), multiverse_efficiency_macro(), multiverse_macro(), multiverse_reweighting(), nc_bkgd_by_interaction_mode(), ncpi0HistoGrid2(), ND_DataMC(), ND_DataMC_Comp_Systs(), NDDataMCSystBandLoad(), neutKEsyst(), neutronE_macro(), nue_decomp_scales(), nue_fd_mc_validation(), nue_michelDataMC(), nue_pid_effs(), nue_pid_effs_miniprod(), nue_pid_effs_paper_numu_neweff(), NuMu2019_BasicPIDPlots_ND(), NuMu2019_BasicPIDPlots_Spectrum(), NuMu2020_BasicPIDPlots_ND(), NuMu2020_BasicPIDPlots_Spectrum(), NuMu2020_TrimCAFs(), numu_cut_flow(), numu_sig_nonmax(), numu_validation_numuvars(), NumuCosmic(), nus17_box_opening(), nus17_fd_cut_tables(), nus17_fd_cut_tables2D(), nus17_fiducial_accounting(), nus18_box_opening(), nus_ana01_box_opening(), nus_ana01_sideband_box_opening(), pion_multiverse(), plot_kinematics_cafana(), PositionComparison(), ppfx_make_systs(), ppfx_smooth_weights_save(), PredictionInfo::PredictionInfo(), preselection_cutflow(), ReMId(), resolutionscript(), resolutionspectrums(), resolutionstudy(), rock(), runCheatDecomp(), runTwoSampleDecomp(), saveSpectraForUnf(), ShwZOpt(), sidebandfittest(), SideBandLoad(), signal_count(), specprod_numuccinc(), Syst(), SystematicComp(), SystsBirksLoad(), SystsCalibAbsLoad(), SystsCalibAbsLoad17(), SystsCalibAbsMethod17(), SystsCalibRelLoad(), SystsCalibRelLoad17(), SystsNoiseLoad(), SystsPPFXLoad17(), template_basic(), test_beam_errorband(), test_caf_validation_plots(), test_flux(), test_fluxhadr_prod_weights_Flux(), test_genie_systs(), test_genieweights(), test_multiverse_class(), test_nueextrapsyst(), test_nuwro(), test_predictionscalecomp(), test_sam(), test_sam_project(), test_systmultiverse(), timingPeak(), train_dectree_caf(), TrimCAFs(), twodstudyvtxcont(), validation_numu_nd(), and vertexstudy().

67  {
68  if(fGone){
69  std::cerr << "Error: can only call Go() once on a SpectrumLoader" << std::endl;
70  abort();
71  }
72  fGone = true;
73 
74  const int Nfiles = NFiles();
75 
76  Progress* prog = 0;
77 
79 
80  int fileIdx = -1;
81  while(TFile* f = GetNextFile()){
82  ++fileIdx;
83 
84  if(Nfiles >= 0 && !prog){
85  std::string sum = TString::Format("Filling %d spectra", fSink.NSinks()).Data();
86  if(Nfiles > 1){
87  if(!fSpillHistDefs.empty()){
88  sum += TString::Format(", %lu spillTree spectra", fSpillHistDefs.size()).Data();
89  }
90  if(!fNuHistDefs.empty()){
91  sum += TString::Format(", %lu nuTree spectra", fNuHistDefs.size()).Data();
92  }
93  }
94 
95  sum += TString::Format(" from %d files matching '%s'", Nfiles, fWildcard.c_str()).Data();
96  prog = new Progress(sum);
97  }
98 
99  HandleFile(f, Nfiles == 1 ? prog : 0);
100 
101  if(Nfiles > 1 && prog) prog->SetProgress((fileIdx+1.)/Nfiles);
102  } // end for fileIdx
103 
105 
106  if(prog){
107  prog->Done();
108  delete prog;
109  }
110 
111  std::cout << "Total POT before spill cuts: " << fRunPOT << std::endl;
113 
114  // Delete the tree of syst/cut/weight appliers
115  for(auto it: fSinksS) delete it.second;
116  for(auto it: fSinksSC) delete it.second;
117  for(auto it: fSinksSCW) delete it.second;
118  fSinksS.clear();
119  fSinksSC.clear();
120  fSinksSCW.clear();
121 
122  // Delete the actual spectrum sinks themselves
123  for(IRecordSink* s: fSpectrumSinks) delete s;
124  fSpectrumSinks.clear();
125  }
set< int >::iterator it
TFile * GetNextFile()
Forwards to fFileSource but also accumulates POT and livetime.
bool fGone
Has Go() been called? Can&#39;t add more histograms after that.
double fRunPOT
Crude measure, not including spill cuts.
int NSinks() const override
OStream cerr
Definition: OStream.cxx:7
std::set< IRecordSink * > fSpectrumSinks
const XML_Char * s
Definition: expat.h:262
std::unordered_map< int, SystApplier * > fSinksS
std::list< SpillHistDef > fSpillHistDefs
std::unordered_map< std::pair< int, int >, CutApplier * > fSinksSC
OStream cout
Definition: OStream.cxx:6
virtual void HandleFile(TFile *f, Progress *prog=0)
std::unordered_map< std::tuple< int, int, int >, WeightApplier * > fSinksSCW
void Format(TGraph *gr, int lcol, int lsty, int lwid, int mcol, int msty, double msiz)
Definition: Style.cxx:154
int NFiles() const
Forwards to fFileSource.
Double_t sum
Definition: plot.C:31
std::list< NuHistDef > fNuHistDefs
void Finalize()
POT/livetime is not filled into sinks until this is called!
enum BeamMode string
void ReportExposures(double denom=0) const
virtual bool ana::SpectrumLoaderBase::Gone ( ) const
inlinevirtualinherited

Indicate whether or not Go has been called.

Definition at line 124 of file SpectrumLoaderBase.h.

References caf_analysis::spill, submit_syst::str, string, and wildcard().

Referenced by ana::TwoSampleDecomp::Decomp(), ana::CSVMaker::Go(), and ana::SpectrumHandler::Go().

124 {return fGone;}
bool fGone
Has Go() been called? Can&#39;t add more histograms after that.
void ana::SpectrumLoader::HandleFile ( TFile *  f,
Progress prog = 0 
)
protectedvirtual

Definition at line 128 of file SpectrumLoader.cxx.

References ana::assert(), dir, caf::GetCAFType(), HandleRecord(), caf::kFlatMultiTree, getGoodRuns4SAM::n, ana::Progress::SetProgress(), sr, string, and make_root_from_grid_output::tr.

Referenced by Go(), ProducingSA(), tree_maker_simple(), and useBDTG().

129  {
130  assert(!f->IsZombie());
131 
132  // Test for multi (trees are inside a directory) or single (tree is at top
133  // level) tree cases.
134  TDirectory* dir = 0;
135  TTree* tr = 0;
136 
137  TObject* obj = f->Get("recTree");
138  assert(obj); // Must exist in one form or the other
139 
140  // It might seem like you could use GetObject() to do the type-checking
141  // directly, but that method seems to have a memory leak in the case that
142  // the types don't match.
143  if(obj->ClassName() == std::string("TTree")){
144  tr = (TTree*)obj;
145  }
146  else{
147  dir = (TDirectory*)obj;
148  tr = (TTree*)dir->Get("rec");
149  assert(tr);
150  }
151 
152  const caf::CAFType type = caf::GetCAFType(dir, tr);
153 
154  long n;
155  caf::SRProxy sr(dir, tr, "rec", n, 0);
156 
157  // FloatingExceptionOnNaN fpnan;
158 
159  const long Nentries = tr->GetEntries();
160  for(n = 0; n < Nentries; ++n){
161  if(type != caf::kFlatMultiTree) tr->LoadTree(n); // for all single-tree modes
162 
163  HandleRecord(&sr);
164 
165  if(prog && n%100 == 0) prog->SetProgress(double(n)/Nentries);
166  } // end for n
167  }
Proxy for caf::StandardRecord.
Definition: SRProxy.h:2126
CAFType GetCAFType(const TDirectory *dir, TTree *tr)
caf::StandardRecord * sr
TDirectory * dir
Definition: macro.C:5
virtual void HandleRecord(caf::SRProxy *sr)
assert(nhit_max >=nhit_nbins)
enum BeamMode string
void ana::SpectrumLoader::HandleRecord ( caf::SRProxy sr)
protectedvirtual

Reimplemented in ana::TreeMaker, CAFTreeMaker, CAFTreeMaker, ana::ASCIIMaker, and ana::CSVMaker.

Definition at line 170 of file SpectrumLoader.cxx.

References ana::SpectrumLoaderBase::fSink, ana::SpectrumLoaderBase::fSpillCut, ana::RecordMultiSink::HandleRecord(), and caf::Proxy< caf::StandardRecord >::spill.

Referenced by HandleFile().

171  {
172  // First up, check this spill passes the global quality cuts
173  if(fSpillCut && !(*fSpillCut)(&sr->spill)) return;
174 
175  fSink.HandleRecord(sr, 1);
176  }
caf::Proxy< caf::SRSpill > spill
Definition: SRProxy.h:2143
void HandleRecord(caf::SRProxy *sr, double wei) override
std::unique_ptr< SpillCut > fSpillCut
Cut applied to the spill branch for every event.
int ana::SpectrumLoaderBase::NFiles ( ) const
protectedinherited

Forwards to fFileSource.

Definition at line 228 of file SpectrumLoaderBase.cxx.

References ana::SpectrumLoaderBase::fFileSource.

Referenced by Go(), and ana::FileReducer::Go().

229  {
230  return fFileSource->NFiles();
231  }
std::unique_ptr< IFileSource > fFileSource
SpectrumLoader& ana::SpectrumLoader::operator= ( SpectrumLoader &&  )
default
SpectrumLoader& ana::SpectrumLoader::operator= ( const SpectrumLoader )
protecteddelete
void ana::SpectrumLoaderBase::SetSpillCut ( const SpillCut cut)
inherited

Definition at line 64 of file SpectrumLoaderBase.cxx.

References ana::assert(), cut, ana::SpectrumLoaderBase::fGone, ana::SpectrumLoaderBase::fSpillCut, and ana::SpectrumLoaderBase::WildcardOrSAMQuery().

Referenced by Ana2017_box_opening_macro(), Ana2017_sb_opening_macro(), Ana2018_box_opening_macro(), AnaResultsLoad(), BlessedPlotsLoad(), caf_nue_data_mc(), caf_numu_fd_validation_data(), caf_numu_fd_validation_MC(), caf_numu_fd_validation_MC_no_tau(), caf_numu_nd_cutflow(), caf_numu_nuenergy_vs_xy(), caf_numu_reco_minus_true(), caf_numu_sensitivity(), caf_numu_sensitivity_no_tau(), caf_numu_validation(), caf_numu_vars(), CalcCutVals(), compare_cos_numi(), Compare_Spectra(), ComparisonPlots_Data(), CosmicPred(), CreateAndFillSpectra(), CutFlow_Cosmic(), CutFlow_Data(), CutFlow_NearDet(), CutTableLoad(), datamc_ND_numu_kinematics(), datamc_ND_numu_kinematics_FHC(), datamc_ND_numu_kinematics_FHC_pTBins(), datamc_ND_numu_kinematics_FHC_REW(), datamc_ND_numu_kinematics_FHC_REW_pTBins(), datamc_ND_numu_kinematics_REW(), datamc_ND_numu_kinematics_RHC(), datamc_ND_numu_kinematics_RHC_pTBins(), datamc_ND_numu_kinematics_RHC_REW(), datamc_ND_numu_kinematics_RHC_REW_pTBins(), dataprocess_numuccinc(), DataVtxDistributionLoad(), demo_trivial_xsec_analysis(), drawIntensityEffect_2019(), drawLongTerm(), drawLongTerm_2019(), drawShortTerm_2019(), drawTimePlots(), drawVsPOT(), EnergyCont_macro(), energyResolution(), estimate_energy(), Evaluate_BDTMLP_Algs_Spectra(), ExampleCode(), exporter_fd(), exporter_nd(), ExtendedAxesLoad(), FD_Data_PosComp(), FDDataMC(), FDDataMCSystBandLoad(), FillSpectra(), FitSystEffectsLoad(), genie_syst_make(), get_cosmic_sample(), get_cosmic_spectra(), get_data_and_cosmic(), get_data_histogram(), get_fd_dataspectrum(), get_numi_data_histogram(), get_numu_data_histogram(), get_spectra_2dplots(), getCrossSectionAnalysis_Spectra(), getCrossSectionAnalysis_Spectra_systematics(), getCrossSectionAnalysisSpectra(), getData(), getFitTemplates(), GetHistsFD(), GetHistsND(), getSpectra_ForFitting(), getStabilitySpectra(), hadEFrac_nd_data_mc_systs(), hyperon_nom_macro(), make_DataMCComp_numu(), make_decomp(), make_michel(), make_nue_ana2018_pot(), make_nue_ana2019_epoch7d_pot(), make_nue_ana2019_epoch8b_pot(), make_nue_ana2019_fhc_ub_pot(), make_nue_ana2019_rhc_ub_pot(), make_nue_thirdana_pot(), make_numu_thirdana_pot(), make_nus17_pot(), make_pi0_xcheck(), make_pid(), make_quantiles_histogram_2020(), make_RHC_WrongSign_Nue(), make_RHC_WrongSign_Numu_MC(), make_RHC_WrongSign_Numu_Pd4_6Data(), make_RHC_WrongSign_Numu_Pd7dData(), make_RHC_WrongSign_Numu_Pd8Data(), make_RHC_WrongSign_NumuQ1(), make_RHC_WrongSign_NumuQ2(), make_RHC_WrongSign_NumuQ3(), make_RHC_WrongSign_NumuQ4(), make_rhcpred_2017(), make_rockpred_2017(), make_xsec_tuning_hists_mp5(), make_xsec_wgts_2018_hists(), MakeCosmics(), MakeNus17CosBkgd(), MakeNus17Prediction(), MakeNus18CosBkgd(), MakeNus18ExtrapPred(), MakeNus18SidebandPred(), MakeNusPrediction(), ana::MakeQuantileHistogram(), ana::MakeTextListFileHelper(), MakeUnoscPlots(), mrbrem_get_initial_spectra(), mrbrem_get_reweighted_spectra(), MRDiFStudy_FHC_Step1(), MRDiFStudy_FHC_Step2(), MRDiFStudy_RHC_Step1(), MRDiFStudy_RHC_Step2(), mre_blessed(), mre_comp_split(), ND_DataMC(), ND_DataMC_Comp_Systs(), NDDataMC(), NDDataMCSystBandLoad(), neutKEsyst(), neutronE_macro(), nue_data_mc_validation(), nue_decomp_scales(), nue_fd_mc_validation(), nue_michelDataMC(), NuMu2019_BasicPIDPlots_ND(), NuMu2019_BasicPIDPlots_Spectrum(), NuMu2020_BasicPIDPlots_FD(), NuMu2020_BasicPIDPlots_ND(), NuMu2020_BasicPIDPlots_Spectrum(), NuMu2020_TrimCAFs(), numu_cut_flow(), numu_data_mc_validation(), numu_validation_numuvars(), NumuCosmic(), nus17_box_opening(), nus17_fd_cut_tables(), nus17_fd_cut_tables2D(), nus17_fiducial_accounting(), nus18_box_opening(), nus_ana01_box_opening(), nus_ana01_sideband_box_opening(), pi0_xcheck(), PositionComparison(), ppfx_make_systs(), ppfx_smooth_weights_save(), preselection_cutflow(), resolutionscript(), resolutionspectrums(), rock(), saveSpectraForUnf(), sidebandfittest(), SideBandLoad(), signal_count(), specprod_numuccinc(), specprod_systematics(), Syst(), SystematicComp(), SystsBirksLoad(), SystsCalibAbsLoad(), SystsCalibAbsLoad17(), SystsCalibAbsMethod17(), SystsCalibRelLoad(), SystsCalibRelLoad17(), SystsNoiseLoad(), SystsPPFXLoad17(), test_genieweights(), test_predictionscalecomp(), test_xsecanalysis(), TrimCAFs(), uncertainty1png(), uncertainty2png(), and validation_numu_nd().

65  {
66  assert(!fGone);
67  fSpillCut = std::make_unique<SpillCut>(cut);
68  }
bool fGone
Has Go() been called? Can&#39;t add more histograms after that.
std::unique_ptr< SpillCut > fSpillCut
Cut applied to the spill branch for every event.
const Cut cut
Definition: exporter_fd.C:30
assert(nhit_max >=nhit_nbins)
IFileSource * ana::SpectrumLoaderBase::WildcardOrSAMQuery ( const std::string str) const
protectedinherited

Figure out if str is a wildcard or SAM query and return a source.

Definition at line 72 of file SpectrumLoaderBase.cxx.

References e, cet::getenv(), MECModelEnuComparisons::i, ProjMan::ifdh, ana::Limit(), ana::FileListSource::NFiles(), ana::Offset(), runNovaSAM::ret, and ana::Stride().

Referenced by ProducingSA(), ana::SpectrumLoaderBase::SetSpillCut(), ana::SpectrumLoaderBase::SpectrumLoaderBase(), and useBDTG().

73  {
74  // stat() blows up on strings with spaces
75  if(str.find(' ') == std::string::npos){
76  WildcardSource* ret = new WildcardSource(str, Stride(), Offset(), Limit());
77  if(ret->NFiles() > 0) return ret;
78  delete ret;
79  }
80 
81  // Maybe this the name of a SAM project?
82  {
83  IFDHSilent silent; // the usual case is for this to fail
85 
86  // findProject always gives back an address just by gluing bits together.
87  // (a tad annoying, because it _does_ go and look for the project,
88  // and even would print its 'didn't-find-this-project' error out to stderr
89  // if not for the IFDHSilent, but without scraping its stderr
90  // there's no way to know whether the project is there or not--
91  // you still get the URL.)
92  // however, the WebAPI call looking for the /status will return a 404 if
93  // the project doesn't exist. (suggested by Robert I. in INC000000925362.)
94  try
95  {
96  ifdh_util_ns::WebAPI webapi(i.findProject(str, getenv("SAM_STATION")) + "/status");
97  return new SAMProjectSource(str);
98  }
99  catch (ifdh_util_ns::WebAPIException &e)
100  {
101  ;
102  }
103  }
104 
105  // Maybe this is a SAM dataset or query?
106  return new SAMQuerySource(str, Stride(), Offset(), Limit());
107  }
int Limit()
Value passed to –limit, or -1 if not specified.
Definition: Utilities.cxx:420
std::string getenv(std::string const &name)
size_t Stride(bool allow_default)
Value passed to –stride, or 1 if not specified.
Definition: Utilities.cxx:372
ifdh
Definition: ProjMan.py:8
size_t Offset(bool allow_default)
Value passed to –offset, or 0 if not specified.
Definition: Utilities.cxx:396
Float_t e
Definition: plot.C:35

Member Data Documentation

double ana::SpectrumLoaderBase::fBeamNue
protectedinherited
ExposureSource ana::SpectrumLoaderBase::fExposureSource
protectedinherited
std::unique_ptr<IFileSource> ana::SpectrumLoaderBase::fFileSource
protectedinherited
bool ana::SpectrumLoaderBase::fGone
protectedinherited
std::list<NuHistDef> ana::SpectrumLoaderBase::fNuHistDefs
protectedinherited
double ana::SpectrumLoaderBase::fPOT
protectedinherited

Accumulated by calls to GetNextFile.

Definition at line 160 of file SpectrumLoaderBase.h.

Referenced by ana::SpectrumLoaderBase::GetNextFile(), and ana::SpectrumLoaderBase::GetWeightedPOT().

double ana::SpectrumLoaderBase::fRunPOT
protectedinherited

Crude measure, not including spill cuts.

Definition at line 161 of file SpectrumLoaderBase.h.

Referenced by ana::SpectrumLoaderBase::GetNextFile(), Go(), and DecTreeLoader::HandlePOT().

double ana::SpectrumLoaderBase::fSingleNue
protectedinherited
double ana::SpectrumLoaderBase::fSinglePOT
protectedinherited
RecordMultiSink ana::SpectrumLoaderBase::fSink
protectedinherited

Definition at line 178 of file SpectrumLoaderBase.h.

Referenced by ana::SpectrumLoaderBase::GetSinkSCW(), Go(), and HandleRecord().

std::unordered_map<int, SystApplier*> ana::SpectrumLoaderBase::fSinksS
protectedinherited

Definition at line 176 of file SpectrumLoaderBase.h.

Referenced by ana::SpectrumLoaderBase::GetSinkSCW(), and Go().

std::unordered_map<std::pair<int, int>, CutApplier*> ana::SpectrumLoaderBase::fSinksSC
protectedinherited

Definition at line 175 of file SpectrumLoaderBase.h.

Referenced by ana::SpectrumLoaderBase::GetSinkSCW(), and Go().

std::unordered_map<std::tuple<int, int, int>, WeightApplier*> ana::SpectrumLoaderBase::fSinksSCW
protectedinherited

Definition at line 174 of file SpectrumLoaderBase.h.

Referenced by ana::SpectrumLoaderBase::GetSinkSCW(), and Go().

std::set<IRecordSink*> ana::SpectrumLoaderBase::fSpectrumSinks
protectedinherited
std::unique_ptr<SpillCut> ana::SpectrumLoaderBase::fSpillCut
protectedinherited
std::list<SpillHistDef> ana::SpectrumLoaderBase::fSpillHistDefs
protectedinherited
double ana::SpectrumLoaderBase::fWeightedPOT
protectedinherited

Definition at line 166 of file SpectrumLoaderBase.h.

Referenced by ana::SpectrumLoaderBase::GetWeightedPOT().

std::string ana::SpectrumLoaderBase::fWildcard
protectedinherited

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