class HMdcSizesCellsLayer: 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:
HMdcSizesCellsLayer(const HMdcSizesCellsLayer&)
HMdcSizesCellsLayer(HMdcSizesCellsMod* pMod, Int_t lay)
virtual~HMdcSizesCellsLayer()
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
Int_tcalcCellNum(Double_t x, Double_t y) const
Bool_tcalcCrossedCells(Double_t x1, Double_t y1, Double_t z1, Double_t x2, Double_t y2, Double_t z2, Float_t& cell1, Float_t& cell2) 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
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
Double_tcalcWireY(Int_t cell) 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
Int_tdistanceSign(const HMdcLineParam& ln, Int_t cell) const
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
Bool_tfillLayerCont(const HMdcLayerCorrPar* fLayCorrPar, const Double_t* corr = 0)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Double_tgetAlpha(const HGeomVector& p1, const HGeomVector& p2) const
Double_tgetCatDist() const
Double_tgetCosWireOr() const
Double_tgetDist(const HGeomVector& p1, const HGeomVector& p2, Int_t cell)
Double_tgetDist(Double_t x1, Double_t y1, Double_t z1, Double_t x2, Double_t y2, Double_t z2, Int_t cell) const
Double_tgetDistToZero(Double_t y1, Double_t z1, Double_t y2, Double_t z2) const
virtual Option_t*TObject::GetDrawOption() const
Bool_tgetDriftDist(Double_t xP1, Double_t yP1, Double_t zP1, Double_t xP2, Double_t yP2, Double_t zP2, Int_t cell, Double_t& alphaDrDist, Double_t& driftDist) const
static Long_tTObject::GetDtorOnly()
const HMdcPlane&getGeantHitsPlane() const
HGeomVolume*getGeomVolume()
Double_tgetHalfCatDist() const
Double_tgetHalfPitch() const
virtual const char*TObject::GetIconName() const
Double_tgetImpact(const HMdcLineParam& ln, Int_t cell, Double_t& alpha) const
Bool_tgetImpact(const HMdcLineParam& ln, Int_t cell, Double_t& alpha, Double_t& minDist) const
voidgetImpact(const HGeomVector& p1, const HGeomVector& p2, Int_t cell, Double_t& alpha, Double_t& per) const
Double_tgetImpact(const HMdcLineParam& ln, Int_t cell, Double_t& alpha, Double_t& y, Double_t& z, Double_t& dy, Double_t& dz) const
Double_tgetImpact(Double_t x1, Double_t y1, Double_t z1, Double_t x2, Double_t y2, Double_t z2, Int_t cell, Double_t& alphaPerp) const
Bool_tgetImpact(const HMdcLineParam& ln, Int_t cell, Double_t& alpha, Double_t& minDist, Double_t& y, Double_t& z, Double_t& dy, Double_t& dz) const
Bool_tgetImpact(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) const
Double_tgetImpactLSys(const HGeomVector& p1l, const HGeomVector& p2l, Int_t cell, Double_t& alpha) const
Double_tgetImpactToZero(Double_t y1, Double_t z1, Double_t y2, Double_t z2, Double_t& alpha) const
Short_tgetLayer() const
HMdcLayerGeomParLay*getLayerGeomParLay()
Short_tgetMod() const
const HGeomTransform*getModTrans() const
const HGeomTransform&getModTransGeant() const
virtual const char*TObject::GetName() const
Short_tgetNCells() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Double_tgetPitch() const
voidHMdcPlane::getPlanePar(HMdcPlane& p) const
voidHMdcPlane::getPlanePar(Double_t& a, Double_t& b, Double_t& d) const
const Double_t*getRLSysRSec() const
const HGeomTransform*getRotLaySysRMod() const
const HGeomTransform*getRotLaySysRSec() const
voidgetRotLSysForOtherSecSys(Int_t othSec, HGeomTransform& trans) const
Short_tgetSec() const
const HGeomTransform*getSecTrans() const
const HGeomTransform&getSecTransGeant() const
Double_tgetSensWiresThickness() const
Double_tgetSignPath(const HMdcLineParam& ln, Int_t cell) const
Float_tgetSignPath(Double_t x1, Double_t y1, Double_t z1, Double_t x2, Double_t y2, Double_t z2, Int_t cell) const
Float_tgetSignPath(Double_t x1, Double_t y1, Double_t z1, Double_t x2, Double_t y2, Double_t z2, Int_t cell, Float_t& outside) const
Double_tgetSinWireOr() const
Int_tgetSize() const
HMdcSizesCells*getSizesCells()
Double_tgetTanWireOr() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
Double_tgetWireOffSet() const
Double_tHMdcPlane::getXOnPlane(Double_t y, Double_t z) const
Double_tgetXSign(const HMdcLineParam& ln, Int_t cell) const
Double_tgetXSign(Double_t x1, Double_t y1, Double_t z1, Double_t x2, Double_t y2, Double_t z2, Int_t cell) const
Double_tHMdcPlane::getYOnPlane(Double_t x, Double_t z) const
voidgetYZinWireSys(Double_t x, Double_t y, Double_t z, Int_t cell, Double_t& yw, Double_t& zw) const
Double_tgetZGeantHits() 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)
HMdcSizesCellsLayer&operator=(const HMdcSizesCellsLayer&)
HMdcSizesCellsCell&operator[](Int_t i) const
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
voidprint() const
virtual voidTObject::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
voidrotVectToLay(Double_t xi, Double_t yi, Double_t zi, Double_t& xo, Double_t& yo, Double_t& zo) const
voidrotVectToRotLay(const HGeomVector& d, Double_t& xo, Double_t& yo, Double_t& zo) const
voidrotVectToRotLay(Double_t xi, Double_t yi, Double_t zi, Double_t& xo, Double_t& yo, Double_t& zo) const
voidrotYZtoRotLay(const HGeomVector& d, Double_t& yo, Double_t& zo) const
voidrotYZtoRotLay(Double_t xi, Double_t yi, Double_t zi, 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(Double_t corZ = 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
voidtransSecToRotLayer(HGeomVector& point) const
voidtransTo(Double_t& x, Double_t& y, Double_t& z) const
Double_ttransXinRotLay(Double_t xi, Double_t yi) const
voidtransXYinRotLay(Double_t& x, Double_t& y) const
Double_ttransYinRotLay(Double_t xi, Double_t yi) 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()
private:
voidcalcInOtherSecSys(const HMdcLineParam& ln, Int_t cell, Double_t& y, Double_t& z, Double_t& dy, Double_t& dz) const
Double_tcalcWire(Double_t x, Double_t y) const
Bool_tgetParamCont()

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:
TClonesArray*arrayHMdcSizesCellsCell objects
Double_tcosWireOrCosine of wire orientation
Int_tfCellSecondPartFirst layer of sec.part
HMdcPlanegeantPlanegeant hits plane in sec.sys.
HGeomTransformgeantSysRModTransf. mdc <-> geantHitsPlane
HGeomTransformgeantSysRSecTransf. sector <-> geantHitsPlane
Double_thalfCatDistHalf of cathodes distance
Double_thalfPitchHalf of "pitch"
Short_tlayer
Short_tmodule
Short_tnCellsNumber of wires in layer
HGeomVolume*pGeomVolLayer geometry
HMdcLayerGeomParLay*pLayerGeomParLayLayer parameters
HMdcSizesCellsMod*pToModPointer to corresponding module
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
Double_tpitchDistance between wires
HGeomTransformrotLaySysRModTransformation module <->
HGeomTransformrotLaySysRSecTransformation sector <->
Short_tsectorAddress:
Double_tsensWiresThicksensitive wires thickness
Double_tshiftSecondPartShift of second part
Double_tsinWireOrSine of wire orientation angle
HGeomTransformsysRModTransformation module<->layer
HGeomTransformsysRSecTransformation sector <-> layer
Double_ttRLaySysRSec[12]rotated on WireOr deg. layer
Double_ttSysRSec[12]- - -
Double_twireOffSet= (CentralWireNr()-1.)*pitch
Double_twireOrwire orientation in rad.
Double_tzGeantHitz position of geant hits

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

HMdcSizesCells* getSizesCells(void)
HMdcSizesCellsLayer(HMdcSizesCellsMod* pMod, Int_t lay)
 Constructor creates an array of pointers of type HMdcSizesCellsCell
~HMdcSizesCellsLayer(void)
 destructor
Int_t getSize(void)
 return the size of the pointer array
Bool_t setSecTrans(Double_t corZ = 0.)
 alignTrans: coord. system of layer will transformed to "alignTrans" sys.
Double_t calcWire(Double_t x, Double_t y) const
 return point on the layer plane in wire float number scale!
Int_t calcCellNum(Double_t x, Double_t y) const
  calculation the the cell number for the point x,y
  on the wire plane. (x,y - in coor. sys. of layer, z=0)
Int_t distanceSign(const HMdcLineParam& ln, Int_t cell) const
 HMdcLineParam ln must be in sector coor.system
 return +1 if line path OVER wire in layer(mdc,sector) coor.system
 return -1 if line path UNDER wire in layer(mdc,sector) coor.system
 return 0. if cell<0 or cell>=nCells in layer
Bool_t calcCrossedCells(Double_t x1, Double_t y1, Double_t z1, Double_t x2, Double_t y2, Double_t z2, Float_t& cell1, Float_t& cell2) const
 calculation of cells crossed by line x1,y1,z1-x2,y2,z2
 x1,y1,z1, x2,y2,z2 - sector coordinate system
void transSecToRotLayer(HGeomVector& point) const
 transformation to coor. sys. of rotated layer from sector sys.
Double_t getAlpha(const HGeomVector& p1, const HGeomVector& p2) const
 return the angle alpha (in degree) between projection of linep1-p2
 on the Y-Z plane and Y axis in coor.sys. of wires in degree.
 p1,p2 in coordinate system of sector.
Double_t getDist(const HGeomVector& p1, const HGeomVector& p2, Int_t cell)
 return the minimal distance from line (p1-p2) to wire.
 p1,p2 are in coordinate system of sector.
void getImpact(const HGeomVector& p1, const HGeomVector& p2, Int_t cell, Double_t& alpha, Double_t& per) const
 calc. the angle alpha (in degree) between projection of line p1-p2
 on the Y-Z plane and Y axis in coor.sys. of wire (y=z=0) and
 the minimal distance from line (p1-p2) to wire.
 p1,p2 - in sector coor.sys.
Double_t getImpactLSys(const HGeomVector& p1l, const HGeomVector& p2l, Int_t cell, Double_t& alpha) const
 p1l,p2l - in ROTATED LAYER COOR.SYS.!!!
 calc. the angle alpha (in degree) between projection of line p1-p2
 on the Y-Z plane and Y axis in coor.sys. of wire (y=z=0) and
 the minimal distance from line (p1-p2) to wire.
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 &alpha)
 calc. the angle alpha (in degree) between projection of line
 x1,y1,z1-x2,y2,z2 on the Y-Z plane and Y axis in coor.sys.
 of wires and the minimal distance from line x1,y1,z1-x2,y2,z2
 to wire.
 x1,y1,z1,x2,y2,z2 - in sector coor.sys.
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) const
 return kTRUE if line x1,y1,z1-x2,y2,z2 intersect cell or kFALSE
 if not intersect and calc. the angle alpha (in degree) between projection
 of the line  x1,y1,z1-x2,y2,z2 on the Y-Z plane and Y axis in coor.
 sys. of wires and the minimal distance from line x1,y1,z1-x2,y2,z2
 to wire.
 x1,y1,z1,x2,y2,z2 - in sector coor.sys.
