AliRoot Core  v5-06-30 (35d6c57)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliTPCExBFirst Class Reference

This implementation AliTPCExB is using an aproximate calculation of the ExB effect. More...

#include <AliTPCExBFirst.h>

Inheritance diagram for AliTPCExBFirst:

Public Member Functions

 AliTPCExBFirst ()
 
 AliTPCExBFirst (const AliMagF *bField, Double_t driftVelocity, Int_t nx=100, Int_t ny=100, Int_t nz=100)
 
virtual ~AliTPCExBFirst ()
 
virtual void Correct (const Double_t *position, Double_t *corrected)
 
void TestThisBeautifulObject (const char *fileName)
 
void SetDriftVelocity (Double_t driftVelocity)
 
- Public Member Functions inherited from AliTPCExB
 AliTPCExB ()
 
AliTPCExBoperator= (const AliTPCExB &exb)
 
 AliTPCExB (const AliTPCExB &exb)
 
virtual ~AliTPCExB ()
 
virtual void CorrectInverse (const Double_t *position, Double_t *corrected)
 
void TestExB (const char *fileName)
 
Double_t Eval (Int_t type, Double_t r, Double_t phi, Double_t z)
 
Double_t SEval (Int_t type, Double_t r, Double_t phi, Double_t z)
 

Protected Attributes

Double_t fDriftVelocity
 The electron drift velocity. More...
 

Private Member Functions

AliTPCExBFirstoperator= (const AliTPCExBFirst &)
 
 AliTPCExBFirst (const AliTPCExBFirst &)
 
void ConstructCommon (const AliMagF *bField)
 
void GetMeanFields (Double_t rx, Double_t ry, Double_t rz, Double_t *Bx, Double_t *By) const
 

Private Attributes

Int_t fkNX
 field mesh points in x direction More...
 
Int_t fkNY
 field mesh points in y direction More...
 
Int_t fkNZ
 field mesh points in z direction More...
 
Double_t fkXMin
 the first grid point in x direction More...
 
Double_t fkXMax
 the last grid point in x direction More...
 
Double_t fkYMin
 the first grid point in y direction More...
 
Double_t fkYMax
 the last grid point in y direction More...
 
Double_t fkZMin
 the first grid point in z direction More...
 
Double_t fkZMax
 the last grid point in z direction More...
 
Int_t fkNMean
 
Double_t * fkMeanBx
 the mean field in x direction upto a certain z value More...
 
Double_t * fkMeanBy
 the mean field in y direction upto a certain z value More...
 
Double_t fkMeanBz
 the mean field in z direction inside the TPC volume More...
 

Static Private Attributes

static const Double_t fgkEM =1.602176487e-19/9.10938215e-31
 ! elementary charge over electron mass (C/kg) More...
 
static const Double_t fgkDriftField =-40.e3
 ! the TPC drift field (V/m) (modulus) More...
 

Additional Inherited Members

- Static Public Member Functions inherited from AliTPCExB
static Double_t GetDr (Double_t r, Double_t phi, Double_t z, Double_t bz=5)
 
static Double_t GetDrphi (Double_t r, Double_t phi, Double_t z, Double_t bz=5)
 
static Double_t GetDphi (Double_t r, Double_t phi, Double_t z, Double_t bz=5)
 
static Double_t GetDz (Double_t r, Double_t phi, Double_t z, Double_t bz=5)
 
static AliTPCExBInstance ()
 
static void SetInstance (AliTPCExB *const param)
 
static void RegisterField (Int_t index, AliMagF *magf)
 
static Double_t GetBx (Double_t r, Double_t phi, Double_t z, Int_t index=0)
 
static Double_t GetBy (Double_t r, Double_t phi, Double_t z, Int_t index=0)
 
static Double_t GetBz (Double_t r, Double_t phi, Double_t z, Int_t index=0)
 
static Double_t GetBr (Double_t r, Double_t phi, Double_t z, Int_t index=0)
 
static Double_t GetBrfi (Double_t r, Double_t phi, Double_t z, Int_t index=0)
 
static Double_t GetBxI (Double_t r, Double_t phi, Double_t z, Int_t index=0)
 
static Double_t GetByI (Double_t r, Double_t phi, Double_t z, Int_t index=0)
 
static Double_t GetBzI (Double_t r, Double_t phi, Double_t z, Int_t index=0)
 
static Double_t GetBrI (Double_t r, Double_t phi, Double_t z, Int_t index=0)
 
static Double_t GetBrfiI (Double_t r, Double_t phi, Double_t z, Int_t index=0)
 
static Double_t EvalMat (const TVectorD &vec, Double_t r, Double_t phi, Double_t z)
 

Detailed Description

This implementation AliTPCExB is using an aproximate calculation of the ExB effect.

An approximate (first order) implementation of the ExB effect.

Therefore the drift ODE is Taylor expanded and only the first order part is taken.

The ExB correction map is stored in the calib DB To test current version:

char *storage = "local://OCDBres"
Int_t RunNumber=0;
AliCDBManager::Instance()->SetDefaultStorage(storage);
AliCDBManager::Instance()->SetRun(RunNumber)
// exb->TestExB("exb.root");
// TFile f("exb.root");
//positions->Draw("drphi");

Definition at line 14 of file AliTPCExBFirst.h.

Constructor & Destructor Documentation

AliTPCExBFirst::AliTPCExBFirst ( )

purely for I/O

Definition at line 52 of file AliTPCExBFirst.cxx.

