ROOT logo
HYDRA - THE HADES ANALYSIS PACKAGE » (UNKNOWN) » HParticleCand

class HParticleCand: public HVirtualCand

_HADES_CLASS_DESCRIPTION



 HParticleCand

 In this container matched hits from all detectors are stored.
 The class does not define the algorithm how the matching is done.
 This is defined in HMetaMatchF2 (coarse matching) and HParticleCandFiller.


 Track Cleaner flags
 To clean the ParticleCand objects from unwanted fakes
 the object carries a bitfield (32 bit Int_t). The different
 qualitiy criteria can be used to select the best reconstructed
 candidate in the case of multiple use of single detector hits.
 The single bit numbers are defined by enum eFlagBits (see hparticledef.h)

  The selection of tracks and setting of the corresponding flags is performed
  by HParticleCandCleaner and HParticleCandSorter classes (see the documentation).

  For example void  setFlagBit(HParticle::kIsDoubleRICH) sets the bit flag that
  the RICH hit has been used in more than one HParticleCand object.
  Correspondingly one can ask for the flag with Bool_t isFlagBit(HParticle::kIsDoubleRICH)
  void   setFlagBit(Int_t bit) and  Bool_t isFlagBit(Int_t bit) works for the bitnumber (0-31) specified
  manually (if one knows what one is doing....)
  void   setFlagBit   (eFlagBits bit)
  void   unsetFlagBit (eFlagBits bit)
  Bool_t isFlagBit    (eFlagBits bit)
  void   setFlagBit   (Int_t bit);
  void   unsetFlagBit (Int_t bit);
  Bool_t isFlagBit    (Int_t bit);
  void   setFlagBitByValue(eFlagBits bit, Bool_t val) sets/unsets bit depending on val
  void   setFlagBitByValue(Int_t     bit, Bool_t val) sets/unsets bit depending on val
  Bool_t isFlagDoubleHit ()           check all Double_t hits flags simultanously (false if none set)
  Bool_t isFlagAllBestHit()           check all best hit flags simultanously    (true if all are set)
  Int_t  getDoubleHitsLeptons() returns the 4 bit Double_t hit word as Int_t
  Int_t  getDoubleHitsHadrons() returns the 3 bit Double_t hit word (excluding RICH) as Int_t
  Bool_t isFlagNoBestHit ()           check all best hit flags simultanously    (true if none set)
  Int_t  getFlagField()               do what you want with flags field
  Bool_t isFlagAND(Int_t num,Int_t fl, ...) check all flags in argument simultanously (false if none set)
  Bool_t isFlagOR(Int_t num,Int_t fl, ...)  check all flags in argument simultanously (true if any set)
  void   printFlags(TString comment="") prints all flags in binary representation.
  void   printInfo()                    prints indices of detector hits + quality criteria + flags

  The function
  Bool_t select(Bool_t (*function)(HParticleCand* ))  { return  (*function)(this); }
  taking a pointer to function with argument HParticleCand* returning a Bool_t allows
  todo complex selection on the HParticleCand object as one has
  full access to all members of HParticleCand inside the test function.
  The function pointer can be a pointer to a global function or member function
  of an Object for example:

  Bool_t test(HParticleCand* cand){               // global function
           if ( put all selection criteria here ) return kTRUE;
           else                                   return kFALSE;
  } or

  static Bool_t dummy::test(HParticleCand* cand){   // member function of object dummy
                                                    // needs to be declared static !
           if ( put all selection criteria here ) return kTRUE;
           else                                   return kFALSE;
  }
  would be called in the code like

  dummy d;
  HParticleCand* p= new HParticleCand() // just to get an object
  p->select(test))        // global function
  p->select(dummy::test)) // member function of object dummy (static call without object creation)
  p->select(d.test))      // member function of real object dummy



Function Members (Methods)

