4 #define INITIAL_HEIGHT 500
5 #define INITIAL_WIDTH 600
10 #include <TGApplication.h>
11 #include <TApplication.h>
15 #include <TGNumberEntry.h>
17 #include <TGTextEntry.h>
18 #include <TRootEmbeddedCanvas.h>
23 #include <TMultiGraph.h>
27 #include <TGFileDialog.h>
30 #include "PulseShape.h"
31 #include "EnergyFilter.h"
32 #include "AnalogSignal.h"
33 #include "TGStatusBar.h"
37 #include "TrigConfig.h"
38 #include "TriggerFilter.h"
45 #include "ExpertMod.h"
46 #include "Histogram.h"
52 #include "TVirtualPad.h"
55 #include "MultCoincDialogue.h"
56 #include "TimingParamDialogue.h"
118 class Main:
public TGMainFrame
122 Main(
const TGWindow *p);
153 TGFileInfo fEventFileOpenInfo;
154 TGTextEntry *StateMsgFold1;
155 TGTextButton *analyzeB, *acquireB, *saveB;
156 TGCheckButton *bmultdisplay, *bfastdisplay;
157 TGStatusBar* fStatusBar;
158 TGNumberEntry *numericMod, *numericCh;
176 int xmin, xmax, ymin, ymax;
178 unsigned short NumModules;
181 int range, separation;
186 unsigned long mca[MCA_SIZE];
187 short int modNumber, chanNumber;
191 double *decayconstant;
192 double *decayconstantfit;
194 unsigned int *histdata;
195 unsigned short *trace, *filter_trace;
197 int *fastfilter, *enerfilter, *cfdfilter;
203 virtual Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t);
206 void CreateMenuBar(
void);
207 void SetStatusText(
const char *txt, Int_t pi);
208 void EventInfo(Int_t event, Int_t px, Int_t py, TObject *selected);
209 void MakeFold1Panel(TGCompositeFrame *TabPanel);
211 void NewTrace(
unsigned long size,
unsigned short module,
212 unsigned short ChanNum);
213 void GetHistogram(
unsigned short module,
unsigned short ChanNum);
214 void GetBaseline(
unsigned short int module,
unsigned short int ChanNum);
215 void AnlyTrace(
unsigned long size,
unsigned short module,
216 unsigned short ChanNum);
217 void writeSpe(
const char *filename,
float buf[],
int dim);
218 void save_setup(
char *name);
219 int IdentifyTracePulse (
unsigned short *trace,
unsigned int traceSize,
220 unsigned int trigLen,
unsigned int trigGap,
221 double *trigLeadSum,
double *trigTrailSum,
222 double trigThresho,
unsigned int *peak,
223 unsigned int *valley);
224 int TauFromMoments (
unsigned short *trace,
unsigned int traceSize,
225 double dt,
double *tau);
226 int TauFromFit (
unsigned short *trace,
unsigned int traceSize,
227 double dt,
double *tau);
228 int BinTrace (
double *trace,
unsigned int traceSize,
double *bins,
229 unsigned int binNum,
double *binCounts);
230 int BinTraceFit (
double *trace,
double *tracefit,
unsigned int traceSize,
231 double *bins,
unsigned int binNum,
double *binCounts);
232 double ArrayMax (
double *a,
unsigned int ArraySize,
unsigned int *Index);
233 double FitGaussian (TGraph *Dist);
234 int FindTau (
unsigned short ModNum,
unsigned short ChanNum,
235 double *
Tau,
double *TauFit);