1 #ifndef ANITA_TEMPLATES 2 #define ANITA_TEMPLATES 5 #include "AnitaEventSummary.h" 8 #include "AnalysisWaveform.h" 9 #include "SystemResponse.h" 10 #include "AnitaVersion.h" 56 TGraph *theImpTemplate;
59 TGraph *theWaisTemplate;
61 static const int numCRTemplates = 10;
63 TGraph *theCRTemplates[numCRTemplates];
68 TGraph *theImpTemplate_deconv;
71 TGraph *theWaisTemplate_deconv;
73 FFTWComplex *theCRTemplateFFTs_deconv[numCRTemplates];
74 TGraph *theCRTemplates_deconv[numCRTemplates];
78 void loadTemplates(
unsigned int evTime = 0,
int version = AnitaVersion::get());
86 bool isTmpltsDeconv() {
return kTmpltsDeconv; };
91 int poli,
int dir,
AnitaTemplateSummary *summary,
bool do_impulse =
true,
bool do_wais =
true,
bool do_cr =
true );
97 void setUseAverageCRTemplate(
bool opt) { fUseAverageCRTemplate = opt; }
98 void setDoWindow(
bool opt) { fDoWindow = opt; }
99 std::string getNotchStr() {
return fNotchStr ;}
105 bool fUseAverageCRTemplate;
108 std::string fNotchStr;
109 std::vector<int> payloadTimes;
110 std::vector<std::string> notchConfigs;
112 void fillNotchConfigs();
115 void getImpulseResponseTemplate(
int version);
116 void getWaisTemplate(
int version);
117 void getCRTemplates(
int version);
147 static const int numCRTemplates = AnitaTemplateMachine::numCRTemplates;
156 Double_t impulse_loc;
165 Double_t cRay[numCRTemplates];
166 Double_t cRay_loc[numCRTemplates];
167 bool cRay_pol[numCRTemplates];
179 void zeroInternals();
218 TGraph *windowWave(TGraph*,
int&,
const int,
const int,
const int,
const int);
221 TGraph *
windowCut(TGraph *inGraph,
int length);
223 TGraph *windowDispersed(TGraph *inGraph,
int &peakHilbertLoc);
224 TGraph *windowDispersed(TGraph *inGraph);
226 TGraph *windowEField(TGraph *inGraph,
int &peakHilbertLoc);
227 TGraph *windowEField(TGraph *inGraph);
230 TGraph *windowWave(TGraph *inGraph,
int &peakHilbertLoc,
231 const int upRampLoc = 50,
const int downRampLoc = 600,
232 const int upRampLen = 100,
const int downRampLen = 400);
FFTWComplex * theImpTemplateFFT
virtual ~AnitaTemplateSummary()
static const Int_t maxDirectionsPerPol
AnitaTemplateMachine(const int inLength=2048)
Default Constructor.
void loadTemplates(unsigned int evTime=0, int version=AnitaVersion::get())
void deconvolveTemplates(AnitaResponse::DeconvolutionMethod *deconv)
This is a wrapper class for a complex number.
void doTemplateAnalysis(const AnalysisWaveform *waveform, int poli, int dir, AnitaTemplateSummary *summary, bool do_impulse=true, bool do_wais=true, bool do_cr=true)
void writeTemplatesToFile(TFile *outFile)
AnitaTemplateSummary()
Default Constructor.