Public Member Functions | Private Member Functions | Private Attributes

WCSimWaterModel Class Reference

#include "WCSimWaterModel.hh"

List of all members.

Public Member Functions

 WCSimWaterModel ()
 ~WCSimWaterModel ()
void Reset ()
Double_t N_Index (Double_t flmda)
Double_t Vg (Double_t flmda)
Double_t AvgVg (Double_t distance)
Double_t InitSpect (Double_t flmda)
Double_t AbsLength (Double_t flmda)
Double_t Atten (Double_t flmda, Double_t fdist)
Double_t FinlSpect (Double_t flmda, Double_t fdist)
TH1D * FinlTimeSpect (TH1D *dhist)

Private Member Functions

 ClassDef (WCSimWaterModel, 0)

Private Attributes

Double_t flmda
Double_t fdist
TH1D * finittime
Double_t findex
Double_t fvelo
Double_t finitintensity
Double_t fabslength
Double_t fatten
Double_t ffinlintensity
TH1D * ffinltime
Double_t Temp
Double_t r5
Double_t r1
Double_t r2
Double_t r3
Double_t r4
Double_t a0
Double_t a1
Double_t a2
Double_t a3
Double_t a4
Double_t a5
Double_t a6
Double_t a7
Double_t lambdauv
Double_t lambdair
Double_t C
Double_t N
Double_t dndl
Int_t numD
Double_t minDist
Double_t width
Double_t Dist
Double_t numPh
Double_t TimePh
Int_t TimeBin
Double_t Intensity
Double_t rho
Double_t A0
Double_t A1
Double_t A2
Double_t A3
Double_t A4
Double_t A5
Double_t A6
Double_t A7
Double_t A

Detailed Description

Definition at line 13 of file WCSimWaterModel.hh.


Constructor & Destructor Documentation

WCSimWaterModel::WCSimWaterModel (  )  [inline]

Definition at line 17 of file WCSimWaterModel.hh.

{}

WCSimWaterModel::~WCSimWaterModel (  ) 

Member Function Documentation

Double_t WCSimWaterModel::AbsLength ( Double_t  flmda  ) 

Definition at line 101 of file WCSimWaterModel.cc.

References fabslength.

Referenced by Atten().

  {
    if (flmda<200.0) {fabslength = 20;}
    if (flmda>=200.0 && flmda<325.0) { fabslength = (0.0181*flmda - 3.41)*100.0; }//meters -> cm
    if (flmda>=325.0 && flmda<375.0) { fabslength = (0.123*flmda - 37.9)*100.0; }
    if (flmda>=375.0 && flmda<475.0) { fabslength = (0.327*flmda - 114.1)*100.0; }
    if (flmda>=475.0 && flmda<500.0) { fabslength = (-0.02*flmda*flmda + 19.2*flmda - 4567)*100.0; }
    if (flmda>=500.0 && flmda<600.0) { fabslength = (-0.362*flmda + 221.)*100.0; }
    if (flmda>=600.0 && flmda<700.0) { fabslength = (-0.0264*flmda + 20.2)*100.0; }
    if (flmda>=700) { fabslength = 50; }
    return fabslength;
  }

Double_t WCSimWaterModel::Atten ( Double_t  flmda,
Double_t  fdist 
)
Double_t WCSimWaterModel::AvgVg ( Double_t  distance  ) 

Definition at line 160 of file WCSimWaterModel.cc.

{
  // needs to be written
  return 0;
}

WCSimWaterModel::ClassDef ( WCSimWaterModel  ,
 
) [private]
Double_t WCSimWaterModel::FinlSpect ( Double_t  flmda,
Double_t  fdist 
)
TH1D * WCSimWaterModel::FinlTimeSpect ( TH1D *  dhist  ) 

Definition at line 138 of file WCSimWaterModel.cc.

