Geant4 Cross Reference |
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 // 27 // 28 /// \file AnalysisHandler.hh 29 /// \brief Definition of the AnalysisHandler class 30 31 #ifndef AnalysisHandler_h 32 #define AnalysisHandler_h 1 33 34 #include <memory> 35 #include "ScanDamage.hh" 36 #include "TLKModel.hh" 37 #include "LEMIVModel.hh" 38 #include "BelovModel.hh" 39 40 class AnalysisHandler 41 { 42 public: 43 AnalysisHandler(/* args */); 44 ~AnalysisHandler() = default; 45 void SetThresholdEnergy(double e); 46 void GetAllDamageAndScanSB(); 47 void GiveMeSBs(); 48 void ApplyDNAModel(const std::string dnamodel); 49 void SetBpForDSB(unsigned int pVal); 50 void SetParametersForTLKModel(double pLambda1 = 3.0,double pLambda2=0.03, 51 double pBeta1=0.01, double pBeta2=0.06,double pEta=0.002); 52 void SetParametersForLEMIVModel(double pLoopLength=2e6,double pFunrej=0, 53 double pTfast=0.24,double pTslow=2.81); 54 void CreateSDD(std::string filename); 55 private: 56 ///void GetDoseFromEdep(); 57 std::unique_ptr<ScanDamage> fScanDamage; 58 std::unique_ptr<TLKModel> fTLKModel; 59 std::unique_ptr<LEMIVModel> fLEMIVModel; 60 std::unique_ptr<BelovModel> fBelovModel; 61 std::vector<Damage> fAllDamage; 62 63 std::pair<float,float> fNsDSBandError = {0,0}; 64 std::pair<float,float> fNcDSBandError = {0,0}; 65 std::pair<float,float> fNDSBandError = {0,0}; 66 std::pair<float,float> fNDSBdirandError = {0,0}; // DSB has contribution from at least one direct damage 67 std::pair<float,float> fNDSBIndandError = {0,0}; // DSB has contribution from at least one indirect damage 68 std::pair<float,float> fNDSBdirIandError = {0,0}; // DSB has contribution from both direct and indirect damage 69 std::pair<float,float> fNSSBandError = {0,0}; 70 std::pair<float,float> fNSBandError = {0,0}; 71 std::pair<float,float> fNdirSBandError = {0,0}; 72 std::pair<float,float> fNindirSBandError = {0,0}; 73 74 bool fIsSBScanned = false; 75 // num of bp to consider a DSB for the MakeCluster function 76 // default value is 10 77 unsigned int fBpForDSB{10}; 78 // store dose deposited in nucleus cell 79 double fDose{0}; 80 //TLK: Compute a SF Curve 81 double pTLKDoseMax{0}, pTLKDeltaDose{0}; 82 //LEMIV: compute fraction of unrejoined DSB up to pLEMIVTimeMax (h) and pLEMIVDeltaTime steps 83 double pLEMIVtimeMax{0}, pLEMIVdeltaTime{0}; 84 85 double fNBp{0};// number of base pairs 86 double fEdepInNucleus{0}; // eV 87 double fNucleusVolume{0}; 88 89 std::map<int,unsigned long long int> fChromosomeBpMap; //Store number of Bp in each Chomosomes; 90 }; 91 92 #endif 93