src/IntRank2/IntCSA.cc
/* This function employs all of the "get*" functions in the above sections
   to parse a parameter set for all of the values needed to define a shift
   anisotropy interaction, namely { Iqn,PPM,CSA,eta,alpha,beta,gamma }. In
   addition the spin Larmor frequency (akin to knowing the static magnetic
   field and gyromagnetic ration) is attempted to be determined. If the 
   interaction definition is found, we set the interaction or return false.
   To support CSA interactions in spin systems, which typically know spin
   isotope types and their spin quantum numbers, there is a special function
   that takes a spin isotope for the spin quantum designation.               */
This function employs all of the "get*" functions in the above sections
to parse a parameter set for all of the values needed to define a shift
anisotropy interaction, namely { Iqn,PPM,CSA,eta,alpha,beta,gamma }. In
addition the spin Larmor frequency (akin to knowing the static magnetic
field and gyromagnetic ration) is attempted to be determined. If the
interaction definition is found, we set the interaction or return false.
To support CSA interactions in spin systems, which typically know spin
isotope types and their spin quantum numbers, there is a special function
that takes a spin isotope for the spin quantum designation.
This function employs all of the " get * " functions in the above sections to parse a parameter set for all of the values needed to define a shift anisotropy interaction namely { Iqn PPM CSA eta alpha beta gamma } . In addition the spin Larmor frequency ( akin to knowing the static magnetic field and gyromagnetic ration ) is attempted to be determined . If the interaction definition is found we set the interaction or return false . To support CSA interactions in spin systems which typically know spin isotope types and their spin quantum numbers there is a special function that takes a spin isotope for the spin quantum designation .
bool IntCSA::setCI(const ParameterSet& pset, int idx, int warn)
  {
  double  Iqn;					
  double  ppm;					
  double  csa;					
  double  eta;					
  EAngles EA;					
  double  Om;					
  if(getCI(pset,Iqn,ppm,csa,eta,EA,Om,idx,warn?true:false))
    {						
    SISO     = ppm;				
    SCSA     = csa;				
    SOMEGA   = Om;				
    double X = xi();				
    IntRank2::operator=(IntRank2(Iqn,X,eta,EA));
    return true;				
    }
  return false;
  }
bool IntCSA :: setCI ( const ParameterSet & pset , int idx , int warn ) { double Iqn ; double ppm ; double csa ; double eta ; EAngles EA ; double Om ; if ( getCI ( pset , Iqn , ppm , csa , eta , EA , Om , idx , warn ? true : false ) ) { SISO = ppm ; SCSA = csa ; SOMEGA = Om ; double X = xi ( ) ; IntRank2 :: operator = ( IntRank2 ( Iqn , X , eta , EA ) ) ; return true ; } return false ; }
This function employs all of the "get*" functions in the above sections
to parse a parameter set for all of the values needed to define a shift
anisotropy interaction, namely { Iqn,PPM,CSA,eta,alpha,beta,gamma }.
This function employs all of the " get * " functions in the above sections to parse a parameter set for all of the values needed to define a shift anisotropy interaction namely { Iqn PPM CSA eta alpha beta gamma } .
// Our spin quantum number // Our isotropic shift  (PPM) // Our shift anisotropy (PPM) // Our asymmetry        [0,1] // Our Euler angles (radians) // Our Larmor frequency (MHz) // Try and get parameter vals // If successful, set interact //   Set isotropic val   (PPM) //   Set anisotropic val (PPM) //   Set Larmor freq.    (MHz) //   Set interaction constant //   Set rank 2 interaction //   Return we are successful