allow the exponent for the temperature evolution for lambda to be set. If not given, the two fluid exponent 4 will be chosen.
This commit is contained in:
parent
98051779d5
commit
8494ca71db
10
src/external/Nonlocal/PNL_PippardFitter.cpp
vendored
10
src/external/Nonlocal/PNL_PippardFitter.cpp
vendored
@ -102,6 +102,8 @@ PNL_PippardFitterGlobal::PNL_PippardFitterGlobal()
|
||||
fFieldB = 0;
|
||||
fShift = 0;
|
||||
|
||||
f_nn = 4.0;
|
||||
|
||||
f_dx = 0.02;
|
||||
}
|
||||
|
||||
@ -323,7 +325,7 @@ Double_t PNL_PippardFitterGlobal::DeltaBCS(const Double_t t) const
|
||||
*/
|
||||
Double_t PNL_PippardFitterGlobal::LambdaL_T(const Double_t lambdaL, const Double_t t) const
|
||||
{
|
||||
return lambdaL/sqrt(1.0-pow(t,4.0));
|
||||
return lambdaL/sqrt(1.0-pow(t, f_nn));
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
@ -431,7 +433,11 @@ Bool_t PNL_PippardFitter::GlobalPartIsValid() const
|
||||
Double_t PNL_PippardFitter::operator()(Double_t t, const std::vector<Double_t> ¶m) const
|
||||
{
|
||||
// param: [0] energy, [1] temp, [2] thickness, [3] meanFreePath, [4] xi0, [5] lambdaL, [6] Bext, [7] phase, [8] dead-layer
|
||||
assert(param.size() == 9);
|
||||
// optionally [9] nn, where nn is the exponent in lambda = lambda_L / sqrt(1-t^nn). Default is nn=4.
|
||||
assert((param.size() == 9) || (param.size() == 10));
|
||||
|
||||
if (param.size() == 10) // nn given, hence set it
|
||||
fPippardFitterGlobal->SetTempExponent(param[9]);
|
||||
|
||||
// for negative time return polarization == 1
|
||||
if (t <= 0.0)
|
||||
|
4
src/external/Nonlocal/PNL_PippardFitter.h
vendored
4
src/external/Nonlocal/PNL_PippardFitter.h
vendored
@ -47,10 +47,11 @@ class PNL_PippardFitterGlobal
|
||||
virtual ~PNL_PippardFitterGlobal();
|
||||
|
||||
Bool_t IsValid() { return fValid; }
|
||||
virtual void SetTempExponent(const Double_t nn) { f_nn = nn; }
|
||||
virtual void CalculateField(const std::vector<Double_t> ¶m) const;
|
||||
virtual Int_t GetEnergyIndex(const Double_t energy) { return fRgeHandler->GetRgeEnergyIndex(energy); }
|
||||
virtual Double_t GetMuonStoppingDensity(const Int_t energyIndex, const Double_t z) const { return fRgeHandler->GetRgeValue(energyIndex, z); }
|
||||
virtual Double_t GetMagneticField(const Double_t z) const;
|
||||
virtual Double_t GetMagneticField(const Double_t z) const;
|
||||
|
||||
private:
|
||||
Bool_t fValid;
|
||||
@ -60,6 +61,7 @@ class PNL_PippardFitterGlobal
|
||||
|
||||
mutable std::vector<Double_t> fPreviousParam;
|
||||
|
||||
Double_t f_nn;
|
||||
Double_t f_dx; // dx = xiPT dq
|
||||
mutable Double_t f_dz; // spatial step size
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user