Double_t getXSign(Double_t x1, Double_t y1, Double_t z1, Double_t x2, Double_t y2, Double_t z2, Int_t cell) const
 return X position of the signal on the wire in coor. sys. of this wire
 (Ywire=0, Zwire=0), x1,y1,z1 & x2,y2,z2 - track in sector coor.system
Float_t getSignPath(Double_t x1, Double_t y1, Double_t z1, Double_t x2, Double_t y2, Double_t z2, Int_t cell) const
 return the path of signal along wire number "cell"
 x1,y1,z1 & x2,y2,z2 - track in sector coor.system
 Path can be <0. or > wire_length !!!
 For GEANT data and don't connected wires return 0.
Double_t getXSign(const HMdcLineParam& ln, Int_t cell) const
 return X position of the signal on the wire in coor. sys. of this wire
 (Ywire=0, Zwire=0), "ln" - track in sector coor.system
Double_t getSignPath(const HMdcLineParam& ln, Int_t cell) const
 return the path of signal along wire number "cell"
 "ln" - track in sector coor.system
 Path can be <0. or > wire_length !!!
 For GEANT data and don't connected wires return 0.
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) const
 return the path of signal along wire number "cell"
 x1,y1,z1 & x2,y2,z2 - track in sector coor.system
 For GEANT data and don't connected wires return 0.

 outside:
 if(path<0) outside=-path;
 else if(path>wire_length) outside=path-wire_length;
 else outside=0;

 path-outside give new path which >=0. and <=wire_length)
