gROOT->Reset();
#endif
int i;
- const Int_t kNbins=26;
- Float_t aPckov[kNbins];
- for(i=0;i<kNbins;i++){ //Photons energy intervals
- aPckov[i]=(Float_t(i)*0.1+5.5)*1e-9;
- }
+ const Int_t kNbins=30;
+
+ Float_t aPckov[kNbins]; for(i=0;i<kNbins;i++) aPckov[i]=(0.1*i+5.5)*1e-9;//Photons energy bins 5.5 eV - 8.5 eV step 0.1 eV
+
- Float_t aIndexFreon[kNbins];
- Float_t aIndexQuartz[kNbins];
- Float_t aIndexOpaqueQuartz[kNbins];
- Float_t aIndexCH4[kNbins];
- Float_t aIndexGrid[kNbins];
+ Float_t aIdxC6F14[kNbins];
+ Float_t aIdxCH4[kNbins];
+ Float_t aIdxGrid[kNbins];
+ Float_t aIdxSiO2[kNbins];
+ Float_t aIdxOpSiO2[kNbins];
- Float_t e1= 10.666;Float_t e2= 18.125; Float_t f1= 46.411; Float_t f2= 228.71;
for (i=0;i<kNbins;i++){
- aIndexFreon[i] = aPckov[i] * .0172 * 1e9 + 1.177;
- Float_t ene=aPckov[i]*1e9;
- Float_t a=f1/(e1*e1 - ene*ene);
- Float_t b=f2/(e2*e2 - ene*ene);
- aIndexQuartz[i] = TMath::Sqrt(1. + a + b );
- aIndexOpaqueQuartz[i] =1;
- aIndexCH4[i] =1.000444;
- aIndexGrid[i] =1;
+ aIdxC6F14[i] = (Float_t)AliRICHParam::IndOfRefC6F14(aPckov[i]*1e9);
+ aIdxSiO2[i] = (Float_t)AliRICHParam::IndOfRefSiO2(aPckov[i]*1e9);
+ aIdxCH4[i] = (Float_t)AliRICHParam::IndOfRefCH4();
+ aIdxGrid[i] =1;
+ aIdxOpSiO2[i] =1;
}
- Float_t aAbsFreon[kNbins]={179.0987, 179.0987, 179.0987, 179.0987, 179.0987,
- 179.0987, 179.0987, 179.0987, 179.0987, 142.9206,
- 56.64957, 25.58622, 13.95293, 12.03905, 10.42953,
- 8.804196, 7.069031, 4.461292, 2.028366, 1.293013,
- 0.577267, 0.40746, 0.334964, 0.0, 0.0,
- 0};
+ Float_t aAbsC6F14[kNbins]={//New values from A.DiMauro 28.10.03 total 31
+ 32701.4219, 17996.1141, 10039.7281, 1799.1230, 1799.1231, 1799.1231, 1241.4091, 179.0987, 179.0986, 179.0987,
+ 179.0987, 118.9800, 39.5058, 23.7244, 11.1283, 7.1573, 3.6249, 2.1236, 0.7362, 0.5348,
+ 0.3387, 0.3074, 0.3050, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001};
+ Float_t aAbsSiO2[kNbins]={//New values from A.DiMauro 28.10.03 total 31
+ 34.4338, 30.5424, 30.2584, 31.4928, 31.7868, 17.8397, 9.3410, 6.4492, 6.1128, 5.8128,
+ 5.5589, 5.2877, 5.0162, 4.7999, 4.5734, 4.2135, 3.7471, 2.6033, 1.5223, 0.9658,
+ 0.4242, 0.2500, 0.1426, 0.0863, 0.0793, 0.0724, 0.0655, 0.0587, 0.0001, 0.0001};
-
- Float_t aAbsQuartz[kNbins]={105.8, 65.52, 48.58, 42.85, 35.79,
- 31.262, 28.598, 27.527, 25.007, 22.815,
- 21.004, 19.266, 17.525, 15.878, 14.177,
- 11.719, 9.282, 6.62, 4.0925, 2.601,
- 1.149, 0.667, 0.3627, 0.192, 0.1497,
- 0.10857};
-
- Float_t aAbsOpaqueQuartz[kNbins];
+ Float_t aAbsOpSiO2[kNbins];
Float_t aAbsCH4[kNbins];
Float_t aAbsGrid[kNbins];
Float_t aAbsCsI[kNbins];
for (i=0;i<kNbins;i++){
- aAbsCH4[i] =AbsoCH4(aPckov[i]*1e9);
- aAbsOpaqueQuartz[i]=1e-5;
- aAbsCsI[i] =1e-4;
- aAbsGrid[i] =1e-4;
+ aAbsCH4[i] =AbsoCH4(aPckov[i]*1e9);
+ aAbsOpSiO2[i] =1e-5;
+ aAbsCsI[i] =1e-4;
+ aAbsGrid[i] =1e-4;
}
- Float_t aQeCsI1[kNbins] = {0.000199999995, 0.000600000028, 0.000699999975, 0.00499999989, 0.00749999983,
- 0.010125, 0.0242999997, 0.0405000001, 0.0688500032, 0.105299994,
- 0.121500008, 0.141749993, 0.157949999, 0.162, 0.166050002,
- 0.167669997, 0.174299985, 0.176789999, 0.179279998, 0.182599992,
- 0.18592, 0.187579989, 0.189239994, 0.190899998, 0.207499996,
- 0.215799987};
- Float_t aQeCsI2[kNbins] = {0.000199999995, 0.000600000028, 0.000699999975, 0.00499999989, 0.00749999983,
- 0.010125, 0.0242999997, 0.0405000001, 0.0688500032, 0.105299994,
- 0.121500008, 0.141749993, 0.157949999, 0.162, 0.166050002,
- 0.167669997, 0.174299985, 0.176789999, 0.179279998, 0.182599992,
- 0.18592, 0.187579989, 0.189239994, 0.190899998, 0.207499996,
- 0.215799987};
- Float_t aQeCsI3[kNbins] = {0.000199999995, 0.000600000028, 0.000699999975, 0.00499999989, 0.00749999983,
- 0.010125, 0.0242999997, 0.0405000001, 0.0688500032, 0.105299994,
- 0.121500008, 0.141749993, 0.157949999, 0.162, 0.166050002,
- 0.167669997, 0.174299985, 0.176789999, 0.179279998, 0.182599992,
- 0.18592, 0.187579989, 0.189239994, 0.190899998, 0.207499996,
- 0.215799987};
- Float_t aQeCsI4[kNbins] = {0.000199999995, 0.000600000028, 0.000699999975, 0.00499999989, 0.00749999983,
- 0.010125, 0.0242999997, 0.0405000001, 0.0688500032, 0.105299994,
- 0.121500008, 0.141749993, 0.157949999, 0.162, 0.166050002,
- 0.167669997, 0.174299985, 0.176789999, 0.179279998, 0.182599992,
- 0.18592, 0.187579989, 0.189239994, 0.190899998, 0.207499996,
- 0.215799987};
- Float_t aQeCsI5[kNbins] = {0.000199999995, 0.000600000028, 0.000699999975, 0.00499999989, 0.00749999983,
- 0.010125, 0.0242999997, 0.0405000001, 0.0688500032, 0.105299994,
- 0.121500008, 0.141749993, 0.157949999, 0.162, 0.166050002,
- 0.167669997, 0.174299985, 0.176789999, 0.179279998, 0.182599992,
- 0.18592, 0.187579989, 0.189239994, 0.190899998, 0.207499996,
- 0.215799987};
- Float_t aQeCsI6[kNbins] = {0.000199999995, 0.000600000028, 0.000699999975, 0.00499999989, 0.00749999983,
- 0.010125, 0.0242999997, 0.0405000001, 0.0688500032, 0.105299994,
- 0.121500008, 0.141749993, 0.157949999, 0.162, 0.166050002,
- 0.167669997, 0.174299985, 0.176789999, 0.179279998, 0.182599992,
- 0.18592, 0.187579989, 0.189239994, 0.190899998, 0.207499996,
- 0.215799987};
- Float_t aQeCsI7[kNbins] = {0.000199999995, 0.000600000028, 0.000699999975, 0.00499999989, 0.00749999983,
- 0.010125, 0.0242999997, 0.0405000001, 0.0688500032, 0.105299994,
- 0.121500008, 0.141749993, 0.157949999, 0.162, 0.166050002,
- 0.167669997, 0.174299985, 0.176789999, 0.179279998, 0.182599992,
- 0.18592, 0.187579989, 0.189239994, 0.190899998, 0.207499996,
- 0.215799987};
+ Float_t aQeCsI[kNbins] = {//New values from A.DiMauro 28.10.03 total 31
+ 0.0002, 0.0006, 0.0007, 0.0010, 0.0049, 0.0073, 0.0104, 0.0519, 0.0936, 0.1299,
+ 0.1560, 0.1768, 0.1872, 0.1976, 0.2142, 0.2288, 0.2434, 0.2599, 0.2673, 0.2808,
+ 0.2859, 0.2954, 0.3016, 0.3120, 0.3172, 0.3224, 0.3266, 0.3328, 0.3359, 0.3390};
+// 0.3431};
+
+
Float_t aQeAll[kNbins];
for(i=0;i<kNbins;i++){
- aQeCsI1[i]/= (1.0-Fresnel(aPckov[i]*1e9,1.0,0)); //FRESNEL LOSS CORRECTION
- aQeCsI2[i]/= (1.0-Fresnel(aPckov[i]*1e9,1.0,0)); //FRESNEL LOSS CORRECTION
- aQeCsI3[i]/= (1.0-Fresnel(aPckov[i]*1e9,1.0,0)); //FRESNEL LOSS CORRECTION
- aQeCsI4[i]/= (1.0-Fresnel(aPckov[i]*1e9,1.0,0)); //FRESNEL LOSS CORRECTION
- aQeCsI5[i]/= (1.0-Fresnel(aPckov[i]*1e9,1.0,0)); //FRESNEL LOSS CORRECTION
- aQeCsI6[i]/= (1.0-Fresnel(aPckov[i]*1e9,1.0,0)); //FRESNEL LOSS CORRECTION
- aQeCsI7[i]/= (1.0-Fresnel(aPckov[i]*1e9,1.0,0)); //FRESNEL LOSS CORRECTION
+ aQeCsI[i]/= (1.0-Fresnel(aPckov[i]*1e9,1.0,0)); //FRESNEL LOSS CORRECTION
aQeAll[i]=1; //QE for all other materials except for PC must be 1.
}
#ifdef __CINT__
-
-//Freon, Quartz, Opaque Quartz,Methane,CsI,Grid
- const Int_t kFreonMarker= 24; const Int_t kFreonColor=kRed;
- const Int_t kCH4Marker= 25; const Int_t kCH4Color=kGreen;
- const Int_t kSiO2Marker= 26; const Int_t kSiO2Color=kBlue;
+ Float_t aAbsC6F14old[kNbins]={//previous values 26 in total added 0.0001 to the 30
+ 179.0987, 179.0987, 179.0987, 179.0987, 179.0987, 179.0987, 179.0987, 179.0987, 179.0987, 142.9206,
+ 56.6496, 25.5862, 13.9529, 12.0391, 10.4295, 8.8042, 7.0690, 4.4611, 2.0284, 1.2930,
+ 0.5772, 0.4074, 0.3350, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, 0.0001};
+ Float_t aAbsSiO2old[kNbins]={//previous values 26 in total added 0.0001 to the 30
+ 105.8000, 65.5200, 48.5800, 42.8500, 35.7900, 31.2620, 28.5980, 27.5270, 25.0070, 22.8150,
+ 21.0040, 19.2660, 17.5250, 15.8780, 14.1770, 11.7190, 9.2820, 6.6200, 4.0930, 2.6010,
+ 1.1490, 0.6670, 0.3630, 0.1920, 0.1500, 0.1090, 0.0001, 0.0001, 0.0001, 0.0001};
+ Float_t aQeCsIold[kNbins]={
+ 0.0002, 0.0006, 0.0007, 0.0050, 0.0075, 0.0101, 0.0243, 0.0405, 0.0689, 0.1053,
+ 0.1215, 0.1417, 0.1579, 0.1620, 0.1661, 0.1677, 0.1743, 0.1768, 0.1793, 0.1826,
+ 0.1859, 0.1876, 0.1892, 0.1909, 0.2075, 0.2158, 0.0001, 0.0001, 0.0001, 0.0001 };
+
+//Now plot all the thigs
+//Freon, Quartz, Opaque ,Methane,CsI,Grid
+ const Int_t kC6F14M= 24; const Int_t kC6F14C=kRed;
+ const Int_t kCH4M= 25; const Int_t kCH4Color=kGreen;
+ const Int_t kSiO2M= 26; const Int_t kSiO2C=kBlue;
const Int_t kCsIMarker = 2; const Int_t kCsIColor =kMagenta;
- TCanvas *pC=new TCanvas("c1","RICH optics to check",800,900);
+ TCanvas *pC=new TCanvas("c1","RICH optics to check",1100,900);
- pC->Divide(2,2);
+ pC->Divide(3,2);
pC->cd(1);
- TGraph *pAbsFreonGr=new TGraph(kNbins,aPckov,aAbsFreon);
- pAbsFreonGr->SetMarkerStyle(kFreonMarker); pAbsFreonGr->SetMarkerColor(kFreonColor);
- TGraph *pAbsSiO2Gr=new TGraph(kNbins,aPckov,aAbsQuartz);
- pAbsSiO2Gr->SetMarkerStyle(kSiO2Marker); pAbsSiO2Gr->SetMarkerColor(kSiO2Color);
- TMultiGraph *pAbsMG=new TMultiGraph();
- TLegend *pAbsLegend=new TLegend(0.6,0.3,0.85,0.5);
- pAbsMG->Add(pAbsFreonGr); pAbsLegend->AddEntry(pAbsFreonGr, "freon","p"); //1
- pAbsMG->Add(pAbsSiO2Gr); pAbsLegend->AddEntry(pAbsSiO2Gr, "quartz","p"); //2
- pAbsMG->Draw("APL");
- pAbsMG->GetXaxis()->SetTitle("energy, GeV");
- pAbsMG->GetYaxis()->SetTitle("absorption length, cm");
- pAbsMG->Draw("APL");
- pAbsLegend->Draw();
+ TGraph *pIdxC6F14G=new TGraph(kNbins,aPckov,aIdxC6F14);pIdxC6F14G->SetMarkerStyle(kC6F14M); pIdxC6F14G->SetMarkerColor(kC6F14C);
+ TGraph *pIdxSiO2G =new TGraph(kNbins,aPckov,aIdxSiO2); pIdxSiO2G->SetMarkerStyle(kSiO2M); pIdxSiO2G->SetMarkerColor(kSiO2C);
+ TGraph *pIdxCH4G =new TGraph(kNbins,aPckov,aIdxCH4); pIdxCH4G->SetMarkerStyle(kCH4M); pIdxCH4G->SetMarkerColor(kCH4Color);
+ TMultiGraph *pIdxMG=new TMultiGraph(); TLegend *pIdxLe=new TLegend(0.6,0.2,0.85,0.4);
+ pIdxMG->Add(pIdxC6F14G); pIdxLe->AddEntry(pIdxC6F14G, "C6F14","p");
+ pIdxMG->Add(pIdxSiO2G); pIdxLe->AddEntry(pIdxSiO2G, "SiO2","p");
+ pIdxMG->Add(pIdxCH4G); pIdxLe->AddEntry(pIdxCH4G, "CH4","p");
+ pIdxMG->Draw("APL");pIdxMG->GetXaxis()->SetTitle("ref index versus energy, GeV");pIdxMG->Draw("APL");
+ pIdxLe->Draw();
pC->cd(2);
- TGraph *pIndexFreonGr=new TGraph(kNbins,aPckov,aIndexFreon);
- pIndexFreonGr->SetMarkerStyle(kFreonMarker); pIndexFreonGr->SetMarkerColor(kFreonColor);
- TGraph *pIndexSiO2Gr=new TGraph(kNbins,aPckov,aIndexQuartz);
- pIndexSiO2Gr->SetMarkerStyle(kSiO2Marker); pIndexSiO2Gr->SetMarkerColor(kSiO2Color);
- TGraph *pIndexCH4Gr=new TGraph(kNbins,aPckov,aIndexCH4);
- pIndexCH4Gr->SetMarkerStyle(kCH4Marker); pIndexCH4Gr->SetMarkerColor(kCH4Color);
- TMultiGraph *pIndexMG=new TMultiGraph();
- TLegend *pIndexLegend=new TLegend(0.6,0.2,0.85,0.4);
- pIndexMG->Add(pIndexFreonGr); pIndexLegend->AddEntry(pIndexFreonGr, "freon","p"); //1
- pIndexMG->Add(pIndexSiO2Gr); pIndexLegend->AddEntry(pIndexSiO2Gr, "quartz","p");
- pIndexMG->Add(pIndexCH4Gr); pIndexLegend->AddEntry(pIndexCH4Gr, "CH4","p");
- pIndexMG->Draw("APL");
- pIndexMG->GetXaxis()->SetTitle("energy, GeV");
- pIndexMG->GetYaxis()->SetTitle("refraction index");
- pIndexMG->Draw("APL");
- pIndexLegend->Draw();
+ TGraph *pAbsC6F14G=new TGraph(kNbins,aPckov,aAbsC6F14);pAbsC6F14G->SetMarkerStyle(kC6F14M); pAbsC6F14G->SetMarkerColor(kC6F14C);
+ TGraph *pAbsSiO2G =new TGraph(kNbins,aPckov,aAbsSiO2); pAbsSiO2G->SetMarkerStyle(kSiO2M); pAbsSiO2G->SetMarkerColor(kSiO2C);
+ TMultiGraph *pAbsMG=new TMultiGraph(); TLegend *pAbsLegend=new TLegend(0.6,0.3,0.85,0.5);
+ pAbsMG->Add(pAbsC6F14G); pAbsLegend->AddEntry(pAbsC6F14G, "C6F14","p");
+ pAbsMG->Add(pAbsSiO2G); pAbsLegend->AddEntry(pAbsSiO2G, "SiO2", "p");
+ pAbsMG->Draw("APL"); pAbsMG->GetXaxis()->SetTitle("absorbtion length, cm versus energy, GeV"); pAbsMG->Draw("APL");
+ pAbsLegend->Draw();
pC->cd(3);
TGraph *pAbsCH4Gr=new TGraph(kNbins,aPckov,aAbsCH4);
- pAbsCH4Gr->SetMarkerStyle(kCH4Marker); pAbsCH4Gr->SetMarkerColor(kCH4Color);
+ pAbsCH4Gr->SetMarkerStyle(kCH4M); pAbsCH4Gr->SetMarkerColor(kCH4Color);
pAbsCH4Gr->Draw("APL");
pAbsCH4Gr->GetXaxis()->SetTitle("energy, GeV");
pAbsCH4Gr->SetTitle("CH4 absorption length, cm");
pAbsCH4Gr->Draw("APL");
+
+ pC->cd(4);
+ TGraph *pQeCsIG=new TGraph(kNbins,aPckov,aQeCsI);
+ pQeCsIG->SetMarkerStyle(kCsIMarker); pQeCsIG->SetMarkerColor(kCsIColor);
+ pQeCsIG->Draw("APL");
+ pQeCsIG->GetXaxis()->SetTitle("energy, GeV");
+ pQeCsIG->SetTitle("QE");
+ pQeCsIG->Draw("APL");
+
+//transmission
+ pC->cd(5);
+ Float_t aTrC6F14[kNbins],aTrSiO2[kNbins],aTrCH4[kNbins];
+ Float_t aTotTr[kNbins];
+ for(Int_t i=0;i<kNbins;i++){
+ aTrC6F14[i]=TMath::Exp(-15*mm/(aAbsC6F14[i]+0.0001));
+ aTrSiO2[i] =TMath::Exp(-5*mm/(aAbsSiO2[i] +0.0001));
+ aTrCH4[i] =TMath::Exp(-8*cm/(aAbsCH4[i] +0.0001));
+ aTotTr[i] =aTrC6F14[i]*aTrSiO2[i]*aTrCH4[i]*aQeCsI[i];
+ }
+ TGraph *pTrC6F14G=new TGraph(kNbins,aPckov,aTrC6F14);pTrC6F14G->SetMarkerStyle(kC6F14M);pTrC6F14G->SetMarkerColor(kC6F14C);
+ TGraph *pTrSiO2G=new TGraph(kNbins,aPckov,aTrSiO2);pTrSiO2G->SetMarkerStyle(kSiO2M); pTrSiO2G->SetMarkerColor(kSiO2C);
+ TGraph *pTrCH4G=new TGraph(kNbins,aPckov,aTrCH4);pTrCH4G->SetMarkerStyle(kCH4M); pTrCH4G->SetMarkerColor(kCH4Color);
+ TGraph *pTotTrG=new TGraph(kNbins,aPckov,aTotTr);pTotTrG->SetMarkerStyle(30);pTotTrG->SetMarkerColor(kYellow);
+ TMultiGraph *pTrMG=new TMultiGraph();
+ TLegend *pTrLegend=new TLegend(0.2,0.4,0.35,0.6);
+ pTrMG->Add(pQeCsIG); pTrLegend->AddEntry(pQeCsIG, "CsI QE", "p");
+ pTrMG->Add(pTrC6F14G); pTrLegend->AddEntry(pTrC6F14G, "C6F14", "p");
+ pTrMG->Add(pTrSiO2G); pTrLegend->AddEntry(pTrSiO2G, "SiO2", "p");
+ pTrMG->Add(pTrCH4G); pTrLegend->AddEntry(pTrCH4G, "CH4", "p");
+ pTrMG->Add(pTotTrG); pTrLegend->AddEntry(pTotTrG, "total", "p");
+ pTrMG->Draw("APL");pTrMG->GetXaxis()->SetTitle("transmission versus energy, GeV");pTrMG->Draw("APL");
+ pTrLegend->Draw();
+ pC->cd(6);
+
+ TMultiGraph *pCompMG=new TMultiGraph;
+ pCompMG->Add(pQeCsIG);
+ pCompMG->Add(new TGraph(kNbins,aPckov,aQeCsIold));
+ pCompMG->Draw("APL");pCompMG->GetXaxis()->SetTitle("comparison of QE versus energy, GeV");pCompMG->Draw("APL");
+
+ return;
TCanvas *pQeC=new TCanvas("pQeC","CsI QE currently all the same",800,900);
pQeC->Divide(2,4);
for(int i=1;i<=7;i++){
pQeC->cd(i);
switch(i){
- case 1: TGraph *pQeCsIGr=new TGraph(kNbins,aPckov,aQeCsI1);pQeCsIGr->SetTitle("Module 1");break;
- case 2: TGraph *pQeCsIGr=new TGraph(kNbins,aPckov,aQeCsI2);pQeCsIGr->SetTitle("Module 2");break;
- case 3: TGraph *pQeCsIGr=new TGraph(kNbins,aPckov,aQeCsI3);pQeCsIGr->SetTitle("Module 3");break;
- case 4: TGraph *pQeCsIGr=new TGraph(kNbins,aPckov,aQeCsI4);pQeCsIGr->SetTitle("Module 4");break;
- case 5: TGraph *pQeCsIGr=new TGraph(kNbins,aPckov,aQeCsI5);pQeCsIGr->SetTitle("Module 5");break;
- case 6: TGraph *pQeCsIGr=new TGraph(kNbins,aPckov,aQeCsI6);pQeCsIGr->SetTitle("Module 6");break;
- case 7: TGraph *pQeCsIGr=new TGraph(kNbins,aPckov,aQeCsI7);pQeCsIGr->SetTitle("Module 7");break;
+ case 1: TGraph *pQeCsIGr=new TGraph(kNbins,aPckov,aQeCsI);pQeCsIGr->SetTitle("Module 1");break;
+ case 2: TGraph *pQeCsIGr=new TGraph(kNbins,aPckov,aQeCsI);pQeCsIGr->SetTitle("Module 2");break;
+ case 3: TGraph *pQeCsIGr=new TGraph(kNbins,aPckov,aQeCsI);pQeCsIGr->SetTitle("Module 3");break;
+ case 4: TGraph *pQeCsIGr=new TGraph(kNbins,aPckov,aQeCsI);pQeCsIGr->SetTitle("Module 4");break;
+ case 5: TGraph *pQeCsIGr=new TGraph(kNbins,aPckov,aQeCsI);pQeCsIGr->SetTitle("Module 5");break;
+ case 6: TGraph *pQeCsIGr=new TGraph(kNbins,aPckov,aQeCsI);pQeCsIGr->SetTitle("Module 6");break;
+ case 7: TGraph *pQeCsIGr=new TGraph(kNbins,aPckov,aQeCsI);pQeCsIGr->SetTitle("Module 7");break;
}
pQeCsIGr->SetMarkerStyle(kCsIMarker); pQeCsIGr->SetMarkerColor(kCsIColor);
pQeCsIGr->Draw("APL");
}
}//main
+//__________________________________________________________________________________________________
Float_t AbsoCH4(Float_t x)
-{
-
- //KLOSCH,SCH4(9),WL(9),EM(9),ALENGTH(31)
- Float_t sch4[9] = {.12,.16,.23,.38,.86,2.8,7.9,28.,80.}; //MB X 10^22
- //Float_t wl[9] = {153.,152.,151.,150.,149.,148.,147.,146.,145};
- Float_t em[9] = {8.1,8.158,8.212,8.267,8.322,8.378,8.435,8.493,8.55};
- const Float_t kLosch=2.686763E19; // LOSCHMIDT NUMBER IN CM-3
- const Float_t kIgas1=100, kIgas2=0, kOxy=10., kWater=5., kPressure=750.,kTemperature=283.;
- Float_t pn=kPressure/760.;
- Float_t tn=kTemperature/273.16;
-
-
-// ------- METHANE CROSS SECTION -----------------
-// ASTROPH. J. 214, L47 (1978)
-
- Float_t sm=0;
- if (x<7.75)
- sm=.06e-22;
-
- if(x>=7.75 && x<=8.1)
- {
- Float_t c0=-1.655279e-1;
- Float_t c1=6.307392e-2;
- Float_t c2=-8.011441e-3;
- Float_t c3=3.392126e-4;
- sm=(c0+c1*x+c2*x*x+c3*x*x*x)*1.e-18;
- }
-
- if (x> 8.1)
- {
- Int_t j=0;
- while (x<=em[j] && x>=em[j+1])
- {
- j++;
- Float_t a=(sch4[j+1]-sch4[j])/(em[j+1]-em[j]);
- sm=(sch4[j]+a*(x-em[j]))*1e-22;
- }
- }
-
- Float_t dm=(kIgas1/100.)*(1.-((kOxy+kWater)/1.e6))*kLosch*pn/tn;
- Float_t abslm=1./sm/dm;
-
-// ------- ISOBUTHANE CROSS SECTION --------------
-// i-C4H10 (ai) abs. length from curves in
-// Lu-McDonald paper for BARI RICH workshop .
-// -----------------------------------------------------------
-
- Float_t ai;
- Float_t absli;
- if (kIgas2 != 0)
- {
- if (x<7.25)
- ai=100000000.;
-
- if(x>=7.25 && x<7.375)
- ai=24.3;
-
- if(x>=7.375)
- ai=.0000000001;
-
- Float_t si = 1./(ai*kLosch*273.16/293.); // ISOB. CRO.SEC.IN CM2
- Float_t di=(kIgas2/100.)*(1.-((kOxy+kWater)/1.e6))*kLosch*pn/tn;
- absli =1./si/di;
- }
- else
- absli=1.e18;
-// ---------------------------------------------------------
-//
-// transmission of O2
-//
-// y= path in cm, x=energy in eV
-// so= cross section for UV absorption in cm2
-// do= O2 molecular density in cm-3
-// ---------------------------------------------------------
-
- Float_t abslo;
- Float_t so=0;
- if(x>=6.0)
- {
- if(x>=6.0 && x<6.5)
- {
- so=3.392709e-13 * TMath::Exp(2.864104 *x);
- so=so*1e-18;
- }
-
- if(x>=6.5 && x<7.0)
- {
- so=2.910039e-34 * TMath::Exp(10.3337*x);
- so=so*1e-18;
- }
-
-
- if (x>=7.0)
- {
- Float_t a0=-73770.76;
- Float_t a1=46190.69;
- Float_t a2=-11475.44;
- Float_t a3=1412.611;
- Float_t a4=-86.07027;
- Float_t a5=2.074234;
- so= a0+(a1*x)+(a2*x*x)+(a3*x*x*x)+(a4*x*x*x*x)+(a5*x*x*x*x*x);
- so=so*1e-18;
- }
-
- Float_t dox=(kOxy/1e6)*kLosch*pn/tn;
- abslo=1./so/dox;
+{//Evaluate the absorbtion lenght of CH4
+ Float_t sch4[9] = {.12,.16,.23,.38,.86,2.8,7.9,28.,80.}; //MB X 10^22
+ Float_t em[9] = {8.1,8.158,8.212,8.267,8.322,8.378,8.435,8.493,8.55};
+ const Float_t kLoschmidt=2.686763e19; // LOSCHMIDT NUMBER IN CM-3
+ const Float_t kPressure=750.,kTemperature=283.;
+ const Float_t pn=kPressure/760.;
+ const Float_t tn=kTemperature/273.16;
+ const Float_t c0=-1.655279e-1;
+ const Float_t c1=6.307392e-2;
+ const Float_t c2=-8.011441e-3;
+ const Float_t c3=3.392126e-4;
+
+ Float_t crossSection=0;
+ if (x<7.75)
+ crossSection=.06e-22;
+ else if(x>=7.75 && x<=8.1){ //------ METHANE CROSS SECTION cm-2 ASTROPH. J. 214, L47 (1978)
+ crossSection=(c0+c1*x+c2*x*x+c3*x*x*x)*1.e-18;
+ }else if (x> 8.1){
+ Int_t j=0;
+ while (x<=em[j] || x>=em[j+1]){
+ j++;
+ Float_t a=(sch4[j+1]-sch4[j])/(em[j+1]-em[j]);
+ crossSection=(sch4[j]+a*(x-em[j]))*1e-22;
}
- else
- abslo=1.e18;
-// ---------------------------------------------------------
-//
-// transmission of H2O
-//
-// y= path in cm, x=energy in eV
-// sw= cross section for UV absorption in cm2
-// dw= H2O molecular density in cm-3
-// ---------------------------------------------------------
-
- Float_t abslw;
+ }//if
- Float_t b0=29231.65;
- Float_t b1=-15807.74;
- Float_t b2=3192.926;
- Float_t b3=-285.4809;
- Float_t b4=9.533944;
-
- if(x>6.75)
- {
- Float_t sw= b0+(b1*x)+(b2*x*x)+(b3*x*x*x)+(b4*x*x*x*x);
- sw=sw*1e-18;
- Float_t dw=(kWater/1e6)*kLosch*pn/tn;
- abslw=1./sw/dw;
- }
- else
- abslw=1.e18;
-
-// ---------------------------------------------------------
-
- Float_t alength=1./(1./abslm+1./absli+1./abslo+1./abslw);
- return (alength);
-}//AbsoCH4
-
-
+ Float_t density=kLoschmidt*pn/tn; //CH4 molecular density 1/cm-3
+ return 1./(density*crossSection);
+}//AbsoCH4()
+//__________________________________________________________________________________________________
Float_t Fresnel(Float_t ene,Float_t pdoti, Bool_t pola)
-{
-
- //ENE(EV), PDOTI=COS(INC.ANG.), PDOTR=COS(POL.PLANE ROT.ANG.)
+{//ENE(EV), PDOTI=COS(INC.ANG.), PDOTR=COS(POL.PLANE ROT.ANG.)
Float_t en[36] = {5.0,5.1,5.2,5.3,5.4,5.5,5.6,5.7,5.8,5.9,6.0,6.1,6.2,
6.3,6.4,6.5,6.6,6.7,6.8,6.9,7.0,7.1,7.2,7.3,7.4,7.5,7.6,7.7,
fresn = fresn*rO;
return(fresn);
-}//Fresnel(...)
+}//Fresnel()
#endif