Classes | Macros | Functions | Variables
CherenkovCalc.cxx File Reference
#include <string.h>
#include <signal.h>
#include <vector>
#include "TH1.h"
#include "TH2.h"
#include "TH3.h"
#include "TString.h"
#include "TFile.h"
#include "TTreeReader.h"
#include "TTreeReaderValue.h"
#include "TMinuit.h"
#include "TRandom3.h"
#include "consts.h"
#include "CherenkovCalc.h"
#include "Plot.h"

Go to the source code of this file.

Classes

struct  binw
 

Macros

#define FULL
 
#define SMEAR
 
#define ALL
 
#define NOHELP
 

Functions

static TRandom3 R (0)
 
static void saneProjectionXZ (TH2D *out, TH3D *in)
 
static double _exact_atten (const double attB, const double inv_att1, const double inv_att2, const double dist, const double rngeff, const bool longway)
 
static TTreeReader * makereader (const char *const dir, TFile *file)
 
static double clamp (const double v, const double mi, const double ma)
 
static binw smearbin (const vector< double > &bins, const double val, const int bin)
 
static void Add (TH3D *h, const int bx, const int by, const int bz, const double w)
 
static unsigned int getpebin (const double pe, const std::vector< double > &bins)
 
static bool goodfdplane (const int plane)
 
static bool goodfdcell (__attribute__((unused)) const bool isX, __attribute__((unused)) const int cell)
 
static TH3D * invmask (TH3D *mask)
 
static bool fill_mask (TH3D *mask, TH3D *h)
 
static bool compare_dat (const dat &a, const dat &b)
 
static double llike_hist (const TH3D *const hObs, const TH3D *const hMC, const TH2D *const hObsDist, const TH2D *const hMCDist, const TH3D *const mask)
 
static void intermediate_plot (const int signal)
 
static void objfcn (__attribute__((unused)) int &np, __attribute__((unused)) double *gin, double &llike, double *par, int flag)
 
static double getpar (TMinuit &mn, const int i)
 
double geterr (TMinuit &mn, const int i)
 
void mincheck (TMinuit &mn, const bool reset=false)
 
 __attribute__ ((unused)) static void Console(TMinuit &mn)
 
static void setarand (TMinuit &mn, const int p, const double min, const double max)
 
static void randomparameters (TMinuit &mn)
 

Variables

const bool float_ndfx = false
 
const bool float_ndfy = false
 
const bool float_fdfx = true
 
const bool float_fdfy = true
 
const bool float_ec = false
 
const bool float_attb = false
 
const bool float_att1 = false
 
const bool float_att2 = false
 
const bool float_rngeff = false
 
static vector< CherenkovCalc * > sfdSamples
 
static vector< CherenkovCalc * > sndSamples
 
static const unsigned int npar = 10
 
const double MINPATHLENGTH = 1
 
static const unsigned int maxMChitsPERw = 1e7
 
static const unsigned int maxDATAhitsPERw = 1e6
 
static const int stat_req = 1000
 
static const int stat_warn_level = 100
 
static const double epsilonll = 1e-4
 
static bool complain_about_problems = true
 
static CherenkovFitterthefitter = NULL
 
static bool plot = false
 
static double lowest_llike = 1e300
 
static double bestpars [npar] = { 0 }
 

Macro Definition Documentation

#define ALL
#define FULL

Definition at line 20 of file CherenkovCalc.cxx.

#define NOHELP

Referenced by CherenkovFitter::Fit().

#define SMEAR

Definition at line 263 of file CherenkovCalc.cxx.

Function Documentation

__attribute__ ( (unused)  )

Definition at line 1009 of file CherenkovCalc.cxx.

References in, printf(), and string.

Referenced by osc::analytic::Hermitian< T >::Hermitian(), LZ4_isLittleEndian(), mouseover(), and setarand().

1010 {
1011  std::string in;
1012  printf("MINIUT> ");
1013  while(getline(std::cin, in)){
1014  if(in == "quit" || in == "exit" || in == ".q") break;
1015  mn.Command(in.c_str());
1016  printf("MINIUT> ");
1017  }
1018 }
printf("%d Experimental points found\n", nlines)
ifstream in
Definition: comparison.C:7
enum BeamMode string
static double _exact_atten ( const double  attB,
const double  inv_att1,
const double  inv_att2,
const double  dist,
const double  rngeff,
const bool  longway 
)
static

