Re: Phototube coverage

From: Matthew Worcester (mworcest@hep.uchicago.edu)
Date: Thu Apr 27 2006 - 16:11:39 CDT


Hi Bill,

Chris put the pmts in RAT, and I don't know exactly what formula he
used. There's a simple calculation in ReactorFsim to distribute pmts
evenly around a spherical detector. It is called SetPMT and it lives in
ReactorDetector.cpp. The code is attached below. The baselines are: R2
is the approximate radius of the photocathodes, PMTcoverage is 0.25 and
PMTdiameter is 20.16 cm. The photocathodes will be ~20 cm inside the
steel vessel, and for a 350 cm outer radius this gives 1044 pmts per
detector.

Cheers,
Matt

void ReactorDetector::SetPMT(){
   //
   // determine the number of PMT
   //
   float num_pmt = 16*R2*R2*PMTcoverage/PMTdiameter/PMTdiameter;
   //cout << "num_pmt " << num_pmt << endl;
   Ncosbins = int(sqrt(num_pmt/PI));
   Nphibins = int(sqrt(num_pmt*PI));
   Npmt = Ncosbins*Nphibins;
   //cout << " Set Npmt " << Npmt << endl;

   delete[] Xpmt;
   delete[] Ypmt;
   delete[] Zpmt;
   PMTOutputArray.clear();

   Xpmt = new double[Npmt];
   Ypmt = new double[Npmt];
   Zpmt = new double[Npmt];
   PMTOutputArray.reserve(Npmt);

   for(int i=0;i<Npmt;i++){
     PMTOutputArray.push_back(PMToutput (i));
   }

   //
   // Make a guess at PMT size to avoid too much re-sizing
   //
   delete[] PMTdata;
   PMTlen = 0;
   PMTsize = 10*Npmt;
   PMTdata = new PMT[PMTsize];
   //
   // loop over cotheta, then phi
   //
   double* xpmt=Xpmt;
   double* ypmt=Ypmt;
   double* zpmt=Zpmt;

   double dphi = 2*PI/Nphibins;
   double dz = 2.0/Ncosbins;

   for(int i=0;i<Ncosbins;i++){
     double z = -1+i*dz+dz/2;
     for(int j=0;j<Nphibins;j++){
       double phi = j*dphi+dphi/2;
       *xpmt++ = R2*sqrt(1-z*z)*cos(phi);
       *ypmt++ = R2*sqrt(1-z*z)*sin(phi);
       *zpmt++ = R2*z;
       // cout << "z,phi " << z << " " << phi << endl;
     }
   }
}

On Thu, 27 Apr 2006, William Seligman wrote:

> Hi,
>
> I'm using the RAT simulation to do some studies for Janet. I'm playing
> around with phototube coverage, and varying the diameter of the detector.
>
> I've found the file PMTLOCATION.ratdb, which contains the phototube
> locations. I also see that I can scale the radial location of the
> phototubes as I vary the size of the detector.
>
> I assume those phototube locations came from a calculation somewhere. I
> think I'll have to increase the number of phototubes as I increase (or
> decrease) the size of the detector; I know I'll want to play with
> changing the phototube coverage keeping the detector radius constant.
>
> Is there a place where I can find that calculation?
>



This archive was generated by hypermail 2.1.6 : Fri Apr 28 2006 - 00:01:02 CDT