public:
HParticleCand()
HParticleCand(const HParticleCand&)
virtual~HParticleCand()
voidTObject::AbstractMethod(const char* method) const
Double_tTLorentzVector::Angle(const TVector3& v) const
virtual voidTObject::AppendPad(Option_t* option = "")
Double_tTLorentzVector::Beta() const
voidTLorentzVector::Boost(const TVector3& b)
voidTLorentzVector::Boost(Double_t, Double_t, Double_t)
TVector3TLorentzVector::BoostVector() const
virtual voidTObject::Browse(TBrowser* b)
voidHVirtualCand::calc4vectorProperties(Double_t mass = 0.51099892)
Float_tcalcRkMetaMatch(Float_t weightX = 1., Float_t weightY = 1.)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
Double_tTLorentzVector::CosTheta() const
virtual voidTObject::Delete(Option_t* option = "")MENU
Double_tTLorentzVector::DeltaPhi(const TLorentzVector& v) const
Double_tTLorentzVector::DeltaR(const TLorentzVector& v) const
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
Double_tTLorentzVector::Dot(const TLorentzVector& q) const
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
Double_tTLorentzVector::DrEtaPhi(const TLorentzVector& v) const
virtual voidTObject::Dump() constMENU
Double_tTLorentzVector::E() const
Double_tTLorentzVector::Energy() const
virtual voidTObject::Error(const char* method, const char* msgfmt) const
Double_tTLorentzVector::Et() const
Double_tTLorentzVector::Et(const TVector3& v) const
Double_tTLorentzVector::Et2() const
Double_tTLorentzVector::Et2(const TVector3& v) const
Double_tTLorentzVector::Eta() const
TVector2TLorentzVector::EtaPhiVector()
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 TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Double_tTLorentzVector::Gamma() const
Float_tgetAngleToNearbyFittedInner() const
Float_tgetAngleToNearbyUnfittedInner() const
Float_tgetAverageRingCharge() const
Float_tHVirtualCand::getBeta() const
Float_tgetBetaOrg() const
Short_tHVirtualCand::getCharge() const
Float_tHVirtualCand::getChi2() const
Float_tgetCorrectedMass2PID(Int_t pid)
Float_tgetCorrectedMomentumPID(Int_t pid)
Float_tgetDeltaPhi()
Float_tgetDeltaTheta()
Float_tgetDistanceToMetaHit() const
Float_tgetDistanceToMetaHitOrg() const
Int_tgetDoubleHitsHadrons()
Int_tgetDoubleHitsLeptons()
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Float_tgetEmcCellPath() const
Float_tgetEmcEnergy() const
Int_tgetEmcInd() const
UChar_tgetEmcNCells()
Float_tgetEmcTime() const
Int_tgetFlagField()
virtual const char*TObject::GetIconName() const
Short_tgetIndex() const
Int_tgetInnerSegInd() const
Float_tgetInnerSegmentChi2() const
Bool_tgetLayer(UInt_t io, UInt_t lay)
Float_tHVirtualCand::getMass() const
Float_tHVirtualCand::getMass2() const
Float_tgetMass2CorrectionPID(Int_t pid)
Float_tgetMass2PID(Int_t pid)
Float_tgetMdcdEdx() const
Int_tgetMetaCell(UInt_t hit)
Int_tgetMetaHitInd() const
Int_tgetMetaInd() const
Float_tgetMetaMatchQuality() const
Float_tgetMetaMatchQualityEmc() const
Float_tgetMetaMatchQualityShower() const
Float_tgetMetaMatchRadius() const
Float_tgetMetaMatchRadiusEmc() const
Float_tgetMetaMatchRadiusShower() const
Int_tgetMetaModule(UInt_t hit)
Float_tHVirtualCand::getMomentum() const
Float_tgetMomentumCorrectionPID(Int_t pid)
Float_tgetMomentumOrg() const
Float_tHVirtualCand::getMomentumPID(Int_t pid)
virtual const char*TObject::GetName() const
Int_tgetNLayer(UInt_t io)
Int_tgetNLayerMod(UInt_t mod)
Int_tgetNWSeg(UInt_t io)
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Int_tgetOuterSegInd() const
Float_tgetOuterSegmentChi2() const
Float_tHVirtualCand::getPhi() const
Float_tHVirtualCand::getPhi2() const
Int_tgetPID() const
Float_tHVirtualCand::getR() const
Float_tHVirtualCand::getR2() const
Int_tgetRichBTInd() const
Int_tgetRichInd() const
Float_tgetRichMatchingQuality()
Float_tgetRichMatchingQualityNorm()
Float_tgetRichPhi() const
Float_tgetRichTheta() const
Int_tgetRingAmplitude() const
Float_tgetRingCentroid() const
Float_tgetRingChi2() const
UShort_tgetRingCorr() const
Int_tgetRingHouTra() const
Int_tgetRingNumCals() const
Int_tgetRingNumPads() const
Int_tgetRingPatternMatrix() const
Float_tgetRingRadius() const
Float_tgetRkMetaDx() const
Float_tgetRkMetaDxEmc() const
Float_tgetRkMetaDxShower() const
Float_tgetRkMetaDy() const
Float_tgetRkMetaDyEmc() const
Float_tgetRkMetaDyShower() const
Int_tgetRpcInd() const
Float_tgetRprime(Float_t xBeam, Float_t yBeam)
Short_tgetSector() const
Int_tgetSelectedMeta() const
Float_tgetShowerDeltaSum() const
Int_tgetShowerInd() const
Float_tgetShowerSum0() const
Float_tgetShowerSum1() const
Float_tgetShowerSum2() const
Short_tgetSystem() const
Short_tgetSystemUsed() const
Float_tHVirtualCand::getTheta() const
Float_tHVirtualCand::getTheta2() const
virtual const char*TObject::GetTitle() const
Float_tgetTof() const
Int_tgetTofClstInd() const
Float_tgetTofdEdx() const
Int_tgetTofHitInd() const
Float_tgetTofNorm(Float_t dist = 2100) const
Short_tHVirtualCand::getTofRec() const
virtual UInt_tTObject::GetUniqueID() const
voidTLorentzVector::GetXYZT(Double_t* carray) const
voidTLorentzVector::GetXYZT(Float_t* carray) const
Float_tHVirtualCand::getZ() const
Float_tHVirtualCand::getZ2() const
Float_tgetZprime(Float_t xBeam, Float_t yBeam)
Float_tgetZprime(Float_t xBeam, Float_t yBeam, Float_t& rPrime)
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
Bool_thasLayers(UInt_t io, UInt_t layerstest)
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 voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
Bool_tisAtAnyMdcEdge(UInt_t io = 2)
Bool_tisAtMdcEdge(UInt_t i)
Bool_tisEmc()
Bool_tisEmcMatchedToRpc()
Bool_tisEmcMatchedToSameRpc()
Bool_tisEmcUsed() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
Bool_tisFakeRejected(Int_t io = -1)
Bool_tisFlagAllBestHit()
Bool_tisFlagAND(Int_t num)
Bool_tisFlagBit(Particle::eFlagBits bit)
Bool_tisFlagBit(Int_t bit)
Bool_tisFlagDoubleHit()
Bool_tisFlagNoBestHit()
Bool_tisFlagOR(Int_t num)
virtual Bool_tTObject::IsFolder() const
Bool_tisMetaUsed() const
Bool_tisNewRich()
Bool_tisOffVertexClust()
Bool_tTObject::IsOnHeap() const
Bool_tisPrimaryVertex()
Bool_tisRichMatch(Particle::eMatching match) const
Bool_tisRpcClstUsed() const
Bool_tisShowerUsed() const
virtual Bool_tTObject::IsSortable() const
Bool_tisTofClstUsed() const
Bool_tisTofHitUsed() const
Bool_tisUsedVertex()
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
Double_tTLorentzVector::M() const
Double_tTLorentzVector::M2() const
Double_tTLorentzVector::Mag() const
Double_tTLorentzVector::Mag2() const
voidTObject::MayNotUse(const char* method) const
Double_tTLorentzVector::Minus() const
Double_tTLorentzVector::Mt() const
Double_tTLorentzVector::Mt2() const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
voidOldStreamer(TBuffer& R__b, Int_t version)
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)
Bool_tTLorentzVector::operator!=(const TLorentzVector& q) const
Double_tTLorentzVector::operator()(int i) const
Double_t&TLorentzVector::operator()(int i)
TLorentzVectorTLorentzVector::operator*(Double_t a) const
Double_tTLorentzVector::operator*(const TLorentzVector& q) const
TLorentzVector&TLorentzVector::operator*=(Double_t a)
TLorentzVector&TLorentzVector::operator*=(const TRotation& m)
TLorentzVector&TLorentzVector::operator*=(const TLorentzRotation&)
TLorentzVectorTLorentzVector::operator+(const TLorentzVector& q) const
TLorentzVector&TLorentzVector::operator+=(const TLorentzVector& q)
TLorentzVectorTLorentzVector::operator-() const
TLorentzVectorTLorentzVector::operator-(const TLorentzVector& q) const
TLorentzVector&TLorentzVector::operator-=(const TLorentzVector& q)
HParticleCand&operator=(const HParticleCand&)
Bool_tTLorentzVector::operator==(const TLorentzVector& q) const
Double_tTLorentzVector::operator[](int i) const
Double_t&TLorentzVector::operator[](int i)
Double_tTLorentzVector::P() const
virtual voidTObject::Paint(Option_t* option = "")
Double_tTLorentzVector::Perp() const
Double_tTLorentzVector::Perp(const TVector3& v) const
Double_tTLorentzVector::Perp2() const
Double_tTLorentzVector::Perp2(const TVector3& v) const
Double_tTLorentzVector::Phi() const
Double_tTLorentzVector::Plus() const
virtual voidTObject::Pop()
virtual voidprint(UInt_t selection = 31)
virtual voidTLorentzVector::Print(Option_t* option = "") const
voidprintFlags(TString comment = "")
voidprintLayers()
Double_tTLorentzVector::PseudoRapidity() const
Double_tTLorentzVector::Pt() const
Double_tTLorentzVector::Pt(const TVector3& v) const
Double_tTLorentzVector::Px() const
Double_tTLorentzVector::Py() const
Double_tTLorentzVector::Pz() const
Double_tTLorentzVector::Rapidity() const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
Double_tTLorentzVector::Rho() const
voidTLorentzVector::Rotate(Double_t a, const TVector3& v)
voidTLorentzVector::RotateUz(TVector3& newUzVector)
voidTLorentzVector::RotateX(Double_t angle)
voidTLorentzVector::RotateY(Double_t angle)
voidTLorentzVector::RotateZ(Double_t angle)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
Bool_tselect(Bool_t (*)(HParticleCand*) function)
voidsetAngleToNearbyFittedInner(Float_t a)
voidsetAngleToNearbyUnfittedInner(Float_t a)
voidsetAtMdcEdge(UInt_t i)
voidHVirtualCand::setBeta(Float_t b)
voidsetBetaOrg(Float_t b)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidHVirtualCand::setCharge(Short_t c)
voidHVirtualCand::setChi2(Float_t c)
voidsetDistanceToMetaHit(Float_t d)
voidsetDistanceToMetaHitOrg(Float_t d)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidTLorentzVector::SetE(Double_t a)
voidsetEmcCellPath(Float_t t)
voidsetEmcEnergy(Float_t e)
voidsetEmcInd(Int_t ind)
voidsetEmcNCells(UChar_t n)
voidsetEmcTime(Float_t t)
voidsetFakeRejected(Int_t io = -1)
voidsetFlagBit(Particle::eFlagBits bit)
voidsetFlagBit(Int_t bit)
voidsetFlagBitByValue(Particle::eFlagBits bit, Bool_t val)
voidsetFlagBitByValue(Int_t bit, Bool_t val)
voidsetFlagField(Int_t field)
voidsetIndex(Int_t i)
voidsetInnerSegInd(Int_t ind)
voidsetInnerSegmentChi2(Float_t c)
voidsetIsEmc()
voidsetIsEmcMatchedToRpc()
voidsetIsEmcMatchedToSameRpc()
voidsetLayer(UInt_t io, UInt_t lay)
static voidsetLayer(UInt_t io, UInt_t lay, UInt_t& layers)
voidsetLayers(UInt_t io, UInt_t layers)
voidHVirtualCand::setMass2(Float_t m)
voidsetMdcdEdx(Float_t d)
voidsetMetaCell(UInt_t hit, UInt_t cell)
voidsetMetaInd(Int_t ind)
voidsetMetaMatchQuality(Float_t q)
voidsetMetaMatchQualityEmc(Float_t q)
voidsetMetaMatchQualityShower(Float_t q)
voidsetMetaMatchRadius(Float_t q)
voidsetMetaMatchRadiusEmc(Float_t q)
voidsetMetaMatchRadiusShower(Float_t q)
voidsetMetaModule(UInt_t hit, UInt_t mod)
voidHVirtualCand::setMomentum(Float_t m)
voidsetMomentumOrg(Float_t m)
voidsetNWSeg(UInt_t io, UInt_t nw)
static voidTObject::SetObjectStat(Bool_t stat)
voidsetOffVertexClust()
voidsetOuterSegInd(Int_t ind)
voidsetOuterSegmentChi2(Float_t c)
voidTLorentzVector::SetPerp(Double_t r)
voidHVirtualCand::setPhi(Float_t p)
voidTLorentzVector::SetPhi(Double_t phi)
voidHVirtualCand::setPhi2(Float_t p)
voidsetPID(Int_t id)
voidsetPrimaryVertex()
voidTLorentzVector::SetPtEtaPhiE(Double_t pt, Double_t eta, Double_t phi, Double_t e)
voidTLorentzVector::SetPtEtaPhiM(Double_t pt, Double_t eta, Double_t phi, Double_t m)
voidTLorentzVector::SetPx(Double_t a)
voidTLorentzVector::SetPxPyPzE(Double_t px, Double_t py, Double_t pz, Double_t e)
voidTLorentzVector::SetPy(Double_t a)
voidTLorentzVector::SetPz(Double_t a)
voidHVirtualCand::setR(Float_t r)
voidHVirtualCand::setR2(Float_t r)
voidTLorentzVector::SetRho(Double_t rho)
voidsetRichBTInd(Int_t ind)
voidsetRichInd(Int_t ind)
voidsetRichPhi(Float_t p)
voidsetRichTheta(Float_t p)
voidsetRingAmplitude(Int_t amp)
voidsetRingCentroid(Float_t c)
voidsetRingChi2(Float_t c)
voidsetRingCorr(UShort_t rc)
voidsetRingHouTra(Int_t a)
voidsetRingNumCals(Int_t n)
voidsetRingNumPads(Int_t n)
voidsetRingPatternMatrix(Int_t p)
voidsetRingRadius(Float_t c)
voidsetRkMetaDx(Float_t q)
voidsetRkMetaDxEmc(Float_t q)
voidsetRkMetaDxShower(Float_t q)
voidsetRkMetaDy(Float_t q)
voidsetRkMetaDyEmc(Float_t q)
voidsetRkMetaDyShower(Float_t q)
voidsetRpcInd(Int_t ind)
voidsetSector(Int_t s)
voidsetSelectedMeta(Int_t flag)
voidsetShowerInd(Int_t ind)
voidsetShowerSum0(Float_t q)
voidsetShowerSum1(Float_t q)
voidsetShowerSum2(Float_t q)
voidsetSystem(Int_t s)
voidTLorentzVector::SetT(Double_t a)
voidHVirtualCand::setTheta(Float_t t)
voidTLorentzVector::SetTheta(Double_t th)
voidHVirtualCand::setTheta2(Float_t t)
voidsetTofClstInd(Int_t ind)
voidsetTofdEdx(Float_t d)
voidsetTofHitInd(Int_t ind)
voidHVirtualCand::setTofRec(Short_t tr)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidsetUsedVertex()
voidTLorentzVector::SetVect(const TVector3& p)
voidTLorentzVector::SetVectM(const TVector3& spatial, Double_t mass)
voidTLorentzVector::SetVectMag(const TVector3& spatial, Double_t magnitude)
voidTLorentzVector::SetX(Double_t a)
voidTLorentzVector::SetXYZM(Double_t x, Double_t y, Double_t z, Double_t m)
voidTLorentzVector::SetXYZT(Double_t x, Double_t y, Double_t z, Double_t t)
voidTLorentzVector::SetY(Double_t a)
voidHVirtualCand::setZ(Float_t z)
voidTLorentzVector::SetZ(Double_t a)
voidHVirtualCand::setZ2(Float_t z)
virtual voidShowMembers(TMemberInspector&)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Double_tTLorentzVector::T() const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
Double_tTLorentzVector::Theta() const
TLorentzVector&TLorentzVector::Transform(const TRotation& m)
TLorentzVector&TLorentzVector::Transform(const TLorentzRotation&)
voidunsetAllFakeRejected()
voidunsetAllLayers()
voidunsetAtMdcEdge(UInt_t i)
voidunsetEmcNCells()
voidunsetFakeRejected(Int_t io = -1)
voidunsetFlagBit(Particle::eFlagBits bit)
voidunsetFlagBit(Int_t bit)
voidunsetIsEmc()
voidunsetIsEmcMatchedToRpc()
voidunsetIsEmcMatchedToSameRpc()
voidunsetMetaCell(UInt_t hit)
voidunsetMetaModule(UInt_t hit)
voidunsetOffVertexClust()
voidunsetPrimaryVertex()
voidunsetUsedVertex()
virtual voidTObject::UseCurrentStyle()
TVector3TLorentzVector::Vect() const
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
Double_tTLorentzVector::X() const
Double_tTLorentzVector::Y() const
Double_tTLorentzVector::Z() const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()