Definition at line 190 of file CherenkovCalc.cxx.

References stan::math::exp().

Referenced by CherenkovCalc::exact_atten(), and CherenkovCalc::fill_hit_cache_and_init_things().

193 {
194  return (longway?rngeff:1)*
195  (attB * exp(-dist*inv_att1) + (1-attB) * exp(-dist*inv_att2));
196 }
double dist
Definition: runWimpSim.h:113
fvar< T > exp(const fvar< T > &x)
Definition: exp.hpp:10
static void Add ( TH3D *  h,
const int  bx,
const int  by,
const int  bz,
const double  w 
)
static
static double clamp ( const double  v,
const double  mi,
const double  ma 
)
inlinestatic

Definition at line 254 of file CherenkovCalc.cxx.

References registry_explorer::v.

Referenced by ana::IConstrainedFitVar::Clamp(), CherenkovCalc::fill_hit_cache_and_init_things(), and smearbin().

255 {
256  return v < mi? mi: v > ma? ma: v;
257 }
static bool compare_dat ( const dat a,
const dat b 
)
static

Definition at line 545 of file CherenkovCalc.cxx.

References dat::PE_PathLength.

Referenced by CherenkovCalc::fill_hit_cache_and_init_things().

546 {
547  return a.PE_PathLength < b.PE_PathLength;
548 }
float PE_PathLength
Definition: CherenkovCalc.h:75
static bool fill_mask ( TH3D *  mask,
TH3D *  h 
)
static

Definition at line 515 of file CherenkovCalc.cxx.

References galleryMaker::changed, MECModelEnuComparisons::i, calib::j, printf(), and stat_req.

Referenced by CherenkovCalc::MakeMasks().

516 {
517  printf("New mask for %s\n", h->GetName());
518  bool changed = false;
519  for(int k = 1; k <= h->GetNbinsZ(); k++){
520  for(int i = 1; i <= h->GetNbinsX(); i++){
521  for(int j = 1; j <= h->GetNbinsY(); j++){
522  const bool newval = h->GetBinContent(i, j, k) > stat_req;
523  const bool oldval = mask->GetBinContent(i, j, k);
524  printf("%c", newval?'.':'X');
525  if(oldval != newval){
526  changed = true;
527  mask->SetBinContent(i, j, k, newval);
528  }
529  }
530  puts("");
531  }
532  puts("");
533  }
534  return changed;
535 }
static const int stat_req
printf("%d Experimental points found\n", nlines)
const double j
Definition: BetheBloch.cxx:29
double geterr ( TMinuit &  mn,
const int  i 
)

Definition at line 932 of file CherenkovCalc.cxx.

References febshutoff_auto::val.

933 {
934  double val, err;
935  mn.GetParameter(i, val, err);
936  return err;
937 }
static double getpar ( TMinuit &  mn,
const int  i 
)
static

Definition at line 924 of file CherenkovCalc.cxx.

References febshutoff_auto::val.

Referenced by CherenkovFitter::Fit(), and mincheck().

925 {
926  double val, err;
927  mn.GetParameter(i, val, err);
928  return val;
929 }
static unsigned int getpebin ( const double  pe,
const std::vector< double > &  bins 
)
static

Definition at line 317 of file CherenkovCalc.cxx.

References prev().

Referenced by CherenkovCalc::FastMCFill(), and CherenkovCalc::fill_no_overflow().

319 {
320  static unsigned int prev = 0;
321  if(prev < bins.size()-1 && bins[prev] < pe && bins[prev+1] > pe)
322  return prev;
323 
324  // Don't try to optimize by restricting the search range. The pe value may
325  // have been modified so that it is out of range.
326  return prev = std::lower_bound(bins.begin(), bins.end(), pe)
327  - bins.begin() - 1;
328 }
void prev()
Definition: show_event.C:91
const Binning bins
static bool goodfdcell ( __attribute__((unused)) const bool  isX,
__attribute__((unused)) const int  cell 
)
static

