Geant4 Cross Reference |
1 // 1 // 2 // ******************************************* 2 // ******************************************************************** 3 // * License and Disclaimer 3 // * License and Disclaimer * 4 // * 4 // * * 5 // * The Geant4 software is copyright of th 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/ 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. 9 // * include a list of copyright holders. * 10 // * 10 // * * 11 // * Neither the authors of this software syst 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing fin 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warran 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assum 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitatio 16 // * for the full disclaimer and the limitation of liability. * 17 // * 17 // * * 18 // * This code implementation is the result 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboratio 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distri 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you ag 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publicati 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Sof 23 // * acceptance of all terms of the Geant4 Software license. * 24 // ******************************************* 24 // ******************************************************************** 25 // 25 // 26 // This example is provided by the Geant4-DNA 26 // This example is provided by the Geant4-DNA collaboration 27 // Any report or published results obtained us 27 // Any report or published results obtained using the Geant4-DNA software 28 // shall cite the following Geant4-DNA collabo 28 // shall cite the following Geant4-DNA collaboration publication: 29 // Med. Phys. 37 (2010) 4692-4708 29 // Med. Phys. 37 (2010) 4692-4708 30 // Delage et al. PDB4DNA: implementation of DN 30 // Delage et al. PDB4DNA: implementation of DNA geometry from the Protein Data 31 // Bank (PDB) description for 31 // Bank (PDB) description for Geant4-DNA Monte-Carlo 32 // simulations (submitted to 32 // simulations (submitted to Comput. Phys. Commun.) 33 // The Geant4-DNA web site is available at htt 33 // The Geant4-DNA web site is available at http://geant4-dna.org 34 // 34 // 35 // 35 // 36 /// \file PDBbarycenter.cc 36 /// \file PDBbarycenter.cc 37 /// \brief Implementation of the PDBbarycenter 37 /// \brief Implementation of the PDBbarycenter class 38 38 39 #include "PDBbarycenter.hh" 39 #include "PDBbarycenter.hh" 40 40 41 //....oooOO0OOooo........oooOO0OOooo........oo 41 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 42 42 43 Barycenter::Barycenter() << 43 Barycenter::Barycenter():fBaryNum(0),fRadius(0), 44 : fBaryNum(0), << 44 fCenterX(0),fCenterY(0),fCenterZ(0), 45 fRadius(0), << 45 fCenterBaseX(0),fCenterBaseY(0),fCenterBaseZ(0), 46 fCenterX(0), << 46 fCenterSugarX(0),fCenterSugarY(0),fCenterSugarZ(0), 47 fCenterY(0), << 47 fCenterPhosphateX(0),fCenterPhosphateY(0),fCenterPhosphateZ(0), 48 fCenterZ(0), << 48 fpNext(0) 49 fCenterBaseX(0), << 49 { 50 fCenterBaseY(0), << 50 for ( int i = 0; i < 33; ++i ) 51 fCenterBaseZ(0), << 51 { 52 fCenterSugarX(0), << 52 fDistanceTab[i] = 0.; //initialization 53 fCenterSugarY(0), << 54 fCenterSugarZ(0), << 55 fCenterPhosphateX(0), << 56 fCenterPhosphateY(0), << 57 fCenterPhosphateZ(0), << 58 fpNext(0) << 59 { << 60 for (int i = 0; i < 33; ++i) { << 61 fDistanceTab[i] = 0.; // initialization << 62 } 53 } 63 } 54 } 64 55 65 //....oooOO0OOooo........oooOO0OOooo........oo 56 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 66 57 67 Barycenter::Barycenter(int bNum, double x, dou << 58 Barycenter::Barycenter(int bNum,double x,double y,double z, 68 double Bz, // Base bar << 59 double Bx,double By, double Bz, //Base barycenter coordinates 69 double Sx, double Sy, d << 60 double Sx,double Sy, double Sz, //Sugar barycenter coordinates 70 double Px, double Py, d << 61 double Px,double Py, double Pz)//Phosphate barycenter coordinates 71 { << 62 { 72 fBaryNum = bNum; //!< Barycenter number << 63 fBaryNum=bNum;//!<Barycenter number 73 fRadius = 0; << 64 fRadius=0; 74 fCenterX = x; << 65 fCenterX=x; 75 fCenterY = y; << 66 fCenterY=y; 76 fCenterZ = z; << 67 fCenterZ=z; 77 for (int i = 0; i < 33; ++i) { << 68 for ( int i = 0; i < 33; ++i ) 78 fDistanceTab[i] = 0.; // initialization << 69 { >> 70 fDistanceTab[i] = 0.; //initialization 79 } 71 } 80 fCenterBaseX = Bx; //!< "X coordinate" of t << 72 fCenterBaseX=Bx; //!< "X coordinate" of this Base Barycenter 81 fCenterBaseY = By; //!< "Y coordinate" of t << 73 fCenterBaseY=By; //!< "Y coordinate" of this Base Barycenter 82 fCenterBaseZ = Bz; //!< "Z coordinate" of t << 74 fCenterBaseZ=Bz; //!< "Z coordinate" of this Base Barycenter 83 fCenterSugarX = Sx; //!< "X coordinate" of << 75 fCenterSugarX=Sx; //!< "X coordinate" of this Sugar Barycenter 84 fCenterSugarY = Sy; //!< "Y coordinate" of << 76 fCenterSugarY=Sy; //!< "Y coordinate" of this Sugar Barycenter 85 fCenterSugarZ = Sz; //!< "Z coordinate" of << 77 fCenterSugarZ=Sz; //!< "Z coordinate" of this Sugar Barycenter 86 fCenterPhosphateX = Px; //!< "X coordinate" << 78 fCenterPhosphateX=Px; //!< "X coordinate" of this Phosphate Barycenter 87 fCenterPhosphateY = Py; //!< "Y coordinate" << 79 fCenterPhosphateY=Py; //!< "Y coordinate" of this Phosphate Barycenter 88 fCenterPhosphateZ = Pz; //!< "Z coordinate" << 80 fCenterPhosphateZ=Pz; //!< "Z coordinate" of this Phosphate Barycenter 89 fpNext = 0; << 81 fpNext=0; 90 } 82 } 91 83 92 //....oooOO0OOooo........oooOO0OOooo........oo 84 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 93 85 94 Barycenter* Barycenter::GetNext() << 86 Barycenter *Barycenter::GetNext() 95 { 87 { 96 return fpNext; 88 return fpNext; 97 } 89 } 98 90 99 int Barycenter::GetID() 91 int Barycenter::GetID() 100 { 92 { 101 return fBaryNum; 93 return fBaryNum; 102 } 94 } 103 95 104 //....oooOO0OOooo........oooOO0OOooo........oo 96 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 105 97 106 void Barycenter::SetNext(Barycenter* barycente << 98 void Barycenter::SetNext(Barycenter *barycenterNext) 107 { 99 { 108 fpNext = barycenterNext; << 100 fpNext=barycenterNext; 109 } 101 } 110 102 111 //....oooOO0OOooo........oooOO0OOooo........oo 103 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 112 104 113 void Barycenter::SetDistance(int i, double dis 105 void Barycenter::SetDistance(int i, double dist) 114 { 106 { 115 fDistanceTab[i] = dist; << 107 fDistanceTab[i]=dist; 116 } 108 } 117 109 118 //....oooOO0OOooo........oooOO0OOooo........oo 110 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 119 111 120 double Barycenter::GetDistance(int i) 112 double Barycenter::GetDistance(int i) 121 { 113 { 122 return fDistanceTab[i]; 114 return fDistanceTab[i]; 123 } 115 } 124 116 125 //....oooOO0OOooo........oooOO0OOooo........oo 117 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 126 118 127 void Barycenter::SetRadius(double rds) 119 void Barycenter::SetRadius(double rds) 128 { 120 { 129 fRadius = rds; << 121 fRadius=rds; 130 } 122 } 131 123 132 //....oooOO0OOooo........oooOO0OOooo........oo 124 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 133 125 134 double Barycenter::GetRadius() 126 double Barycenter::GetRadius() 135 { 127 { 136 return fRadius; 128 return fRadius; 137 } 129 } >> 130 138 131