Bool_t getDriftDist(Double_t xP1, Double_t yP1, Double_t zP1, Double_t xP2, Double_t yP2, Double_t zP2, Int_t cell, Double_t& alphaDrDist, Double_t& driftDist) const
 ---- esli ponadobitsya, nado proverit' rasschet uglov dlya treka vne cella

 return kTRUE if line p1-p2 intersect cell or kFALSE if not intersect
 calc. the angle driftAlpha (in degree) and drift distance in cell
 from line (p1-p2) to wire.
 p1,p2 - in sector coor.sys.
 1)
    Z^
     |  |------------*----|
     |  | cell        *   |
     |  |            / *  |
     |  |           /90 * |
     |  | driftDist/     *|
     |  |         /       *
   --|--|--------*^-----/-|*--------->
     |  |              /  | *        Y
     |  |      alphaDrDist|  *
        |                 |   *
        |                 |    *
        |-----------------|     * track

 2)             *** 90
    Z^             ***
     |  |----------:--***-|
     |  | cell     :  /  ***
     |  |         :  /    | ***  track
     |  |         : /     |    ***
     |  | driftDist/      |
     |  |        :/       |
   --|--|--------*^-------|---------->
     |  |         |       |          Y
     |  |                 |  alphaDrDist ???
        |                 |
        |                 |
        |-----------------|


 3)                        *
                            *
    Z^                     / * <-- no eg. 90 deg. !
     |  |-----------------/   *
     |  | cell           /|    *
     |  |               / |     *
     |  |              /  |      *
     |  |   driftDist /   |       *
     |  |            /    |        *track
     |  |           /     |         *
     |  |          /      |          *
     |  |         /       |      Alpha*
   --|--|--------*^-------|------------->
     |  |         |       |          Y
     |  |      alphaDrDist|
        |                 |
        |                 |
        |                 |
        |                 |
        |                 |
        |                 |
        |-----------------|
