class HMdcSizesCellsMod: public HMdcPlane

_HADES_CLASS_DESCRIPTION


  HMdcSizesCells
  HMdcSizesCellsSec
  HMdcSizesCellsMod
  HMdcSizesCellsLayer
  HMdcSizesCellsCell

  Creating the container and geting the pointer to cont.:
  HMdcSizesCells* fSizesCells=HMdcSizesCells::getObject();

  Geting the pointer to cont. (without creating):
  HMdcSizesCells* fSizesCells=HMdcSizesCells::getExObject();

  Deleting of container:
  HMdcSizesCells::deleteCont();

  Container class keep volumes sizes of wires (2-points/wire)
  in coordinate system of sector and transformations layer<->mod,
  layer<->sec, ...
  It has same useful functions:
  HMdcSizesCellsCell
    Float_t getWireLength(void)

  HMdcSizesCellsLayer:
    HGeomTransform* getSecTrans();
    HGeomTransform* getModTrans();
    void transSecToRotLayer(HGeomVector& point);
    Double_t getAlpha(const HGeomVector& p1, const HGeomVector& p2);
    Double_t getDist(const HGeomVector& p1,
                     const HGeomVector& p2, Int_t cell);
    void getImpact(const HGeomVector& p1, const HGeomVector& p2,
                  Int_t cell, Double_t &alpha, Double_t &per);
    Double_t getImpact(Double_t x1,Double_t y1,Double_t z1,
        Double_t x2,Double_t y2,Double_t z2, Int_t cell, Double_t &alphaPerp);
    Bool_t getImpact(Double_t x1,Double_t y1,Double_t z1,
        Double_t x2, Double_t y2, Double_t z2,
        Int_t cell, Double_t &alphaDrDist, Double_t &driftDist);
    Int_t getCellNum(Double_t x, Double_t y):
      calculation the the cell number for the point x,y
      on the wire plane. (x,y - in coor. sys. of layer, z=0)
    Double_t getXSign(Double_t x1, Double_t y1, Double_t z1,
        Double_t x2, Double_t y2, Double_t z2, Int_t cell)
    Float_t getSignPath(Double_t x1,Double_t y1,Double_t z1,
        Double_t x2, Double_t y2, Double_t z2, Int_t cell);
    Float_t getSignPath(Double_t x1,Double_t y1,Double_t z1,
        Double_t x2, Double_t y2, Double_t z2, Int_t cell, Float_t& outside);

  HMdcSizesCellsMod:
    HGeomTransform* getSecTrans();

  HMdcSizesCellsSec:
    HGeomTransform* getLabTrans();

  HMdcSizesCells:
    Bool_t getCellVol(Int_t sec, Int_t mod, Int_t lay,
        Int_t cell, HMdcTrap& volCell);
    Char_t findReadOutSide(Int_t s,Int_t m,Int_t l,Int_t c)


Function Members (Methods)

