#ifndef __S800ROOTGLOBALS_H
#define __S800ROOTGLOBALS_H 1
#endif
#ifndef __TS800CRDCCALC_H
#define __TS800CRDCCALC_H

#ifndef __S800PACKETS_H
#include "S800Packets.h"
#define __S8000PACKETS_H
#endif
#ifndef __S800DEFINE_H
#include "S800define.h"
#define __S800DEFINE_H
#endif
#ifndef __ROOTDEFINE_H
#include "rootDefine.h"
#define __ROOTDEFINE_H
#endif

#include "TBranch.h"
#include "TObject.h"
#include "TString.h"
#include "TTree.h"

using namespace std;

// Forward class declarations
class TS800CrdcPads;
class TS800Crdc;

class TS800CrdcCalc : public TObject{
 public:
  Int_t        InterpSnap[2];             //! 

 public:
  TS800CrdcCalc* fCon;                    //!
  TS800Crdc*     parent;                  //! Parent CRDC class.
  TS800CrdcPads* pad;                     //! Current CRDC Pad class.

  Bool_t       fInterpGaus;               //! Use gaussian interpolation for badpads.
  Bool_t       fInterpPoly;               //! Use polynomial interpolation for badpads.
  Bool_t       fInterpSnap;               //! Display random pad distobutions while interpolating.
  Bool_t       fInterpSpline3;            //! Use cubic spline interpolation.
  Bool_t       fSatFlat;                  //! Flatten pad distribution for nonlinear region.


 public:
  Double_t     maxpad;                    // Value of the padmax.
  Short_t      padmax;                    // Pad number with the largest value.
  Double_t     padsum;                    // 
  Short_t      padDist;                   // Distance in number of pads from the padmax.
  Double_t     x_gravity;                 // x position calculated using center of gravity method.
  Double_t     x_fit;                     // x position calculated using fit method.
  Double_t     x_chi2;                    //
  Short_t      gravity_width;             //! Number of pads around padmax to use for center of gravity.
  Short_t      fit_width;                 //! Number of pads to use for fit method.
  Short_t      method;                    //! Use center of gravity or gaussian fit.
  Short_t      badpads;                   //! Number of badpads.
  Short_t      badpad[30];                //! 
  Short_t      badList[TS800_FP_CRDC_CHANNELS]; //!
  Double_t     saturationFlat;            //! Common value above which pads saturate.
  
  TString      name;                      //!
  
  TBranch      *b_maxpad;                 //!
  TBranch      *b_padmax;                 //!
  TBranch      *b_padsum;                 //!
  TBranch      *b_padDist;                //!
  TBranch      *b_x_gravity;              //!
  TBranch      *b_x_fit;                  //!
  TBranch      *b_x_chi2;                 //!

  TTree        *fChain;                   //! 
  Int_t        fCurrent;                               //! Current Tree number in a TChain
  
 private:

 public:
  TS800CrdcCalc() {}
  virtual ~TS800CrdcCalc() {}
  TS800CrdcCalc(const TS800CrdcCalc &);                           // The copy constructor.

  void     CalculateFit();                                        //
  void     CalculateGravity();                                    //
  void     Clear(Option_t *option="");                            //
  void     ClearBadList(){memset(badList,'\0',sizeof(badList));}; //
  void     Copy(TObject &calc) const;                             // The copy method.
  void     GetEntry(Int_t i);                                     //
  void     InitClass(TString iname);                              //
  void     InitTree(TTree *tree);                                 //
  void     SetBadPad(Int_t pad){badList[pad]=1;};                 //
  void     UseInterpolation(Bool_t inter){};                      //
  
  ClassDef(TS800CrdcCalc,5)     // S800 FP CRDC calculations.
};

#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.