23#ifndef RestCore_TRestAxionFieldPropagationProcess
24#define RestCore_TRestAxionFieldPropagationProcess
26#include "TRestAxionEvent.h"
27#include "TRestAxionEventProcess.h"
28#include "TRestAxionField.h"
29#include "TRestAxionMagneticField.h"
30#include "TRestPhysics.h"
50 TVector3
fReMap = TVector3(30, 30, 100);
75 RESTMetadata <<
"Integration parameters" <<
RESTendl;
80 RESTMetadata <<
"Field re-mapping size : (" <<
fReMap.X() <<
", " <<
fReMap.Y() <<
", " <<
fReMap.Z()
90 const char*
GetProcessName()
const override {
return "axionFieldPropagation"; }
A metadata class to define the gas properties used in axion search calculations.
A base class for any axion event process. Defines position, rotation and component displacement.
void BeginPrintProcess()
Pre-defined printer, can be used at the beginning in the implementation of PrintMetadata()
TRestAxionEvent * fAxionEvent
A pointer to the specific TRestAxionEvent.
void EndPrintProcess()
Adds the footer for PrintMetadata.
A process to introduce the magnetic field profile integration along the track.
Int_t fNumIntervals
Number of intervales used by the GSL integrator.
TRestEvent * ProcessEvent(TRestEvent *eventInput) override
Process one event.
void InitProcess() override
Process initialization. Data members that require initialization just before start processing should ...
RESTValue GetInputEvent() const override
Get pointer to input event. Must be implemented in the derived class.
TRestAxionField * fAxionField
A pointer to TRestAxionField that implements probability calculations.
~TRestAxionFieldPropagationProcess()
Default destructor.
TVector3 fReMap
It will re-size the cells in the magnetic field (affecting the time required for integral computation...
RESTValue GetOutputEvent() const override
Get pointer to output event. Must be implemented in the derived class.
TRestAxionBufferGas * fBufferGas
A pointer to TRestBufferGas given to TRestAxionField to perform calculations in a particular gas.
const char * GetProcessName() const override
Returns the name of this process.
Double_t fAccuracy
The tolerance or accuracy used inside the GSL integrator.
TRestAxionFieldPropagationProcess()
Default constructor.
void PrintMetadata() override
It prints out the process parameters stored in the metadata structure.
Int_t fQawoLevels
Number of levels used by the GSL integrator to parameterize the cosine integral.
Double_t fBufferGasAdditionalLength
The additional length in mm that the converted photon propagates without magnetic field.
TRestAxionMagneticField * fMagneticField
A pointer to the magnetic field description stored in TRestRun.
void Initialize() override
Function to initialize input/output event members and define the section name.
A basic class to define analytical axion-photon conversion calculations for axion helioscopes.
A class to load magnetic field maps and evaluate the field on those maps including interpolation.
A base class for any REST event.