void calcInOtherSecSys(const HMdcLineParam& ln, Int_t cell, Double_t& y, Double_t& z, Double_t& dy, Double_t& dz) const
 if "ln"  is in another sector coor.sys
void getRotLSysForOtherSecSys(Int_t othSec, HGeomTransform& trans) const
void print(void)
Bool_t getParamCont(void)
Bool_t fillLayerCont(const HMdcLayerCorrPar* fLayCorrPar, const Double_t* corr = 0)
void transTo(Double_t& x, Double_t& y, Double_t& z) const
Inlines
void transFrom(Double_t& x, Double_t& y, Double_t& z) const
 transform. point x,y,z from layer coor.sys. to sector coor.sys.
Double_t calcWireY(Int_t cell) const
 Return Y in rot.layer coor.sys.
Double_t getDist(Double_t x1, Double_t y1, Double_t z1, Double_t x2, Double_t y2, Double_t z2, Int_t cell) const
 calc.  the minimal distance from line x1,y1,z1-x2,y2,z2  to wire.
 x1,y1,z1,x2,y2,z2 - in sector coor.sys.
void getYZinWireSys(Double_t x, Double_t y, Double_t z, Int_t cell, Double_t& yw, Double_t& zw) const
 Output: yw,zw - in wire coor.sys.
 Wire coor.sys. is line y=z=0, Y - along layer
 x,y,z - in sector coor.sys.
Double_t getDistToZero(Double_t y1, Double_t z1, Double_t y2, Double_t z2) const
 calc. the minimal distance from line (y1,z1) - (y2,z2)  to poin
 y=z=0 in plane y-z.
Double_t getImpactToZero(Double_t y1, Double_t z1, Double_t y2, Double_t z2, Double_t& alpha) const
 calc. the angle alpha (in degree) between line (y1,z1) - (y2,z2)
 in Y-Z plane and Y axis and the minimal distance from this line
 to poin y=z=0 in plane y-z.
