HighLAND
Public Member Functions | Protected Attributes | List of all members
AnalysisManager Class Reference

This class is the Top level interface for the library. More...

#include <AnalysisManager.hxx>

Public Member Functions

void DefineProduction ()
 
void DefineInputConverters ()
 
void DefineSelections ()
 
void DefineSystematics ()
 
SystematicManagersyst ()
 Returns the systematic manager.
 
EventWeightManagereweight ()
 Returns the EventWeight manager.
 
EventVariationManagerevar ()
 Returns the EventVariation manager.
 
InputManagerinput ()
 Returns the input manager.
 
SelectionManagersel ()
 Returns the selection manager.
 
void SetExperiment (Experiment *exp)
 Sets the Experiment.
 
bool ProcessEvent (const ToyExperiment &toy, AnaEventB &event, std::vector< Weight_h > &totalWeightSystVector, std::vector< Weight_h > &fluxWeightSystVector)
 
bool ProcessEvent (const ToyExperiment &toy, AnaEventB &event, std::vector< Weight_h > &totalWeightSystVector, std::vector< Weight_h > &fluxWeightSystVector, Float_t &POTweight)
 
bool ProcessEvent (AnaEventB &event, Float_t &POTWeight)
 
bool ProcessEvent (AnaEventB &event)
 
bool ProcessEvent (const ToyExperiment &toy, AnaEventB &event, Weight_h &totalWeight, Weight_h &FluxWeightSyst)
 Process one event method for use in BANFF and MaCh3 fitters. More...
 
void CreateEventArray (Int_t nmax)
 Create the evevt array for preloading events.
 
bool ReadEvents (const std::string &inputFile, Int_t nmax=-1)
 Read the specified number of events from the file and save them into an array. Default(-1) is all events.
 
bool ReadEvents (Int_t nmax=-1)
 Read the specified number of events from the current DataSample and save them into an array. Default(-1) is all events.
 
bool ReadEvents (DataSample *sample, Int_t nmax=-1)
 Read the specified number of events from the DataSample and save them into an array. Default(-1) is all events.
 
void SetNEventsToProcess (Int_t nmax)
 Set the maximum number of events to process.
 
AnaSuperEventBGetSuperEvent (Int_t eventIndex)
 Returns The SuperEvent with a given index from the array.
 
AnaEventBGetEvent (Int_t eventIndex)
 Returns The Event with a given index from the array.
 
AnaSuperEventBGetNextSuperEvent ()
 Returns The next SuperEvent.
 
AnaEventBGetNextEvent ()
 Returns The next Event.
 
UInt_t GetEntries ()
 Returns the number of entries in the input tree.
 
bool LoadEvent (Long64_t &entry)
 
void PreloadEvents (bool preloadData=1, bool preloadMC=1)
 
bool PreloadMCEvents (std::vector< std::string > inputFiles, std::vector< float > POT_weights)
 
bool PreloadDataEvents (std::vector< std::string > inputFiles)
 
AnaSuperEventBGetPreloadedMCSuperEvent (int i)
 
AnaSuperEventBGetPreloadedDataSuperEvent (int i)
 
void CreateMCEventArray (Int_t nmax)
 
void CreateDataEventArray (Int_t nmax)
 
UInt_t GetNMCEvents ()
 
UInt_t GetNDataEvents ()
 
bool Initialize (Int_t nmax)
 
void InitialiseDataTChain ()
 
void InitialiseMCTChain ()
 
void ResetEventsProcessed ()
 
AnaSuperEventBLoadSuperEvent (Long64_t &evtIndex)
 
FluxWeightingGetFluxWeighting ()
 
bool CheckSelectionAgainstRunPeriod (SelectionBase *selec, int RunPeriod)
 
UInt_t GetNPreloadedEvents () const
 Return the number of preloaded events.
 

Protected Attributes

SystematicManager _syst
 An instance of the systematic manager.
 
EventWeightManager _weight
 An instance of the EventWeight manager.
 
EventVariationManager _var
 An instance of the EventVariation manager.
 
InputManager _input
 An instance of the input manager.
 
SelectionManager _sel
 An instance of the selection manager.
 
AnaSuperEventB ** _eventArray
 The array of events.
 
UInt_t _nEventsInArray
 the number of events in the array
 
bool _applyEventWeights
 whether to apply detector event weight or not
 
bool _applyEventVariations
 whether to apply detector event variation or not
 
