#ifndef __S800ROOTGLOBALS_H
#define __S800ROOTGLOBALS_H 1
#endif
#ifndef __TS800CRDC_H
#define __TS800CRDC_H
#ifndef __S800PACKETS_H
#include "S800Packets.h"
#define __S8000PACKETS_H
#endif
#ifndef __S800DEFINE_H
#include "S800define.h"
#define __S800DEFINE_H
#endif
#include <TH1F.h>
#include <TH2F.h>
#include <TObject.h>
#include <TRandom3.h>
#include <TSpline.h>
#include "TS800CrdcPads.h"
#include "TS800CrdcCalc.h"
using namespace std;
class TS800;
class TS800CrdcPads;
class TS800CrdcCalc;
class TS800Crdc : public TNamed{
private:
TRandom3 fRandom;
TSpline3 *fTACSpline;
TSpline3 *fAnodeSpline;
TSpline3 *fYSpline;
public:
TS800 *parent;
TS800Crdc* fCon;
Bool_t fTACSplineCorr;
Bool_t fAnodeSplineCorr;
Bool_t fYSplineCorr;
Short_t channels;
Short_t tag;
Short_t maxwidth;
Short_t threshold;
Short_t sampleBegin;
Short_t sampleWidth;
Bool_t debug;
Int_t filled;
Short_t *data;
Short_t *sample;
Short_t *channel;
Short_t rData[224];
Short_t rSample[224];
Short_t rChannel[224];
public:
TS800CrdcPads pad;
TS800CrdcCalc calc;
Double_t x;
Double_t y;
UShort_t anode;
UShort_t tac;
Double_t fAnodeSplineLevel;
Double_t fAnodeCorrSlope;
Double_t fAnodeCorrOffset;
Double_t fTACSplineLevel;
Char_t *fYSplineMatchPnt;
Double_t x_offset[2];
Double_t x_slope[2];
Double_t y_offset[2];
Double_t y_slope[2];
Double_t fXShift;
Double_t fYShift;
Double_t fYGainShift;
TH1F fHYShifts;
TH1F fHYGainShifts;
TBranch *b_data;
TBranch *b_sample;
TBranch *b_channel;
TBranch *b_filled;
TBranch *b_x;
TBranch *b_y;
TBranch *b_anode;
TBranch *b_tac;
TBranch *b_pad;
TBranch *b_calc;
TTree *fChain;
Int_t fCurrent;
public:
TS800Crdc() {fRandom.SetSeed(0);}
~TS800Crdc() {}
TS800Crdc(const TS800Crdc &);
Int_t Calculate(Long64_t entry);
void InitClass(TString iname,TS800 *theParent);
void InitFix();
void InitTree(TTree *tree);
void Clear(Option_t *option="");
void Copy(TObject &) const;
void GetEntry(Int_t i);
Bool_t LoadYShifts(Char_t *yShiftFile);
Bool_t LoadYGainShifts(Char_t *yGainShiftFile);
Bool_t LoadSpline(Char_t *splineFile,Int_t crdcID,Int_t type);
void settag(Short_t atag) {tag = atag;}
void setchannels(Short_t achannels) {channels = achannels;}
void setdebug(Bool_t condition) {debug = condition;}
void SetYShift(Int_t runNum);
void SetYGainShift(Int_t runNum);
UShort_t* Unpack(UShort_t *p);
UShort_t* Unpackrawdata(UShort_t *p);
void Snapshot1D(TH1F* histogram, Int_t entry);
void Snapshot2D(TH2F* histogram, Int_t entry);
ClassDef(TS800Crdc,13)
};
#endif
Last change: Sun Dec 21 12:38:54 2008
Last generated: 2008-12-21 12:38
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.