References Atten(), fdist, ffinltime, finittime, flmda, InitSpect(), Intensity, minDist, numD, numPh, TimeBin, TimePh, Vg(), and width.

   { 
     TH1D *ffinltime = new TH1D("final time spectrum","final time spectrum",1000,0,500);
     numD = finittime->TH1D::GetNbinsX();
     minDist = finittime->TH1D::GetBinLowEdge(0);
     width = finittime->TH1D::GetBinWidth(0);
     for (Int_t i=0; i<numD; i++) {
        fdist = minDist + (i + 0.5)*width;
        numPh = finittime->TH1D::GetBinContent(i);
        for (flmda = 200.; flmda<700.; flmda = flmda + 1.0) {
            TimePh = fdist/Vg(flmda);
            Double_t dTimeBin = TimePh/0.5;
            TimeBin = (Int_t) dTimeBin;
            Intensity = numPh*InitSpect(flmda)*Atten(flmda,fdist);
            Double_t tempcontent = ffinltime->TH1D::GetBinContent(TimeBin);
            Intensity += tempcontent;
            ffinltime->TH1D::SetBinContent(TimeBin,Intensity);
            }
        }
    return ffinltime;
    }

Double_t WCSimWaterModel::InitSpect ( Double_t  flmda  ) 

Definition at line 90 of file WCSimWaterModel.cc.

References finitintensity, and N_Index().

Referenced by FinlSpect(), FinlTimeSpect(), SandBoxSimpleToyTracks::makefile(), and SandBoxSimpleToyTracks::makeSingleTrack().

  {
    finitintensity = 200000*(1.0-1.0/(N_Index(flmda)*N_Index(flmda)))/(flmda*flmda); // number of photons per nm
    return finitintensity;
  }

Double_t WCSimWaterModel::N_Index ( Double_t  flmda  ) 

Definition at line 54 of file WCSimWaterModel.cc.

References A, A0, a0, A1, a1, A2, a2, A3, a3, A4, a4, A5, a5, A6, a6, A7, a7, findex, lambdair, lambdauv, r1, r2, r3, r4, r5, rho, and Temp.

Referenced by InitSpect(), SandBoxSimpleToyTracks::makefile(), SandBoxSimpleToyTracks::makeSingleTrack(), WCSimIsoChronTransform::ProcessHitChromCorr(), and Vg().

  {
    Temp=22.0;
    r5=999.95; r1=-3.983; r2=301.797; r3=522528.9; r4=69.349;
    a0=0.2439; a1=9.5352*0.001; a2=3.6436*-0.001; a3=2.6567*0.0001; a4=1.5919*0.001; a5=2.4573*0.001; a6=0.8975; a7=1.6307*-0.01; lambdauv=0.2292; lambdair=5.4329; 
    rho = r5*(1-((Temp+r1)*(Temp+r1)*(Temp+r2))/(r3*(Temp+r4))); //water density From: http://iopscience.iop.org/0026-1394/38/4/3/pdf/0026-1394_38_4_3.pdf
    A0 = a0;
    A1 = (a1*rho*0.001);
    A2 = (a2*(273.15+Temp)/273.15);
    A3 = (a3*((273.15+Temp)/273.15)*((flmda*flmda)/(589.0*589.0)));
    A4 = (a4*(589.0*589.0)/(flmda*flmda));
    A5 = (a5/(((flmda*flmda)/(589.0*589.0))-(lambdauv*lambdauv)));
    A6 = (a6/(((flmda*flmda)/(589.0*589.0))-(lambdair*lambdair)));
    A7 = (a7*(A1/a1)*(A1/a1));
    A = A0+A1+A2+A3+A4+A5+A6+A7;
    findex = sqrt(((2.0*A*A1/a1)+1.0)/(1.0-(A*A1/a1)));
    return findex;
  }

void WCSimWaterModel::Reset (  ) 

Definition at line 35 of file WCSimWaterModel.cc.

References fabslength, fatten, ffinlintensity, ffinltime, findex, finitintensity, finittime, and fvelo.

