#ifndef ROOT_THaElossCorrection
#define ROOT_THaElossCorrection
#include "THaPhysicsModule.h"
#include "TString.h"
class THaVertexModule;
class THaElossCorrection : public THaPhysicsModule {
public:
virtual ~THaElossCorrection();
virtual void Clear( Option_t* opt="" );
virtual EStatus Init( const TDatime& run_time );
Double_t GetMass() const { return fM; }
Double_t GetEloss() const { return fEloss; }
void SetInputModule( const char* name );
void SetMass( Double_t m );
void SetTestMode( Bool_t enable=kTRUE,
Double_t eloss_value=0.0 );
void SetMedium( Double_t Z, Double_t A,
Double_t density );
void SetPathlength( Double_t pathlength );
void SetPathlength( const char* vertex_module,
Double_t z_ref , Double_t scale = 1.0 );
static Double_t ElossElectron( Double_t beta, Double_t z_med,
Double_t a_med,
Double_t d_med ,
Double_t pathlength );
static Double_t ElossHadron( Int_t Z_hadron, Double_t beta,
Double_t z_med, Double_t a_med,
Double_t d_med ,
Double_t pathlength );
protected:
Double_t fEloss;
Double_t fM;
Int_t fZ;
Double_t fZmed;
Double_t fAmed;
Double_t fDensity;
Double_t fPathlength;
Double_t fZref;
Double_t fScale;
Bool_t fTestMode;
Bool_t fElectronMode;
Bool_t fExtPathMode;
TString fInputName;
TString fVertexName;
THaVertexModule* fVertexModule;
virtual Int_t DefineVariables( EMode mode = kDefine );
virtual Int_t ReadRunDatabase( const TDatime& date );
THaElossCorrection( const char* name, const char* description,
const char* input = "",
Double_t particle_mass = 0.511e-3 ,
Int_t hadron_charge = 1 );
private:
static Double_t ExEnerg( Double_t z_med, Double_t d_med );
static void HaDensi( Double_t z_med, Double_t d_med,
Double_t& X0, Double_t& X1, Double_t& M );
ClassDef(THaElossCorrection,0)
};
#endif
Last change: Sat Nov 7 21:26:45 2009
Last generated: 2009-11-07 21:26
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.