Definition at line 390 of file CherenkovCalc.cxx.

Referenced by CherenkovCalc::accepthit().

392 {
393  if(isX) return true;
394 
395 #define ALL
396 
397 #if defined ALL
398  return true;
399 #elif defined BOTTOMTHIRD
400  return cell < 32 * 4;
401 #elif defined MIDDLETHIRD
402  return cell >= 32 * 4 && cell < 32 * 8;
403 #elif defined TOPTHIRD
404  return cell >= 32 * 8 ;
405 #endif
406 }
static bool goodfdplane ( const int  plane)
static

Definition at line 377 of file CherenkovCalc.cxx.

References geo2elec::diblock.

Referenced by CherenkovCalc::accepthit().

378 {
379 //#define BYDIBLOCK
380 
381 #ifdef BYDIBLOCK
382  const int diblock = 14;
383  return plane >= 64*(diblock-1) &&
384  plane < 64*diblock;
385 #else
386  return plane >= 64;
387 #endif
388 }
diblock
print "ROW IS " print row
Definition: geo2elec.py:31
static void intermediate_plot ( const int  signal)
static

Definition at line 830 of file CherenkovCalc.cxx.

Referenced by CherenkovFitter::Fit().

831 {
832  if(signal != SIGUSR1) return;
833  plot = true;
834 }
static bool plot
static TH3D* invmask ( TH3D *  mask)
static

Definition at line 494 of file CherenkovCalc.cxx.

References MECModelEnuComparisons::i, and calib::j.

Referenced by CherenkovCalc::invmaskX(), and CherenkovCalc::invmaskY().

495 {
496  TH3D * notmask = (TH3D*)mask->Clone("notX");
497  for(int i = 1; i <= mask->GetNbinsX(); i++)
498  for(int j = 1; j <= mask->GetNbinsY(); j++)
499  for(int k = 1; k <= mask->GetNbinsZ(); k++)
500  notmask->SetBinContent(i, j, k, !mask->GetBinContent(i, j, k));
501  return notmask;
502 }
const double j
Definition: BetheBloch.cxx:29
static double llike_hist ( const TH3D *const  hObs,
const TH3D *const  hMC,
const TH2D *const  hObsDist,
const TH2D *const  hMCDist,
const TH3D *const  mask 
)
static

Definition at line 762 of file CherenkovCalc.cxx.

References iX, test_ParserArtEvents::log, mc, make_mec_shifts_plots::mc_scale, printf(), and stat_warn_level.

Referenced by CherenkovCalc::CalcChi2().

765 {
766  double llike = 0;
767  int problems = 0;
768  for(int iZ = 1; iZ <= hMC->GetNbinsZ(); ++iZ) {
769  for(int iX = 1; iX <= hMC->GetNbinsX(); ++iX) {
770  const double data_at_dist = hObsDist->GetBinContent(iX, iZ);
771  const double mc_at_dist = hMCDist->GetBinContent(iX, iZ);
772  const double mc_scale = data_at_dist/mc_at_dist;
773 
774  for(int iY = 1; iY <= hMC->GetNbinsY(); ++iY) {
775  if(mask->GetBinContent(iX, iY, iZ) == 0) continue;
776 
777  const double data = hObs->GetBinContent(iX, iY, iZ);
778  const double rawmc = hMC->GetBinContent(iX, iY, iZ);
779 
780  if(rawmc < stat_warn_level){
781  problems++;
782  if(rawmc <= 0) continue;
783  }
784 
785  // normalize MC to match data
786  const double mc = rawmc * mc_scale;
787 
788  llike += mc - data + (data <= 0?0:data * log (data/mc));
789  }
790  }
791  }
792  if(complain_about_problems && problems)
793  printf("%d low-stat MC bin%s in %s!\n",
794  problems, problems == 1?"":"s", hMC->GetName());
795 
796  return llike;
797 }
const XML_Char const XML_Char * data
Definition: expat.h:268
printf("%d Experimental points found\n", nlines)
Float_t iX
static const int stat_warn_level
static bool complain_about_problems
static TTreeReader* makereader ( const char *const  dir,
TFile *  file 
)
static