Data Members

protected:
floatfAngleToNearbyFittedInnerangle to closest fitted inner segment (negative angles indicate segments which belong to hadrons or neighbouring tracks) [deg]
floatfAngleToNearbyUnfittedInnerangle to closest unfitted inner segment (negative angles indicate segments which belong to hadrons or neighbouring tracks) [deg]
floatHVirtualCand::fBetaparticle's beta
floatfBetaOrgparticle's beta before recalc
Short_tHVirtualCand::fChargeparticle's charge (+1,-1) (1bit) 0-1
floatHVirtualCand::fChi2tracking chi^2 (1e6 == tracking failed)
floatfDistanceToMetaHittrack's distance to meta hit [mm]
floatfDistanceToMetaHitOrgtrack's distance to meta hit [mm] before correction
UShort_tfEmcFlags|16|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|
Int_tfFlagsbit flags for cleaning
Short_tfIndexindex in category
Short_tfInnerSegIndindex of inner MDC Segment
floatfInnerSegmentChi2MDC segment fitter chi^2 (-1 if not fitted)
UInt_tfLayersbit array for fired MDC layers (1-24 bit layers + 31-29 bit fake reject + 28,27,26 bit clusOffvertex,vertex,primary)
floatHVirtualCand::fMass2particle's mass^2 [MeV^2]
floatfMdcdEdxMdc dE/dx for inner and outer segment
Short_tfMetaIndindex of Metamatch
floatfMetaMatchQualitydistance of the outer segment to the meta hit
floatfMetaMatchQualityShowerdistance of the outer segment to the shower hit
floatfMetaMatchRadiusdistance of the outer segment to the meta hit [mm]
floatfMetaMatchRadiusShowerdistance of the outer segment to the shower hit [mm]
floatHVirtualCand::fMomentumparticle's momentum [MeV]
floatfMomentumOrgparticle's momentum [MeV] before correction
Short_tfOuterSegIndindex of outer MDC Segment
floatfOuterSegmentChi2MDC segment fitter chi^2 (-1 if not fitted)
Char_tfPIDPID of particle
floatHVirtualCand::fPhitrack's phi in cave coordinates (0..360 deg)
floatHVirtualCand::fPhi2out segment : track's phi in cave coordinates (0..360 deg)
floatHVirtualCand::fRdistance of closest point to beamline [mm]
floatHVirtualCand::fR2out segment :distance of closest point to beamline [mm]
Short_tfRichBTIndindex of RICH BT hit
Short_tfRichIndindex of RICH hit
floatfRichPhi
floatfRichTheta
Short_tfRingAmplitudetyp. (-1 - 4000)
floatfRingCentroidring centroid (OLD) | radius (NEW)
Float_tfRingChi2chi2 of ring fit (NEW)
UShort_tfRingCorrring - mdc correlation
Short_tfRingHouTratyp. (-1 - 5000)
Char_tfRingNumPadsnumber of fired pads typ. (-1 - 100) (OLD) | number of Cal objects (NEW)
Short_tfRingPatternMatrixpattern matrix of ring
floatfRkMetaDxdistance in X of outer segment to used Meta [mm]
floatfRkMetaDxShowerdistance in X of outer segment to shower hit [mm]
floatfRkMetaDydistance in Y of outer segment to used Meta [mm]
floatfRkMetaDyShowerdistance in Y of outer segment to shower hit [mm]
Short_tfRpcIndindex of RPC Hit
Short_tfSectorsector information from MDC (0..5) (3bit) 0-7
Char_tfSelectedMetawhich Metahit has been used kNoUse,kTofClst,kTofHit1,kTofHit2,kRpcClst,kShowerHit,kEmcClst
Short_tfShowerIndindex of SHOWER hit | EMC cluster
floatfShowerSum0charge sum of PreShower cluster (0) | EMC:energy
floatfShowerSum1charge sum of PreShower cluster (1) | EMC:time
floatfShowerSum2charge sum of PreShower cluster (2) | EMC:cellPath
Short_tfSystem0 == TOFino, 1 == TOF (2bit) 0-3
floatHVirtualCand::fThetatrack's theta in cave coordinates (0..90 deg)
floatHVirtualCand::fTheta2out segment :track's theta in cave coordinates (0..90 deg)
Short_tfTofClstIndindex of TOF cluster
Short_tfTofHitIndindex of TOF hit
Short_tHVirtualCand::fTofRec0 -> time-of-flight reconstruction was not succesfull, (2bit) 0-3
floatfTofdEdxTof dE/dx
UShort_tfWireslower 10bits for wires per segment , 11,12,13,14 at edge
floatHVirtualCand::fZz coordinate of closest point to beamline [mm]
floatHVirtualCand::fZ2out segment :z coordinate of closest point to beamline [mm]
UInt_tfmetaAddressstore adress (mod+cell / col+cell for TOF+RPC hit 0 and 1)

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