bool _applyFluxWeightSystematic
 whether to apply Flux weight systematic or not
 
Int_t _currentEvent
 The current event in the event array.
 
Experiment_exp
 The Experiment.
 
ToyExperiment _toy
 The Toy Experiment.
 
std::vector< DataSample * >::iterator _currentSample
 
SampleGroup_currentSampleGroup
 
std::vector< DataSample * > _samples
 
Int_t _nEventsToProcess
 the maximum number of events to process
 
Int_t _nEventsProcessed
 the number of events processed so far
 
FluxWeighting_flux
 Access to the flux weighting.
 
bool _applyFluxWeight
 Flag to enable/disable flux weight.
 
bool _initialisePionSystematics
 
std::string _fluxFile
 Flux file and option.
 
std::string _fluxTuning
 
std::string _fluxVersion
 
AnaSuperEventB ** _mcEventArray
 The array of preloaded MC events.
 
AnaSuperEventB ** _dataEventArray
 The array of preloaded Data events.
 
UInt_t _nEventsInMCArray
 the number of events in the preloaded MC array
 
UInt_t _nEventsInDataArray
 the number of events in the preloaded Data array
 
std::vector< Float_t > _POT_weights
 The POT weight for each MC file loaded into the Analysis Manager.
 
bool _doFGD1
 
bool _doFGD2
 

Detailed Description

This class is the Top level interface for the library.

Definition at line 20 of file AnalysisManager.hxx.

Member Function Documentation

§ CheckSelectionAgainstRunPeriod()

bool AnalysisManager::CheckSelectionAgainstRunPeriod ( SelectionBase selec,
int  RunPeriod 
)

Check to see whether the event is from the right run period for the selection This is important for making sure we do not run the anti-neutrino mode selections on neutrino mode data

Definition at line 1272 of file AnalysisManager.cxx.

1272  {
1273  //******************************************************************
1274  return selec->IsValidRun(RunPeriod);
1275 }
bool IsValidRun(int runPeriod) const
Method to see whether this selection should be applied to the given run period.

§ LoadEvent()

bool AnalysisManager::LoadEvent ( Long64_t &  entry)

Method to load a given single event, without pre-loading. Fill the raw AnaEventB structure. The argument entry (the entry number in the input tree) will be modified inside the method by the specific converter (hence the non-cont reference). The way entry is modified will depend on whether the input file is event based (every call to this method will increment by one the argument entry) or spill based (several events – one per bunch – correspond to the same spill, so once the first event in a given spill is read entry number will not be varied until all events in that spill are processed). Returns whether the event was successfully filled.

Definition at line 761 of file AnalysisManager.cxx.

761  {
762  //******************************************************************
763 
764  AnaSuperEventB* event = LoadSuperEvent(entry);
765  if(event==NULL) return false;
766 
767  return true;
768 }
AnaSuperEventB * LoadSuperEvent(Long64_t &evtIndex)

§ LoadSuperEvent()

AnaSuperEventB * AnalysisManager::LoadSuperEvent ( Long64_t &  evtIndex)

Fill the raw AnaEventB structure and create a AnaSuperEventB from the raw event (all done by InputManagerB calls). The input entry number will be modified internally by the specific converter (hence the non-cont reference) . This will depend on whether the input file is spill based or event based.

Definition at line 933 of file AnalysisManager.cxx.

933  {
934  //******************************************************************
935  // Fill the event structure for the current event
936  if (!_input.LoadEvent(entry,true)) return NULL;
937 
938  // Get the SuperEvent
939  AnaSuperEventB* event = &_input.GetSuperEvent();
940 
941  if(event->Event->GetIsMC()){
942  if(_POT_weights.size()) event->POTWeight = _POT_weights[_input.GetChain(_input.GetConverter().GetTreeName().c_str())->GetTreeNumber()];
943  }
944 
945  return event;
946 }
InputManager _input
An instance of the input manager.
std::vector< Float_t > _POT_weights
The POT weight for each MC file loaded into the Analysis Manager.
bool LoadEvent(Long64_t &entry, bool delPrevious=true)
const std::string & GetTreeName()
returns the name of the tree to convert
TChain * GetChain(const std::string &name)
Get a TChain with a specific name from the selected converter.
InputConverter & GetConverter()
Get the current selected converter.
AnaSuperEventB & GetSuperEvent()
Create the event.

§ ProcessEvent() [1/4]