Definition at line 222 of file CherenkovCalc.cxx.

References dir, NovaGridUtils::fail(), and make_template_knob_config::stderr.

Referenced by CherenkovCalc::fill_hit_cache_and_init_things(), and CherenkovCalc::FillDataHistos().

223 {
224  TTreeReader * reader = new TTreeReader(Form("cerenkov/%s", dir), file);
225  if(!reader->IsInvalid()) goto ok;
226 
227  reader->SetTree(Form("cerenkovselection/%s", dir), file);
228  if(!reader->IsInvalid()) goto ok;
229 
230  reader->SetTree(Form("cerenkovresponse/%s", dir), file);
231  if(!reader->IsInvalid()) goto ok;
232 
233  if(strcmp(dir, "cerenkovMuonTree")) goto fail;
234 
235  reader->SetTree("cerenkovresponse/cerenkovTree", file);
236  if(!reader->IsInvalid()) goto ok;
237 
238  goto fail;
239 
240  ok:
241 
242  if(reader->GetEntries(false) == 0){
243  fprintf(stderr, "Empty input from %s\n", file->GetName());
244  _exit(1);
245  }
246  return reader;
247 
248  fail:
249 
250  fprintf(stderr, "Couldn't get tree from %s, %s\n", file->GetName(), dir);
251  _exit(1);
252 }
def fail(msg)
TDirectory * dir
Definition: macro.C:5
TFile * file
Definition: cellShifts.C:17
void mincheck ( TMinuit &  mn,
const bool  reset = false 
)

Definition at line 944 of file CherenkovCalc.cxx.

References epsilonll, getpar(), MECModelEnuComparisons::i, npar, and printf().

Referenced by CherenkovFitter::Fit().

945 {
946  static double oldllike = 0;
947 
948  if(oldllike == 0 || reset){
949  printf("\nllike = %8.1f\n", lowest_llike);
950  lowest_llike = 1e300;
951  memset(bestpars, 0, sizeof(double)*npar);
952  }
953  else if(oldllike < lowest_llike){
954  const int prevprint = mn.fISW[4];
955  mn.Command("SET PRINT -1");
956  if(prevprint >= 0)
957  printf("\nllike = %8.1f, %8.5f MORE than before (%8.1f). Resetting.\n",
958  lowest_llike, lowest_llike - oldllike, oldllike);
959  for(unsigned int i = 1; i <= npar; i++)
960  mn.Command(Form("SET PAR %d %f\n", i, bestpars[i-1]));
961  mn.Command(Form("SET PRINT %d", prevprint));
962  return;
963  }
964  else if(lowest_llike == 0){
965  printf("\nllike = 0 which is nonsense. Resetting.\n");
966  for(unsigned int i = 1; i <= npar; i++)
967  mn.Command(Form("SET PAR %d %f\n", i, bestpars[i-1]));
968  return;
969  }
970  else if(oldllike == lowest_llike){
971  printf("\nllike = %8.1f, which is the same as last time\n", lowest_llike);
972  }
973  else if(oldllike - lowest_llike > epsilonll){
974  printf("\nllike = %8.1f, which is %f less than last time\n",
975  lowest_llike, oldllike - lowest_llike);
976  }
977  else{
978  printf("\nllike = %8.1f, which is barely (%g) less than last time\n",
979  lowest_llike, oldllike - lowest_llike);
980  }
981 
982  if(lowest_llike < mn.fAmin){
983  const int prevprint = mn.fISW[4];
984  mn.Command("SET PRINT -1");
985  if(prevprint >= 0)
986  printf("\nNote: best = %f < fAmin = %f, using best pars instead\n",
987  lowest_llike, mn.fAmin);
988  for(unsigned int i = 1; i <= npar; i++)
989  mn.Command(Form("SET PAR %d %f\n", i, bestpars[i-1]));
990  mn.Command(Form("SET PRINT %d", prevprint));
991  }
992 
993  oldllike = mn.fAmin;
994  for(unsigned int i = 0; i < npar; i++) bestpars[i] = getpar(mn, i);
995 }
static double bestpars[npar]
static const unsigned int npar
printf("%d Experimental points found\n", nlines)
static double lowest_llike
static double getpar(TMinuit &mn, const int i)
static const double epsilonll
static void objfcn ( __attribute__((unused)) int np,
__attribute__((unused)) double *  gin,
double &  llike,
double *  par,
int  flag 
)
static