{
    ffinltime->TH1D::Reset();
    finittime->TH1D::Reset();
    findex = 0.;
    fvelo = 0.;
    finitintensity = 0.;
    fabslength = 0.;
    fatten = 0.;
    ffinlintensity = 0.;
    
    return;
}

Double_t WCSimWaterModel::Vg ( Double_t  flmda  ) 

Definition at line 77 of file WCSimWaterModel.cc.

References C, dndl, fvelo, N, N_Index(), and WCSimParameters::SpeedOfLight().

Referenced by ClassImp(), FinlTimeSpect(), and WCSimTResidPDF::MakeChromPeakPDF().

  { 
    C=WCSimParameters::SpeedOfLight(); N=1.3333;
    dndl = ((N_Index(flmda + 0.001)) - (N_Index(flmda - 0.001)))/0.002;
    fvelo = C*((1.0/N) + ((flmda/(N*N))*dndl));// cm/ns
    return fvelo;
  }


Member Data Documentation

Double_t WCSimWaterModel::A [private]

Definition at line 80 of file WCSimWaterModel.hh.

Referenced by N_Index().

Double_t WCSimWaterModel::a0 [private]

Definition at line 50 of file WCSimWaterModel.hh.

Referenced by N_Index().

Double_t WCSimWaterModel::A0 [private]

Definition at line 72 of file WCSimWaterModel.hh.

Referenced by N_Index().

Double_t WCSimWaterModel::a1 [private]

Definition at line 51 of file WCSimWaterModel.hh.

Referenced by N_Index().

Double_t WCSimWaterModel::A1 [private]

Definition at line 73 of file WCSimWaterModel.hh.

Referenced by N_Index().

Double_t WCSimWaterModel::a2 [private]

Definition at line 52 of file WCSimWaterModel.hh.

Referenced by N_Index().

Double_t WCSimWaterModel::A2 [private]

Definition at line 74 of file WCSimWaterModel.hh.

Referenced by N_Index().

Double_t WCSimWaterModel::a3 [private]

Definition at line 53 of file WCSimWaterModel.hh.

Referenced by N_Index().

Double_t WCSimWaterModel::A3 [private]

Definition at line 75 of file WCSimWaterModel.hh.

Referenced by N_Index().

Double_t WCSimWaterModel::a4 [private]

Definition at line 54 of file WCSimWaterModel.hh.

Referenced by N_Index().

Double_t WCSimWaterModel::A4 [private]

Definition at line 76 of file WCSimWaterModel.hh.

Referenced by N_Index().

Double_t WCSimWaterModel::A5 [private]

Definition at line 77 of file WCSimWaterModel.hh.

Referenced by N_Index().

Double_t WCSimWaterModel::a5 [private]

Definition at line 55 of file WCSimWaterModel.hh.

Referenced by N_Index().

Double_t WCSimWaterModel::A6 [private]

Definition at line 78 of file WCSimWaterModel.hh.

Referenced by N_Index().

Double_t WCSimWaterModel::a6 [private]

Definition at line 56 of file WCSimWaterModel.hh.

Referenced by N_Index().

Double_t WCSimWaterModel::A7 [private]

Definition at line 79 of file WCSimWaterModel.hh.

Referenced by N_Index().

Double_t WCSimWaterModel::a7 [private]

Definition at line 57 of file WCSimWaterModel.hh.

Referenced by N_Index().

Double_t WCSimWaterModel::C [private]

Definition at line 60 of file WCSimWaterModel.hh.

Referenced by Vg().

Double_t WCSimWaterModel::Dist [private]

Definition at line 66 of file WCSimWaterModel.hh.

Double_t WCSimWaterModel::dndl [private]

Definition at line 62 of file WCSimWaterModel.hh.

Referenced by Vg().

Double_t WCSimWaterModel::fabslength [private]

Definition at line 39 of file WCSimWaterModel.hh.

Referenced by AbsLength(), and Reset().

Double_t WCSimWaterModel::fatten [private]