void setFlagBit(Int_t bit)
 set given bit in flag (0-32)
void unsetFlagBit(Int_t bit)
 unset given bit in flag (0-32)
Bool_t isFlagBit(Int_t bit)
 check given bit in flag (0-32)
 return kTRUE if bit is set
Bool_t isFlagOR(Int_t num,...)
 check given number of bits in argument in flag (0-32)
 return kTRUE if any bit is set
Bool_t isFlagAND(Int_t num, ...)
 check given number of bits in argument in flag (0-32)
 return kTRUE if all bits are set
void printFlags(TString comment = "")
 print the flag field in binary representation
 Comment will be printed at the end of line
void print(UInt_t selection = 31)
 print one candidate object and the flags which have been
 already set to HParticleCand

 print option bits
 bit   1 : print hit indices                         (selection == 1)
       2 : print hit indices                         (selection == 2)
       3 : print chi2s and matching vars             (selection == 4)
       4 : print selection flags                     (selection == 8)
 default : print all
Float_t getZprime(Float_t xBeam, Float_t yBeam, Float_t& rPrime)
 xBeam, yBeam - position of beam(target) line in lab.system
 returns zPrime coordinate value, rPrime as function argument
Float_t getZprime(Float_t xBeam, Float_t yBeam)
 xBeam, yBeam - position of beam(target) line in lab.system
 returns zPrime coordinate value. if rPrime is needed too
 use Float_t HParticleCand::getZprime(Float_t xBeam,Float_t yBeam,Float_t& rPrime)
 to save some calculations