Definition at line 844 of file CherenkovCalc.cxx.

References detparams::attB, calc, detparams::Ec, epsilonll, detparams::equalsx(), detparams::equalsy(), stan::math::fabs(), FD, detparams::Fx, detparams::Fy, detparams::inv_att1, detparams::inv_att2, ND, npar, CherenkovFitter::Plot(), printf(), detparams::rngeff, sfdSamples, sndSamples, make_template_knob_config::stdout, and detparams::Ys.

Referenced by CherenkovFitter::Fit().

849 {
850  // taking the absolute value is a nice way to prevent non-physical nonsense
851  // without using SET LIMITS. The fit will only hit negative values when it is
852  // going crazy, and this can give it a way to get back home.
853  detparams FD, ND;
854  static detparams old_FD, old_ND;
855  FD.Fx = fabs(par[0]);
856  FD.Fy = fabs(par[1]);
857  ND.Fx = fabs(par[2]);
858  ND.Fy = fabs(par[3]);
859 
860  FD.Ys = ND.Ys = fabs(par[4]);
861  FD.Ec = ND.Ec = fabs(par[5]);
862  FD.attB = ND.attB = fabs(par[6]);
863  FD.inv_att1 = ND.inv_att1 = 1/fabs(par[7]);
864  FD.inv_att2 = ND.inv_att2 = 1/fabs(par[8] + par[7]);
865  FD.rngeff = ND.rngeff = fabs(par[9]);
866 
867  double ndllike = 0, fdllike = 0;
868  static double old_ndllike = 0, old_fdllike = 0;
869 
870  const bool fdchanged = old_FD != FD;
871  const bool ndchanged = old_ND != ND;
872 
873  if(fdchanged){
874  const bool fdchanged_x = !old_FD.equalsx(FD);
875  const bool fdchanged_y = !old_FD.equalsy(FD);
876 
878  fdllike += calc->CalcChi2(FD, fdchanged_x, fdchanged_y);
879  old_fdllike = fdllike;
880  }
881  else{
882  fdllike = old_fdllike;
883  }
884 
885  if(ndchanged){
886  const bool ndchanged_x = !old_ND.equalsx(ND);
887  const bool ndchanged_y = !old_ND.equalsy(ND);
888 
890  ndllike += calc->CalcChi2(ND, ndchanged_x, ndchanged_y);
891  old_ndllike = ndllike;
892  }
893  else{
894  ndllike = old_ndllike;
895  }
896 
897  old_FD = FD;
898  old_ND = ND;
899 
900  llike = ndllike + fdllike;
901 
902  {
903  if(llike < lowest_llike){
904  lowest_llike = llike;
905  printf("lowest llike so far: %.9f%s\n", llike,
906  lowest_llike - llike < epsilonll?" (barely)":"");
907  lowest_llike = llike;
908  memcpy(bestpars, par, sizeof(double)*npar);
909  }
910  printf(".");
911  if(flag == 3) printf("\n");
912  fflush(stdout);
913  }
914  if(plot){
915  static int setn = 0;
916  thefitter->Plot(Form("intermediate%d", setn));
917  thefitter->Plot("intermediatelatest"); // inefficient, but ok...
918  setn++;
919  plot = false;
920  }
921 }
double Ys
Definition: CherenkovCalc.h:21
fvar< T > fabs(const fvar< T > &x)
Definition: fabs.hpp:15
double inv_att1
Definition: CherenkovCalc.h:21
double Ec
Definition: CherenkovCalc.h:21
void Plot(const char *const tag)
double inv_att2
Definition: CherenkovCalc.h:21
static double bestpars[npar]
Int_t par
Definition: SimpleIterate.C:24
static vector< CherenkovCalc * > sfdSamples
double rngeff
Definition: CherenkovCalc.h:21
osc::OscCalcDumb calc
static const unsigned int npar
double Fx
Definition: CherenkovCalc.h:21
static CherenkovFitter * thefitter
printf("%d Experimental points found\n", nlines)
static vector< CherenkovCalc * > sndSamples
static double lowest_llike
bool equalsx(const detparams &b)
Definition: CherenkovCalc.h:47
static const double epsilonll
double attB
Definition: CherenkovCalc.h:21
bool equalsy(const detparams &b)
Definition: CherenkovCalc.h:60
double Fy
Definition: CherenkovCalc.h:21
static bool plot
static TRandom3 R ( )
static

