icemc
counting.hh
Go to the documentation of this file.
1 //class Counting:
4 
5 #ifndef ICEMC_COUNTING_HH
6 #define ICEMC_COUNTING_HH
7 
8 class Vector;
10 class Counting {
11 public:
12 
13  Counting();
14  void initializeEachRun();
15 
16  int npass[2]; // count events that pass
17  int npassestrigger[2]; // incremented if passes trigger
18  int nl1triggers[2][2]; // how l1 triggers. polarization, ray
19  int nchanceinhell2[2]; // based on direction of ray and thickness in Cerenkov cone,
20  // signal has a chance to pass after accounting for
21  // angle, ice attenuation and 1/r
22  int nviewanglecut[2];
23  int nchanceinhell[2]; // based on depth,
24  // signal has a chance to pass after accounting for ice attenuation and 1/r
25  int nchanceinhell_1overr[2]; // after 1/r
26 // signal has chance of passing
27  int nchanceinhell_fresnel[2]; // after fresnel coefficients
28  // signal has chance of passing
29 
30  int nconverges[2]; // ray tracing converges to within 10m at ice surface
31 
32  int nacceptablerf[2]; // ray leaves where there is ice, and not where there is water
33  int nraywithincontinent1[2]; // reality check: exiting ray is within 30 degrees of south pole
34  int nraywithincontinent2[2]; // same, after next iteration.
35  int nraypointsup1[2]; // ray from exit point to balloon does not intersect earth
36  int nnottoosmall[2]; // based on neutrino position,
37  int nraypointsup2[2]; // same, after next iteration to get refracted ray.
38  int nviewangle_lt_90[2]; // viewing angle lt 90
39  int ngoodfracs[2]; // for debugging
40  int nbadfracs[2]; // for debugging
41  int nnottir[2]; // not totally internally reflected
42  int nentersice[2]; // Reality check: place where neutrino enters ice (from below) within 30 deg of south pole
43  int nabsorbed[2]; // Event has more than 0.001 probability of surviving trip through earth
44  int noway[2]; // no way the event will see any ice give its earth entrance point and its direction
45  int wheredoesitleave_err[2]; // wheredoesitleave gives error
46  int neverseesice[2]; // determined that the neutrino path never sees ice
47  int iceinteraction[2]; // there is an interaction in the ice
48  int inhorizon[2]; // there is an interaction in the ice
49  int wheredoesitenterice_err[2]; // there is an interaction in the ice
50  int toohigh[2]; // there is an interaction in the ice
51  int toolow[2]; // there is an interaction in the ice
52  int ndeadtime[2]; // thrown out by dead time
53 
54 
55 // variables for counting neutrinos and reporting results.
56  int nnu_e; //counting the number of e,mu,tau neutrinos
57  int nnu_mu;
58  int nnu_tau;
59 
60  static constexpr int NCOSTHETA=180;
61  static constexpr int NPHI=180;
62  static constexpr double COSTHETAMAX=1.;
63  static constexpr double COSTHETAMIN=-1.;
64  static constexpr double PHIMAX=2*3.14159;
65  static constexpr double PHIMIN=0.;
67 
68  void findCosthetaPhiBins(Position r_in,int &icostheta,int &iphi);
69  void IncrementWeights_r_in(Position r_in,double weight) ;
70 
71 protected:
72 
73 };
74 
75 #endif //ICEMC_COUNTING_HH
int wheredoesitleave_err[2]
Definition: counting.hh:45
int nraypointsup2[2]
Definition: counting.hh:37
static constexpr double COSTHETAMAX
Definition: counting.hh:62
static constexpr double PHIMAX
Definition: counting.hh:64
int iceinteraction[2]
Definition: counting.hh:47
int ngoodfracs[2]
Definition: counting.hh:39
Counting()
Definition: counting.cc:7
int npassestrigger[2]
Definition: counting.hh:17
This class represents a three-vector. Operators are overloaded to provide for the familiar operations...
Definition: vector.hh:27
int nacceptablerf[2]
Definition: counting.hh:32
int inhorizon[2]
Definition: counting.hh:48
static constexpr double COSTHETAMIN
Definition: counting.hh:63
int nnottir[2]
Definition: counting.hh:41
int nnottoosmall[2]
Definition: counting.hh:36
int wheredoesitenterice_err[2]
Definition: counting.hh:49
Handles event counting as cuts are made.
Definition: counting.hh:10
int ndeadtime[2]
Definition: counting.hh:52
int nchanceinhell2[2]
Definition: counting.hh:19
int nviewangle_lt_90[2]
Definition: counting.hh:38
This class is a 3-vector that represents a position on the Earth's surface.
Definition: position.hh:26
int nabsorbed[2]
Definition: counting.hh:43
void findCosthetaPhiBins(Position r_in, int &icostheta, int &iphi)
Definition: counting.cc:56
int nviewanglecut[2]
Definition: counting.hh:22
int nnu_tau
Definition: counting.hh:58
int nconverges[2]
Definition: counting.hh:30
static constexpr int NPHI
Definition: counting.hh:61
int nchanceinhell[2]
Definition: counting.hh:23
int nl1triggers[2][2]
Definition: counting.hh:18
int npass[2]
Definition: counting.hh:16
int nchanceinhell_fresnel[2]
Definition: counting.hh:27
int toolow[2]
Definition: counting.hh:51
int nbadfracs[2]
Definition: counting.hh:40
double weights_rin[NCOSTHETA][NPHI]
Definition: counting.hh:66
int nraywithincontinent1[2]
Definition: counting.hh:33
void initializeEachRun()
int neverseesice[2]
Definition: counting.hh:46
int toohigh[2]
Definition: counting.hh:50
int nraypointsup1[2]
Definition: counting.hh:35
int nraywithincontinent2[2]
Definition: counting.hh:34
int nchanceinhell_1overr[2]
Definition: counting.hh:25
static constexpr double PHIMIN
Definition: counting.hh:65
int nentersice[2]
Definition: counting.hh:42
int nnu_mu
Definition: counting.hh:57
static constexpr int NCOSTHETA
Definition: counting.hh:60
double weight
Definition: icemc.cc:253
int nnu_e
Definition: counting.hh:56
int noway[2]
Definition: counting.hh:44
void IncrementWeights_r_in(Position r_in, double weight)
Definition: counting.cc:63