def __init__(self, **traitsDict): super(ParabolaFit, self).__init__(**traitsDict) self.function = "AParab*(1-((x-x0)/wParabX)**2-((y-y0)/wParabY)**2)**(1.5)+B" self.name = "2D Parabola" self.x0 = Parameter(name="x0") self.y0 = Parameter(name="y0") self.AParab = Parameter(name="AParab") self.wParabX = Parameter(name="wParabX") self.wParabY = Parameter(name="wParabY") self.B = Parameter(name="B") self.variablesList = [ self.x0, self.y0, self.AParab, self.wParabX, self.wParabY, self.B ] self.NCondensate = CalculatedParameter( name="N Condensate", desc="Atom number calculated from parabola part of fit") self.ThomasFermiRadiusX = CalculatedParameter( name="Thomas Fermi Radius X", desc="edge of parabola in X direction") self.ThomasFermiRadiusY = CalculatedParameter( name="Thomas Fermi Radius Y", desc="edge of parabola in Y direction") self.effectiveThomasFermiRadius = CalculatedParameter( name="Thomas Fermi Radius Bar", desc="SQRT(TFRadiusX * TFRadiusY)") self.aspectRationCondensate = CalculatedParameter( name="Aspect Ratio Condensate", desc="ratio of wx to wy") self.chemicalPotentialX = CalculatedParameter( name="Chem Pot. X", desc= "chemical potential from trapping Freq X direction and TF Radius X" ) self.chemicalPotentialY = CalculatedParameter( name="Chem Pot. Y", desc= "chemical potential from trapping Freq Y direction and TF Radius Y" ) self.calculatedParametersList = [ self.NCondensate, self.ThomasFermiRadiusX, self.ThomasFermiRadiusY, self.effectiveThomasFermiRadius, self.aspectRationCondensate, self.chemicalPotentialX, self.chemicalPotentialY ]
def __init__(self, **traitsDict): super(FermiGasFit, self).__init__(**traitsDict) self.function = "A*Li_2(-exp(betaMu)*exp(-(x-x0)^2/2sigmax^2)*exp(-(y-y0)^2/2sigmay^2))/Li_2(-exp(betaMu))+B" self.name = "Fermi Gas" self.x0 = Parameter(name="x0") self.y0 = Parameter(name="y0") self.A = Parameter(name="A") self.sigmaX = Parameter(name="sigmaX") self.sigmaY = Parameter(name="sigmaY") self.betaMu = Parameter(name="betaMu") self.B = Parameter(name="B") self.variablesList = [self.x0,self.y0,self.A,self.sigmaX,self.sigmaY,self.betaMu,self.B] self.fugacity = CalculatedParameter(name="fugacity", desc="fugacity: exp(betaMu)") self.calculatedParametersList = [self.fugacity]
def __init__(self, **traitsDict): super(GaussianFit, self).__init__(**traitsDict) self.function = "(A*exp(-(x-x0)**2/(2.*sigmax**2)-(y-y0)**2/(2.*sigmay**2))+B)" self.name = "2D Gaussian" self.A = Parameter(name="A") self.x0 = Parameter(name="x0") self.sigmax = Parameter(name="sigmax") self.y0 = Parameter(name="y0") self.sigmay = Parameter(name="sigmay") self.B = Parameter(name="B") self.variablesList = [self.A,self.x0,self.sigmax,self.y0,self.sigmay,self.B ] self.N = CalculatedParameter(name="N", desc="Atom number calculated from gaussian fit") self.stdevX = CalculatedParameter(name="stdev X (um)", desc="stdev X of TOF cloud from gaussian fit") self.stdevY = CalculatedParameter(name="stdev Y (um)", desc="stdev Y of TOF cloud from gaussian fit") self.Tx = CalculatedParameter(name="Tx (uK)", desc="Temperature from time of flight in x direction. Uses in trap size defined in physics") self.Ty = CalculatedParameter(name="Ty (uK)", desc="Temperature from time of flight in x direction. Uses in trap size defined in physics") self.T = CalculatedParameter(name="T (uK)", desc="Average of Tx and Ty") self.TxHarmonic = CalculatedParameter(name="Tx harmonic (uK)", desc="Temperature from time of flight in x direction. Uses trap frequency defined in physics") self.TyHarmonic = CalculatedParameter(name="Ty harmonic (uK)", desc="Temperature from time of flight in y direction. Uses trap frequency defined in physics") self.THarmonic = CalculatedParameter(name="T harmonic (uK)", desc="average of Tx harmonic and Ty Harmonic") self.aspectRatio = CalculatedParameter(name="Aspect Ratio", desc="ratio of sigma x to sigma y") self.inverseAspectRatio = CalculatedParameter(name="Aspect Ratio Inverse", desc="ratio of sigma y to sigma x") self.summedOD = CalculatedParameter(name="Summed OD", desc="Optical density summed in the calculated region. Clipped at 0. (i.e. does not count negatives)") self.summedODAtomNumber = CalculatedParameter(name="Summed OD Atom Number", desc="Using optical density summed in the calculated region we calculate an estimate of atom number. Clipped at 0. (i.e. does not count negatives)") self.criticalTemperature = CalculatedParameter(name="Critical Temperature (nK)", desc="Critical temperature from trapping frequency and atom number") self.thermalDensity = CalculatedParameter(name="Thermal Cloud Density Linear Trap (cm^-3)", desc = "N/( 32 Pi (kb T / mu B')^3)") self.thermalDensityHarmonic = CalculatedParameter(name="Peak Thermal Density Harmonic Trap (cm^-3)", desc = "N omegax, omegay, omegaz (m/2 pi kb T)^(3/2)") self.phaseSpaceDensity = CalculatedParameter(name="Phase Space Density (thermal)", desc="phase space density using thermal cloud density" ) self.phaseSpaceDensityHarmonic = CalculatedParameter(name="Phase Space Density Harmonic (thermal)", desc="phase space density using thermal cloud density for a harmonic trap" ) self.vbarLinear = CalculatedParameter(name="average thermal velocity Linear Trap (m/s)", desc = "sqrt(8 kB T / pi m)") self.collisionTimeLinear = CalculatedParameter(name="Collision Time Linear Trap (ms)", desc = "sqrt(20 n sigma vbar") self.signalToNoise = CalculatedParameter(name="Signal to Noise ratio", desc = "gaussian amplitude to background std.dev.") self.calculatedParametersList = [self.N,self.stdevX,self.stdevY, self.Tx,self.Ty , self.T,self.TxHarmonic,self.TyHarmonic,self.THarmonic, self.aspectRatio,self.inverseAspectRatio, self.summedOD,self.summedODAtomNumber, self.criticalTemperature,self.thermalDensity, self.thermalDensityHarmonic,self.phaseSpaceDensity,self.phaseSpaceDensityHarmonic,self.vbarLinear,self.collisionTimeLinear,self.signalToNoise]
def __init__(self, **traitsDict): super(GaussianAndParabolaFit, self).__init__(**traitsDict) self.function = "AGauss*exp(-(x-x0)**2/(2.*sigmax**2)-(y-y0)**2/(2.*sigmay**2))+AParab*(1-((x-x0)/wParabX)**2-((y-y0)/wParabY)**2)**(1.5)+B" self.name = "2D Gaussian + Parabola" self.x0 = Parameter(name="x0") self.y0 = Parameter(name="y0") self.AGauss = Parameter(name="AGauss") self.sigmax = Parameter(name="sigmax") self.sigmay = Parameter(name="sigmay") self.AParab = Parameter(name="AParab") self.wParabX = Parameter(name="wParabX") self.wParabY = Parameter(name="wParabY") self.B = Parameter(name="B") self.variablesList = [ self.x0, self.y0, self.AGauss, self.sigmax, self.sigmay, self.AParab, self.wParabX, self.wParabY, self.B ] self.NThermal = CalculatedParameter( name="N Thermal", desc="Atom number calculated from gaussian part of fit") self.NCondensate = CalculatedParameter( name="N Condensate", desc="Atom number calculated from parabola part of fit") self.N = CalculatedParameter(name="Total N", desc="N Thermal + N Condensate") self.condensateFraction = CalculatedParameter( name="Condensate Fraction", desc="NCondensate/NThermal") self.summedOD = CalculatedParameter( name="Summed OD", desc= "Optical density summed in the calculated region. Clipped at 0. (i.e. does not count negatives)" ) self.summedODAtomNumber = CalculatedParameter( name="Summed OD Atom Number", desc= "Using optical density summed in the calculated region we calculate an estimate of atom number. Clipped at 0. (i.e. does not count negatives)" ) self.Tx = CalculatedParameter( name="Temperature X", desc= "Temperature from time of flight in x direction. Assumes initial size of zero" ) self.Ty = CalculatedParameter( name="Temperature Y", desc= "Temperature from time of flight in y direction. Assumes initial size of zero" ) self.T = CalculatedParameter( name="Temperature", desc="average of temperature X and temperature Y") self.ThomasFermiRadiusX = CalculatedParameter( name="Thomas Fermi Radius X", desc="edge of parabola in X direction") self.ThomasFermiRadiusY = CalculatedParameter( name="Thomas Fermi Radius Y", desc="edge of parabola in Y direction") self.effectiveThomasFermiRadius = CalculatedParameter( name="Thomas Fermi Radius Bar", desc="SQRT(TFRadiusX * TFRadiusY)") self.aspectRatioThermal = CalculatedParameter( name="Aspect Ratio Thermal", desc="ratio of sigma x to sigma y") self.aspectRationCondensate = CalculatedParameter( name="Aspect Ratio Condensate", desc="ratio of wx to wy") self.chemicalPotentialX = CalculatedParameter( name="Chem Pot. X", desc= "chemical potential from trapping Freq X direction and TF Radius X" ) self.chemicalPotentialY = CalculatedParameter( name="Chem Pot. Y", desc= "chemical potential from trapping Freq Y direction and TF Radius Y" ) self.calculatedParametersList = [ self.NThermal, self.NCondensate, self.N, self.condensateFraction, self.summedOD, self.summedODAtomNumber, self.Tx, self.Ty, self.T, self.ThomasFermiRadiusX, self.ThomasFermiRadiusY, self.effectiveThomasFermiRadius, self.aspectRatioThermal, self.aspectRationCondensate, self.chemicalPotentialX, self.chemicalPotentialY ]
def __init__(self, **traitsDict): super(GaussianAndDoubleParabolaFit, self).__init__(**traitsDict) self.function = "AGauss*exp(-(x-x0)**2/(2.*sigmax**2)-(y-y0)**2/(2.*sigmay**2))+AParab_1*(1-((x-(x_0+dist/2.0))/wParabX_1)**2-((y-y0)/wParabY_1)**2)**(1.5)+AParab_2*(1-((x-(x_0-dist)/2.0)/wParabX_2)**2-((y-y0)/wParabY_2)**2)**(1.5) + B" self.name = "2D Gaussian + double Parabola" self.x0 = Parameter(name="x0") self.y0 = Parameter(name="y0") self.dist = Parameter(name="dist") self.AGauss = Parameter(name="AGauss") self.sigmax = Parameter(name="sigmax") self.sigmay = Parameter(name="sigmay") self.AParab_1 = Parameter(name="AParab_1") self.wParabX_1 = Parameter(name="wParabX_1") self.wParabY_1 = Parameter(name="wParabY_1") self.AParab_2 = Parameter(name="AParab_2") self.wParabX_2 = Parameter(name="wParabX_2") self.wParabY_2 = Parameter(name="wParabY_2") self.B = Parameter(name="B") self.variablesList = [ self.x0, self.y0, self.dist, self.AGauss, self.sigmax, self.sigmay, self.AParab_1, self.wParabX_1, self.wParabY_1, self.AParab_2, self.wParabX_2, self.wParabY_2, self.B ] # self.summedOD_1 = CalculatedParameter(name="Summed OD", desc="Optical density summed in the calculated region. Clipped at 0. (i.e. does not count negatives)") # self.summedODAtomNumber_1 = CalculatedParameter(name="Summed OD Atom Number", desc="Using optical density summed in the calculated region we calculate an estimate of atom number. Clipped at 0. (i.e. does not count negatives)") # # self.summedOD_2 = CalculatedParameter(name="Summed OD", desc="Optical density summed in the calculated region. Clipped at 0. (i.e. does not count negatives)") # self.summedODAtomNumber_2 = CalculatedParameter(name="Summed OD Atom Number", desc="Using optical density summed in the calculated region we calculate an estimate of atom number. Clipped at 0. (i.e. does not count negatives)") self.summedOD_total = CalculatedParameter( name="Summed OD", desc= "Optical density summed in the calculated region. Clipped at 0. (i.e. does not count negatives)" ) self.summedODAtomNumber_total = CalculatedParameter( name="Summed OD Atom Number", desc= "Using optical density summed in the calculated region we calculate an estimate of atom number. Clipped at 0. (i.e. does not count negatives)" ) self.condensateFraction = CalculatedParameter( name="Condensate Fraction", desc= "Condensate fraction, where condensate is calculated from both parabolas" ) self.parabolaRatio = CalculatedParameter( name="Parabola ratio", desc="Ratio of atom number in parabolas.") self.NThermal = CalculatedParameter(name="NThermal", desc="Generic") self.NCondensate_1 = CalculatedParameter(name="NCondensate_1", desc="Generic") self.NCondensate_2 = CalculatedParameter(name="NCondensate_2", desc="Generic") self.NCondensate = CalculatedParameter(name="NCondensate", desc="Generic") self.N = CalculatedParameter(name="N", desc="Generic") self.calculatedParametersList = [ self.NThermal, self.NCondensate_1, self.NCondensate_2, self.NCondensate, self.N ]
def __init__(self, **traitsDict): super(RotatedGaussianFit, self).__init__(**traitsDict) self.function = "(A*exp( -(( (y-y0)*cos(theta)+(x-x0)*Sin(theta))**2/(2*sigmay**2)) - ( + (x-x0)*cos(theta) - (y-y0)*sin(theta))**2/(2*sigmax**2))+B)" self.name = "Rotated 2D Gaussian" self.A = Parameter(name="A") self.x0 = Parameter(name="x0") self.sigmax = Parameter(name="sigmax") self.y0 = Parameter(name="y0") self.sigmay = Parameter(name="sigmay") self.theta = Parameter(name="theta") self.B = Parameter(name="B") self.variablesList = [self.A,self.x0,self.sigmax,self.y0,self.sigmay,self.theta,self.B ] self.N = CalculatedParameter(name="N", desc="Atom number calculated from gaussian fit") self.stdevX = CalculatedParameter(name="stdev X (um)", desc="stdev X of TOF cloud from gaussian fit") self.stdevY = CalculatedParameter(name="stdev Y (um)", desc="stdev Y of TOF cloud from gaussian fit") self.xPrime = CalculatedParameter(name="xPrime (um)", desc="uses angle theta to rotate frame so that you get position along principal axes") self.yPrime = CalculatedParameter(name="yPrime (um)", desc="uses angle theta to rotate frame so that you get position along principal axes") self.Tx = CalculatedParameter(name="Tx (uK)", desc="Temperature from time of flight in x direction. Uses in trap size defined in physics") self.Ty = CalculatedParameter(name="Ty (uK)", desc="Temperature from time of flight in y direction. Uses in trap size defined in physics") self.T = CalculatedParameter(name="T (uK)", desc="Average of Tx and Ty") self.aspectRatio = CalculatedParameter(name="Aspect Ratio", desc="ratio of sigma x to sigma y") self.summedOD = CalculatedParameter(name="Summed OD", desc="Optical density summed in the calculated region. Clipped at 0. (i.e. does not count negatives)") self.summedODAtomNumber = CalculatedParameter(name="Summed OD Atom Number", desc="Using optical density summed in the calculated region we calculate an estimate of atom number. Clipped at 0. (i.e. does not count negatives)") self.criticalTemperature = CalculatedParameter(name="Critical Temperature (nK)", desc="Critical temperature from trapping frequency and atom number") self.thermalDensity = CalculatedParameter(name="Thermal Cloud Density (cm^-3)", desc = "N/( 32 Pi (kb T / mu B')^3)") self.phaseSpaceDensity = CalculatedParameter(name="Phase Space Density (thermal)", desc="phase space density using thermal cloud density" ) self.calculatedParametersList = [self.N,self.stdevX,self.stdevY,self.xPrime,self.yPrime, self.Tx,self.Ty , self.T, self.aspectRatio,self.summedOD,self.summedODAtomNumber, self.criticalTemperature,self.thermalDensity,self.phaseSpaceDensity]