Referenced by setarand().

static void randomparameters ( TMinuit &  mn)
static

Definition at line 1030 of file CherenkovCalc.cxx.

References float_att1, float_att2, float_attb, float_ec, float_fdfx, float_fdfy, float_ndfx, float_ndfy, float_rngeff, and setarand().

Referenced by CherenkovFitter::Fit().

1031 {
1032  if(float_fdfx) setarand(mn, 1, 0.3, 0.6);
1033  if(float_fdfy) setarand(mn, 2, 0.3, 0.6);
1034  if(float_ndfx) setarand(mn, 3, 0.3, 0.6);
1035  if(float_ndfy) setarand(mn, 4, 0.3, 0.6);
1036 
1037  if(float_ec) setarand(mn, 6, 0.7, 0.9);
1038  if(float_attb) setarand(mn, 7, 0.1, 0.9);
1039  if(float_att1) setarand(mn, 8, 110, 400);
1040  if(float_att2) setarand(mn, 9, 110, 900);
1041  if(float_rngeff) setarand(mn, 10, 0.98, 1.0);
1042 }
static void setarand(TMinuit &mn, const int p, const double min, const double max)
const bool float_ec
const bool float_ndfy
const bool float_fdfy
const bool float_att1
const bool float_fdfx
const bool float_rngeff
const bool float_ndfx
const bool float_attb
const bool float_att2
static void saneProjectionXZ ( TH2D *  out,
TH3D *  in 
)
static

Definition at line 81 of file CherenkovCalc.cxx.

References b, and sum.

Referenced by CherenkovCalc::fill_hit_cache_and_init_things(), and CherenkovCalc::FillDataHistos().

82 {
83  double sumsum = 0;
84  for(int bz = 0; bz <= in->GetNbinsZ()+1; bz++){
85  for(int b = 0; b <= in->GetNbinsX()+1; b++){
86  double sum = 0;
87  for(int by = 0; by <= in->GetNbinsY()+1; by++)
88  sum += in->GetBinContent(b, by, bz);
89  out->SetBinContent(b, bz, sum);
90  sumsum += sum;
91  }
92  }
93  out->SetEntries(sumsum);
94 }
ifstream in
Definition: comparison.C:7
const hit & b
Definition: hits.cxx:21
Double_t sum
Definition: plot.C:31
static void setarand ( TMinuit &  mn,
const int  p,
const double  min,
const double  max 
)
static

Definition at line 1020 of file CherenkovCalc.cxx.

References __attribute__(), min(), R(), and registry_explorer::v.

Referenced by randomparameters().

1022 {
1023  const double v = min + (max-min)*R.Rndm();
1024  mn.Command(Form("SET PAR %d %f", p, v));
1025 }
static TRandom3 R(0)
const char * p
Definition: xmltok.h:285
static float min(const float a, const float b, const float c)
Definition: absgeo.cxx:45
T max(sqlite3 *const db, std::string const &table_name, std::string const &column_name)
Definition: statistics.h:68
static binw smearbin ( const vector< double > &  bins,
const double  val,
const int  bin 
)
static

Definition at line 265 of file CherenkovCalc.cxx.

References bin, clamp(), binw::curr, binw::next, binw::prev, and printf().

Referenced by CherenkovCalc::FastMCFill(), and CherenkovCalc::fill_no_overflow().