bool AnalysisManager::ProcessEvent ( const ToyExperiment toy,
AnaEventB event,
std::vector< Weight_h > &  totalWeightSystVector,
std::vector< Weight_h > &  fluxWeightSystVector 
)

Process one event. The input is the event. The output is a boolean (return value) telling us whether at least one selection was passes for the current event, and a vector of Weight_hs with the weights for each selection

Definition at line 494 of file AnalysisManager.cxx.

494  {
495  //******************************************************************
496 
497  // Method not computing the POTweight
498  Float_t POTweight;
499  return ProcessEvent(toy,event,totalWeightSystVector,fluxWeightSystVector,POTweight);
500 }
bool ProcessEvent(const ToyExperiment &toy, AnaEventB &event, std::vector< Weight_h > &totalWeightSystVector, std::vector< Weight_h > &fluxWeightSystVector)

§ ProcessEvent() [2/4]

bool AnalysisManager::ProcessEvent ( const ToyExperiment toy,
AnaEventB event,
std::vector< Weight_h > &  totalWeightSystVector,
std::vector< Weight_h > &  fluxWeightSystVector,
Float_t &  POTweight 
)

The vector of systematic weights (one entry per systematic)

Clear the vector of weight and flux systematics (a entry per selection)

Apply the systematics variations (for all selections) The event will be modified. All actions below should proceed on the modified event

Loop over selections

Initialize the Flux Weight Systematic to 1 (in the case it is not applied)

Initialize the total weight of Weight Systematics to 1 (in the case they are not applied)

Apply the flux weight

Compute the weight for this selection by applying the systematic weights.

Definition at line 513 of file AnalysisManager.cxx.