public:
HMdcSizesCellsMod(const HMdcSizesCellsMod&)
HMdcSizesCellsMod(HMdcSizesCellsSec* pSec, Int_t mod)
virtual~HMdcSizesCellsMod()
Double_tHMdcPlane::A() const
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
Double_tHMdcPlane::B() const
virtual voidTObject::Browse(TBrowser* b)
Double_tHMdcPlane::C() const
voidHMdcPlane::calcIntersection(const HGeomVector& r, const HGeomVector& dir, HGeomVector& out) const
voidHMdcPlane::calcIntersection(Double_t x1, Double_t y1, Double_t z1, Double_t x2, Double_t y2, Double_t z2, Double_t& x, Double_t& y, Double_t& z) const
voidcalcInterTrMod(Double_t x1, Double_t y1, Double_t z1, Double_t x2, Double_t y2, Double_t z2, Double_t& x, Double_t& y) const
voidcalcMdcHit(Double_t x1, Double_t y1, Double_t z1, Double_t x2, Double_t y2, Double_t z2, Double_t& x, Double_t& y, Double_t& xDir, Double_t& yDir) const
voidcalcMdcHit(Double_t x1, Double_t y1, Double_t z1, Double_t x2, Double_t y2, Double_t z2, Double_t eX1, Double_t eY1, Double_t eZ1, Double_t eX2, Double_t eY2, Double_t dZ1dX1, Double_t dZ1dY1, Double_t dZ2dX2, Double_t dZ2dY2, Double_t& x, Double_t& eX, Double_t& y, Double_t& eY, Double_t& xDir, Double_t& eXDir, Double_t& yDir, Double_t& eYDir) const
voidHMdcPlane::calcSegIntersec(Float_t z1, Float_t r, Float_t theta, Float_t phi, Float_t& x, Float_t& y, Float_t& z) const
voidHMdcPlane::calcSegIntersec(Double_t z1, Double_t r, Double_t theta, Double_t phi, Double_t& x, Double_t& y, Double_t& z) const
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_tHMdcPlane::D() const
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
Double_tHMdcPlane::dZdX() const
Double_tHMdcPlane::dZdY() const
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 TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
const Double_t*getMdcHitLookupTb() const
Short_tgetMod() const
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
voidHMdcPlane::getPlanePar(HMdcPlane& p) const
voidHMdcPlane::getPlanePar(Double_t& a, Double_t& b, Double_t& d) const
Short_tgetSec() const
const HGeomTransform*getSecTrans() const
Int_tgetSize() const
HMdcSizesCells*getSizesCells()
const Double_t*getTfSysRSec() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
Double_tHMdcPlane::getXOnPlane(Double_t y, Double_t z) const
Double_tHMdcPlane::getYOnPlane(Double_t x, Double_t z) const
Double_tHMdcPlane::getZOnPlane(Double_t x, Double_t y) const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::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 voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
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)
HMdcSizesCellsMod&operator=(const HMdcSizesCellsMod&)
HMdcSizesCellsLayer&operator[](Int_t i) const
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
voidHMdcPlane::print()
virtual voidTObject::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
voidrotVectTo(Double_t xi, Double_t yi, Double_t zi, Double_t& xo, Double_t& yo, Double_t& zo) const
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
static voidTObject::SetObjectStat(Bool_t stat)
voidHMdcPlane::setPlanePar(const HMdcPlane& p)
voidHMdcPlane::setPlanePar(const HGeomTransform& tr)
voidHMdcPlane::setPlanePar(Double_t al, Double_t bl, Double_t cl, Double_t dl)
Bool_tsetSecTrans(const HGeomTransform* alignTrans = 0, Int_t sysOfAlignTrans = 0)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& 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
voidtransFrom(Double_t& x, Double_t& y, Double_t& z) const
voidtransFromZ0(Double_t& x, Double_t& y, Double_t& z) const
voidtransFromZ0(Float_t& x, Float_t& y, Float_t& z) const
voidtransTo(Double_t& x, Double_t& y, Double_t& z) const
virtual voidTObject::UseCurrentStyle()
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 voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()

Data Members

public:
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
TObjArray*arrayarray of HMdcSizesCellsLayer objects
Double_tct[6]Lookup table for funct. calcMdcHit, ...
Short_tmodule
HMdcSizesCellsSec*pToSecPointer to corresponding sector
Double_tHMdcPlane::parAPlane: parA*x+parB*y+c*z=parD (c=1 !!!)
Double_tHMdcPlane::parBparA*parA+parB*parB+c*c must be > 0 and c != 0 !!!
Double_tHMdcPlane::parD
Short_tsectorAddress
HGeomTransformsysRSecTransformation sector<->module
Double_ttSysRSec[12]---

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

HMdcSizesCells* getSizesCells(void)
HMdcSizesCellsMod(HMdcSizesCellsSec* pSec, Int_t mod)
 constructor creates an array of pointers of type
 HMdcSizesCellsLayer
