![]() |
AliPhysics
2b88e80 (2b88e80)
|
Class with analysis utils for simulations. More...
#include <AliMCAnalysisUtils.h>
Public Types | |
enum | mcTypes { kMCPhoton, kMCPrompt, kMCFragmentation, kMCISR, kMCPi0Decay, kMCEtaDecay, kMCOtherDecay, kMCDecayPairLost, kMCDecayPairInCalo, kMCDecayDalitz, kMCConversion, kMCElectron, kMCEFromCFromB, kMCEFromC, kMCEFromB, kMCZDecay, kMCWDecay, kMCMuon, kMCPion, kMCPi0, kMCKaon, kMCEta, kMCProton, kMCAntiProton, kMCNeutron, kMCAntiNeutron, kMCUnknown, kMCBadLabel } |
enum | generator { kPythia = 0, kHerwig = 1, kHijing = 2, kBoxLike = 3 } |
Public Member Functions | |
AliMCAnalysisUtils () | |
Constructor. More... | |
virtual | ~AliMCAnalysisUtils () |
Destructor. More... | |
Int_t | CheckCommonAncestor (Int_t index1, Int_t index2, const AliMCEvent *mcevent, Int_t &ancPDG, Int_t &ancStatus, TLorentzVector &momentum, TVector3 &prodVertex) |
Int_t | CheckOrigin (Int_t label, AliMCEvent *mcevent, TString selectHeaderName) |
Int_t | CheckOrigin (const Int_t *labels, Int_t nlabels, AliMCEvent *mcevent, TString selectHeaderName, const TObjArray *arrayCluster=0x0) |
void | CheckOverlapped2GammaDecay (const Int_t *labels, Int_t nlabels, Int_t mesonIndex, const AliMCEvent *mcevent, Int_t &tag) |
void | CheckLostDecayPair (const TObjArray *arrayCluster, Int_t iMom, Int_t iParent, const AliMCEvent *mcevent, Int_t &tag) |
Check on AODs if the current decay photon has the second photon companion lost. More... | |
TLorentzVector | GetMother (Int_t label, const AliMCEvent *mcevent, Bool_t &ok) |
TLorentzVector | GetMother (Int_t label, const AliMCEvent *mcevent, Int_t &pdg, Int_t &status, Bool_t &ok) |
TLorentzVector | GetMother (Int_t label, const AliMCEvent *mcevent, Int_t &pdg, Int_t &status, Bool_t &ok, Int_t &momLabel) |
TLorentzVector | GetGrandMother (Int_t label, const AliMCEvent *mcevent, Int_t &pdg, Int_t &status, Bool_t &ok, Int_t &grandMomLabel, Int_t &greatMomLabel) |
TLorentzVector | GetMotherWithPDG (Int_t label, Int_t pdg, const AliMCEvent *mcevent, Bool_t &ok, Int_t &momLabel) |
TLorentzVector | GetFirstMotherWithPDG (Int_t label, Int_t pdg, const AliMCEvent *mcevent, Bool_t &ok, Int_t &momLabel, Int_t &gparentlabel) |
void | GetMCDecayAsymmetryAngleForPDG (Int_t label, Int_t pdg, const AliMCEvent *mcevent, Float_t &asy, Float_t &angle, Bool_t &ok) |
In case of an eta or pi0 decay into 2 photons, get the asymmetry in the energy of the photons. More... | |
Int_t | GetNDaughters (Int_t label, const AliMCEvent *mcevent, Bool_t &ok) |
TLorentzVector | GetDaughter (Int_t daughter, Int_t label, const AliMCEvent *mcevent, Int_t &pdg, Int_t &status, Bool_t &ok, Int_t &daugLabel, TVector3 &prodVertex) |
Int_t | GetNOverlaps (const Int_t *label, UInt_t nlabels, Int_t mctag, Int_t mesonLabel, AliMCEvent *mcevent, Int_t *overpdg, Int_t *overlabel) |
void | SetTagBit (Int_t &tag, UInt_t set) const |
Bool_t | CheckTagBit (Int_t tag, UInt_t test) const |
TList * | GetJets (AliMCEvent *mcevent, Bool_t check) |
AliGenPythiaEventHeader * | CheckAndGetPythiaEventHeader (AliMCEvent *mcevent, TString selecHeaderName) |
TString | GetPythiaHeaderName () const |
TString | GetPythiaProcessName () const |
Int_t | GetPythiaProcess () const |
Int_t | GetPythiaFirstParticle () const |
Int_t | GetPythiaVersion () const |
void | SetDebug (Int_t deb) |
Int_t | GetDebug () const |
void | SetMCGenerator (Int_t mcgen) |
Set the generator type. More... | |
void | SetMCGenerator (TString mcgen) |
Set the generator type. More... | |
Int_t | GetMCGenerator () const |
TString | GetMCGeneratorString () const |
void | Print (const Option_t *opt) const |
Print some relevant parameters set for the analysis. More... | |
void | PrintAncestry (AliMCEvent *mcevent, Int_t label, Int_t nGenerMax=1000) const |
void | PrintMCTag (Int_t tag) const |
Print the assigned origins to this particle. More... | |
Static Public Member Functions | |
static AliGenPythiaEventHeader * | GetPythiaEventHeader (AliMCEvent *mcevent, TString selecHeaderName, TString &genName, TString &processName, Int_t &process, Int_t &firstParticle, Int_t &pythiaVersion) |
Private Member Functions | |
AliMCAnalysisUtils & | operator= (const AliMCAnalysisUtils &mcu) |
Copy constructor not implemented. More... | |
AliMCAnalysisUtils (const AliMCAnalysisUtils &mcu) | |
Assignment operator not implemented. More... | |
Private Attributes | |
Int_t | fCurrentEvent |
Current Event number - GetJets() More... | |
Int_t | fDebug |
Debug level. More... | |
TList * | fJetsList |
List of jets - GetJets() More... | |
Int_t | fMCGenerator |
MC generator used to generate data in simulation. More... | |
TString | fMCGeneratorString |
MC generator used to generate data in simulation. More... | |
TLorentzVector | fDaughMom |
! particle momentum More... | |
TLorentzVector | fDaughMom2 |
! particle momentum More... | |
TLorentzVector | fMotherMom |
! particle momentum More... | |
TLorentzVector | fGMotherMom |
! particle momentum More... | |
AliGenPythiaEventHeader * | fPyGenHead |
! pythia event header of current event More... | |
TString | fPyGenName |
Pythia header assigned name. More... | |
TString | fPyProcessName |
Pythia process name, Gamma-Jet or Jet-Jet. More... | |
Int_t | fPyProcess |
Pythia process code. More... | |
Int_t | fPyFirstParticle |
First Pythia generated particle in array. More... | |
Int_t | fPyVersion |
Pythia guessed version. More... | |
Int_t | fMinPartonicParent |
Minimum label of partonic parent of direct photon. More... | |
Int_t | fMaxPartonicParent |
Minimum label of partonic parent of direct photon. More... | |
Class with analysis utils for simulations.
Class containing utility methods for analysis of simulations, ESD or AOD format. Contains:
More information can be found in this twiki.
Definition at line 35 of file AliMCAnalysisUtils.h.
Enumerator | |
---|---|
kPythia | |
kHerwig | |
kHijing | |
kBoxLike |
Definition at line 133 of file AliMCAnalysisUtils.h.
"Mostly" photon parent types on line 1,
then "mostly" electron parent types on line 3, (e.g. electrons can come from pi0 decay) then charged particles on line 4, followed by other and unknown on line 5
Definition at line 53 of file AliMCAnalysisUtils.h.
AliMCAnalysisUtils::AliMCAnalysisUtils | ( | ) |
Constructor.
Definition at line 40 of file AliMCAnalysisUtils.cxx.
|
virtual |
Destructor.
Definition at line 62 of file AliMCAnalysisUtils.cxx.
|
private |
Assignment operator not implemented.
AliGenPythiaEventHeader * AliMCAnalysisUtils::CheckAndGetPythiaEventHeader | ( | AliMCEvent * | mcevent, |
TString | selectHeaderName | ||
) |
Recover the event header if it is from Pythia. Check it only once per event since it is called many times.
Get and set internally the generated process pythia version and first generated particle in case of cocktail events
mcevent | Access to AliVMCEvent |
selectHeaderName | String that must have the header name |
Definition at line 1513 of file AliMCAnalysisUtils.cxx.
Referenced by CheckOrigin(), CheckTagBit(), and GetNOverlaps().
Int_t AliMCAnalysisUtils::CheckCommonAncestor | ( | Int_t | index1, |
Int_t | index2, | ||
const AliMCEvent * | mcevent, | ||
Int_t & | ancPDG, | ||
Int_t & | ancStatus, | ||
TLorentzVector & | momentum, | ||
TVector3 & | prodVertex | ||
) |
Check the first common ancestor of 2 clusters, given the most likely labels of the primaries generating such clusters.
Definition at line 75 of file AliMCAnalysisUtils.cxx.
Referenced by AliAnaInsideClusterInvariantMass::CheckLocalMaximaMCOrigin(), AliAnaElectron::FillShowerShapeHistograms(), GetNOverlaps(), AliAnaPhotonConvInCalo::MakeAnalysisFillHistograms(), and AliAnaPi0::MakeAnalysisFillHistograms().
void AliMCAnalysisUtils::CheckLostDecayPair | ( | const TObjArray * | arrayCluster, |
Int_t | iMom, | ||
Int_t | iParent, | ||
const AliMCEvent * | mcevent, | ||
Int_t & | tag | ||
) |
Check on AODs if the current decay photon has the second photon companion lost.
Definition at line 789 of file AliMCAnalysisUtils.cxx.
Referenced by CheckOrigin().
Int_t AliMCAnalysisUtils::CheckOrigin | ( | Int_t | label, |
AliMCEvent * | mcevent, | ||
TString | selectHeaderName | ||
) |
labels | list of MC labels of cluster |
mcevent | pointer to MCEvent() |
selectHeaderName | String that must have the header name, for pythia event header/process selection |
Definition at line 192 of file AliMCAnalysisUtils.cxx.
Referenced by AliAnaClusterShapeCorrelStudies::ClusterLoopHistograms(), AliAnaCalorimeterQA::ClusterMCHistograms(), AliAnaPhoton::FillAcceptanceHistograms(), AliAnaParticleIsolation::FillAcceptanceHistograms(), AliAnaInsideClusterInvariantMass::GetMCIndex(), AliAnaPhoton::MakeAnalysisFillAOD(), AliAnaElectron::MakeAnalysisFillAOD(), and AliAnaPi0EbE::MakeShowerShapeIdentification().
Int_t AliMCAnalysisUtils::CheckOrigin | ( | const Int_t * | labels, |
Int_t | nlabels, | ||
AliMCEvent * | mcevent, | ||
TString | selectHeaderName, | ||
const TObjArray * | arrayCluster = 0x0 |
||
) |
Generally speaking, label is the MC label of a reconstructed entity (track, cluster, etc) for which we want to know something about its heritage, but one can also use it directly with stack particles not connected to reconstructed entities.
Array of clusters needed in case we want to check if the cluster originated from a pi0/eta meson has the companion decay photon in the list of clusters.
labels | list of MC labels of cluster |
nlabels | total number of labels attached to cluster |
mcevent | pointer to MCEvent() |
selectHeaderName | String that must have the header name, for pythia event header/process selection |
arrayCluster | list of calorimeter clusters, needed to check lost meson decays |
Definition at line 216 of file AliMCAnalysisUtils.cxx.
void AliMCAnalysisUtils::CheckOverlapped2GammaDecay | ( | const Int_t * | labels, |
Int_t | nlabels, | ||
Int_t | mesonIndex, | ||
const AliMCEvent * | mcevent, | ||
Int_t & | tag | ||
) |
Check if cluster is formed from the contribution of 2 decay photons from pi0 or eta. Input are AOD AliVParticles.
Definition at line 616 of file AliMCAnalysisUtils.cxx.
Referenced by CheckOrigin().
Definition at line 103 of file AliMCAnalysisUtils.h.
Referenced by AliAnaPhoton::ActivityNearCluster(), CheckOrigin(), CheckOverlapped2GammaDecay(), AliAnaClusterShapeCorrelStudies::ClusterLoopHistograms(), AliAnaParticleIsolation::FillAcceptanceHistograms(), AliAnaPi0::FillMCVersusRecDataHistograms(), AliAnaPhoton::FillTrackMatchingResidualHistograms(), AliAnaParticleIsolation::FillTrackMatchingShowerShapeControlHistograms(), AliAnaInsideClusterInvariantMass::GetMCIndex(), GetNOverlaps(), AliAnaElectron::MakeAnalysisFillAOD(), AliAnaParticleHadronCorrelation::MakeAnalysisFillHistograms(), AliAnaPi0::MakeAnalysisFillHistograms(), AliAnaPi0EbE::MakeInvMassInCalorimeter(), AliAnaPi0EbE::MakeInvMassInCalorimeterAndCTS(), PrintMCTag(), and AliAnaClusterShapeCorrelStudies::WeightHistograms().
TLorentzVector AliMCAnalysisUtils::GetDaughter | ( | Int_t | idaugh, |
Int_t | label, | ||
const AliMCEvent * | mcevent, | ||
Int_t & | pdg, | ||
Int_t & | status, | ||
Bool_t & | ok, | ||
Int_t & | daughlabel, | ||
TVector3 & | prodVertex | ||
) |
Definition at line 1071 of file AliMCAnalysisUtils.cxx.
Referenced by AliAnaInsideClusterInvariantMass::CheckLocalMaximaMCOrigin(), AliAnaParticleIsolation::FillAcceptanceHistograms(), AliAnaPhoton::MakeAnalysisFillHistograms(), and AliAnaParticleIsolation::StudyMCConversionRadius().
|
inline |
Definition at line 131 of file AliMCAnalysisUtils.h.
Referenced by AliAnaCaloTrackCorrBaseClass::InitDebug().
TLorentzVector AliMCAnalysisUtils::GetFirstMotherWithPDG | ( | Int_t | label, |
Int_t | pdg, | ||
const AliMCEvent * | mcevent, | ||
Bool_t & | ok, | ||
Int_t & | momlabel, | ||
Int_t & | gparentlabel | ||
) |
Definition at line 1234 of file AliMCAnalysisUtils.cxx.
Referenced by CheckOrigin().
TLorentzVector AliMCAnalysisUtils::GetGrandMother | ( | Int_t | label, |
const AliMCEvent * | mcevent, | ||
Int_t & | pdg, | ||
Int_t & | status, | ||
Bool_t & | ok, | ||
Int_t & | grandMomLabel, | ||
Int_t & | greatMomLabel | ||
) |
Definition at line 1288 of file AliMCAnalysisUtils.cxx.
Referenced by AliAnaInsideClusterInvariantMass::CheckLocalMaximaMCOrigin(), and GetNOverlaps().
mcevent | pointer to AliMCEvent |
check | get the list from the pythia header or if already done return just return it. |
Definition at line 912 of file AliMCAnalysisUtils.cxx.
Referenced by CheckTagBit().
void AliMCAnalysisUtils::GetMCDecayAsymmetryAngleForPDG | ( | Int_t | label, |
Int_t | pdg, | ||
const AliMCEvent * | mcevent, | ||
Float_t & | asy, | ||
Float_t & | angle, | ||
Bool_t & | ok | ||
) |
In case of an eta or pi0 decay into 2 photons, get the asymmetry in the energy of the photons.
Definition at line 1334 of file AliMCAnalysisUtils.cxx.
Referenced by AliAnaInsideClusterInvariantMass::GetMCPrimaryKine().
|
inline |
Definition at line 136 of file AliMCAnalysisUtils.h.
|
inline |
Definition at line 137 of file AliMCAnalysisUtils.h.
TLorentzVector AliMCAnalysisUtils::GetMother | ( | Int_t | label, |
const AliMCEvent * | mcevent, | ||
Bool_t & | ok | ||
) |
Definition at line 1116 of file AliMCAnalysisUtils.cxx.
Referenced by AliAnaInsideClusterInvariantMass::CheckLocalMaximaMCOrigin(), AliAnaPhoton::CocktailGeneratorsClusterOverlaps(), AliAnaInsideClusterInvariantMass::GetMCPrimaryKine(), GetMother(), GetNOverlaps(), AliAnaPi0EbE::MakeAnalysisFillHistograms(), AliAnaPhoton::MakeAnalysisFillHistograms(), AliAnaPi0EbE::MakeShowerShapeIdentification(), and AliAnaParticleIsolation::StudyMCConversionRadius().
TLorentzVector AliMCAnalysisUtils::GetMother | ( | Int_t | label, |
const AliMCEvent * | mcevent, | ||
Int_t & | pdg, | ||
Int_t & | status, | ||
Bool_t & | ok | ||
) |
Definition at line 1126 of file AliMCAnalysisUtils.cxx.
TLorentzVector AliMCAnalysisUtils::GetMother | ( | Int_t | label, |
const AliMCEvent * | mcevent, | ||
Int_t & | pdg, | ||
Int_t & | status, | ||
Bool_t & | ok, | ||
Int_t & | momlabel | ||
) |
Definition at line 1137 of file AliMCAnalysisUtils.cxx.
TLorentzVector AliMCAnalysisUtils::GetMotherWithPDG | ( | Int_t | label, |
Int_t | pdg, | ||
const AliMCEvent * | mcevent, | ||
Bool_t & | ok, | ||
Int_t & | momlabel | ||
) |
Definition at line 1171 of file AliMCAnalysisUtils.cxx.
Referenced by AliAnaParticleIsolation::FillAcceptanceHistograms(), AliAnaInsideClusterInvariantMass::GetMCPrimaryKine(), AliAnaPi0EbE::MakeAnalysisFillHistograms(), and AliAnaPi0EbE::MakeShowerShapeIdentification().
Definition at line 1394 of file AliMCAnalysisUtils.cxx.
Referenced by AliAnaInsideClusterInvariantMass::CheckLocalMaximaMCOrigin(), and AliAnaParticleIsolation::FillAcceptanceHistograms().
Int_t AliMCAnalysisUtils::GetNOverlaps | ( | const Int_t * | label, |
UInt_t | nlabels, | ||
Int_t | mctag, | ||
Int_t | mesonLabel, | ||
AliMCEvent * | mcevent, | ||
Int_t * | overpdg, | ||
Int_t * | overlabel | ||
) |
Compare the primary depositing more energy with the rest, if no photon/electron (conversion) or neutral meson as comon ancestor, consider it as other particle contributing. Give as input the meson label in case it was a pi0 or eta merged cluster.
Definition at line 1424 of file AliMCAnalysisUtils.cxx.
Referenced by AliAnaClusterShapeCorrelStudies::ClusterLoopHistograms(), AliAnaPhoton::FillShowerShapeHistograms(), AliAnaParticleIsolation::FillTrackMatchingShowerShapeControlHistograms(), AliAnaCaloTrackCorrBaseClass::GetCocktailGeneratorBackgroundTag(), AliAnaInsideClusterInvariantMass::GetMCPrimaryKine(), and AliAnaPi0EbE::MakeShowerShapeIdentification().
|
static |
Recover the event header if it is from Pythia. Get the generated process pythia version and first generated particle in case of cocktail events
mcevent | Access to AliVMCEvent |
selectHeaderName | String that must have the header name |
genName | String with name of generator |
processName | String with type opf event Jet-Jet or Gamma-Jet |
process | Integer process number id |
firstParticle | Integer of first generated particle in case of cocktail simulations |
pythiaVersion | 6 or 8 |
Definition at line 1564 of file AliMCAnalysisUtils.cxx.
Referenced by CheckAndGetPythiaEventHeader(), CheckTagBit(), AliCaloTrackMCReader::FillInputEvent(), and AliCaloTrackReader::FillInputEvent().
|
inline |
Definition at line 127 of file AliMCAnalysisUtils.h.
|
inline |
Definition at line 124 of file AliMCAnalysisUtils.h.
|
inline |
Definition at line 126 of file AliMCAnalysisUtils.h.
|
inline |
Definition at line 125 of file AliMCAnalysisUtils.h.
|
inline |
Definition at line 128 of file AliMCAnalysisUtils.h.
|
private |
Copy constructor not implemented.
void AliMCAnalysisUtils::Print | ( | const Option_t * | opt | ) | const |
Print some relevant parameters set for the analysis.
Definition at line 1698 of file AliMCAnalysisUtils.cxx.
Referenced by GetMCGeneratorString().
void AliMCAnalysisUtils::PrintAncestry | ( | AliMCEvent * | mcevent, |
Int_t | label, | ||
Int_t | nGenerMax = 1000 |
||
) | const |
Print info of generated particles, for different generations If no generation specified, all ancestry is printed
mcevent | access to AliVMCEvent |
label | index of generated particle under investigation |
nGenerMax | limit to the number of generations back to the particle under investigation |
Definition at line 1719 of file AliMCAnalysisUtils.cxx.
Referenced by GetMCGeneratorString().
void AliMCAnalysisUtils::PrintMCTag | ( | Int_t | tag | ) | const |
Print the assigned origins to this particle.
Definition at line 1766 of file AliMCAnalysisUtils.cxx.
Referenced by GetMCGeneratorString().
|
inline |
Definition at line 130 of file AliMCAnalysisUtils.h.
void AliMCAnalysisUtils::SetMCGenerator | ( | Int_t | mcgen | ) |
Set the generator type.
Definition at line 1805 of file AliMCAnalysisUtils.cxx.
void AliMCAnalysisUtils::SetMCGenerator | ( | TString | mcgen | ) |
Set the generator type.
Definition at line 1821 of file AliMCAnalysisUtils.cxx.
Definition at line 98 of file AliMCAnalysisUtils.h.
Referenced by CheckLostDecayPair(), CheckOrigin(), CheckOverlapped2GammaDecay(), and AliAnaPi0EbE::HasPairSameMCMother().
|
private |
Current Event number - GetJets()
Definition at line 145 of file AliMCAnalysisUtils.h.
Referenced by CheckAndGetPythiaEventHeader().
|
private |
! particle momentum
Definition at line 155 of file AliMCAnalysisUtils.h.
Referenced by GetDaughter(), and GetMCDecayAsymmetryAngleForPDG().
|
private |
! particle momentum
Definition at line 157 of file AliMCAnalysisUtils.h.
Referenced by GetMCDecayAsymmetryAngleForPDG().
|
private |
Debug level.
Definition at line 147 of file AliMCAnalysisUtils.h.
Referenced by GetDebug(), Print(), and SetDebug().
|
private |
! particle momentum
Definition at line 161 of file AliMCAnalysisUtils.h.
Referenced by GetFirstMotherWithPDG(), GetGrandMother(), GetMotherWithPDG(), and GetNOverlaps().
|
private |
List of jets - GetJets()
Definition at line 149 of file AliMCAnalysisUtils.h.
Referenced by GetJets(), and ~AliMCAnalysisUtils().
|
private |
Minimum label of partonic parent of direct photon.
Definition at line 174 of file AliMCAnalysisUtils.h.
Referenced by CheckAndGetPythiaEventHeader(), and CheckOrigin().
|
private |
MC generator used to generate data in simulation.
Definition at line 151 of file AliMCAnalysisUtils.h.
Referenced by CheckOrigin(), GetJets(), GetMCGenerator(), and SetMCGenerator().
|
private |
MC generator used to generate data in simulation.
Definition at line 153 of file AliMCAnalysisUtils.h.
Referenced by GetMCGeneratorString(), Print(), and SetMCGenerator().
|
private |
Minimum label of partonic parent of direct photon.
Definition at line 173 of file AliMCAnalysisUtils.h.
Referenced by CheckAndGetPythiaEventHeader(), and CheckOrigin().
|
private |
! particle momentum
Definition at line 159 of file AliMCAnalysisUtils.h.
Referenced by GetMother(), and GetNOverlaps().
|
private |
First Pythia generated particle in array.
Definition at line 170 of file AliMCAnalysisUtils.h.
Referenced by CheckAndGetPythiaEventHeader(), CheckOrigin(), and GetPythiaFirstParticle().
|
private |
! pythia event header of current event
Definition at line 166 of file AliMCAnalysisUtils.h.
Referenced by CheckAndGetPythiaEventHeader(), and GetJets().
|
private |
Pythia header assigned name.
Definition at line 167 of file AliMCAnalysisUtils.h.
Referenced by CheckAndGetPythiaEventHeader(), and GetPythiaHeaderName().
|
private |
Pythia process code.
Definition at line 169 of file AliMCAnalysisUtils.h.
Referenced by CheckAndGetPythiaEventHeader(), and GetPythiaProcess().
|
private |
Pythia process name, Gamma-Jet or Jet-Jet.
Definition at line 168 of file AliMCAnalysisUtils.h.
Referenced by CheckAndGetPythiaEventHeader(), and GetPythiaProcessName().
|
private |
Pythia guessed version.
Definition at line 171 of file AliMCAnalysisUtils.h.
Referenced by CheckAndGetPythiaEventHeader(), CheckOrigin(), and GetPythiaVersion().