#include "hmdcsizescells.h"

HMdcSizesCellsMod


class description - source file - inheritance tree (.pdf)

class HMdcSizesCellsMod : public HMdcPlane

Inheritance Chart:
TObject
<-
HMdcPlane
<-
HMdcSizesCellsMod

    public:
HMdcSizesCellsMod(HMdcSizesCellsSec* pSec, Int_t mod) HMdcSizesCellsMod(const HMdcSizesCellsMod&) ~HMdcSizesCellsMod() 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 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 static TClass* Class() const Double_t* getMdcHitLookupTb() const Short_t getMod() const Short_t getSec() const const HGeomTransform* getSecTrans() const Int_t getSize() const HMdcSizesCells* getSizesCells() const Double_t* getTfSysRSec() const virtual TClass* IsA() const HMdcSizesCellsMod& operator=(const HMdcSizesCellsMod&) HMdcSizesCellsLayer& operator[](Int_t i) const void rotVectTo(Double_t xi, Double_t yi, Double_t zi, Double_t& xo, Double_t& yo, Double_t& zo) const Bool_t setSecTrans(const HGeomTransform* alignTrans = 0, Int_t sysOfAlignTrans = 0) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) void transFrom(Double_t& x, Double_t& y, Double_t& z) const void transFromZ0(Double_t& x, Double_t& y, Double_t& z) const void transFromZ0(Float_t& x, Float_t& y, Float_t& z) const void transTo(Double_t& x, Double_t& y, Double_t& z) const

Data Members


    protected:
Short_t sector Address Short_t module HGeomTransform sysRSec Transformation sector<->module Double_t tSysRSec[12] --- Double_t ct[6] Lookup table for funct. calcMdcHit, ... TObjArray* array array of pointers of type HMdcSizesCellsLayer HMdcSizesCellsSec* pToSec Pointer to corresponding sector

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)



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) const
 return the size of the pointer array

Bool_t setSecTrans(const HGeomTransform * alignTrans, Int_t sysOfAlignTrans)

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-----------------------------------------------



Inline Functions


         HMdcSizesCellsLayer& operator[](Int_t i) const
                      Short_t getSec() const
                      Short_t getMod() const
        const HGeomTransform* getSecTrans() const
                         void transTo(Double_t& x, Double_t& y, Double_t& z) const
                         void transFrom(Double_t& x, Double_t& y, Double_t& z) const
                         void transFromZ0(Double_t& x, Double_t& y, Double_t& z) const
                         void transFromZ0(Float_t& x, Float_t& y, Float_t& z) const
                         void rotVectTo(Double_t xi, Double_t yi, Double_t zi, Double_t& xo, Double_t& yo, Double_t& zo) const
                         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 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
              const Double_t* getTfSysRSec() const
              const Double_t* getMdcHitLookupTb() const
                      TClass* Class()
                      TClass* IsA() const
                         void ShowMembers(TMemberInspector& insp, char* parent)
                         void Streamer(TBuffer& b)
                         void StreamerNVirtual(TBuffer& b)
            HMdcSizesCellsMod HMdcSizesCellsMod(const HMdcSizesCellsMod&)
           HMdcSizesCellsMod& operator=(const HMdcSizesCellsMod&)


Last update: Fri Jan 26 12:15:25 2007


ROOT page - Class index - Class Hierarchy - Top of the page

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.