Definition at line 40 of file WCSimWaterModel.hh.

Referenced by Atten(), and Reset().

Double_t WCSimWaterModel::fdist [private]

Definition at line 33 of file WCSimWaterModel.hh.

Referenced by FinlTimeSpect().

Double_t WCSimWaterModel::ffinlintensity [private]

Definition at line 41 of file WCSimWaterModel.hh.

Referenced by FinlSpect(), and Reset().

TH1D* WCSimWaterModel::ffinltime [private]

Definition at line 42 of file WCSimWaterModel.hh.

Referenced by FinlTimeSpect(), and Reset().

Double_t WCSimWaterModel::findex [private]

Definition at line 36 of file WCSimWaterModel.hh.

Referenced by N_Index(), and Reset().

Double_t WCSimWaterModel::finitintensity [private]

Definition at line 38 of file WCSimWaterModel.hh.

Referenced by InitSpect(), and Reset().

TH1D* WCSimWaterModel::finittime [private]

Definition at line 34 of file WCSimWaterModel.hh.

Referenced by FinlTimeSpect(), and Reset().

Double_t WCSimWaterModel::flmda [private]

Definition at line 32 of file WCSimWaterModel.hh.

Referenced by FinlTimeSpect().

Double_t WCSimWaterModel::fvelo [private]

Definition at line 37 of file WCSimWaterModel.hh.

Referenced by Reset(), and Vg().

Double_t WCSimWaterModel::Intensity [private]

Definition at line 70 of file WCSimWaterModel.hh.

Referenced by FinlTimeSpect().

Double_t WCSimWaterModel::lambdair [private]

Definition at line 59 of file WCSimWaterModel.hh.

Referenced by N_Index().

Double_t WCSimWaterModel::lambdauv [private]

Definition at line 58 of file WCSimWaterModel.hh.

Referenced by N_Index().

Double_t WCSimWaterModel::minDist [private]

Definition at line 64 of file WCSimWaterModel.hh.

Referenced by FinlTimeSpect().

Double_t WCSimWaterModel::N [private]

Definition at line 61 of file WCSimWaterModel.hh.

Referenced by Vg().

Int_t WCSimWaterModel::numD [private]

Definition at line 63 of file WCSimWaterModel.hh.

Referenced by FinlTimeSpect().

Double_t WCSimWaterModel::numPh [private]

Definition at line 67 of file WCSimWaterModel.hh.

Referenced by FinlTimeSpect().

Double_t WCSimWaterModel::r1 [private]

Definition at line 46 of file WCSimWaterModel.hh.

Referenced by N_Index().

Double_t WCSimWaterModel::r2 [private]

Definition at line 47 of file WCSimWaterModel.hh.

Referenced by N_Index().

Double_t WCSimWaterModel::r3 [private]

Definition at line 48 of file WCSimWaterModel.hh.

Referenced by N_Index().

Double_t WCSimWaterModel::r4 [private]

Definition at line 49 of file WCSimWaterModel.hh.

Referenced by N_Index().

Double_t WCSimWaterModel::r5 [private]

Definition at line 45 of file WCSimWaterModel.hh.

Referenced by N_Index().

Double_t WCSimWaterModel::rho [private]

Definition at line 71 of file WCSimWaterModel.hh.

Referenced by N_Index().

Double_t WCSimWaterModel::Temp [private]

Definition at line 44 of file WCSimWaterModel.hh.

Referenced by N_Index().

Int_t WCSimWaterModel::TimeBin [private]

Definition at line 69 of file WCSimWaterModel.hh.

Referenced by FinlTimeSpect().

Double_t WCSimWaterModel::TimePh [private]

Definition at line 68 of file WCSimWaterModel.hh.

Referenced by FinlTimeSpect().

Double_t WCSimWaterModel::width [private]

Definition at line 65 of file WCSimWaterModel.hh.

Referenced by FinlTimeSpect().


The documentation for this class was generated from the following files: