#include <G4TankFastCerenkov.h>
Public Member Functions | |
G4VParticleChange * | AlongStepDoIt (const G4Track &track, const G4Step &step) override |
void | DumpPhysicsTable () const |
G4TankFastCerenkov (const G4String &processName="Cerenkov") | |
G4double | GetContinuousStepLimit (const G4Track &, G4double, G4double, G4double &) override |
G4bool | IsApplicable (const G4ParticleDefinition &particle) override |
void | SetMaxNumPhotonsPerStep (const G4int numPhotons) |
void | SetTrackSecondariesFirst (const G4bool state) |
virtual | ~G4TankFastCerenkov () |
Static Public Member Functions | |
static void | GetDataFromConstruction () |
Protected Attributes | |
G4PhysicsTable * | fPhysicsTable = nullptr |
Private Member Functions | |
void | BackScatter () |
void | BuildThePhysicsTable () |
void | DiffuseScatterHorizontal (const G4ThreeVector &normal) |
void | DiffuseScatterVertical (const G4ThreeVector &normal) |
void | DoRayleighScatter () |
G4double | GetAverageNumberOfPhotons (const G4DynamicParticle *, const G4Material *, G4MaterialPropertyVector *) const |
G4double | GetEllipsoidIntersect (const G4ThreeVector &, const G4double, const G4double) const |
G4double | GetSphereIntersect (const G4ThreeVector &, const G4double) const |
void | LobeScatterHorizontal (const G4ThreeVector &normal) |
void | LobeScatterVertical (const G4ThreeVector &normal) |
template<int pmtId> | |
G4bool | PropagateInDome (G4int &flag) |
template<int pmtId> | |
G4bool | PropagateInInterface (G4int &flag) |
void | PropagateInTank (G4int flag) |
G4bool | ScatterOffFloor () |
G4bool | ScatterOffRoof () |
G4bool | ScatterOffWall () |
void | SpikeScatter (const G4ThreeVector &normal) |
void | TrackPhotonInTank () |
template<int pmtId> | |
G4bool | TransitionToDome (G4int flag) |
template<int pmtId> | |
G4bool | TransitionToInterface (G4int &flag) |
Private Attributes | |
G4double | fAbsorbFrac |
G4StationSimulator & | fG4StationSimulator |
G4double | fInvMFP |
G4int | fMaxPhotons = 0 |
G4ThreeVector | fPhotonMomentum |
G4ThreeVector | fPhotonPolarization |
G4ThreeVector | fPhotonPosition |
G4double | fPhotonTime |
G4double | fRayleighConst |
G4double | fRayleighFrac |
G4double | fSampledMomentum |
G4double | fSampledRI |
G4bool | fTrackSecondariesFirst = false |
Definition at line 52 of file G4StationSimulator/G4TankFastCerenkov.h.
G4StationSimulatorOG::G4TankFastCerenkov::G4TankFastCerenkov | ( | const G4String & | processName = "Cerenkov" | ) |
Definition at line 111 of file G4StationSimulator/G4TankFastCerenkov.cc.
References BuildThePhysicsTable(), fRayleighConst, utl::kelvin, utl::kPi, utl::m3, utl::MeV, and std::pow().
|
virtual |
Definition at line 134 of file G4StationSimulator/G4TankFastCerenkov.cc.
References fPhysicsTable.
|
override |
Definition at line 214 of file G4StationSimulator/G4TankFastCerenkov.cc.
References fAbsorbFrac, fInvMFP, fPhotonMomentum, fPhotonPolarization, fPhotonPosition, fPhotonTime, fQE, fRayleighConst, fRayleighFrac, fSampledMomentum, fSampledRI, fTankHeight, fTankRadiusSq, fTankThickness, fWaterAbsLength, GetAverageNumberOfPhotons(), utl::TabulatedFunction::GetNPoints(), utl::kPi, particle, std::pow(), utl::Sqr(), sqrt(), TrackPhotonInTank(), utl::TabulatedFunction::XBack(), utl::TabulatedFunction::XFront(), and utl::TabulatedFunction::Y().
Definition at line 1340 of file G4StationSimulator/G4TankFastCerenkov.cc.
References fPhotonMomentum.
Referenced by ScatterOffFloor(), ScatterOffRoof(), and ScatterOffWall().
|
private |
Definition at line 362 of file G4StationSimulator/G4TankFastCerenkov.cc.
References fPhysicsTable.
Referenced by G4TankFastCerenkov().
|
private |
Definition at line 1372 of file G4StationSimulator/G4TankFastCerenkov.cc.
References fPhotonMomentum, fPhotonPolarization, utl::kPi, and sqrt().
Referenced by ScatterOffFloor(), and ScatterOffRoof().
|
private |
Definition at line 1349 of file G4StationSimulator/G4TankFastCerenkov.cc.
References fPhotonMomentum, fPhotonPolarization, utl::kPi, utl::Sqr(), and sqrt().
Referenced by ScatterOffWall().
|
private |
Definition at line 514 of file G4StationSimulator/G4TankFastCerenkov.cc.
References RdGeoCeLDFFitter::a, RdGeoCeLDFFitter::b, RdGeoCeLDFFitter::c, fPhotonMomentum, fPhotonPolarization, utl::kPi, std::pow(), and sqrt().
Referenced by PropagateInTank().
void G4StationSimulatorOG::G4TankFastCerenkov::DumpPhysicsTable | ( | ) | const |
Definition at line 205 of file G4StationSimulator/G4TankFastCerenkov.cc.
References fPhysicsTable.
|
private |
Definition at line 448 of file G4StationSimulator/G4TankFastCerenkov.cc.
References utl::cm, galactic::eplus, galactic::eV, fPhysicsTable, and std::pow().
Referenced by AlongStepDoIt(), and GetContinuousStepLimit().
|
override |
Definition at line 421 of file G4StationSimulator/G4TankFastCerenkov.cc.
References fMaxPhotons, GetAverageNumberOfPhotons(), and particle.
|
static |
Definition at line 145 of file G4StationSimulator/G4TankFastCerenkov.cc.
References galactic::eV, utl::eV, fDomeAbsLength, fDomeRadius, fDomeRadiusSq, fDomeRadiusz, fDomeRadiuszSq, fDomeRIndex, G4StationSimulatorOG::G4StationSimulator::fgCurrent, G4StationSimulatorOG::G4StationConstruction::fgDomeRmax, G4StationSimulatorOG::G4StationConstruction::fgDomeRzmax, G4StationSimulatorOG::G4StationConstruction::fgHeightz, G4StationSimulatorOG::G4StationConstruction::fgInterfaceABSORPTION, G4StationSimulatorOG::G4StationConstruction::fgInterfaceRINDEX, G4StationSimulatorOG::G4StationConstruction::fgInterfaceRmax, G4StationSimulatorOG::G4StationConstruction::fgInterfaceRzmax, G4StationSimulatorOG::G4StationConstruction::fgLinerBACKSCATTERCONSTANT, G4StationSimulatorOG::G4StationConstruction::fgLinerREFLECTIVITY, G4StationSimulatorOG::G4StationConstruction::fgLinerSPECULARLOBECONSTANT, G4StationSimulatorOG::G4StationConstruction::fgLinerSPECULARSPIKECONSTANT, G4StationSimulatorOG::G4StationConstruction::fgPmtdomeABSORPTION, G4StationSimulatorOG::G4StationConstruction::fgPmtdomeRINDEX, G4StationSimulatorOG::G4StationConstruction::fgPmtRmax, G4StationSimulatorOG::G4StationConstruction::fgPmtRzmax, G4StationSimulatorOG::G4StationConstruction::fgSIGMA_ALPHA, G4StationSimulatorOG::G4StationConstruction::fgTankHalfHeight, G4StationSimulatorOG::G4StationConstruction::fgTankRadius, G4StationSimulatorOG::G4StationConstruction::fgTankThickness, G4StationSimulatorOG::G4StationConstruction::fgWaterABSORPTION, fHeightz, fInterfaceAbsLength, fInterfaceRadius, fInterfaceRadiusSq, fInterfaceRadiusz, fInterfaceRadiuszSq, fInterfaceRIndex, fLinerBackscatter, fLinerReflectivity, fLinerSpecularLobe, fLinerSpecularSpike, fPMTPos, fPMTRadius, fPMTRadiusSq, fPMTRadiusz, fPMTRadiuszSq, fQE, fRoofPos, fSigmaAlpha, fTankHalfHeight, fTankHeight, fTankRadius, fTankRadiusSq, fTankThickness, fWaterAbsLength, G4StationSimulatorOG::G4StationSimulator::Current::GetDetectorStation(), sdet::Station::GetLocalCoordinateSystem(), sdet::Station::GetPMT(), sdet::PMT::GetPosition(), galactic::meter, utl::meter, and G4StationSimulatorOG::ToG4Vector().
|
private |
Definition at line 1507 of file G4StationSimulator/G4TankFastCerenkov.cc.
References RdGeoCeLDFFitter::b, RdGeoCeLDFFitter::c, fPhotonMomentum, utl::g, utl::Sqr(), and sqrt().
Referenced by PropagateInDome(), PropagateInInterface(), and PropagateInTank().
|
private |
Definition at line 1477 of file G4StationSimulator/G4TankFastCerenkov.cc.
References RdGeoCeLDFFitter::b, RdGeoCeLDFFitter::c, fPhotonMomentum, utl::Sqr(), and sqrt().
|
inlineoverride |
Definition at line 60 of file G4StationSimulator/G4TankFastCerenkov.h.
|
private |
Definition at line 1441 of file G4StationSimulator/G4TankFastCerenkov.cc.
References fPhotonMomentum, fPhotonPolarization, fSigmaAlpha, and utl::kPi.
Referenced by ScatterOffFloor(), and ScatterOffRoof().
|
private |
Definition at line 1402 of file G4StationSimulator/G4TankFastCerenkov.cc.
References fPhotonMomentum, fPhotonPolarization, fSigmaAlpha, utl::kPi, utl::Sqr(), and sqrt().
Referenced by ScatterOffWall().
|
private |
Definition at line 1030 of file G4StationSimulator/G4TankFastCerenkov.cc.
References fDomeAbsLength, fDomeRadius, fDomeRadiusz, fDomeRIndex, fInterfaceRadius, fInterfaceRadiusz, fPhotonMomentum, fPhotonPosition, fPhotonTime, fRoofPos, fSampledMomentum, GetEllipsoidIntersect(), IN_INTERFACE_1, IN_INTERFACE_2, IN_INTERFACE_3, INWARD, OUTWARD, and utl::TabulatedFunction::Y().
|
private |
Definition at line 1211 of file G4StationSimulator/G4TankFastCerenkov.cc.
References G4StationSimulatorOG::G4StationSimulator::AddPhoton(), fG4StationSimulator, fHeightz, fInterfaceAbsLength, fInterfaceRadius, fInterfaceRadiusz, fInterfaceRIndex, fPhotonMomentum, fPhotonPosition, fPhotonTime, fPMTRadius, fPMTRadiusz, fRoofPos, fSampledMomentum, GetEllipsoidIntersect(), OUTWARD, and utl::TabulatedFunction::Y().
|
private |
Definition at line 622 of file G4StationSimulator/G4TankFastCerenkov.cc.
References DoRayleighScatter(), DOWN_IN_TANK, ERROR, fDomeRadius, fDomeRadiusSq, fDomeRadiusz, fDomeRadiuszSq, fInvMFP, fPhotonMomentum, fPhotonPosition, fPhotonTime, fPMTPos, fPMTRadiusz, fRayleighFrac, fSampledRI, fTankHeight, fTankRadiusSq, fTankThickness, GetEllipsoidIntersect(), IN_DOME_1, IN_DOME_2, IN_INTERFACE_1, IN_INTERFACE_2, IN_TANK, INWARD, ScatterOffFloor(), ScatterOffRoof(), ScatterOffWall(), utl::Sqr(), sqrt(), TARGET_FLOOR, TARGET_PMT1, TARGET_PMT2, TARGET_PMT3, TARGET_WALL, and WARNING.
Referenced by TrackPhotonInTank().
|
private |
Definition at line 1311 of file G4StationSimulator/G4TankFastCerenkov.cc.
References BackScatter(), DiffuseScatterHorizontal(), fLinerBackscatter, fLinerReflectivity, fLinerSpecularLobe, fLinerSpecularSpike, fSampledMomentum, LobeScatterHorizontal(), SpikeScatter(), and utl::TabulatedFunction::Y().
Referenced by PropagateInTank().
|
private |
Definition at line 1250 of file G4StationSimulator/G4TankFastCerenkov.cc.
References BackScatter(), DiffuseScatterHorizontal(), fLinerBackscatter, fLinerReflectivity, fLinerSpecularLobe, fLinerSpecularSpike, fSampledMomentum, LobeScatterHorizontal(), SpikeScatter(), and utl::TabulatedFunction::Y().
Referenced by PropagateInTank().
|
private |
Definition at line 1279 of file G4StationSimulator/G4TankFastCerenkov.cc.
References BackScatter(), DiffuseScatterVertical(), fLinerBackscatter, fLinerReflectivity, fLinerSpecularLobe, fLinerSpecularSpike, fPhotonPosition, fSampledMomentum, LobeScatterVertical(), SpikeScatter(), utl::Sqr(), sqrt(), and utl::TabulatedFunction::Y().
Referenced by PropagateInTank().
|
inline |
Definition at line 66 of file G4StationSimulator/G4TankFastCerenkov.h.
References fMaxPhotons.
|
inline |
Definition at line 63 of file G4StationSimulator/G4TankFastCerenkov.h.
References fTrackSecondariesFirst.
|
private |
Definition at line 1390 of file G4StationSimulator/G4TankFastCerenkov.cc.
References fPhotonMomentum, and fPhotonPolarization.
Referenced by ScatterOffFloor(), ScatterOffRoof(), and ScatterOffWall().
Definition at line 574 of file G4StationSimulator/G4TankFastCerenkov.cc.
References G4StationSimulatorOG::G4StationSimulator::AddPhoton(), DOWN_IN_TANK, fDomeRadiusSq, fDomeRadiusz, fDomeRadiuszSq, fG4StationSimulator, fHeightz, fInterfaceRadiusSq, fInterfaceRadiuszSq, fPhotonMomentum, fPhotonPosition, fPhotonTime, fPMTPos, fPMTRadiusSq, fPMTRadiuszSq, fTankHeight, fTankThickness, IN_DOME_1, IN_INTERFACE_1, IN_TANK, PropagateInTank(), and utl::Sqr().
Referenced by AlongStepDoIt().
|
private |
Definition at line 900 of file G4StationSimulator/G4TankFastCerenkov.cc.
References fDomeRadiusSq, fDomeRadiuszSq, fDomeRIndex, fPhotonMomentum, fPhotonPolarization, fPhotonPosition, fPMTPos, fSampledMomentum, fSampledRI, IN_DOME_1, IN_DOME_2, IN_DOME_3, IN_INTERFACE_1, IN_INTERFACE_2, IN_INTERFACE_3, INWARD, OUTWARD, std::pow(), utl::Sqr(), sqrt(), and utl::TabulatedFunction::Y().
|
private |
Definition at line 1090 of file G4StationSimulator/G4TankFastCerenkov.cc.
References fDomeRIndex, fInterfaceRadiusSq, fInterfaceRadiuszSq, fInterfaceRIndex, fPhotonMomentum, fPhotonPolarization, fPhotonPosition, fSampledMomentum, IN_INTERFACE_1, IN_INTERFACE_2, IN_INTERFACE_3, INWARD, OUTWARD, std::pow(), utl::Sqr(), sqrt(), and utl::TabulatedFunction::Y().
|
private |
Definition at line 121 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by AlongStepDoIt().
|
staticprivate |
Definition at line 151 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by GetDataFromConstruction(), and PropagateInDome().
|
staticprivate |
Definition at line 128 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by GetDataFromConstruction(), PropagateInDome(), and PropagateInTank().
|
staticprivate |
Definition at line 135 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by GetDataFromConstruction(), PropagateInTank(), TrackPhotonInTank(), and TransitionToDome().
|
staticprivate |
Definition at line 132 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by GetDataFromConstruction(), PropagateInDome(), PropagateInTank(), and TrackPhotonInTank().
|
staticprivate |
Definition at line 138 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by GetDataFromConstruction(), PropagateInTank(), TrackPhotonInTank(), and TransitionToDome().
|
staticprivate |
Definition at line 148 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by GetDataFromConstruction(), PropagateInDome(), TransitionToDome(), and TransitionToInterface().
|
private |
Definition at line 165 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by PropagateInInterface(), and TrackPhotonInTank().
|
staticprivate |
Definition at line 131 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by GetDataFromConstruction(), PropagateInInterface(), and TrackPhotonInTank().
|
staticprivate |
Definition at line 150 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by GetDataFromConstruction(), and PropagateInInterface().
|
staticprivate |
Definition at line 129 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by GetDataFromConstruction(), PropagateInDome(), and PropagateInInterface().
|
staticprivate |
Definition at line 136 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by GetDataFromConstruction(), TrackPhotonInTank(), and TransitionToInterface().
|
staticprivate |
Definition at line 133 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by GetDataFromConstruction(), PropagateInDome(), and PropagateInInterface().
|
staticprivate |
Definition at line 139 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by GetDataFromConstruction(), TrackPhotonInTank(), and TransitionToInterface().
|
staticprivate |
Definition at line 147 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by GetDataFromConstruction(), PropagateInInterface(), and TransitionToInterface().
|
private |
Definition at line 119 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by AlongStepDoIt(), and PropagateInTank().
|
staticprivate |
Definition at line 155 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by GetDataFromConstruction(), ScatterOffFloor(), ScatterOffRoof(), and ScatterOffWall().
|
staticprivate |
Definition at line 152 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by GetDataFromConstruction(), ScatterOffFloor(), ScatterOffRoof(), and ScatterOffWall().
|
staticprivate |
Definition at line 153 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by GetDataFromConstruction(), ScatterOffFloor(), ScatterOffRoof(), and ScatterOffWall().
|
staticprivate |
Definition at line 154 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by GetDataFromConstruction(), ScatterOffFloor(), ScatterOffRoof(), and ScatterOffWall().
|
private |
Definition at line 112 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by GetContinuousStepLimit(), and SetMaxNumPhotonsPerStep().
|
private |
Definition at line 113 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by AlongStepDoIt(), BackScatter(), DiffuseScatterHorizontal(), DiffuseScatterVertical(), DoRayleighScatter(), GetEllipsoidIntersect(), GetSphereIntersect(), LobeScatterHorizontal(), LobeScatterVertical(), PropagateInDome(), PropagateInInterface(), PropagateInTank(), SpikeScatter(), TrackPhotonInTank(), TransitionToDome(), and TransitionToInterface().
|
private |
Definition at line 114 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by AlongStepDoIt(), DiffuseScatterHorizontal(), DiffuseScatterVertical(), DoRayleighScatter(), LobeScatterHorizontal(), LobeScatterVertical(), SpikeScatter(), TransitionToDome(), and TransitionToInterface().
|
private |
Definition at line 115 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by AlongStepDoIt(), PropagateInDome(), PropagateInInterface(), PropagateInTank(), ScatterOffWall(), TrackPhotonInTank(), TransitionToDome(), and TransitionToInterface().
|
private |
Definition at line 116 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by AlongStepDoIt(), PropagateInDome(), PropagateInInterface(), PropagateInTank(), and TrackPhotonInTank().
|
protected |
Definition at line 168 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by BuildThePhysicsTable(), DumpPhysicsTable(), GetAverageNumberOfPhotons(), and ~G4TankFastCerenkov().
|
staticprivate |
Definition at line 158 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by GetDataFromConstruction(), PropagateInTank(), TrackPhotonInTank(), and TransitionToDome().
|
staticprivate |
Definition at line 130 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by GetDataFromConstruction(), and PropagateInInterface().
|
staticprivate |
Definition at line 137 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by GetDataFromConstruction(), and TrackPhotonInTank().
|
staticprivate |
Definition at line 134 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by GetDataFromConstruction(), PropagateInInterface(), and PropagateInTank().
|
staticprivate |
Definition at line 140 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by GetDataFromConstruction(), and TrackPhotonInTank().
|
staticprivate |
Definition at line 144 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by AlongStepDoIt(), and GetDataFromConstruction().
|
private |
Definition at line 163 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by AlongStepDoIt(), and G4TankFastCerenkov().
|
private |
Definition at line 120 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by AlongStepDoIt(), and PropagateInTank().
|
staticprivate |
Definition at line 160 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by GetDataFromConstruction(), PropagateInDome(), and PropagateInInterface().
|
private |
Definition at line 117 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by AlongStepDoIt(), PropagateInDome(), PropagateInInterface(), ScatterOffFloor(), ScatterOffRoof(), ScatterOffWall(), TransitionToDome(), and TransitionToInterface().
|
private |
Definition at line 162 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by AlongStepDoIt(), PropagateInTank(), and TransitionToDome().
|
staticprivate |
Definition at line 142 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by GetDataFromConstruction(), LobeScatterHorizontal(), and LobeScatterVertical().
|
staticprivate |
Definition at line 124 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by GetDataFromConstruction().
|
staticprivate |
Definition at line 123 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by AlongStepDoIt(), GetDataFromConstruction(), PropagateInTank(), and TrackPhotonInTank().
|
staticprivate |
Definition at line 126 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by GetDataFromConstruction().
|
staticprivate |
Definition at line 127 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by AlongStepDoIt(), GetDataFromConstruction(), and PropagateInTank().
|
staticprivate |
Definition at line 125 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by AlongStepDoIt(), GetDataFromConstruction(), PropagateInTank(), and TrackPhotonInTank().
|
private |
Definition at line 111 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by SetTrackSecondariesFirst().
|
staticprivate |
Definition at line 146 of file G4StationSimulator/G4TankFastCerenkov.h.
Referenced by AlongStepDoIt(), and GetDataFromConstruction().