MarlinTPC  1.2.0
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
marlintpc::ElectronCloudDrifterProcessor Class Reference

ElectronCloudDrifterProcessor : This processor takes a collection of electron clouds from a previous processor and drifts them a supplied distance. More...

#include <ElectronCloudDrifterProcessor.h>

Inheritance diagram for marlintpc::ElectronCloudDrifterProcessor:

Classes

struct  driftInfo
 Detailed information about the drift path. More...
 
struct  DriftParameters
 

Public Member Functions

 ElectronCloudDrifterProcessor ()
 constructor
 
 ~ElectronCloudDrifterProcessor ()
 destructor
 
virtual Processor * newProcessor ()
 used by Marlin to create a new processor
 
virtual void init ()
 Called at the begin of the job before anything is read. More...
 
virtual void processRunHeader (lcio::LCRunHeader *run)
 Called for every run.
 
virtual void processEvent (lcio::LCEvent *evt)
 Called for every event - the working horse.
 
virtual void check (lcio::LCEvent *evt)
 Called after the event has been processed.
 
virtual void end ()
 Called after data processing for clean up.
 

Static Public Member Functions

static int ion_drift_derivative (double t, const double y[], double f[], void *params)
 the derivative function used for the GSL ode solving function
 
static int drift_through_cylinder (double(&)[4], const double min_radius, const double max_radius, const double min_z, const double max_z, const double drift_velocity, const double omega_tau, const bool disable_magnetic_field=false, marlintpc::ElectronCloudDrifterProcessor *processor=0)
 the static drifting function that can be used by other processors (ie the LikelihoodFitter)
 

Public Attributes

int _current_cloud
 Number of the current cloud needed by AIDA.
 

Detailed Description

ElectronCloudDrifterProcessor : This processor takes a collection of electron clouds from a previous processor and drifts them a supplied distance.

The parameters of the processor are designed to specify the area in which the drift occurs. It currently uses a adaptive Runge-Kutta-Fehlberg method for drifting the electrons in a non-uniform magnetic field.

Author
J. Abernathy (UVic)

If an AIDA processor is used the position, velocity,

\[E_{z}\]

,

\[B_{z}\]

and

\[B_{r}\]

at each step of the drift are stored in a root tree. This is done for each cloud and each event. The number of clouds is taken from the first event, and therefore it is assumed that the number of clouds per event is constant.

Author
K. Zenker (DESY)

Member Function Documentation

void marlintpc::ElectronCloudDrifterProcessor::init ( )
virtual

Called at the begin of the job before anything is read.

Use to initialize the processor, e.g. book histograms.


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