#ifndef __S800ROOTGLOBALS_H
#define __S800ROOTGLOBALS_H 1
#endif
#ifndef __TS800TIMEOFFLIGHT_H
#define __TS800TIMEOFFLIGHT_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 <TRandom3.h>
#include "TString.h"
#include "TTree.h"

using namespace std;

// Forward class declarations
class TS800;

class TS800TimeOfFlight : public TObject{
 private:
  TRandom3     fRandom;                           //! The class's random number generator.

 public:
  TS800TimeOfFlight *fCon;                        //!
  TS800             *parent;                      //! Parent S800 class.

  TString    name;                                //! 

  UShort_t rf;                                    //  RF time.
  UShort_t obj;                                   //  Object scintillator time.
  UShort_t xfp;                                   //  Extended focal plane time.
  UShort_t tar;                                   //  Target time.
  Double_t rfc;                                   //  Trigger corrected RF time.
  Double_t objc;                                  //  Trigger corrected object time.
  Double_t xfpc;                                  //  Trigger corrected extended focal plane time.
  UShort_t xfpobj;                                //  XFP to OBJ time.

  Double_t objFp;                                 //  ToF from OBJ to FP.
  Double_t xfpFp;                                 //  ToF from XFP to FP.
  Double_t xfpTar;                                //  ToF from XFP to Target.
  Double_t tarFp;                                 //  ToF from Target to FP.

  Double_t obje1;                                 //  Corrected OBJ to E1 time.
  Double_t obje2;                                 //  Corrected OBJ to E1 time.
  Double_t xfpe1;                                 //  Corrected XFP to E1 time.
  Double_t xfpe2;                                 //  Corrected XFP to E1 time.
  Double_t xfpobje1;                              // 

  Double_t timeSlope;                             //!  S800 TDC slope.  (100 ps/ch)
  Double_t objFpShift;                            //!
  Double_t xfpFpShift;                            //!
  Double_t xfpObjShift;                           //!

  Double_t rfCorrection;                          //! 
  Double_t objX1Correction[4];                    //!
  Double_t objX2Correction[4];                    //!
  Double_t xfpX1Correction[4];                    //!
  Double_t xfpX2Correction[4];                    //!
  Double_t tarFpX1Correction[4];                  //!
  Double_t tarFpX2Correction[4];                  //!
  Double_t objY1Correction;                       //!
  Double_t objY2Correction;                       //!
  Double_t xfpY2Correction;                       //!
  Double_t xfpY1Correction;                       //!
  Double_t tarFpY1Correction;                     //!
  Double_t tarFpY2Correction;                     //!
  Double_t obje1tupCorrection;                    //!
  Double_t obje1Correction;                       //!
  Double_t xfpe1Correction;                       //!
  Double_t tarFpCorrection;                       //!
  Double_t obje2Correction;                       //!
  Double_t xfpe2Correction;                       //!

  Double_t fPIDShift[2];                          //! PID Shifts 0=xfpTar 1=tarFp

  TBranch *b_rf;                                  //!
  TBranch *b_obj;                                 //!
  TBranch *b_xfp;                                 //!
  TBranch *b_tar;                                 //!
  TBranch *b_rfc;                                 //!
  TBranch *b_objc;                                //!
  TBranch *b_xfpc;                                //!
  TBranch *b_xfpobj;                              //!
  TBranch *b_obje1;                               //!
  TBranch *b_obje2;                               //!
  TBranch *b_xfpe1;                               //!
  TBranch *b_xfpe2;                               //!
  TBranch *b_xfpobje1;                            //!
  TBranch *b_objFp;                               //! 
  TBranch *b_xfpFp;                               //! 
  TBranch *b_xfpTar;                              //! 
  TBranch *b_tarFp;                               //! 

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

 private:
  void CalculateVelCorr();                              //

 public:
  TS800TimeOfFlight() {fRandom.SetSeed(0);}
  virtual ~TS800TimeOfFlight() {}
  TS800TimeOfFlight(const TS800TimeOfFlight &);         // The copy constructor.

  void           SetName(const Char_t *name);           //

  Int_t     Calculate(Long64_t entry);                  //
  Int_t     Calibrate(Long64_t entry);                  //
  void      Clear(Option_t *option="");                 //
  void      Copy(TObject &tof) const;                   // The copy method.
  void      GetEntry(Int_t i);                          //
  void      InitClass(TString iname, TS800* theTop);    //
  void      InitTree(TTree *tree);                      //
  UShort_t* Unpack(UShort_t *p);                        //


  ClassDef(TS800TimeOfFlight,5)     // S800 Time Of Flight.
};


#endif

Last change: Sun Dec 21 12:38:57 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.