Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/examples/advanced/dna/dsbandrepair/analysis/dnadamage/include/ScanDamage.hh

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /examples/advanced/dna/dsbandrepair/analysis/dnadamage/include/ScanDamage.hh (Version 11.3.0) and /examples/advanced/dna/dsbandrepair/analysis/dnadamage/include/ScanDamage.hh (Version 10.6.p3)


  1 //                                                  1 
  2 // *******************************************    
  3 // * License and Disclaimer                       
  4 // *                                              
  5 // * The  Geant4 software  is  copyright of th    
  6 // * the Geant4 Collaboration.  It is provided    
  7 // * conditions of the Geant4 Software License    
  8 // * LICENSE and available at  http://cern.ch/    
  9 // * include a list of copyright holders.         
 10 // *                                              
 11 // * Neither the authors of this software syst    
 12 // * institutes,nor the agencies providing fin    
 13 // * work  make  any representation or  warran    
 14 // * regarding  this  software system or assum    
 15 // * use.  Please see the license in the file     
 16 // * for the full disclaimer and the limitatio    
 17 // *                                              
 18 // * This  code  implementation is the result     
 19 // * technical work of the GEANT4 collaboratio    
 20 // * By using,  copying,  modifying or  distri    
 21 // * any work based  on the software)  you  ag    
 22 // * use  in  resulting  scientific  publicati    
 23 // * acceptance of all terms of the Geant4 Sof    
 24 // *******************************************    
 25 //                                                
 26 //                                                
 27 //                                                
 28 /// \file ScanDamage.hh                           
 29 /// \brief Definition of the ScanDamage class     
 30                                                   
 31 #ifndef ScanDamage_h                              
 32 #define ScanDamage_h                              
 33                                                   
 34 #include <map>                                    
 35 #include <vector>                                 
 36 #include <string>                                 
 37 #include <tuple>                                  
 38 #include <set>                                    
 39 #include "Damage.hh"                              
 40 #include <filesystem>                             
 41 namespace fs = std::filesystem;                   
 42 class TFile;                                      
 43 using ullint = unsigned long long int;            
 44 //....oooOO0OOooo........oooOO0OOooo........oo    
 45                                                   
 46 struct VoxelData                                  
 47 {                                                 
 48     VoxelData(int chromo, int domain, ullint f    
 49     {                                             
 50         fChromosome = chromo;                     
 51         fDomain = domain;                         
 52         fFirstBpCopyNum = firstBpCN;              
 53     }                                             
 54                                                   
 55     ~VoxelData() {}                               
 56                                                   
 57     int fChromosome{0};                           
 58     int fDomain{0};                               
 59     ullint fFirstBpCopyNum{0};                    
 60 };                                                
 61                                                   
 62 //....oooOO0OOooo........oooOO0OOooo........oo    
 63                                                   
 64 typedef std::vector<std::vector<ullint> > Tabl    
 65                                                   
 66 //....oooOO0OOooo........oooOO0OOooo........oo    
 67                                                   
 68 class Trier {                                     
 69 public:                                           
 70     bool operator()(const std::vector<ullint>&    
 71     {                                             
 72         bool bb = false;                          
 73         if(a[0] < b[0]) bb = true;                
 74         return bb;                                
 75     }                                             
 76 };                                                
 77                                                   
 78 //....oooOO0OOooo........oooOO0OOooo........oo    
 79                                                   
 80 class ScanDamage                                  
 81 {                                                 
 82 public:                                           
 83     ScanDamage();                                 
 84     ~ScanDamage() = default;                      
 85     std::map<unsigned int,std::map<unsigned in    
 86     void SetThresholdEnergy(double e) {fThresh    
 87     void SetProbabilityForIndirectSBSelection(    
 88     double GetThresholdEnergy() {return fThres    
 89     double GetProbabilityForIndirectSBSelectio    
 90     std::map<int, Table> GetMergedSBData() {re    
 91     double GetEdepSumInNucleus() {return fEdep    
 92     double GetTotalNbBpPlacedInGeo() {return f    
 93     double GetTotalNbHistonePlacedInGeo() {ret    
 94     double GetNucleusVolume() {return fNucleus    
 95     double GetNucleusMassDensity() {return fNu    
 96     double GetNucleusMass() {return fNucleusMa    
 97     std::map<int,ullint> GetChromosomeBpSizesM    
 98     void SkipScanningIndirectDamage() {fSkipSc    
 99     bool SkippedScanningIndirectDamage() {retu    
100 private:                                          
101     void ScanDamageFromPhys();                    
102     void ScanDamageFromChem();                    
103     void RetrieveVoxelBp();                       
104     void FillVoxelData();                         
105     void AnaPhysRootFile(const std::string fil    
106     void AnaChemRootFile(fs::directory_entry e    
107     void AnaPhysRootTree1(TFile*);                
108     void AnaPhysRootTree2(TFile*);                
109     void SortPhysTableWithSelection();            
110     void SortChemTableWithSelection();            
111     void ReadCellandVoxelDefFilePaths();          
112     void MergeDamageFromPhysChem();               
113     std::tuple<unsigned int, unsigned int> Get    
114     double fThresholdEnergy{17.5};//eV            
115     std::string fCellDefFilePath{""};             
116     std::set<std::string> fVoxelDefFilesList;     
117     std::map<std::string, int> fBpPerVoxel;       
118     std::vector<VoxelData> fVoxels;               
119     std::map<int, Table> fphysTables, fphysSle    
120     std::map<unsigned int,std::map<unsigned in    
121     double fEdepSumInNucleus{0}; //eV             
122     int corruptedFiles = 0;                       
123     double fTotalNbBpPlacedInGeo{0};              
124     double fTotalNbHistonePlacedInGeo{0};         
125     double fNucleusVolume{0};                     
126     double fNucleusMassDensity{0};                
127     double fNucleusMass{0};                       
128     double fProbabilityForIndirectSB{0.4};        
129     std::map<int,ullint> fChromosomeBpMap; //S    
130     bool fSkipScanningIndirectDamage{false};      
131 };                                                
132                                                   
133 //....oooOO0OOooo........oooOO0OOooo........oo    
134                                                   
135 #endif                                            
136                                                   
137                                                   
138