]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - RICH/Opticals.h
Transient pointer to AliRunDigitizer
[u/mrichter/AliRoot.git] / RICH / Opticals.h
index 288c8b16ffca7e1f9c98f9133672b70de72945ef..bd8d4f15b86bd6a60828ab176af09ba373a6a66a 100644 (file)
@@ -4,178 +4,167 @@ void Opticals()
   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;
+  Float_t  e1=10.666,e2=18.125,f1=46.411,f2= 228.71; //RICH TDR page 35 
   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] = aPckov[i] *0.0172*1e9+1.177;
+    aIdxSiO2[i]  = TMath::Sqrt(1.+f1/(e1*e1-TMath::Power(aPckov[i]*1e9,2))+f2/(e2*e2-TMath::Power(aPckov[i]*1e9,2)));//TDR p.35
+    aIdxCH4[i]   =1.000444;
+    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(-AliRICHParam::FreonThickness() /(aAbsC6F14[i]+0.0001));
+    aTrSiO2[i] =TMath::Exp(-AliRICHParam::QuartzThickness()/(aAbsSiO2[i] +0.0001));
+    aTrCH4[i]  =TMath::Exp(-AliRICHParam::GapThickness()   /(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");
@@ -184,154 +173,40 @@ void Opticals()
   }
 }//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,
@@ -386,5 +261,5 @@ Float_t Fresnel(Float_t ene,Float_t pdoti, Bool_t pola)
       
     fresn = fresn*rO;
     return(fresn);
-}//Fresnel(...)
+}//Fresnel()
 #endif