//////////////////////////////////////////////////////////////////////// // Processor for applying the neutrino oscillatinos effect to reactor // antineutrinos. // // Author: Stefan-Alexandru Nae // // REVISION HISTORY: // 2016-10-19 : Stefan-Alexandru Nae - Initial version // 2017-02-13 : N Barros - Fixed bug in debugging message // 2017-12-05 : I Coulter - Moved bulk of code into DU // // ReactorNuOscProc is a conditional processor. It evaluates if an // antineutrino should have oscillated. If the antineutrino oscillated // it returns OKFALSE, else it returns OKTRUE. // // Requires reactor entries in REACTORS.ratdb to have a "distance" // entry (label) with values for each core in [km]. "index" entries // (labels) with values corresponding to reactors found in the .root // reactor antineutrino events file used as input MUST exist (the // detabase will throw an error in case the reactor does not exist). //////////////////////////////////////////////////////////////////////// #ifndef __RAT_ReactorNuOscProc__ #define __RAT_ReactorNuOscProc__ #include #include #include #include namespace RAT { class ReactorNuOscProc : public Processor { public: ReactorNuOscProc(); virtual ~ReactorNuOscProc(); // virtual void BeginOfRun(DS::Run &run); // Access to events, one by one, in loop virtual Processor::Result DSEvent(DS::Run &run, DS::Entry &ds); protected: DU::ReactorNuOsc fReactorNuOsc; }; } // namespace RAT #endif // __RAT_ReactorNuOscProc__