Geant4  10.03.p02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PDBbarycenter.cc
Go to the documentation of this file.
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
26 // This example is provided by the Geant4-DNA collaboration
27 // Any report or published results obtained using the Geant4-DNA software
28 // shall cite the following Geant4-DNA collaboration publication:
29 // Med. Phys. 37 (2010) 4692-4708
30 // Delage et al. PDB4DNA: implementation of DNA geometry from the Protein Data
31 // Bank (PDB) description for Geant4-DNA Monte-Carlo
32 // simulations (submitted to Comput. Phys. Commun.)
33 // The Geant4-DNA web site is available at http://geant4-dna.org
34 //
35 // $Id$
36 //
39 
40 #include "PDBbarycenter.hh"
41 
42 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
43 
44 Barycenter::Barycenter():fBaryNum(0),fRadius(0),
45 fCenterX(0),fCenterY(0),fCenterZ(0),
46 fCenterBaseX(0),fCenterBaseY(0),fCenterBaseZ(0),
47 fCenterSugarX(0),fCenterSugarY(0),fCenterSugarZ(0),
48 fCenterPhosphateX(0),fCenterPhosphateY(0),fCenterPhosphateZ(0),
49 fpNext(0)
50 {
51  for ( int i = 0; i < 33; ++i )
52  {
53  fDistanceTab[i] = 0.; //initialization
54  }
55 }
56 
57 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
58 
59 Barycenter::Barycenter(int bNum,double x,double y,double z,
60  double Bx,double By, double Bz, //Base barycenter coordinates
61  double Sx,double Sy, double Sz, //Sugar barycenter coordinates
62  double Px,double Py, double Pz)//Phosphate barycenter coordinates
63 {
64  fBaryNum=bNum;
65  fRadius=0;
66  fCenterX=x;
67  fCenterY=y;
68  fCenterZ=z;
69  for ( int i = 0; i < 33; ++i )
70  {
71  fDistanceTab[i] = 0.; //initialization
72  }
73  fCenterBaseX=Bx;
74  fCenterBaseY=By;
75  fCenterBaseZ=Bz;
76  fCenterSugarX=Sx;
77  fCenterSugarY=Sy;
78  fCenterSugarZ=Sz;
82  fpNext=0;
83 }
84 
85 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
86 
88 {
89  return fpNext;
90 }
91 
93 {
94  return fBaryNum;
95 }
96 
97 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
98 
99 void Barycenter::SetNext(Barycenter *barycenterNext)
100 {
101  fpNext=barycenterNext;
102 }
103 
104 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
105 
106 void Barycenter::SetDistance(int i, double dist)
107 {
108  fDistanceTab[i]=dist;
109 }
110 
111 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
112 
114 {
115  return fDistanceTab[i];
116 }
117 
118 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
119 
120 void Barycenter::SetRadius(double rds)
121 {
122  fRadius=rds;
123 }
124 
125 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
126 
128 {
129  return fRadius;
130 }
131 
double fCenterBaseX
&quot;X coordinate&quot; of this Base Barycenter
double fCenterPhosphateZ
&quot;Z coordinate&quot; of this Phosphate Barycenter
Molecule Class.
double fCenterPhosphateX
&quot;X coordinate&quot; of this Phosphate Barycenter
double fCenterPhosphateY
&quot;Y coordinate&quot; of this Phosphate Barycenter
double GetDistance(int i)
Get the distance between atom i and nucleotide barycenter.
void SetRadius(double)
Set the distance between the farther atom and nucleotide barycenter.
double fCenterY
&quot;Y coordinate&quot; of this nucelotide Barycenter
double fDistanceTab[33]
distance table [0..32] (11 hydrogens!)
double fCenterX
&quot;X coordinate&quot; of this nucelotide Barycenter
double fCenterSugarX
&quot;X coordinate&quot; of this Sugar Barycenter
int fBaryNum
Barycenter number.
tuple x
Definition: test.py:50
double fCenterSugarY
&quot;Y coordinate&quot; of this Sugar Barycenter
void SetDistance(int i, double)
Set the distance between atom i and nucleotide barycenter.
double fCenterBaseZ
&quot;Z coordinate&quot; of this Base Barycenter
Definition of the Barycenter class.
void SetNext(Barycenter *)
Set the next Barycenter.
double fCenterSugarZ
&quot;Z coordinate&quot; of this Sugar Barycenter
double GetRadius()
Get the distance between the farther atom and nucleotide barycenter.
Barycenter * GetNext()
Get the next Barycenter.
double fRadius
tuple z
Definition: test.py:28
double fCenterBaseY
&quot;Y coordinate&quot; of this Base Barycenter
Barycenter()
First constructor.
int GetID()
Get the first.
double fCenterZ
&quot;Z coordinate&quot; of this nucelotide Barycenter