void rotVectToLay(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 - layer coor.sys.
void rotVectToRotLay(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 - rotated layer coor.sys.
void rotVectToRotLay(const HGeomVector& d, Double_t& xo, Double_t& yo, Double_t& zo) const
 Input:  xi,yi,zi - sector coor.sys.
 Output: yo,zo - rotated layer coor.sys.
void rotYZtoRotLay(Double_t xi, Double_t yi, Double_t zi, Double_t& yo, Double_t& zo) const
 Input:  xi,yi,zi - sector coor.sys.
 Output: yo,zo - rotated layer coor.sys.
void rotYZtoRotLay(const HGeomVector& d, Double_t& yo, Double_t& zo) const
 Input:  xi,yi,zi - sector coor.sys.
 Output: yo,zo - rotated layer coor.sys.
Double_t transXinRotLay(Double_t xi, Double_t yi) const
 Input:  xi,yi - layer coor.sys.
 Return X in  rotated layer coor.sys.
Double_t transYinRotLay(Double_t xi, Double_t yi) const
 Input:  xi,yi - layer coor.sys.
 Return Y in  rotated layer coor.sys.
void transXYinRotLay(Double_t& x, Double_t& y) const
 Input:  xi,yi - layer coor.sys.
 Return X,Y in  rotated layer coor.sys.
Double_t getImpact(const HMdcLineParam& ln, Int_t cell, Double_t& alpha) const
 calc. the angle alpha (in degree) between projection of line
 "ln" on the Y-Z plane and Y axis in coor.sys.
 of wires and the minimal distance from "ln" to wire.
 "ln" - in sector coor.sys.
Double_t getImpact(const HMdcLineParam& ln, Int_t cell, Double_t& alpha, Double_t& y, Double_t& z, Double_t& dy, Double_t& dz) const
 calc. the angle alpha (in degree) between projection of line
 "ln" on the Y-Z plane and Y axis in coor.sys.
 of wires and the minimal distance from "ln" to wire.
 "ln" - in sector coor.sys.
Bool_t getImpact(const HMdcLineParam& ln, Int_t cell, Double_t& alpha, Double_t& minDist) const
 return kTRUE if line x1,y1,z1-x2,y2,z2 intersect cell or kFALSE
 if not intersect and calc. the angle alpha (in degree) between projection
 of the line  x1,y1,z1-x2,y2,z2 on the Y-Z plane and Y axis in coor.
 sys. of wires and the minimal distance from line x1,y1,z1-x2,y2,z2
 to wire.
 x1,y1,z1,x2,y2,z2 - in sector coor.sys.
Bool_t getImpact(const HMdcLineParam& ln,Int_t cell, Double_t &alpha, Double_t &minDist, Double_t &y,Double_t &z,Double_t &dy,Double_t &dz)
 return kTRUE if line x1,y1,z1-x2,y2,z2 intersect cell or kFALSE
 if not intersect and calc. the angle alpha (in degree) between projection
 of the line  x1,y1,z1-x2,y2,z2 on the Y-Z plane and Y axis in coor.
 sys. of wires and the minimal distance from line x1,y1,z1-x2,y2,z2
 to wire.
 x1,y1,z1,x2,y2,z2 - in sector coor.sys.
HMdcSizesCellsLayer(HMdcSizesCellsMod* pMod, Int_t lay)
HMdcSizesCellsCell& operator[](Int_t i) const
HMdcLayerGeomParLay* getLayerGeomParLay(void)
{return pLayerGeomParLay;}
HGeomVolume* getGeomVolume(void)
{return pGeomVol;}
Short_t getSec(void)
{return sector;}
Short_t getMod(void)
{return module;}
Short_t getLayer(void)
{return layer;}
Double_t getCatDist(void)
{return 2.*halfCatDist;}
Double_t getHalfCatDist(void)
{return halfCatDist;}
Double_t getPitch(void)
{return pitch;}
Double_t getHalfPitch(void)
{return halfPitch;}
Double_t getCosWireOr(void)
{return cosWireOr;}
Double_t getSinWireOr(void)
{return sinWireOr;}
Double_t getTanWireOr(void)
{return sinWireOr/cosWireOr;}
Double_t getWireOffSet(void)
{return wireOffSet;}
Short_t getNCells(void)
{return nCells;}
const HGeomTransform* getSecTrans(void)
{return &sysRSec;}
const HGeomTransform* getModTrans(void)
{return &sysRMod;}
const HGeomTransform* getRotLaySysRMod(void)
{return &rotLaySysRMod;}
const HGeomTransform* getRotLaySysRSec(void)
{return &rotLaySysRSec;}
const Double_t* getRLSysRSec(void)
{return tRLaySysRSec;}
Double_t getSensWiresThickness(void)
 Next method are intrested for geant data only, because plane of
 HMdcGeant hits is entrance plane of sensitive wires volume!
{return sensWiresThick;}
Double_t getZGeantHits(void)
{return zGeantHit;}
const HGeomTransform& getSecTransGeant(void)
{return geantSysRSec;}
const HGeomTransform& getModTransGeant(void)
{return geantSysRMod;}
const HMdcPlane& getGeantHitsPlane(void)
{return geantPlane;}

Last change: Sat May 22 13:03:31 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.