513  {
514  //******************************************************************
515 
516  /*
517  This Method Process one event. That means:
518 
519  1. Apply systematic variations
520  2. Loop over selections. And for each selection:
521  2a. Apply all steps
522  2b. Compute the systematic weight when all cuts are passed
523 
524  Input:
525  - AnaEventB, but the one to be modified (event). Contains the SystBox
526 
527  - ToyExperiment, the toy experiment definition with the variation for each systematic (toy)
528  Output:
529  - EventSummary (part of the AnaEventB) containing high level info (candidate, etc)
530  - The vector of weights for each selection
531 
532  Return value:
533  - true when at least one selection has been passed
534 
535  */
536  bool passed=false;
537 
538  /// The vector of systematic weights (one entry per systematic)
539  Int_t nWeightSyst= eweight().GetNEnabledEventWeights();
540  Weight_h* weightSystDummy;
541  anaUtils::CreateArray(weightSystDummy, nWeightSyst);
542 
543  /// Clear the vector of weight and flux systematics (a entry per selection)
544  totalWeightSystVector.clear();
545  fluxWeightSystVector.clear();
546 
547  /// Apply the systematics variations (for all selections)
548  /// The event will be modified. All actions below should proceed on the modified event
549  if (_applyEventVariations && event.GetIsMC()){
550  // First, reset the event to the original data
551  // if (syst().UndoEventVariations(event)) _input.ResetSpillToRaw();
552  // Now apply variations to original spill
553  evar().ApplyEventVariations(toy, event);
554  }
555 
556 
557  // Reset event summary sample before applying all selections
558  static_cast<AnaEventSummaryB*>(event.Summary)->ResetSummary();
559 
560  /// Loop over selections
561  for (std::vector<SelectionBase*>::iterator it=sel().GetSelections().begin();it!=sel().GetSelections().end();it++){
562  SelectionBase& selec = **it;
563 
564  // only enabled selections
565  if (!selec.IsEnabled()) continue;
566  // check we should apply this selection to this run period
567  if (!CheckSelectionAgainstRunPeriod(*it, anaUtils::GetRunPeriod(static_cast<AnaEventB*>(&event)->EventInfo.Run))) continue;
568 
569  /// Initialize the Flux Weight Systematic to 1 (in the case it is not applied)
570  Weight_h fluxWeightSyst=1.;
571 
572  /// Initialize the total weight of Weight Systematics to 1 (in the case they are not applied)
573  Weight_h totalWeightSyst = 1;
574  bool redo;
575  bool passed_temp = selec.Apply(event,redo);
576 
577  if (passed_temp && event.GetIsMC()){
578 
579  /// Apply the flux weight
580  if (_flux && event.Summary && !event.GetIsSandMC())
581  if (static_cast<AnaEventSummaryB*>(event.Summary)->TrueVertex[selec.GetSampleId()])
582  fluxWeightSyst *=_flux->GetWeight(static_cast<AnaEventSummaryB*>(event.Summary)->TrueVertex[selec.GetSampleId()], anaUtils::GetRunPeriod(static_cast<AnaEventB*>(&event)->EventInfo.Run));
583 
584  /// Compute the weight for this selection by applying the systematic weights.
586  // apply the detector weight systematics
587  if (_applyEventWeights){
588  totalWeightSyst = eweight().ComputeEventWeights(selec, toy, event, selec.GetPreviousToyBox(event), weightSystDummy);
589  }
590  // apply the Flux systematic independently
591  if (_applyFluxWeightSystematic && !event.GetIsSandMC()){
592  fluxWeightSyst *= syst().ApplyFluxSystematics(toy, event, selec.GetPreviousToyBox(event));
593  }
594  }
595  }
596 
597  // add the total weight and flux weight to the vector
598  totalWeightSystVector.push_back(totalWeightSyst);
599  fluxWeightSystVector.push_back(fluxWeightSyst);
600 
601  // If any of the selections is passed the overall passed is true
602  if (passed_temp) passed=true;
603  }
604 
605  // computes the POT normalization for the current event
606  if (_currentSampleGroup){
607  Float_t POTdata=0;
608  Float_t POTmc=0;
609  Float_t POTsand=0;
610  _currentSampleGroup->GetPOT(POTdata, POTmc, POTsand);
611  POTweight = POTdata/POTmc;
612  }
613 
614  delete [] weightSystDummy;
615 
616  return passed;
617 }
UInt_t GetNEnabledEventWeights()
Returns the number of enabled EventWeights.
bool _applyEventVariations
whether to apply detector event variation or not
bool GetIsSandMC() const
Return whether this event is from Sand Monte Carlo or not.
bool _applyFluxWeightSystematic
whether to apply Flux weight systematic or not
virtual SampleId_h GetSampleId()
Return the sample type, needed by fitters.
bool CheckSelectionAgainstRunPeriod(SelectionBase *selec, int RunPeriod)
const ToyBoxB & GetPreviousToyBox(const AnaEventC &event) const
Get the ToyBox of the last processed toy for a particular event.
void GetPOT(Float_t &POTdata, Float_t &POTmc)
Get the good data and MC POT for this sample group.
Definition: Experiment.cxx:98
std::vector< SelectionBase * > & GetSelections()
Return the map of selections.
Weight_h ApplyFluxSystematics(const ToyExperiment &toy, const AnaEventC &event, const ToyBoxB &ToyBox)
Apply all fluxSystematics. Returns the total event Weight.
SelectionManager & sel()
Returns the selection manager.
int GetRunPeriod(int run, int subrun=-1)
Returns the run period (sequentially: 0,1,2,3,4,5 ...)
EventVariationManager & evar()
Returns the EventVariation manager.
Float_t GetWeight(AnaTrueVertexB *vertex, int RunPeriod)
bool Apply(AnaEventC &event, bool &redo)
Apply all steps in the selection.
bool GetIsMC() const
Return whether this event is from Monte Carlo or not.
AnaEventSummaryC * Summary
A summary of the event with high level quantities.
void ApplyEventVariations(const ToyExperiment &toy, AnaEventC &event)
Apply all EventVariations.
FluxWeighting * _flux
Access to the flux weighting.
Weight_h ComputeEventWeights(const ToyExperiment &toy, const AnaEventC &event, const ToyBoxB &ToyBox)
Compute all eventWeights. Returns the total event normalization weight.
SystematicManager & syst()
Returns the systematic manager.
EventWeightManager & eweight()
Returns the EventWeight manager.
bool _applyEventWeights
whether to apply detector event weight or not

§ ProcessEvent() [3/4]

bool AnalysisManager::ProcessEvent ( AnaEventB event,
Float_t &  POTWeight 
)

Loop over selections

Apply the selection

Definition at line 712 of file AnalysisManager.cxx.