~HMdcSizesCellsMod(void)
 destructor
Int_t getSize(void)
 return the size of the pointer array
Bool_t setSecTrans(const HGeomTransform* alignTrans = 0, Int_t sysOfAlignTrans = 0)
void calcMdcHit(Double_t x1, Double_t y1, Double_t z1, Double_t x2, Double_t y2, Double_t z2, Double_t eX1, Double_t eY1, Double_t eZ1, Double_t eX2, Double_t eY2, Double_t dZ1dX1, Double_t dZ1dY1, Double_t dZ2dX2, Double_t dZ2dY2, Double_t& x, Double_t& eX, Double_t& y, Double_t& eY, Double_t& xDir, Double_t& eXDir, Double_t& yDir, Double_t& eYDir) const
 Calcul. a cross of the line with plane MDC (parA*x+parB*y+c*z=parD),
 transform. this point to mdc coor.sys. (z=0) and calc.
 hit direction in mdc coor.sys. and errors

 Input param:
 x1,y1,z1 - target or point on plane
 x2,y2,z2 - point on plane
 eX1,eY1,eZ1, eX2,eY2 - errors (eZ2=0!)
 dZ2dX2 = -A2  where A2 - plane param. (z2=D2-A2*x2+B2*y2)
 dZ2dY2 = -B2  where B2 - plane param. (z2=D2-A2*x2+B2*y2)
 If P1-on plane
   eZ1=0;
   dZ1dX1 = -A1  where A1 - plane param. (z1=D1-A1*x1+B1*y1)
   dZ1dY1 = -B1  where B1 - plane param. (z1=D1-A1*x1+B1*y1)
 If P1-target:
   dZ1dX1 = dZ1/dY1 = 0;
Cross
void transTo(Double_t& x, Double_t& y, Double_t& z) const
 transform. point x,y,z from sector coor.sys. to mdc coor.sys.
void rotVectTo(Double_t xi, Double_t yi, Double_t zi, Double_t& xo, Double_t& yo, Double_t& zo) const
 Input:  xi,yi,zi - sector coor.sys.
 Output: xo,yo,zo - module coor.sys.
void transFrom(Double_t& x, Double_t& y, Double_t& z) const
 transform. point x,y,z from mdc coor.sys. to sector coor.sys.
void transFromZ0(Double_t& x,Double_t& y,Double_t& z)
 transform. point x,y on the mdc plane (z=0) from mdc coor.sys.
 to sector coor.sys.
void transFromZ0(Float_t& x,Float_t& y,Float_t& z)
 transform. point x,y on the mdc plane (z=0) from mdc coor.sys.
 to sector coor.sys.
void calcInterTrMod(Double_t x1, Double_t y1, Double_t z1, Double_t x2, Double_t y2, Double_t z2, Double_t& x, Double_t& y) const
void calcMdcHit(Double_t x1, Double_t y1, Double_t z1, Double_t x2, Double_t y2, Double_t z2, Double_t& x, Double_t& y, Double_t& xDir, Double_t& yDir) const
 Calcul. a cross of the line with plane MDC (parA*x+parB*y+c*z=parD),
 transform. this point to mdc coor.sys. (z=0) and calc.
 hit direction in mdc coor.sys.
HMdcSizesCellsCell& operator[](Int_t i) const
Short_t getSec(void)
{return sector;}
Short_t getMod(void)
{return module;}
const HGeomTransform* getSecTrans(void)
{return &sysRSec;}
HMdcSizesCellsMod(HMdcSizesCellsSec* pSec, Int_t mod)
const Double_t* getTfSysRSec(void)
{return tSysRSec;}
const Double_t* getMdcHitLookupTb(void)
{return ct;}

Last change: Sat May 22 13:03:32 2010
Last generated: 2010-05-22 13:03

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.