ROOT logo
Podd » SRC » THaElossCorrection

class THaElossCorrection: public THaPhysicsModule

Function Members (Methods)

 
    This is an abstract class, constructors will not be documented.
    Look at the header to check for available constructors.

public:
virtual~THaElossCorrection()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual Int_tTHaAnalysisObject::Begin(THaRunBase* r = 0)
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidClear(Option_t* opt = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
boolTHaPhysicsModule::DataValid() const
static Int_tTHaAnalysisObject::DefineVarsFromList(const void* list, THaAnalysisObject::EType type, THaAnalysisObject::EMode mode, const char* var_prefix, const TObject* obj, const char* prefix, const char* here)
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
static Double_tElossElectron(Double_t beta, Double_t z_med, Double_t a_med, Double_t d_med, Double_t pathlength)
static Double_tElossHadron(Int_t Z_hadron, Double_t beta, Double_t z_med, Double_t a_med, Double_t d_med, Double_t pathlength)
virtual Int_tTHaAnalysisObject::End(THaRunBase* r = 0)
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
static voidTHaAnalysisObject::GeoToSph(Double_t th_geo, Double_t ph_geo, Double_t& th_sph, Double_t& ph_sph)
const char*THaAnalysisObject::GetClassName() const
const char*THaAnalysisObject::GetConfig() const
virtual const char*THaAnalysisObject::GetDBFileName() const
Int_tTHaAnalysisObject::GetDebug() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Double_tGetEloss() const
virtual const char*TObject::GetIconName() const
TDatimeTHaAnalysisObject::GetInitDate() const
Double_tGetMass() const
virtual const char*TNamed::GetName() const
static TString&THaAnalysisObject::GetObjArrayString(const TObjArray* params, Int_t pos)
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
const char*THaAnalysisObject::GetPrefix() const
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual THaAnalysisObject::EStatusInit(const TDatime& run_time)
virtual Int_tTHaAnalysisObject::InitOutput(THaOutput*)
virtual voidTObject::Inspect() constMENU
static Bool_tTHaAnalysisObject::IntersectPlaneWithRay(const TVector3& xax, const TVector3& yax, const TVector3& org, const TVector3& ray_start, const TVector3& ray_vect, Double_t& length, TVector3& intersect)
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTHaAnalysisObject::IsInit() const
boolTHaPhysicsModule::IsMultiTrack() const
Bool_tTHaAnalysisObject::IsOK() const
Bool_tTHaAnalysisObject::IsOKOut()
Bool_tTObject::IsOnHeap() const
boolTHaPhysicsModule::IsSingleTrack() const
virtual Bool_tTNamed::IsSortable() const
static boolTHaAnalysisObject::IsTag(const char* buf)
Bool_tTObject::IsZombie() const
static Int_tTHaAnalysisObject::LoadDB(FILE* file, const TDatime& date, const DBRequest* request, const char* prefix, Int_t search = 0, const char* here = "THaAnalysisObject::LoadDB")
static Int_tTHaAnalysisObject::LoadDBvalue(FILE* file, const TDatime& date, const char* tag, Double_t& value)
static Int_tTHaAnalysisObject::LoadDBvalue(FILE* file, const TDatime& date, const char* tag, Int_t& value)
static Int_tTHaAnalysisObject::LoadDBvalue(FILE* file, const TDatime& date, const char* tag, string& text)
static Int_tTHaAnalysisObject::LoadDBvalue(FILE* file, const TDatime& date, const char* tag, TString& text)
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static FILE*THaAnalysisObject::OpenFile(const char* name, const TDatime& date, const char* here = "OpenFile()", const char* filemode = "r", const int debug_flag = 1)
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
TNamed&TNamed::operator=(const TNamed& rhs)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTHaAnalysisObject::Print(Option_t* opt = "") const
static voidTHaAnalysisObject::PrintObjects(Option_t* opt = "")
virtual Int_tTHaPhysicsModule::Process(const THaEvData&)
virtual Int_tTObject::Read(const char* name)
static Int_tTHaAnalysisObject::ReadDBline(FILE* fp, char* buf, size_t bufsiz, string& line)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
static Int_tTHaAnalysisObject::SeekDBconfig(FILE* file, const char* tag, const char* label = "config", Bool_t end_on_tag = false)
static Int_tTHaAnalysisObject::SeekDBdate(FILE* file, const TDatime& date, Bool_t end_on_tag = false)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidTHaAnalysisObject::SetConfig(const char* label)
virtual voidTHaAnalysisObject::SetDebug(Int_t level)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetInputModule(const char* name)
voidSetMass(Double_t m)
voidSetMedium(Double_t Z, Double_t A, Double_t density)
virtual voidTHaAnalysisObject::SetName(const char* name)
virtual voidTHaAnalysisObject::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetPathlength(Double_t pathlength)
voidSetPathlength(const char* vertex_module, Double_t z_ref, Double_t scale = 1.0)
voidSetTestMode(Bool_t enable = kTRUE, Double_t eloss_value = 0.0)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
static voidTHaAnalysisObject::SphToGeo(Double_t th_sph, Double_t ph_sph, Double_t& th_geo, Double_t& ph_geo)
THaAnalysisObject::EStatusTHaAnalysisObject::Status() const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
static vector<std::string>THaAnalysisObject::vsplit(const string& s)
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual const char*THaAnalysisObject::ClassNameHere(const char*) const
virtual Int_tDefineVariables(THaAnalysisObject::EMode mode = kDefine)
Int_tTHaAnalysisObject::DefineVarsFromList(const VarDef* list, THaAnalysisObject::EMode mode = kDefine, const char* var_prefix = "") const
Int_tTHaAnalysisObject::DefineVarsFromList(const RVarDef* list, THaAnalysisObject::EMode mode = kDefine, const char* var_prefix = "") const
Int_tTHaAnalysisObject::DefineVarsFromList(const void* list, THaAnalysisObject::EType type, THaAnalysisObject::EMode mode, const char* var_prefix = "") const
virtual voidTHaAnalysisObject::DoError(int level, const char* location, const char* fmt, va_list va) const
THaAnalysisObject*THaAnalysisObject::FindModule(const char* name, const char* classname, bool do_error = true)
static vector<std::string>THaAnalysisObject::GetDBFileList(const char* name, const TDatime& date, const char* here = "GetDBFileList()")
virtual const char*THaAnalysisObject::Here(const char*) const
Int_tTHaAnalysisObject::LoadDB(FILE* f, const TDatime& date, const DBRequest* req, Int_t search = 0)
virtual voidTHaAnalysisObject::MakePrefix()
voidTHaAnalysisObject::MakePrefix(const char* basename)
voidTObject::MakeZombie()
virtual FILE*THaAnalysisObject::OpenFile(const TDatime& date)
virtual FILE*THaAnalysisObject::OpenRunDBFile(const TDatime& date)
voidTHaPhysicsModule::PrintInitError(const char* here)
static char*THaAnalysisObject::ReadComment(FILE* fp, char* buf, const int len)
virtual Int_tTHaAnalysisObject::ReadDatabase(const TDatime& date)
virtual Int_tReadRunDatabase(const TDatime& date)
virtual Int_tTHaAnalysisObject::RemoveVariables()
private:
static Double_tExEnerg(Double_t z_med, Double_t d_med)
static voidHaDensi(Double_t z_med, Double_t d_med, Double_t& X0, Double_t& X1, Double_t& M)

Data Members

public:
enum THaPhysicsModule::ESpecialRetval { kFatal
kTerminate
};
enum THaAnalysisObject::EStatus { kOK
kNotinit
kInitError
kFileError
};
enum THaAnalysisObject::EType { kVarDef
kRVarDef
};
enum THaAnalysisObject::EMode { kDefine
kDelete
};
enum THaAnalysisObject::EProperties { kNeedsRunDB
kConfigOverride
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
public:
static const Double_tTHaAnalysisObject::kBig= 1.e38; // default junk value
protected:
Double_tfAmedEffective A of medium
TStringTHaAnalysisObject::fConfigConfiguration to use from database
boolTHaPhysicsModule::fDataValidData valid
Int_tTHaAnalysisObject::fDebugDebug level
Double_tfDensityDensity of medium (g/cm^3)
Bool_tfElectronModeParticle is electron or positron
Double_tfElossEnergy loss correction (GeV)
Bool_tfExtPathModeIf true, obtain pathlength from vertex module
TDatimeTHaAnalysisObject::fInitDateDate passed to Init
TStringfInputNameName of input module
Bool_tTHaAnalysisObject::fIsInitFlag indicating that ReadDatabase done
Bool_tTHaAnalysisObject::fIsSetupFlag indicating that DefineVariables done.
Double_tfMMass of particle (GeV/c^2)
boolTHaPhysicsModule::fMultiTrkFlag for multi-track mode
TStringTNamed::fNameobject identifier
Bool_tTHaAnalysisObject::fOKOutFlag indicating object-output prepared
Double_tfPathlengthPathlength through medium (m)
char*THaAnalysisObject::fPrefixName prefix for global variables
UInt_tTHaAnalysisObject::fPropertiesProperties of this object (see EProperties)
Double_tfScaleScale factor for variable pathlength calc
THaAnalysisObject::EStatusTHaAnalysisObject::fStatusInitialization status flag
Bool_tfTestModeIf true, use fixed value for fEloss
TStringTNamed::fTitleobject title
THaVertexModule*fVertexModulePointer to vertex module
TStringfVertexNameName of vertex module for var pathlength, if any
Int_tfZCharge (Z) of particle (only used for hadrons)
Double_tfZmedEffective Z of medium
Double_tfZrefReference z-pos for variable pathlength calc (m)

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

~THaElossCorrection()
 Destructor
void Clear(Option_t* opt = "")
 Clear all event-by-event variables.
THaAnalysisObject::EStatus Init(const TDatime& run_time)
 Initialize the module.
Int_t DefineVariables(THaAnalysisObject::EMode mode = kDefine)
 Define/delete global variables.
Int_t ReadRunDatabase(const TDatime& date)
 Query the run database for the module parameters.
void SetInputModule(const char* name)
 Set the name of the module that provides the input data
void SetMass(Double_t m)
 Set mass of track particle
void SetTestMode(Bool_t enable = kTRUE, Double_t eloss_value = 0.0)
 Enable test mode. If enabled, apply fixed energy correction for
 every event. Negative eloss values are ignored.
void SetMedium(Double_t Z, Double_t A, Double_t density)
 Set parameters of the medium in which the energy loss occurs
void SetPathlength(Double_t pathlength)
 Use fixed pathlength for energy loss calculations
void SetPathlength(const char* vertex_module, Double_t z_ref, Double_t scale = 1.0)
 Use variable pathlength for eloss calculations.
 The pathlength is calculated for every event as
   path = abs(z_vertex - z_ref) * scale
Double_t ElossElectron(Double_t beta, Double_t z_med, Double_t a_med, Double_t d_med, Double_t pathlength)
 Energy loss of electrons taking into account the usual Bethe-Bloch
 stopping power and the Density Effect Corrections that are important
 at high electron energy. Additional  shell effects  can  be safely
 neglected for ultrarelativistic electrons.

 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

 Passed variables

            beta     electron velocity              (relative to light)

           z_med     effective charge of the medium
           a_med     effective atomic mass          (AMU)
           d_med     medium density                 (g/cm^3)
      pathlength     flight path through medium     (m)

  z_med = sum(i)(w(i)*z(i))/sum(i)w(i)
            w(i) is the abundacy of element i in the medium

 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

 Return value:       Energy loss of electron        (GeV)


Double_t ExEnerg(Double_t z_med, Double_t d_med)
void HaDensi(Double_t z_med, Double_t d_med, Double_t& X0, Double_t& X1, Double_t& M)
Double_t GetMass() const
{ return fM; }
Double_t GetEloss() const
{ return fEloss; }
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)
 Event-by-event data