712  {
713  //******************************************************************
714 
715  /*
716  This Method Process one event. That means:
717 
718  2. Loop over selections. And for each selection:
719  2a. Apply all steps
720 
721  Input:
722  - AnaEventB, but the one to be modified (event). Contains the SystBox
723 
724  Output:
725  - EventSummary (part of the AnaEventB) containing high level info (candidate, etc)
726 
727  Return value:
728  - true when at least one selection has been passed
729 
730  */
731  bool passed=false;
732  /// Loop over selections
733 
734  // Reset event summary sample before applying all selections
735  static_cast<AnaEventSummaryB*>(event.Summary)->ResetSummary();
736 
737  for (std::vector<SelectionBase*>::iterator it=sel().GetSelections().begin();it!=sel().GetSelections().end();it++){
738  SelectionBase& selec = **it;
739  // only enabled selections
740  if (!selec.IsEnabled()) continue;
741  if (!CheckSelectionAgainstRunPeriod(*it, anaUtils::GetRunPeriod(static_cast<AnaEventB*>(&event)->EventInfo.Run))) continue;
742 
743  /// Apply the selection
744  bool redo;
745  if (selec.Apply(event, redo)) passed=true;
746  }
747 
748  // computes the POT normalization for the current event
749  if (_currentSampleGroup){
750  Float_t POTdata=0;
751  Float_t POTmc=0;
752  Float_t POTsand=0;
753  _currentSampleGroup->GetPOT(POTdata, POTmc, POTsand);
754  POTweight = POTdata/POTmc;
755  }
756 
757  return passed;
758 }
bool CheckSelectionAgainstRunPeriod(SelectionBase *selec, int RunPeriod)
void GetPOT(Float_t &POTdata, Float_t &POTmc)
Get the good data and MC POT for this sample group.
Definition: Experiment.cxx:98
std::vector< SelectionBase * > & GetSelections()
Return the map of selections.
SelectionManager & sel()
Returns the selection manager.
int GetRunPeriod(int run, int subrun=-1)
Returns the run period (sequentially: 0,1,2,3,4,5 ...)
bool Apply(AnaEventC &event, bool &redo)
Apply all steps in the selection.

§ ProcessEvent() [4/4]

bool AnalysisManager::ProcessEvent ( const ToyExperiment toy,
AnaEventB event,
Weight_h totalWeight,
Weight_h FluxWeightSyst 
)

Process one event method for use in BANFF and MaCh3 fitters.

Apply the systematics variations (for all selections) The event will be modified. All actions below should proceed on the modified event

Loop over selections

Initialize the Flux Weight Systematic to 1 (in the case it is not applied)

Initialize the total weight of Weight Systematics to 1 (in the case they are not applied)

Apply the flux weight

Compute the weight for this selection by applying the systematic weights.

Definition at line 620 of file AnalysisManager.cxx.