Float_t getRprime(Float_t xBeam, Float_t yBeam)
 xBeam, yBeam - position of beam(target) line in lab.system
 returns zPrime coordinate value. if zPrime is needed too
 use Float_t HParticleCand::getZprime(Float_t xBeam,Float_t yBeam,Float_t& rPrime)
 to save some calculations
Float_t getMomentumCorrectionPID(Int_t pid)
 return the momentum correction for the candidate
 due to material budget in target + rich + absorbers.
 requires HEnergyLossCorrPar. The correction takes
 into acount the charge of the particle ( > 1). Units
 are MeV/c
Float_t getCorrectedMomentumPID(Int_t pid)
 return the corrected momentum for the candidate
 due to material budget in target + rich + absorbers.
 requires HEnergyLossCorrPar. The correction takes
 into acount the charge of the particle ( > 1). Units
 are MeV/c
Float_t getMass2PID(Int_t pid)
 returns the mass2 of the candidate taking
 into account the charge of the provided PID  ( mom*charge)
 In the track reconstruction by default all
 momenta are recontructed using charge = 1
Float_t getMass2CorrectionPID(Int_t pid)
 return the mass2 correction (mass2_corr-mass2) for the candidate
 due to material budget in target + rich + absorbers.
 requires HEnergyLossCorrPar. The correction takes
 into acount the charge of the particle ( > 1). Units
 are MeV/c
