#include "math.h"
#include <iostream>
#include "TGraph.h"
#include "TCanvas.h"
#include "TLegend.h"
#include "TMultiGraph.h"
#include "TAxis.h"
#include "TF1.h"
Go to the source code of this file.
|
void | init () |
|
double | lambdatoe (double lambda) |
|
double | etolambda (double E) |
|
double | sellmeier_LAr (double *x, double *p) |
|
double | sellmeier_LAr (double lambda, int index) |
|
double | sellmeierpe_LAr (double *x, double *p) |
|
double | sellmeierpe_LAr (double x, int index) |
|
void | sellmeierLAr (double emin=110, double emax=700) |
|
void | sellmeierpeLAr () |
|
double | lrayleigh (Double_t *x, Double_t *p) |
|
double | lrayleigh (double lambda, int index) |
|
void | rayleigh (double emin=110, double emax=400) |
|
void | rayleightable (double emin=110, double emax=700, int nsteps=100, int index=0) |
|
void | rindextable (double emin=110, double emax=700, int nsteps=100, int index=0) |
|
|
const double | pi = 3.14159265358979323846 |
|
const double | p3times16 = 16.*pi*pi*pi |
|
const double | kA = 6.02214129e23 |
|
const double | kb = 1.3806488e-16 |
|
const double | kT = 2.18e-10 |
|
const double | aw = 39.948 |
|
const double | c = 299792458. |
|
const double | h = 4.13566743E-15 |
|
const double | lambdaUV = 106.6*1e-7 |
|
const double | lambdaIR = 908.3*1e-7 |
|
const double | alngth = 66. |
|
const Int_t | nr = 9 |
|
const Double_t | Lambda [nr] |
|
const Double_t | R [nr] |
|
const double | T [4] = {83.81 ,86. ,88. ,90.} |
|
const double | a0 [4] = {1.24262 ,1.23828 ,1.23358 ,1.26099} |
|
const double | aUV [4] = {0.268257 ,0.266635 ,0.266183 ,0.236486} |
|
const double | aIR [4] = {0.00047342,0.000848595,0.000846994,0.0022611} |
|
const double | rho [4] = {0.03549 ,0.03513 ,0.03481 ,0.03449} |
|
double | density [4] |
|
double | kbTrhokT [4] |
|
double etolambda |
( |
double |
E | ) |
|
Definition at line 95 of file LAr.C.
99 double lambda = (
h*
c)/(
E*1.
e-9);
Definition at line 80 of file LAr.C.
double lambdatoe |
( |
double |
lambda | ) |
|
Definition at line 88 of file LAr.C.
92 double E = (
h*
c)/(lambda*1.
e-9);
double lrayleigh |
( |
Double_t * |
x, |
|
|
Double_t * |
p |
|
) |
| |
Definition at line 206 of file LAr.C.
208 double lambda =
x[0];
211 lambda = lambda*1.e-7;
212 double l =
p3times16/(6.*lambda*lambda*lambda*lambda);
double sellmeier_LAr(double *x, double *p)
ParameterSet &ps const ParameterSet const * p
double lrayleigh |
( |
double |
lambda, |
|
|
int |
index |
|
) |
| |
Definition at line 218 of file LAr.C.
221 lambda = lambda*1.e-7;
222 double l =
p3times16/(6.*lambda*lambda*lambda*lambda);
double sellmeier_LAr(double *x, double *p)
void rayleigh |
( |
double |
emin = 110 , |
|
|
double |
emax = 400 |
|
) |
| |
Definition at line 230 of file LAr.C.
232 const double minlambda = 110;
233 const double maxlambda = 400;
234 if (emin<minlambda||emax>maxlambda)
236 cout <<
" variables out of range: "<< minlambda<<
" - "<< maxlambda<<endl;
239 TCanvas *canvas =
new TCanvas(
"canvas",
"rayleigh scattering length", 200, 10, 1000, 800);
241 vp0->SetParameters(0.,0.);
242 vp0->SetLineWidth(2);
243 vp0->SetLineColor(2);
244 vp0->SetTitle(
"T=83.81K");
245 vp0->GetXaxis()->SetTitle(
"#lambda [nm]");
246 vp0->GetYaxis()->SetTitle(
"Rayleigh scattering length [cm]");
249 vp1->SetParameters(1.,0.);
250 vp1->SetLineWidth(2);
251 vp1->SetLineColor(3);
252 vp1->SetTitle(
"T=86.K");
255 vp2->SetParameters(2.,0.);
256 vp2->SetLineWidth(2);
257 vp2->SetLineColor(4);
258 vp2->SetTitle(
"T=88.K");
261 vp3->SetParameters(3.,0.);
262 vp3->SetLineWidth(2);
263 vp3->SetLineColor(8);
264 vp3->SetTitle(
"T=90.K");
266 TLegend *leg = canvas->BuildLegend(.15, .75, 0.45, .85);
double lrayleigh(Double_t *x, Double_t *p)
the ParameterSet object passed in for the configuration of a destination should be the only source that can affect the behavior of that destination This is to eliminate the dependencies of configuring a destination from multiple mostly from the defaults It suppresses possible glitches about changing the configuration file somewhere outside of a destination segament might still affect the behavior of that destination In the previous configuration for a specific the value of a certain e may come from following and have been suppressed It the configuring ParameterSet object for each destination will be required to carry a parameter list as complete as possible If a parameter still cannot be found in the ParameterSet the configuration code will go look for a hardwired default directly The model is a great simplicity comparing with the previous especially when looking for default values Another great advantage is most of the parameters now have very limited places that allows to appear Usually they can only appear at one certain level in a configuration file For in the old configuring model or in a default ParameterSet object inside of a or in a category or in a severity object This layout of multiple sources for a single parameter brings great confusion in both writing a configuration and in processing the configuration file Under the new the only allowed place for the parameter limit to appear is inside of a category which is inside of a destination object Other improvements simplify the meaning of a destination name In the old a destination name has multiple folds of meanings the e cout and cerr have the special meaning of logging messages to standard output or standard error the name also serves as the output filename if the destination is a file these names are also references to look up for detailed configurations in configuring the MessageFacility The multi purpose of the destination name might cause some unwanted behavior in either writing or parsing the configuration file To amend in the new model the destination name is now merely a name for a which might represent the literal purpose of this or just an id All other meanings of the destinations names now go into the destination ParameterSet as individual such as the type parameter and filename parameter Following is the deatiled rule for the new configuring Everything that is related with MessageFacility configuration must be wrapped in a single ParameterSet object with the name MessageFacility The MessageFacility ParameterSet object contains a series of top level parameters These parameters can be chosen a vector of string listing the name of debug enabled models Or use *to enable debug messages in all modules a vector of string a vector of string a vector of string a ParameterSet object containing the list of all destinations The destinations ParameterSet object is a combination of ParameterSet objects for individual destinations There are two types of destinations that you can insert in the destinations ParameterSet ordinary including cout
void rayleightable |
( |
double |
emin = 110 , |
|
|
double |
emax = 700 , |
|
|
int |
nsteps = 100 , |
|
|
int |
index = 0 |
|
) |
| |
Definition at line 275 of file LAr.C.
277 const double minlambda = 110;
278 const double maxlambda = 700;
279 if (emin<minlambda||emax>maxlambda)
281 cout <<
" variables out of range: "<< minlambda<<
" - "<< maxlambda<<endl;
288 cout<<
" <matrix name=\"RAYLEIGH\" coldim=\"2\" values=\"" << photone <<
"*eV "<<n<<
"*cm"<<endl;
291 pe =
emax-
i*stepsize;
294 cout << photone <<
"*eV "<<n<<
"*cm"<<endl;
296 pe =
emax-(nsteps-1)*stepsize;
299 cout << photone <<
"*eV "<<n<<
"*cm\"/>"<<endl;
double lrayleigh(Double_t *x, Double_t *p)
double lambdatoe(double lambda)
the ParameterSet object passed in for the configuration of a destination should be the only source that can affect the behavior of that destination This is to eliminate the dependencies of configuring a destination from multiple mostly from the defaults It suppresses possible glitches about changing the configuration file somewhere outside of a destination segament might still affect the behavior of that destination In the previous configuration for a specific the value of a certain e may come from following and have been suppressed It the configuring ParameterSet object for each destination will be required to carry a parameter list as complete as possible If a parameter still cannot be found in the ParameterSet the configuration code will go look for a hardwired default directly The model is a great simplicity comparing with the previous especially when looking for default values Another great advantage is most of the parameters now have very limited places that allows to appear Usually they can only appear at one certain level in a configuration file For in the old configuring model or in a default ParameterSet object inside of a or in a category or in a severity object This layout of multiple sources for a single parameter brings great confusion in both writing a configuration and in processing the configuration file Under the new the only allowed place for the parameter limit to appear is inside of a category which is inside of a destination object Other improvements simplify the meaning of a destination name In the old a destination name has multiple folds of meanings the e cout and cerr have the special meaning of logging messages to standard output or standard error the name also serves as the output filename if the destination is a file these names are also references to look up for detailed configurations in configuring the MessageFacility The multi purpose of the destination name might cause some unwanted behavior in either writing or parsing the configuration file To amend in the new model the destination name is now merely a name for a which might represent the literal purpose of this or just an id All other meanings of the destinations names now go into the destination ParameterSet as individual such as the type parameter and filename parameter Following is the deatiled rule for the new configuring Everything that is related with MessageFacility configuration must be wrapped in a single ParameterSet object with the name MessageFacility The MessageFacility ParameterSet object contains a series of top level parameters These parameters can be chosen a vector of string listing the name of debug enabled models Or use *to enable debug messages in all modules a vector of string a vector of string a vector of string a ParameterSet object containing the list of all destinations The destinations ParameterSet object is a combination of ParameterSet objects for individual destinations There are two types of destinations that you can insert in the destinations ParameterSet ordinary including cout
void rindextable |
( |
double |
emin = 110 , |
|
|
double |
emax = 700 , |
|
|
int |
nsteps = 100 , |
|
|
int |
index = 0 |
|
) |
| |
Definition at line 307 of file LAr.C.
309 const double minlambda = 110;
310 const double maxlambda = 700;
311 if (emin<minlambda||emax>maxlambda)
313 cout <<
" variables out of range: "<< minlambda<<
" - "<< maxlambda<<endl;
320 cout<<
" <matrix name=\"RINDEX\" coldim=\"2\" values=\"" << photone <<
"*eV "<<n<<endl;
323 pe =
emax-
i*stepsize;
326 cout <<photone <<
"*eV "<<n<<endl;
328 pe =
emax-(nsteps-1)*stepsize;
331 cout << photone <<
"*eV "<<n<<
"\"/>"<<endl;
double sellmeier_LAr(double *x, double *p)
double lambdatoe(double lambda)
the ParameterSet object passed in for the configuration of a destination should be the only source that can affect the behavior of that destination This is to eliminate the dependencies of configuring a destination from multiple mostly from the defaults It suppresses possible glitches about changing the configuration file somewhere outside of a destination segament might still affect the behavior of that destination In the previous configuration for a specific the value of a certain e may come from following and have been suppressed It the configuring ParameterSet object for each destination will be required to carry a parameter list as complete as possible If a parameter still cannot be found in the ParameterSet the configuration code will go look for a hardwired default directly The model is a great simplicity comparing with the previous especially when looking for default values Another great advantage is most of the parameters now have very limited places that allows to appear Usually they can only appear at one certain level in a configuration file For in the old configuring model or in a default ParameterSet object inside of a or in a category or in a severity object This layout of multiple sources for a single parameter brings great confusion in both writing a configuration and in processing the configuration file Under the new the only allowed place for the parameter limit to appear is inside of a category which is inside of a destination object Other improvements simplify the meaning of a destination name In the old a destination name has multiple folds of meanings the e cout and cerr have the special meaning of logging messages to standard output or standard error the name also serves as the output filename if the destination is a file these names are also references to look up for detailed configurations in configuring the MessageFacility The multi purpose of the destination name might cause some unwanted behavior in either writing or parsing the configuration file To amend in the new model the destination name is now merely a name for a which might represent the literal purpose of this or just an id All other meanings of the destinations names now go into the destination ParameterSet as individual such as the type parameter and filename parameter Following is the deatiled rule for the new configuring Everything that is related with MessageFacility configuration must be wrapped in a single ParameterSet object with the name MessageFacility The MessageFacility ParameterSet object contains a series of top level parameters These parameters can be chosen a vector of string listing the name of debug enabled models Or use *to enable debug messages in all modules a vector of string a vector of string a vector of string a ParameterSet object containing the list of all destinations The destinations ParameterSet object is a combination of ParameterSet objects for individual destinations There are two types of destinations that you can insert in the destinations ParameterSet ordinary including cout
double sellmeier_LAr |
( |
double * |
x, |
|
|
double * |
p |
|
) |
| |
Definition at line 102 of file LAr.C.
107 double lambda =
x[0]*1
e-7;
111 return sqrt(nsquare);
ParameterSet &ps const ParameterSet const * p
double sellmeier_LAr |
( |
double |
lambda, |
|
|
int |
index |
|
) |
| |
Definition at line 113 of file LAr.C.
119 return sqrt(nsquare);
void sellmeierLAr |
( |
double |
emin = 110 , |
|
|
double |
emax = 700 |
|
) |
| |
Definition at line 147 of file LAr.C.
149 const double minlambda = 110;
150 const double maxlambda = 700;
151 if (emin<minlambda||emax>maxlambda)
153 cout <<
" variables out of range: "<< minlambda<<
" - "<< maxlambda<<endl;
156 TCanvas *canvas2 =
new TCanvas(
"canvas2",
"refractive indices", 200, 10, 1000, 800);
158 sm0-> SetTitle(
"T=83.81 K");
159 sm0->SetParameters(
a0[0],
aUV[0],
aIR[0]);
160 sm0->SetLineWidth(2);
161 sm0->SetLineColor(2);
162 sm0->GetXaxis()->SetTitle(
"#lambda [nm]");
163 sm0->GetYaxis()->SetTitle(
"Index of Refraction");
166 sm1-> SetTitle(
"T=86. K");
167 sm1->SetParameters(
a0[1],
aUV[1],
aIR[1]);
168 sm1->SetLineWidth(2);
169 sm1->SetLineColor(3);
172 sm2-> SetTitle(
"T=88. K");
173 sm2->SetParameters(
a0[2],
aUV[2],
aIR[2]);
174 sm2->SetLineWidth(2);
175 sm2->SetLineColor(4);
178 sm3-> SetTitle(
"T=90. K");
179 sm3->SetParameters(
a0[3],
aUV[3],
aIR[3]);
180 sm3->SetLineWidth(2);
181 sm3->SetLineColor(8);
185 ve-> SetTitle(
"Sinnock et al");
187 ve->SetMarkerColor(2);
188 ve->SetMarkerStyle(22);
189 ve->SetMarkerSize(2);
191 TLegend *leg = canvas2->BuildLegend(.7, .65, 0.85, .85);
const Double_t Lambda[nr]
double sellmeier_LAr(double *x, double *p)
the ParameterSet object passed in for the configuration of a destination should be the only source that can affect the behavior of that destination This is to eliminate the dependencies of configuring a destination from multiple mostly from the defaults It suppresses possible glitches about changing the configuration file somewhere outside of a destination segament might still affect the behavior of that destination In the previous configuration for a specific the value of a certain e may come from following and have been suppressed It the configuring ParameterSet object for each destination will be required to carry a parameter list as complete as possible If a parameter still cannot be found in the ParameterSet the configuration code will go look for a hardwired default directly The model is a great simplicity comparing with the previous especially when looking for default values Another great advantage is most of the parameters now have very limited places that allows to appear Usually they can only appear at one certain level in a configuration file For in the old configuring model or in a default ParameterSet object inside of a or in a category or in a severity object This layout of multiple sources for a single parameter brings great confusion in both writing a configuration and in processing the configuration file Under the new the only allowed place for the parameter limit to appear is inside of a category which is inside of a destination object Other improvements simplify the meaning of a destination name In the old a destination name has multiple folds of meanings the e cout and cerr have the special meaning of logging messages to standard output or standard error the name also serves as the output filename if the destination is a file these names are also references to look up for detailed configurations in configuring the MessageFacility The multi purpose of the destination name might cause some unwanted behavior in either writing or parsing the configuration file To amend in the new model the destination name is now merely a name for a which might represent the literal purpose of this or just an id All other meanings of the destinations names now go into the destination ParameterSet as individual such as the type parameter and filename parameter Following is the deatiled rule for the new configuring Everything that is related with MessageFacility configuration must be wrapped in a single ParameterSet object with the name MessageFacility The MessageFacility ParameterSet object contains a series of top level parameters These parameters can be chosen a vector of string listing the name of debug enabled models Or use *to enable debug messages in all modules a vector of string a vector of string a vector of string a ParameterSet object containing the list of all destinations The destinations ParameterSet object is a combination of ParameterSet objects for individual destinations There are two types of destinations that you can insert in the destinations ParameterSet ordinary including cout
double sellmeierpe_LAr |
( |
double * |
x, |
|
|
double * |
p |
|
) |
| |
Definition at line 121 of file LAr.C.
132 double nord = sqrt(nsquare);
double etolambda(double E)
ParameterSet &ps const ParameterSet const * p
double sellmeierpe_LAr |
( |
double |
x, |
|
|
int |
index |
|
) |
| |
Definition at line 135 of file LAr.C.
142 double nord = sqrt(nsquare);
double etolambda(double E)
Definition at line 195 of file LAr.C.
198 sm->SetParameters(
a0[0],
aUV[0],
aIR[0]);
201 sm->GetXaxis()->SetTitle(
"photon energy [eV]");
202 sm->GetYaxis()->SetTitle(
"Index of Refraction");
double sellmeierpe_LAr(double *x, double *p)
const double a0[4] = {1.24262 ,1.23828 ,1.23358 ,1.26099} |
Definition at line 74 of file LAr.C.
const double aIR[4] = {0.00047342,0.000848595,0.000846994,0.0022611} |
Definition at line 76 of file LAr.C.
const double alngth = 66. |
Definition at line 41 of file LAr.C.
const double aUV[4] = {0.268257 ,0.266635 ,0.266183 ,0.236486} |
Definition at line 75 of file LAr.C.
Definition at line 36 of file LAr.C.
const double c = 299792458. |
Definition at line 37 of file LAr.C.
Definition at line 78 of file LAr.C.
const double h = 4.13566743E-15 |
Definition at line 38 of file LAr.C.
const double kA = 6.02214129e23 |
Definition at line 33 of file LAr.C.
const double kb = 1.3806488e-16 |
Definition at line 34 of file LAr.C.
Definition at line 79 of file LAr.C.
const double kT = 2.18e-10 |
Definition at line 35 of file LAr.C.
Initial value:= {361.2,
365.0,
406.3,
435.8,
475.3,
508.6,
546.1,
578.0,
643.9
}
Definition at line 48 of file LAr.C.
const double lambdaIR = 908.3*1e-7 |
Definition at line 40 of file LAr.C.
const double lambdaUV = 106.6*1e-7 |
Definition at line 39 of file LAr.C.
Definition at line 47 of file LAr.C.
Definition at line 32 of file LAr.C.
const double pi = 3.14159265358979323846 |
Definition at line 31 of file LAr.C.
Initial value:= {1.2395,
1.2392,
1.2372,
1.2361,
1.2349,
1.2341,
1.2334,
1.2328,
1.2321
}
Definition at line 58 of file LAr.C.
const double rho[4] = {0.03549 ,0.03513 ,0.03481 ,0.03449} |
Definition at line 77 of file LAr.C.
const double T[4] = {83.81 ,86. ,88. ,90.} |
Definition at line 73 of file LAr.C.