#ifndef HGEOMMDCWIRE_H_
#define HGEOMMDCWIRE_H_
#include "TObject.h"
#include "TString.h"
class TGeoVolume;
class HGeomMdcWire {
public:
Int_t wireNumber;
TString wireName;
Int_t copyNumber;
Int_t wireType;
Float_t gparams[3];
Float_t gpos[3];
HGeomMdcWire* pCopyNode;
Int_t mediumInd;
TGeoVolume* pRootVolume;
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;
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 */