Float_t getCorrectedMass2PID(Int_t pid)
 return the corrected mass2 for the candidate
 due to material budget in target + rich + absorbers.
 requires HEnergyLossCorrPar. The correction takes
 into acount the charge of the particle ( > 1). Units
 are MeV/c
Float_t getRichMatchingQualityNorm()
 norm delta theta phi by width of distributions,
 do some correction for theta,phi and momentum
 (W. Koenig, see HParticleAngleCor::matchRingTrack() )
Int_t getNLayer(UInt_t io)
 i0 :  0 = inner seg , 1 = outer seg, 2 = both segs
Int_t getNLayerMod(UInt_t mod)
void printLayers()
void Streamer(TBuffer& )
 Stream an object of class HParticleCand.
void OldStreamer(TBuffer& R__b, Int_t version)
 Stream an object of class HParticleCand.
HParticleCand()
  |32|31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|
                                |             cell2  |    mod2   |  cell1        | mod1  |
~HParticleCand()
  flag manipulations
{}
void setFlagBit(Particle::eFlagBits bit)
{ fFlags |= ( 0x01 << bit ); }
void unsetFlagBit(Particle::eFlagBits bit)
{ fFlags &= ~( 0x01 << bit ); }
Bool_t isFlagBit(Particle::eFlagBits bit)
{ return (fFlags >> bit ) & 0x01 ; }
void setFlagBitByValue(eFlagBits bit, Bool_t val)
{ val ? setFlagBit(bit) : unsetFlagBit(bit); }
void setFlagBitByValue(Int_t bit, Bool_t val)
{ val ? setFlagBit(bit) : unsetFlagBit(bit); }
Bool_t isFlagDoubleHit()
{ return (fFlags & 0xF) == 0x0 ? kFALSE : kTRUE; }
Bool_t isFlagAllBestHit()
{ return ((fFlags >> 4 ) & 0xF) == 0xF ? kTRUE : kFALSE; }
Bool_t isFlagNoBestHit()
{ return ((fFlags >> 4 ) & 0xF) == 0x0 ? kTRUE : kFALSE; }
Int_t getFlagField()
{ return fFlags; }
void setFlagField(Int_t field)
{ fFlags = field; }
Int_t getDoubleHitsLeptons()
{ return (fFlags & 0xF);}
Int_t getDoubleHitsHadrons()
{ return ((fFlags >> 1) & 0x7);}
Bool_t select(Bool_t (*)(HParticleCand*) function)
{ return (*function)(this); }
void setIndex(Int_t i)
{ fIndex = i; }
void setPID(Int_t id)
{ fPID = (Char_t)id; }
void setSector(Int_t s)
{ fSector = s; }
void setSystem(Int_t s)
{ fSystem = s; }
void setRingCorr(UShort_t rc)
{ fRingCorr = rc; }
void setMdcdEdx(Float_t d)
{ fMdcdEdx = d; }
void setTofdEdx(Float_t d)
{ fTofdEdx = d; }
void setDistanceToMetaHit(Float_t d)
void setInnerSegmentChi2(Float_t c)
void setOuterSegmentChi2(Float_t c)
void setAngleToNearbyFittedInner(Float_t a)
void setAngleToNearbyUnfittedInner(Float_t a)
void setRingNumCals(Int_t n)
{ fRingNumPads = n <= 127 ? n: 127; }
void setRingNumPads(Int_t n)
{ fRingNumPads = n <= 127 ? n: 127; }
void setRingAmplitude(Int_t amp)
{ fRingAmplitude = (Short_t) amp; }
void setRingHouTra(Int_t a)
void setRingPatternMatrix(Int_t p)
void setRingRadius(Float_t c)
{ fRingCentroid = c; }
void setRingChi2(Float_t c)
{ fRingChi2 = c; }
void setRingCentroid(Float_t c)
{ fRingCentroid = c; }
void setRichPhi(Float_t p)
{ fRichPhi = p; }
void setRichTheta(Float_t p)
{ fRichTheta = p; }
void setMetaMatchQuality(Float_t q)
void setMetaMatchQualityShower(Float_t q)
void setMetaMatchQualityEmc(Float_t q)
void setMetaMatchRadius(Float_t q)
void setMetaMatchRadiusShower(Float_t q)
void setMetaMatchRadiusEmc(Float_t q)
void setRkMetaDx(Float_t q)
{ fRkMetaDx = q; }
void setRkMetaDy(Float_t q)
{ fRkMetaDy = q; }
void setRkMetaDxShower(Float_t q)
void setRkMetaDyShower(Float_t q)
void setRkMetaDxEmc(Float_t q)
void setRkMetaDyEmc(Float_t q)
void setBetaOrg(Float_t b)
{ fBetaOrg = b; }
void setDistanceToMetaHitOrg(Float_t d)
void setMomentumOrg(Float_t m)
{ fMomentumOrg = m; }
void setShowerSum0(Float_t q)
{ fShowerSum0 = q; }
void setShowerSum1(Float_t q)
{ fShowerSum1 = q; }
void setShowerSum2(Float_t q)
{ fShowerSum2 = q; }
void setEmcEnergy(Float_t e)
{ fShowerSum0 = e; }
void setEmcTime(Float_t t)
{ fShowerSum1 = t; }
void setEmcCellPath(Float_t t)
{ fShowerSum2 = t; }
void setIsEmc()
{ fEmcFlags |= 0x01; }
void setIsEmcMatchedToRpc()
{ fEmcFlags |= (0x01 << 6); }
void setIsEmcMatchedToSameRpc()
{ fEmcFlags |= (0x01 << 7); }
void setEmcNCells(UChar_t n)
{ if( n>31) n=31; fEmcFlags |= (((n&(0x1F))<<1)); }
void unsetIsEmc()
{ fEmcFlags &= ~( 0x01 << 0 ); }
void unsetIsEmcMatchedToRpc()
{ fEmcFlags &= ~( 0x01 << 6 ); }
void unsetIsEmcMatchedToSameRpc()
{ fEmcFlags &= ~( 0x01 << 7 ); }
void unsetEmcNCells()
{ fEmcFlags &= ~( 0x1F << 1 ); }
void setSelectedMeta(Int_t flag)
{ fSelectedMeta = (Char_t)flag;}
void setMetaInd(Int_t ind)
{ fMetaInd = ind; }
void setRichInd(Int_t ind)
{ fRichInd = ind; }
void setRichBTInd(Int_t ind)
{ fRichBTInd = ind; }
void setInnerSegInd(Int_t ind)
{ fInnerSegInd= ind; }
void setOuterSegInd(Int_t ind)
{ fOuterSegInd= ind; }
void setRpcInd(Int_t ind)
{ fRpcInd = ind; }
void setShowerInd(Int_t ind)
{ fShowerInd = ind; }
void setEmcInd(Int_t ind)
{ fShowerInd = ind; }
void setTofHitInd(Int_t ind)
{ fTofHitInd = ind; }
void setTofClstInd(Int_t ind)
{ fTofClstInd = ind; }
Short_t getIndex() const
{ return fIndex; }
Int_t getPID() const
{ return fPID; }
Short_t getSector() const
{ return fSector; }
Short_t getSystem() const
{ return fSystem; }
Short_t getSystemUsed() const
{ return ( isRpcClstUsed() || isShowerUsed() ) ? 0 : ( ( isTofHitUsed() || isTofClstUsed() ) ? 1 : -1 ); }
UShort_t getRingCorr() const
{ return fRingCorr; }
Bool_t isRichMatch(Particle::eMatching match) const
{ return (fRingCorr&match) == 0 ? kFALSE:kTRUE; }
Float_t getMdcdEdx() const
{ return fMdcdEdx; }
Float_t getTofdEdx() const
{ return fTofdEdx; }
Float_t getDistanceToMetaHit() const
{ return fDistanceToMetaHit; }
Float_t getTof() const
{ return fBeta>0 ? fDistanceToMetaHit/(fBeta*Cloc) : -1; }
Float_t getTofNorm(Float_t dist = 2100) const
{ return fBeta>0 ? (fDistanceToMetaHit/(fBeta*Cloc)) * dist/fDistanceToMetaHit : -1; }
Float_t getInnerSegmentChi2() const
{ return fInnerSegmentChi2; }
Float_t getOuterSegmentChi2() const
{ return fOuterSegmentChi2; }
Float_t getAngleToNearbyFittedInner() const
Float_t getAngleToNearbyUnfittedInner() const
Int_t getRingNumCals() const
{ return (Int_t)fRingNumPads; }
Int_t getRingNumPads() const
{ return (Int_t)fRingNumPads; }
Int_t getRingAmplitude() const
{ return (Int_t) fRingAmplitude; }
Float_t getAverageRingCharge() const
Int_t getRingHouTra() const
{ return (Int_t) fRingHouTra; }
Int_t getRingPatternMatrix() const
Float_t getRingRadius() const
{ return fRingCentroid; }
Float_t getRingChi2() const
{ return fRingChi2; }
Float_t getRingCentroid() const
{ return fRingCentroid; }
Float_t getRichPhi() const
{ return fRichPhi; }
Float_t getRichTheta() const
{ return fRichTheta; }
Float_t getMetaMatchQuality() const
{ return fMetaMatchQuality; }
Float_t getMetaMatchQualityShower() const
Float_t getMetaMatchQualityEmc() const
Float_t getMetaMatchRadius() const
{ return fMetaMatchRadius; }
Float_t getMetaMatchRadiusShower() const
Float_t getMetaMatchRadiusEmc() const
Float_t getRkMetaDx() const
{ return fRkMetaDx; }
Float_t getRkMetaDy() const
{ return fRkMetaDy; }
Float_t getRkMetaDxShower() const
{ return fRkMetaDxShower; }
Float_t getRkMetaDyShower() const
{ return fRkMetaDyShower; }
Float_t getRkMetaDxEmc() const
{ return fRkMetaDxShower; }
Float_t getRkMetaDyEmc() const
{ return fRkMetaDyShower; }
Float_t getBetaOrg() const
{ return fBetaOrg; }
Float_t getDistanceToMetaHitOrg() const
Float_t getMomentumOrg() const
{ return fMomentumOrg; }
Float_t calcRkMetaMatch(Float_t weightX = 1., Float_t weightY = 1.)
{ return (fRkMetaDx==-1000&&fRkMetaDy==-1000)? -1 : sqrt( (weightX*fRkMetaDx)*(weightX*fRkMetaDx) + (weightY*fRkMetaDy)*(weightY*fRkMetaDy) );}
Float_t getShowerSum0() const
{ return fShowerSum0; }
Float_t getShowerSum1() const
{ return fShowerSum1; }
Float_t getShowerSum2() const
{ return fShowerSum2; }
Float_t getShowerDeltaSum() const
{ return fShowerSum0 ==-1 && fShowerSum1 == -1 ? -1 : fShowerSum1+fShowerSum2-fShowerSum0; }
Float_t getEmcEnergy() const
{ return fShowerSum0; }
Float_t getEmcTime() const
{ return fShowerSum1; }
Float_t getEmcCellPath() const
{ return fShowerSum2; }
Bool_t isEmc()
{ return fEmcFlags & 0x01;}
Bool_t isEmcMatchedToRpc()
{ return (fEmcFlags>>6) & 0x01;}
Bool_t isEmcMatchedToSameRpc()
{ return (fEmcFlags>>7) & 0x01;}
UChar_t getEmcNCells()
{ return (fEmcFlags>>1) & 0x1F;}
Int_t getSelectedMeta() const
{ return (Int_t)fSelectedMeta;}
Bool_t isTofHitUsed() const
Bool_t isTofClstUsed() const
Bool_t isRpcClstUsed() const
Bool_t isShowerUsed() const
Bool_t isEmcUsed() const
Bool_t isMetaUsed() const
{ return (fSelectedMeta != Particle::kNoUse) ? kTRUE : kFALSE; }
Int_t getMetaInd() const
{ return fMetaInd; }
Int_t getRichInd() const
{ return fRichInd; }
Int_t getRichBTInd() const
{ return fRichBTInd; }
Int_t getInnerSegInd() const
{ return fInnerSegInd; }
Int_t getOuterSegInd() const
{ return fOuterSegInd; }
Int_t getRpcInd() const
{ return fRpcInd; }
Int_t getShowerInd() const
{ return fShowerInd; }
Int_t getEmcInd() const
{ return fShowerInd; }
Int_t getTofHitInd() const
{ return fTofHitInd; }
Int_t getTofClstInd() const
{ return fTofClstInd; }
Int_t getMetaHitInd() const
Float_t getDeltaTheta()
{ return (fRichInd ==-1) ? -1000 : fRichTheta - fTheta; }
Float_t getDeltaPhi()
return  (fRichInd ==-1) ? -1000 : ( fRichPhi - fPhi ) * TMath::Sin(TMath::DegToRad() * fTheta);
Float_t getRichMatchingQuality()
Bool_t isNewRich()
{ return fRingChi2 !=1000 ? kTRUE : kFALSE;}
void setLayers(UInt_t io, UInt_t layers)
{ fLayers|=(layers&(0xFFF<<(io*12)));}
void setLayer(UInt_t io, UInt_t lay)
{ fLayers |= ( 0x01 << (io*12+lay) ); }
void unsetAllLayers()
{ fLayers &= ~0xFFFFFF; }
void setLayer(UInt_t io, UInt_t lay, UInt_t& layers)
{ layers |= ( 0x01 << (io*12+lay) ); }
Bool_t getLayer(UInt_t io, UInt_t lay)
{ return ( fLayers & ( 0x01 << (io*12+lay) )); }
Bool_t hasLayers(UInt_t io, UInt_t layerstest)
{ return (((fLayers>>(io*12))&0xFFF)==((layerstest>>(io*12))&0xFFF));}
Bool_t isFakeRejected(Int_t io = -1)
void setFakeRejected(Int_t io = -1)
void unsetFakeRejected(Int_t io = -1)
void unsetAllFakeRejected()
void setOffVertexClust()
{ fLayers |= ( 0x01 << 28 );}
void unsetOffVertexClust()
{ fLayers &= ~( 0x01 << 28 );}
Bool_t isOffVertexClust()
{ return ( fLayers & ( 0x01 << 28 ));}
void setUsedVertex()
{ fLayers |= ( 0x01 << 27 );}
void unsetUsedVertex()
{ fLayers &= ~( 0x01 << 27 );}
Bool_t isUsedVertex()
{ return ( fLayers & ( 0x01 << 27 ));}
void setPrimaryVertex()
{ fLayers |= ( 0x01 << 26 );}
void unsetPrimaryVertex()
{ fLayers &= ~( 0x01 << 26 );}
Bool_t isPrimaryVertex()
{ return ( fLayers & ( 0x01 << 26 ));}
void setNWSeg(UInt_t io, UInt_t nw)
Int_t getNWSeg(UInt_t io)
void setAtMdcEdge(UInt_t i)
void unsetAtMdcEdge(UInt_t i)
Bool_t isAtMdcEdge(UInt_t i)
Bool_t isAtAnyMdcEdge(UInt_t io = 2)
void setMetaModule(UInt_t hit, UInt_t mod)
void unsetMetaModule(UInt_t hit)
{ if(hit<2) fmetaAddress&= ~(0xF<<(hit*11+7)); }
void setMetaCell(UInt_t hit, UInt_t cell)
void unsetMetaCell(UInt_t hit)
{ if(hit<2) fmetaAddress&= ~(0x7F<<(hit*11)); }
Int_t getMetaModule(UInt_t hit)
Int_t getMetaCell(UInt_t hit)