33 #include "SteppingAction.hh"
34 #include "DetectorConstruction.hh"
35 #include "RunAction.hh"
36 #include "HistoManager.hh"
76 if (procName ==
"msc" || procName ==
"muMsc" || procName ==
"stepMax") {
88 analysisManager->
FillH1(1,truePathLength);
89 analysisManager->
FillH1(2,geomPathLength);
90 analysisManager->
FillH1(3,ratio);
92 G4double yend = position.
y(), zend = position.
z();
93 G4double lateralDisplacement = std::sqrt(yend*yend + zend*zend);
95 analysisManager->
FillH1(4,lateralDisplacement);
97 G4double psi = std::atan(lateralDisplacement/geomPathLength);
99 analysisManager->
FillH1(5,psi);
101 G4double xdir = direction.
x(), ydir = direction.
y(), zdir = direction.
z();
102 G4double tetaPlane = std::atan2(ydir, xdir);
104 analysisManager->
FillH1(6,tetaPlane);
105 tetaPlane = std::atan2(zdir, xdir);
107 analysisManager->
FillH1(6,tetaPlane);
109 G4double phiPos = std::atan2(zend, yend);
110 analysisManager->
FillH1(7,phiPos);
111 G4double phiDir = std::atan2(zdir, ydir);
112 analysisManager->
FillH1(8,phiDir);
115 if (lateralDisplacement > 0.)
116 phiCorrel = (yend*ydir + zend*zdir)/lateralDisplacement;
118 analysisManager->
FillH1(9,phiCorrel);
119 }
else if (procName ==
"conv" || procName ==
"GammaToMuPair" ) {
133 const size_t Nsecondaries = (*secondary).size();
136 if (Nsecondaries == 0)
return;
138 for (
size_t lp=0; lp<
std::min(Nsecondaries,
size_t(2) ); lp++) {
142 Pminus = (*secondary)[lp]->GetMomentum();
147 Eplus = (*secondary)[lp]->GetTotalEnergy();
148 Pplus = (*secondary)[lp]->GetMomentum();
152 if ( Nsecondaries >= 3 ) {
153 Precoil = (*secondary)[2]->GetMomentum();
165 if ( PolaGamma.
mag() != 0.0 ) {
166 x = PolaGamma.
unit();
179 analysisManager->
FillH1(10,angleE);
181 if ( Nsecondaries >= 3 ) {
183 analysisManager->
FillH1(11,std::log10(Precoil.
mag()));
188 analysisManager->
FillH1(13,phiPlus);
189 analysisManager->
FillH1(14,std::cos(phiPlus + phiMinus) * -2.0);
190 analysisManager->
FillH1(15,Eplus/EGamma);
193 analysisManager->
FillH1(16, phiPola);