ROOT logo
// $Id: ARayShooter.h 3 2010-11-26 17:17:31Z oxon $
// Author: Akira Okumura 2007/10/02

/******************************************************************************
 * Copyright (C) 2006-, Akira Okumura                                         *
 * All rights reserved.                                                       *
 *****************************************************************************/

#ifndef A_RAY_SHOOTER_H
#define A_RAY_SHOOTER_H

///////////////////////////////////////////////////////////////////////////////
//
// ARayShooter
//
// Ray shooter
//
///////////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TGeoMatrix
#include "TGeoMatrix.h"
#endif
#ifndef ROOT_TMath
#include "TMath.h"
#endif
#ifndef ROOT_TVector3
#include "TVector3.h"
#endif

#ifndef A_RAY_ARRAY_H
#include "ARayArray.h"
#endif

class ARayShooter : public TObject {
 private:
  
 public:
  ARayShooter();
  virtual ~ARayShooter();

  static ARayArray* Circle(Double_t lambda, Double_t rmax, Int_t nr,
                           Int_t nphi, TGeoRotation* rot = 0,
                           TGeoTranslation* tr = 0, TVector3* v = 0);
  static ARayArray* RandomCircle(Double_t lambda, Double_t rmax, Int_t n,
                                 TGeoRotation* rot = 0,
                                 TGeoTranslation* tr = 0, TVector3* v = 0);
  static ARayArray* RandomCone(Double_t lambda, Double_t r, Double_t d, Int_t n,
                               TGeoRotation* rot = 0, TGeoTranslation* tr = 0);
  static ARayArray* RandomRectangle(Double_t lambda, Double_t dx, Double_t dy,
                                    Int_t n, TGeoRotation* rot = 0,
                                    TGeoTranslation* tr = 0, TVector3* v = 0);
  static ARayArray* RandomSphere(Double_t lambda, Int_t n, TGeoTranslation* tr = 0);
  static ARayArray* RandomSphericalCone(Double_t lambda, Int_t n, Double_t theta, TGeoRotation* rot = 0, TGeoTranslation* tr = 0);
  static ARayArray* RandomSquare(Double_t lambda, Double_t d,
                                 Int_t n, TGeoRotation* rot = 0,
                                 TGeoTranslation* tr = 0, TVector3* v = 0);
  static ARayArray* Rectangle(Double_t lambda, Double_t dx, Double_t dy,
                              Int_t nx, Int_t ny, TGeoRotation* rot = 0,
                              TGeoTranslation* tr = 0, TVector3* v = 0);
  static ARayArray* Square(Double_t lambda, Double_t d, Int_t n,
                           TGeoRotation* rot = 0, TGeoTranslation* tr = 0, TVector3* v = 0);

  ClassDef(ARayShooter, 1)
};

#endif // A_RAY_SHOOTER_H
 ARayShooter.h:1
 ARayShooter.h:2
 ARayShooter.h:3
 ARayShooter.h:4
 ARayShooter.h:5
 ARayShooter.h:6
 ARayShooter.h:7
 ARayShooter.h:8
 ARayShooter.h:9
 ARayShooter.h:10
 ARayShooter.h:11
 ARayShooter.h:12
 ARayShooter.h:13
 ARayShooter.h:14
 ARayShooter.h:15
 ARayShooter.h:16
 ARayShooter.h:17
 ARayShooter.h:18
 ARayShooter.h:19
 ARayShooter.h:20
 ARayShooter.h:21
 ARayShooter.h:22
 ARayShooter.h:23
 ARayShooter.h:24
 ARayShooter.h:25
 ARayShooter.h:26
 ARayShooter.h:27
 ARayShooter.h:28
 ARayShooter.h:29
 ARayShooter.h:30
 ARayShooter.h:31
 ARayShooter.h:32
 ARayShooter.h:33
 ARayShooter.h:34
 ARayShooter.h:35
 ARayShooter.h:36
 ARayShooter.h:37
 ARayShooter.h:38
 ARayShooter.h:39
 ARayShooter.h:40
 ARayShooter.h:41
 ARayShooter.h:42
 ARayShooter.h:43
 ARayShooter.h:44
 ARayShooter.h:45
 ARayShooter.h:46
 ARayShooter.h:47
 ARayShooter.h:48
 ARayShooter.h:49
 ARayShooter.h:50
 ARayShooter.h:51
 ARayShooter.h:52
 ARayShooter.h:53
 ARayShooter.h:54
 ARayShooter.h:55
 ARayShooter.h:56
 ARayShooter.h:57
 ARayShooter.h:58
 ARayShooter.h:59
 ARayShooter.h:60
 ARayShooter.h:61
 ARayShooter.h:62
 ARayShooter.h:63
 ARayShooter.h:64
 ARayShooter.h:65
 ARayShooter.h:66