274 {
275  binw ans;
276 
277  // This is the regular way of binning!
278 #ifndef SMEAR
279  ans.prev = ans.next = 0;
280  ans.curr = 1;
281  return ans;
282 #else
283  const double binlowedge = bins[bin];
284  const double binhigedge = bins[bin+1];
285  const double binfrac = clamp(( val - binlowedge)/
286  (binhigedge - binlowedge), -0.5, 1.5);
287  if(binfrac > 0.5){
288  ans.prev = 0;
289  ans.next = binfrac - 0.5;
290  ans.curr = 1 - ans.next;
291  }
292  else{
293  ans.prev = 0.5 - binfrac;
294  ans.curr = 1 - ans.prev;
295  ans.next = 0;
296  }
297 #endif
298 
299 #if 0
300  printf("%f %d:\t%f %f %f %f \n", val, bin, binfrac, ans.prev, ans.curr, ans.next);
301 #endif
302 
303  return ans;
304 }
static double clamp(const double v, const double mi, const double ma)
double prev
printf("%d Experimental points found\n", nlines)
const Binning bins
float bin[41]
Definition: plottest35.C:14
double curr
double next

Variable Documentation

double bestpars[npar] = { 0 }
static

Definition at line 841 of file CherenkovCalc.cxx.

bool complain_about_problems = true
static

Definition at line 759 of file CherenkovCalc.cxx.

const double epsilonll = 1e-4
static

Definition at line 76 of file CherenkovCalc.cxx.

Referenced by CherenkovFitter::Fit(), mincheck(), and objfcn().

const bool float_att1 = false

Definition at line 31 of file CherenkovCalc.cxx.

Referenced by CherenkovFitter::Fit(), and randomparameters().

const bool float_att2 = false

Definition at line 32 of file CherenkovCalc.cxx.

Referenced by CherenkovFitter::Fit(), and randomparameters().

const bool float_attb = false

Definition at line 30 of file CherenkovCalc.cxx.

Referenced by CherenkovFitter::Fit(), and randomparameters().

const bool float_ec = false

Definition at line 28 of file CherenkovCalc.cxx.

Referenced by CherenkovFitter::Fit(), and randomparameters().

const bool float_fdfx = true

Definition at line 25 of file CherenkovCalc.cxx.

Referenced by CherenkovFitter::Fit(), and randomparameters().

const bool float_fdfy = true

Definition at line 26 of file CherenkovCalc.cxx.

Referenced by CherenkovFitter::Fit(), and randomparameters().

const bool float_ndfx = false

Definition at line 22 of file CherenkovCalc.cxx.

Referenced by CherenkovFitter::Fit(), and randomparameters().

const bool float_ndfy = false

Definition at line 23 of file CherenkovCalc.cxx.

Referenced by CherenkovFitter::Fit(), and randomparameters().

const bool float_rngeff = false

Definition at line 36 of file CherenkovCalc.cxx.

Referenced by CherenkovFitter::Fit(), and randomparameters().

double lowest_llike = 1e300
static

Definition at line 840 of file CherenkovCalc.cxx.

const unsigned int maxDATAhitsPERw = 1e6
static

Definition at line 65 of file CherenkovCalc.cxx.

Referenced by CherenkovCalc::FillDataHistos().

const unsigned int maxMChitsPERw = 1e7
static

Definition at line 60 of file CherenkovCalc.cxx.

Referenced by CherenkovCalc::fill_hit_cache_and_init_things().

const double MINPATHLENGTH = 1

Definition at line 57 of file CherenkovCalc.cxx.

Referenced by CherenkovCalc::accepthit().

const unsigned int npar = 10
static
bool plot = false
static
vector<CherenkovCalc*> sfdSamples
static

Definition at line 44 of file CherenkovCalc.cxx.

Referenced by CherenkovFitter::Fit(), and objfcn().

vector<CherenkovCalc*> sndSamples
static

Definition at line 44 of file CherenkovCalc.cxx.

Referenced by CherenkovFitter::Fit(), and objfcn().

const int stat_req = 1000
static

Definition at line 69 of file CherenkovCalc.cxx.

Referenced by fill_mask().

const int stat_warn_level = 100
static

Definition at line 72 of file CherenkovCalc.cxx.

Referenced by llike_hist().

CherenkovFitter* thefitter = NULL
static

Definition at line 827 of file CherenkovCalc.cxx.