ROOT logo
#ifndef HGEOMMDCWIRE_H_
#define HGEOMMDCWIRE_H_

#include "TObject.h"
#include "TString.h"

class TGeoVolume;

class HGeomMdcWire {

public:
  Int_t         wireNumber;   // wire number (starting from 0)
  TString       wireName;     // volume name
  Int_t         copyNumber;   // node copy number
  Int_t         wireType;     // wire type (0: cathode or field wire, 1: sens wire)
  Float_t       gparams[3];   // Geant/ROOT parameters for a TUBE [cm]
  Float_t       gpos[3];      // Geant/ROOT position in mother [cm] (TUBE center in TRD1 center)
  HGeomMdcWire* pCopyNode;    // pointer to corresponding wire with copyNumber = 1 
  Int_t         mediumInd;    // index of Geant/ROOT medium
  TGeoVolume*   pRootVolume;  // pointer to the ROOT volume

  HGeomMdcWire(Int_t wn=-1, TString name="", Int_t cn=0, Int_t wt=-1, Float_t radius=0.f,
	       Double_t hlen=0., Double_t xpos=0., Double_t ypos=0.,  Double_t zpos=0.) {
    wireNumber  = wn;
    wireName    = name;
    copyNumber  = cn;
    wireType    = wt;
    gparams[0]  = 0.f;
    gparams[1]  = radius * 0.1f;  // in cm
    gparams[2]  = hlen * 0.1f;
    gpos[0]     = xpos * 0.1f;
    gpos[1]     = ypos * 0.1f;
    gpos[2]     = zpos * 0.1f;
    pCopyNode   = NULL;
    mediumInd   = -1;
    pRootVolume = NULL;
  }

  ~HGeomMdcWire(){};

  void setMediumInd(Int_t i)        { mediumInd = i; }
  void setWireNumber(Int_t wn)      { wireNumber = wn; }
  void setCopyNumber(Int_t cn)      { copyNumber = cn; }
  void setCopyNode(HGeomMdcWire* p) { pCopyNode = p; }
  void setRootVolume(TGeoVolume* v) { pRootVolume = v; }

  TString&      getWireName()    { return wireName; }
  Int_t         getCopyNumber()  { return copyNumber; }
  Int_t         getWireType()    { return wireType; }       
  Float_t*      getParams()      { return &gparams[0]; }
  Int_t         getNParams()     { return 3; }
  Float_t*      getPosition()    { return &gpos[0];}
  Int_t         getMediumInd()   { return mediumInd; }
  HGeomMdcWire* getCopyNode()    { return pCopyNode; }
  TGeoVolume*   getRootVolume()  { return pRootVolume; }

  void getPosition(Double_t& x, Double_t& y, Double_t& z) {
    x = gpos[0];    
    y = gpos[1];    
    z = gpos[2];    
  }

  void print();

};

#endif /* !HGEOMMDCWIRE_H */
 hgeommdcwire.h:1
 hgeommdcwire.h:2
 hgeommdcwire.h:3
 hgeommdcwire.h:4
 hgeommdcwire.h:5
 hgeommdcwire.h:6
 hgeommdcwire.h:7
 hgeommdcwire.h:8
 hgeommdcwire.h:9
 hgeommdcwire.h:10
 hgeommdcwire.h:11
 hgeommdcwire.h:12
 hgeommdcwire.h:13
 hgeommdcwire.h:14
 hgeommdcwire.h:15
 hgeommdcwire.h:16
 hgeommdcwire.h:17
 hgeommdcwire.h:18
 hgeommdcwire.h:19
 hgeommdcwire.h:20
 hgeommdcwire.h:21
 hgeommdcwire.h:22
 hgeommdcwire.h:23
 hgeommdcwire.h:24
 hgeommdcwire.h:25
 hgeommdcwire.h:26
 hgeommdcwire.h:27
 hgeommdcwire.h:28
 hgeommdcwire.h:29
 hgeommdcwire.h:30
 hgeommdcwire.h:31
 hgeommdcwire.h:32
 hgeommdcwire.h:33
 hgeommdcwire.h:34
 hgeommdcwire.h:35
 hgeommdcwire.h:36
 hgeommdcwire.h:37
 hgeommdcwire.h:38
 hgeommdcwire.h:39
 hgeommdcwire.h:40
 hgeommdcwire.h:41
 hgeommdcwire.h:42
 hgeommdcwire.h:43
 hgeommdcwire.h:44
 hgeommdcwire.h:45
 hgeommdcwire.h:46
 hgeommdcwire.h:47
 hgeommdcwire.h:48
 hgeommdcwire.h:49
 hgeommdcwire.h:50
 hgeommdcwire.h:51
 hgeommdcwire.h:52
 hgeommdcwire.h:53
 hgeommdcwire.h:54
 hgeommdcwire.h:55
 hgeommdcwire.h:56
 hgeommdcwire.h:57
 hgeommdcwire.h:58
 hgeommdcwire.h:59
 hgeommdcwire.h:60
 hgeommdcwire.h:61
 hgeommdcwire.h:62
 hgeommdcwire.h:63
 hgeommdcwire.h:64
 hgeommdcwire.h:65
 hgeommdcwire.h:66
 hgeommdcwire.h:67