WCSim
calcPhotoCoverage.C
Go to the documentation of this file.
1 void calcPhotoCoverage(double WCPMTPercentCoverage,
2  double WCPMTPercentCoverage2,
3  double WCIDDiameter = 64.8, // m
4  double WCPMTRadius = 0.254, // m
5  double mPMT_vessel_radius = 0.254) // m
6 {
7  cout << "WCPMTPercentCoverage: " << WCPMTPercentCoverage << endl
8  << "WCPMTPercentCoverage2: " << WCPMTPercentCoverage2 << endl;
9 
10  cout << "WCIDDiameter: " << WCIDDiameter << endl
11  << "WCPMTRadius: " << WCPMTRadius << endl
12  << "mPMT_vessel_radius: " << mPMT_vessel_radius << endl;
13 
14  int WCPMTperCellHorizontal = std::lround((WCPMTPercentCoverage+WCPMTPercentCoverage2) / WCPMTPercentCoverage2);
15  int WCBarrelNumPMTHorizontal = std::lround(WCIDDiameter * sqrt(TMath::Pi() * (WCPMTPercentCoverage+WCPMTPercentCoverage2)) /
16  (10.*TMath::Max(WCPMTRadius,mPMT_vessel_radius)));
17  double WCBarrelNumPMTHorizontal_db = WCIDDiameter * sqrt(TMath::Pi() * (WCPMTPercentCoverage+WCPMTPercentCoverage2)) /
18  (10.*TMath::Max(WCPMTRadius,mPMT_vessel_radius));
19 
20  cout << "WCPMTperCellHorizontal: " << WCPMTperCellHorizontal << endl
21  << "WCBarrelNumPMTHorizontal: " << WCBarrelNumPMTHorizontal << endl
22  << "WCBarrelNumPMTHorizontal_db: " << WCBarrelNumPMTHorizontal_db << endl;
23 
24  int WCBarrelRingNPhi = WCBarrelNumPMTHorizontal/WCPMTperCellHorizontal;
25  int remainder = WCBarrelNumPMTHorizontal % WCPMTperCellHorizontal;
26  cout << "WCBarrelRingNPhi: " << WCBarrelRingNPhi << endl
27  << "remainder: " << remainder << endl;
28 
29  cout << std::setprecision(15) << endl;
30 
31  //option 1: scale down
32  double scale1 = TMath::Power((WCBarrelNumPMTHorizontal - remainder) / WCBarrelNumPMTHorizontal_db, 2);
33  cout << "Option 1: scale down by " << scale1
34  << " = (" << WCBarrelNumPMTHorizontal - remainder
35  << " / " << WCBarrelNumPMTHorizontal_db << ")**2" << endl
36  << endl
37  << "/WCSim/SetPMTPercentCoverage " << WCPMTPercentCoverage * scale1 << endl
38  << "/WCSim/SetPMTPercentCoverage2 " << WCPMTPercentCoverage2 * scale1 << endl
39  << endl;
40 
41  //option 2: scale up
42  double scale2 = TMath::Power((WCBarrelNumPMTHorizontal - remainder + WCPMTperCellHorizontal) / WCBarrelNumPMTHorizontal_db, 2);
43  cout << "Option 2: scale up by " << scale2
44  << " = (" << WCBarrelNumPMTHorizontal - remainder + WCPMTperCellHorizontal
45  << " / " << WCBarrelNumPMTHorizontal_db << ")**2" << endl
46  << endl
47  << "/WCSim/SetPMTPercentCoverage " << WCPMTPercentCoverage * scale2 << endl
48  << "/WCSim/SetPMTPercentCoverage2 " << WCPMTPercentCoverage2 * scale2 << endl
49  << endl;
50 }
void calcPhotoCoverage(double WCPMTPercentCoverage, double WCPMTPercentCoverage2, double WCIDDiameter=64.8, double WCPMTRadius=0.254, double mPMT_vessel_radius=0.254)