#include "ISolenoidFieldDescription.hxx" //#include "ISolenoidField.hxx" COMET::ISolenoidFieldDescription::ISolenoidFieldDescription(): COMET::IElementFieldDescription(), fCurrent(0),fLength(0),fInnerR(0), fOuterR(0){ } COMET::ISolenoidFieldDescription::ISolenoidFieldDescription( double current, double coilInnerRadius, double coilOuterRadius, double coilLength, const TVector3* translation, const TRotation* rotation): COMET::IElementFieldDescription(rotation, translation), fCurrent(current),fLength(coilLength),fInnerR(coilInnerRadius), fOuterR(coilOuterRadius){ } COMET::ISolenoidFieldDescription::ISolenoidFieldDescription(const ISolenoidFieldDescription& rhs): COMET::IElementFieldDescription(rhs), fCurrent(rhs.Current()), fLength(rhs.FullLength()), fInnerR(rhs.InnerR()), fOuterR(rhs.OuterR()){} COMET::ISolenoidFieldDescription& COMET::ISolenoidFieldDescription::operator=(ISolenoidFieldDescription rhs){ // Note that rhs is copy constructed when passed. Swap them now swap(*this, rhs); // Return the copy, swapped data return *this; } COMET::ISolenoidFieldDescription::~ISolenoidFieldDescription(){ } void COMET::ISolenoidFieldDescription::ls(Option_t* opt ) const{ std::cout<< "ISolenoidField: "; TROOT::IncreaseDirLevel(); std::string indent(TROOT::GetDirLevel(),' '); std::cout<<"\n"<x() <<", "<y() <<", "<z()<<")" << std::endl; } if(fRotation){ double angle = 0; TVector3 axis; fRotation->AngleAxis(angle,axis); std::cout<<"\n"<