-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Labels
bugSomething isn't workingSomething isn't workinghelp wantedExtra attention is neededExtra attention is needed
Description
Ramy found mismatches between real world behavior and simulation. When shooting photons through a PMT sideways, the beam path should go upwards. In the simulation it goes downwards. See https://icecube-spno.slack.com/archives/C08N2UBPEQG/p1753248826406709 for details.
Visualization:
Measurement setup
Measurement result
Simulation
Suggested Fix:
In OMSimOpBoundaryProcess.cc (starting at line 1718) change the calculation of lE2Perp
and lE2Parl
. The difference is that the new calculation uses lCost1Complex.real()
instead of lCost1
/* lS1 = fRindex1 * lCost1;
G4double lCost2 = lCost1 > 0.0 ? std::sqrt(1. - lSint2 * lSint2) : -std::sqrt(1. - lSint2 * lSint2);
lE2Perp = 2. * lS1 * lE1Perp / (fRindex1 * lCost1 + fRindex2 * lCost2);
lE2Parl = 2. * lS1 * lE1Parl / (fRindex2 * lCost1 + fRindex1 * lCost2);
lE2Total = lE2Perp * lE2Perp + lE2Parl * lE2Parl;
G4double lCostTL = lCost1 > 0.0 ? std::sqrt(1. - lSintTL * lSintTL) : -std::sqrt(1. - lSintTL * lSintTL);
*/
lCostTLComplex = lCost1 > 0.0 ? std::sqrt(G4complex(1.0, 0.0) - lSintTLComplex * lSintTLComplex) : -std::sqrt(G4complex(1.0, 0.0) - lSintTLComplex * lSintTLComplex);
lCost2Complex = lCost1 > 0.0 ? std::sqrt(G4complex(1.0, 0.0) - lSint2Complex * lSint2Complex) : -std::sqrt(G4complex(1.0, 0.0) - lSint2Complex * lSint2Complex);
lCost1Complex = G4complex(lCost1, 0);
if (lMyInfo->getVolumeHistorySize() > 1 && lRindexBefore != 0)
{
G4complex lSintLayer0 = fRindex1 * lSint1 / lRindexBefore;
G4complex lSint1 = lBeforeComplexRindex * lSintLayer0 / lComplexRindex1;
lCost1Complex = std::sqrt(G4complex(1.0, 0.0) - lSint1 * lSint1);
}
lS1 = fRindex1 * lCost1Complex.real();
lE2Perp = 2. * lS1 * lE1Perp / (fRindex1 * lCost1Complex.real() + fRindex2 * lCost2Complex.real());
lE2Parl = 2. * lS1 * lE1Parl / (fRindex2 * lCost1Complex.real() + fRindex1 * lCost2Complex.real());
lE2Total = lE2Perp * lE2Perp + lE2Parl * lE2Parl;
Metadata
Metadata
Labels
bugSomething isn't workingSomething isn't workinghelp wantedExtra attention is neededExtra attention is needed