AliTPCExBFirst::AliTPCExBFirst ( const AliMagF *  bField,
Double_t  driftVelocity,
Int_t  nx = 100,
Int_t  ny = 100,
Int_t  nz = 100 
)

The constructor. One has to supply a magnetic field and an (initial) drift velocity. Since some kind of lookuptable is created the number of its meshpoints can be supplied.

ConstructCommon(0,bField);

Definition at line 64 of file AliTPCExBFirst.cxx.

AliTPCExBFirst::~AliTPCExBFirst ( )
virtual

destruct the poor object.

Definition at line 124 of file AliTPCExBFirst.cxx.

AliTPCExBFirst::AliTPCExBFirst ( const AliTPCExBFirst )
private

Member Function Documentation

void AliTPCExBFirst::ConstructCommon ( const AliMagF *  bField)
private

THIS IS PRIVATE! (a helper for the constructor)

Definition at line 207 of file AliTPCExBFirst.cxx.

Referenced by AliTPCExBFirst().

void AliTPCExBFirst::Correct ( const Double_t *  position,
Double_t *  corrected 
)
virtual

correct for the distortion

Implements AliTPCExB.

Definition at line 131 of file AliTPCExBFirst.cxx.

Referenced by TestThisBeautifulObject().

void AliTPCExBFirst::GetMeanFields ( Double_t  rx,
Double_t  ry,
Double_t  rz,
Double_t *  Bx,
Double_t *  By 
) const
private

THIS IS PRIVATE! (calculates the mean field utilising a lookup table)

Definition at line 250 of file AliTPCExBFirst.cxx.

Referenced by Correct().

AliTPCExBFirst& AliTPCExBFirst::operator= ( const AliTPCExBFirst )
private
void AliTPCExBFirst::SetDriftVelocity ( Double_t  driftVelocity)
inline

Definition at line 23 of file AliTPCExBFirst.h.

void AliTPCExBFirst::TestThisBeautifulObject ( const char *  fileName)

well, as the name sais...

Definition at line 169 of file AliTPCExBFirst.cxx.

Member Data Documentation

Double_t AliTPCExBFirst::fDriftVelocity
protected

The electron drift velocity.

Definition at line 25 of file AliTPCExBFirst.h.

Referenced by Correct(), and SetDriftVelocity().

const Double_t AliTPCExBFirst::fgkDriftField =-40.e3
staticprivate

! the TPC drift field (V/m) (modulus)

Definition at line 51 of file AliTPCExBFirst.h.

Referenced by Correct().

const Double_t AliTPCExBFirst::fgkEM =1.602176487e-19/9.10938215e-31
staticprivate

! elementary charge over electron mass (C/kg)

Definition at line 50 of file AliTPCExBFirst.h.

Double_t* AliTPCExBFirst::fkMeanBx
private

the mean field in x direction upto a certain z value

Definition at line 46 of file AliTPCExBFirst.h.

Referenced by ConstructCommon(), GetMeanFields(), and ~AliTPCExBFirst().

Double_t* AliTPCExBFirst::fkMeanBy
private

the mean field in y direction upto a certain z value

Definition at line 48 of file AliTPCExBFirst.h.

Referenced by ConstructCommon(), GetMeanFields(), and ~AliTPCExBFirst().

Double_t AliTPCExBFirst::fkMeanBz
private

the mean field in z direction inside the TPC volume

Definition at line 49 of file AliTPCExBFirst.h.

Referenced by ConstructCommon(), and Correct().

Int_t AliTPCExBFirst::fkNMean
private

size of the tablE the mean fields

Definition at line 44 of file AliTPCExBFirst.h.

Referenced by ConstructCommon().

Int_t AliTPCExBFirst::fkNX
private

field mesh points in x direction

Definition at line 35 of file AliTPCExBFirst.h.

Referenced by ConstructCommon(), and GetMeanFields().

Int_t AliTPCExBFirst::fkNY
private

field mesh points in y direction

Definition at line 36 of file AliTPCExBFirst.h.

Referenced by ConstructCommon(), and GetMeanFields().

Int_t AliTPCExBFirst::fkNZ
private

field mesh points in z direction

Definition at line 37 of file AliTPCExBFirst.h.

Referenced by ConstructCommon(), and GetMeanFields().

Double_t AliTPCExBFirst::fkXMax
private

the last grid point in x direction

Definition at line 39 of file AliTPCExBFirst.h.

Referenced by ConstructCommon(), and GetMeanFields().

Double_t AliTPCExBFirst::fkXMin
private

the first grid point in x direction

Definition at line 38 of file AliTPCExBFirst.h.

Referenced by ConstructCommon(), and GetMeanFields().

Double_t AliTPCExBFirst::fkYMax
private

the last grid point in y direction

Definition at line 41 of file AliTPCExBFirst.h.

Referenced by ConstructCommon(), and GetMeanFields().

Double_t AliTPCExBFirst::fkYMin
private

the first grid point in y direction

Definition at line 40 of file AliTPCExBFirst.h.

Referenced by ConstructCommon(), and GetMeanFields().

Double_t AliTPCExBFirst::fkZMax
private

the last grid point in z direction

Definition at line 43 of file AliTPCExBFirst.h.

Referenced by ConstructCommon(), and GetMeanFields().

Double_t AliTPCExBFirst::fkZMin
private

the first grid point in z direction

Definition at line 42 of file AliTPCExBFirst.h.

Referenced by ConstructCommon(), and GetMeanFields().


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