620  {
621  //******************************************************************
622 
623  /*
624  This Method Process one event. That means:
625 
626  1. Apply systematic variations
627  2. Loop over selections. And for each selection:
628  2a. Apply all steps
629  2b. Compute the systematic weight when all cuts are passed
630 
631  Input:
632  - AnaEventB, but the one to be modified (event). Contains the SystBox
633 
634  - ToyExperiment, the toy experiment definition with the variation for each systematic (toy)
635  Output:
636  - EventSummary (part of the AnaEventB) containing high level info (candidate, etc)
637  - The vector of weights for each selection
638 
639  Return value:
640  - true when at least one selection has been passed
641 
642  */
643  bool passed=false;
644 
645 
646  /// Apply the systematics variations (for all selections)
647  /// The event will be modified. All actions below should proceed on the modified event
648  if (evar().GetNEventVariations() && _applyEventVariations && event.GetIsMC()){
649  // First, reset the event to the original data
650  // if (syst().UndoEventVariations(event)) _input.ResetSpillToRaw();
651  //GetSystematicVariationIndex(const std::string& name)
652  // Now apply variations to original spill
653  evar().ApplyEventVariations(toy, event);
654  }
655 
656  // Reset event summary sample before applying all selections
657  static_cast<AnaEventSummaryB*>(event.Summary)->ResetSummary();
658 
659  Int_t nWeightSyst= eweight().GetNEnabledEventWeights();
660  Weight_h* weightSystDummy;
661  anaUtils::CreateArray(weightSystDummy, nWeightSyst);
662 
663  /// Loop over selections
664  for (std::vector<SelectionBase*>::iterator it=sel().GetSelections().begin();it!=sel().GetSelections().end();it++){
665  SelectionBase& selec = **it;
666 
667  // only enabled selections
668  if (!selec.IsEnabled()) continue;
669  // check we should apply this selection to this run period
670  if (!CheckSelectionAgainstRunPeriod(*it, anaUtils::GetRunPeriod(static_cast<AnaEventB*>(&event)->EventInfo.Run))) continue;
671 
672  /// Initialize the Flux Weight Systematic to 1 (in the case it is not applied)
673  fluxWeightSyst=1.;
674 
675  /// Initialize the total weight of Weight Systematics to 1 (in the case they are not applied)
676  totalweight = 1;
677 
678  bool redo;
679  bool passed_temp = selec.Apply(event,redo);
680 
681  if(passed_temp && passed) std::cout << "DOUBLE EVENT SELECTION ON selec.GetSampleId() = " << selec.GetSampleId() << std::endl;
682  if(passed_temp) passed = 1;
683 
684  if (passed_temp && event.GetIsMC()){
685 
686  /// Apply the flux weight
687  if (_flux && event.Summary)
688  if (static_cast<AnaEventSummaryB*>(event.Summary)->TrueVertex[selec.GetSampleId()] && !event.GetIsSandMC())
689  fluxWeightSyst *=_flux->GetWeight(static_cast<AnaEventSummaryB*>(event.Summary)->TrueVertex[selec.GetSampleId()], anaUtils::GetRunPeriod(static_cast<AnaEventB*>(&event)->EventInfo.Run));
690 
691  /// Compute the weight for this selection by applying the systematic weights.
693  // apply the detector weight systematics
694  if (_applyEventWeights){
695  totalweight = eweight().ComputeEventWeights(selec,toy, event, selec.GetPreviousToyBox(event),weightSystDummy);
696  }
697  // apply the Flux systematic independently
698  if (_applyFluxWeightSystematic && !event.GetIsSandMC()){
699  fluxWeightSyst *= syst().ApplyFluxSystematics(toy, event, selec.GetPreviousToyBox(event));
700  }
701  }
702  }
703 
704  //weights.push_back(weight);
705  // If any of the selections is passed the overall passed is true
706  if (passed_temp) return true;
707  }
708  return passed;
709 }
UInt_t GetNEnabledEventWeights()
Returns the number of enabled EventWeights.
bool _applyEventVariations
whether to apply detector event variation or not
bool GetIsSandMC() const
Return whether this event is from Sand Monte Carlo or not.
bool _applyFluxWeightSystematic
whether to apply Flux weight systematic or not
virtual SampleId_h GetSampleId()
Return the sample type, needed by fitters.
bool CheckSelectionAgainstRunPeriod(SelectionBase *selec, int RunPeriod)
const ToyBoxB & GetPreviousToyBox(const AnaEventC &event) const
Get the ToyBox of the last processed toy for a particular event.
std::vector< SelectionBase * > & GetSelections()
Return the map of selections.
Weight_h ApplyFluxSystematics(const ToyExperiment &toy, const AnaEventC &event, const ToyBoxB &ToyBox)
Apply all fluxSystematics. Returns the total event Weight.
SelectionManager & sel()
Returns the selection manager.
int GetRunPeriod(int run, int subrun=-1)
Returns the run period (sequentially: 0,1,2,3,4,5 ...)
EventVariationManager & evar()
Returns the EventVariation manager.
Float_t GetWeight(AnaTrueVertexB *vertex, int RunPeriod)
bool Apply(AnaEventC &event, bool &redo)
Apply all steps in the selection.
bool GetIsMC() const
Return whether this event is from Monte Carlo or not.
AnaEventSummaryC * Summary
A summary of the event with high level quantities.
void ApplyEventVariations(const ToyExperiment &toy, AnaEventC &event)
Apply all EventVariations.
FluxWeighting * _flux
Access to the flux weighting.
Weight_h ComputeEventWeights(const ToyExperiment &toy, const AnaEventC &event, const ToyBoxB &ToyBox)
Compute all eventWeights. Returns the total event normalization weight.
SystematicManager & syst()
Returns the systematic manager.
EventWeightManager & eweight()
Returns the EventWeight manager.
bool _applyEventWeights
whether to apply detector event weight or not

Member Data Documentation

§ _initialisePionSystematics

bool AnalysisManager::_initialisePionSystematics
protected

Flag to tell psyche whether to initialise pion systematics, taken from parameters file Pion systematic initialisation is very very slow, so disabling this when it is not needed speeds the event loading by a factor of 30

Definition at line 217 of file AnalysisManager.hxx.


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