#include <math.h>
#include <stdlib.h>
#include <stdio.h>
//#include "TObject.h"
#ifndef BReconClassesDef

class BPeak
{
 private:

 public:
  double pos;
  double epos;
  float *data;

  int sleft;
  int sright;
  int max;
  int flagged;

  BPeak();
  ~BPeak();

  double Integral();
  void GetPosition(float=0, bool=false);
  void Print();
  //  ClassDef(BPeak,1)
};


class BHitMap
{
 private:

 public:
  int NumCh;
  float *HitMap;
  unsigned char *BadCh;

  BHitMap(int=130);
  ~BHitMap();

  void Reset(int=0);
  void AddNoise();
  void Set(int,float *);
  void Copy(float *);
  void BadChannels(unsigned char *);
  int FindPeaks(BPeak *[],double=0.01,double=0.1);
  //  ClassDef(BHitMap,1)
};


class BPHole
{
 private:
 public:
  double r[3];
  double st;
  double ro;
  double ri;

  BPHole(double x,double y, double z, double x1=0, double x2=0)
    {r[0]=x; r[1]=y; r[2]=z; ro=x1; ri=x2; };
  BPHole() {};
  ~BPHole(){};
  void Print();
  //  ClassDef(BPHole,1)
    //root specific
  //  TVector3 *GetPos(){TVector3 *pos=new TVector3(r[0],r[1],r[2]); return pos;};
};


class BDetector : public BHitMap
{
#define MAXPEAK 10
 private:
  double Pitch;
  double DetPos;
  double DetZ;
  int orient;
 public:
  int NumPeak;
  BPeak *Peak[MAXPEAK];
  //  double HitPos[MAXPEAK][3];

  BDetector(double=480e-4,double=-3.048);
 ~BDetector(){};
  inline void Orientation(int x){orient=x;}
  inline int Orientation(){return(orient);}
  void PrintPosition();
  double GetPosition(int=0);
  double GetPositionError(int=0);
  inline double GetZPos(){return DetZ;}
  inline double SetZPos(double z){DetZ=z;}
  void FindPeakss(){FindPeaks(Peak);};
  //  ClassDef(BDetector,1)
};


class BPTrack
{
 private:
 public:
  BDetector *det1;
  BDetector *det2;
  BPHole *PHole;
  int Peak1;
  int Peak2;

  double DetP1[3];
  double DetP2[3];

  BPTrack(){};
  ~BPTrack(){};
  void GetTrack();
  void GetError();
  void GetDirection();
  void Print();
  double GetTrackDistance(BPTrack *,double * = NULL);
  //void GetDistance(BPTrack *);
  double GetDistancePoint(double *,double * = NULL);
  //  ClassDef(BPTrack,1)
  //  TVector3 *GetPos(){TVector3 *pos=new TVector3(DetP1[0],DetP1[1],DetP1[2]); return pos;};
};

class Ir192
{
 private:
 public:
  Ir192(){};
  ~Ir192(){};
  double Get();

};



class BPPhoton
{

 private:
  TRandom rnd;
 public:
  float Xsect[3][6][100];
  double rho[3];
  double step_size;
  int step_type;
  double prob;   // surviving probability
  int step_count;

  int Cmat;
  double Pprob; // previous probability of surviving
  bool CComp;   // compton scattering included
  double Cpos[3];
  double Cdir[3];
  double Cen;
  double CDen;
  bool SiHit;
  int Emi;



  BPPhoton(){step_count=0; prob=1; Pprob=1;};
  ~BPPhoton(){};
  void Reset()
    {CComp=0; prob=1; Cmat=-1; Pprob=1; CDen=0; step_count=0; step_size=0; step_type=0;};
  void ReadXSect(int, char *[]);
  double StepSize(bool=true);
  double GetXSect(int,int, double);

  void Print();
  void DoStep(bool);
  inline void SetCPos(double *pos) {for(int i=0;i<3;i++) Cpos[i]=pos[i];}
  inline void SetCDir(double *dir) {for(int i=0;i<3;i++) Cdir[i]=dir[i];}
  inline void SetStepSize(double ss) {step_size=ss; step_type=3;}
  inline void SetRho(double *x){for(int i=0;i<3;i++) rho[i]=x[i];}
  double GetIntProb(int=0,double=-1);
};

#endif


ROOT page - Class index - Class Hierarchy - Top of the page

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.