00001
00002
00004 #ifndef __Search__
00005 #define __Search__
00006
00007 #include "IO.h"
00008 #include "SearchRead.h"
00009
00010 using namespace std;
00011
00016 class Search: public GwollumPlot {
00017
00018 public:
00019
00032 Search(const int aVerbose=0);
00033
00037 virtual ~Search(void);
00042 inline void SetDetectionMorphMatchThreshold(const double aThr){
00043 h1_monitor->SetBinContent(7,aThr);
00044 }
00045 inline void SetDetectionSumw2Threshold(const double aThr){
00046 h1_monitor->SetBinContent(8,aThr);
00047 }
00048
00049 bool Process(const vector <string> aSearchReadFilePattern);
00050 bool ProcessSearch(const string aSearchFileName);
00051
00052 void PrintPlots(const string aPlotNames);
00053
00054 void WriteSearch(const string aOutDir, const string aOutFileName);
00055 void SetMorphMatchBins(const int aN);
00056 void SetSumw2Bins(const int aN, const double aMin, const double aMax);
00057 void SetFreqBins(const int aN, const double aMin, const double aMax);
00058 void SetInjAmpBins(const int aN, const double aMin, const double aMax);
00059
00060 inline void SetMorphMatchSelection(const double aMin, const double aMax){
00061 MorphMatchSelect[0]=aMin;
00062 MorphMatchSelect[1]=aMax;
00063 };
00064 inline void SetMorphMatchShiftSelection(const double aMin, const double aMax){
00065 MorphMatchShiftSelect[0]=aMin;
00066 MorphMatchShiftSelect[1]=aMax;
00067 };
00068 inline void SetMorphMatchSumw2Selection(const double aMin, const double aMax){
00069 MorphMatchSumw2Select[0]=aMin;
00070 MorphMatchSumw2Select[1]=aMax;
00071 };
00072 inline void SetCoincFrequencySelection(const double aMin, const double aMax){
00073 CoincFreqSelect[0]=aMin;
00074 CoincFreqSelect[1]=aMax;
00075 };
00076
00077 private:
00078
00079 int verbosity;
00080
00081
00082 TH1D *h1_monitor;
00083
00084
00085 double MorphMatchSelect[2];
00086 double MorphMatchSumw2Select[2];
00087 double MorphMatchShiftSelect[2];
00088 double CoincFreqSelect[2];
00089
00090
00091 void MakeMorphMatchPlots(void);
00092 TH1D *h1_morphmatch[3];
00093 void MakeMorphMatchSumw2Plots(void);
00094 TH2D *h2_morphmatch_sumw2[3];
00095 void MakeMorphMatchFreqPlots(void);
00096 TH2D *h2_morphmatch_freq0[3];
00097 TH2D *h2_morphmatch_freq1[3];
00098
00099
00100 void MakeRatePlots(void);
00101 TH1D *h1_morphmatch_rate[3];
00102 TH2D *h2_morphmatch_sumw2_rate[3];
00103
00104
00105 void MakeInjectionsPlots(void);
00106 TH1D *h1_injamp_val;
00107 TH1D *h1_injamp_rec;
00108
00109
00110 void MakeEfficiencyPlots(void);
00111 TH1D *h1_injamp_eff;
00112
00113
00114 TGraph *isocont[10];
00115
00116
00117 int n_morphmatchbins;
00118 int n_sumw2bins;
00119 double *sumw2bins;
00120 int n_fbins;
00121 double *fbins;
00122 int n_injampbins;
00123 double *injampbins;
00124
00125 ClassDef(Search,0)
00126 };
00127
00128 #endif
00129
00130