7 #include "UsefulAdu5Pat.h" 22 const double xMaxP19 = 0.8e4;
24 const double xMaxFe18 = 0.65e4;
37 FieldPoint (UInt_t unixTime,
double lon,
double lat,
double alt);
38 FieldPoint (UInt_t unixTime,
const TVector3& position);
40 virtual void Draw(Option_t* opt =
"");
42 double posX()
const {
return fPosition.X();}
43 double posY()
const {
return fPosition.Y();}
44 double posZ()
const {
return fPosition.Z();}
45 double posR()
const {
return fPosition.Mag();}
46 double posTheta()
const {
return fPosition.Theta();}
47 double posPhi()
const {
return fPosition.Phi();}
49 double componentX()
const {
return fField.X();}
50 double componentY()
const {
return fField.Y();}
51 double componentZ()
const {
return fField.Z();}
53 const TVector3& field(){
return fField;}
54 const TVector3& position(){
return fPosition;}
55 UInt_t getUnixTime(){
return fUnixTime;}
63 void calculateFieldAtPosition();
64 double fDrawScaleFactor;
71 double getExpectedPolarisation(
UsefulAdu5Pat& usefulPat,
double phiWave,
double thetaWave,
double xmax=xMaxP19);
72 double getExpectedPolarisationUpgoing(
UsefulAdu5Pat& usefulPat,
double phiWave,
double thetaWave,
double pathLength);
74 TVector3 getUnitVectorAlongThetaWavePhiWave(
UsefulAdu5Pat& usefulPat,
double phiWave,
double thetaWave);
76 const double n_air = 1;
77 const double n_ice = 1.31;
80 TVector3 specularReflection(
const TVector3& reflectionPointToSource,
const TVector3& surfaceNormal);
81 TVector3 fresnelReflection(
const TVector3& sourceToReflection,
const TVector3& surfaceNormal, TVector3& electricFieldVec,
double n1=n_air,
double n2=n_ice);
82 TCanvas* plotFresnelReflection();
84 double g(UInt_t unixTime,
int n,
int m);
85 double h(UInt_t unixTime,
int n,
int m);
87 double getPotentialAtSpherical(UInt_t unixTime,
double r,
double theta,
double phi);
88 double getPotentialAtLonLatAlt(UInt_t unixTime,
double lon,
double lat,
double alt);
90 double X_atLonLatAlt(UInt_t unixTime,
double lon,
double lat,
double alt);
91 double X_atSpherical(UInt_t unixTime,
double r,
double theta,
double phi);
93 double Y_atLonLatAlt(UInt_t unixTime,
double lon,
double lat,
double alt);
94 double Y_atSpherical(UInt_t unixTime,
double r,
double theta,
double phi);
96 double Z_atLonLatAlt(UInt_t unixTime,
double lon,
double lat,
double alt);
97 double Z_atSpherical(UInt_t unixTime,
double r,
double theta,
double phi);
99 TCanvas* plotFieldAtAltitude(UInt_t unixTime,
double altitude);
100 TCanvas* plotAtmosphere();
102 double getAtmosphericDensity(
double altitude);
103 TVector3 getXMaxPosition(
const TVector3& initialPosition,
const TVector3& cosmicRayDirection,
double xMax);
104 TVector3 getInitialPosition(
const TVector3& destination,
const TVector3& destinationToSource);
105 void setDebug(
bool db);
FieldPoint(UInt_t unixTime, double lon, double lat, double alt)
As UsefulAnitaEvent is to RawAnitaEvent, UsefulAdu5Pat is to Adu5Pat. Well not quite as useful but yo...
virtual void Draw(Option_t *opt="")