From 1e0d599ed803abb41f80e9341696d4a2b2220dde Mon Sep 17 00:00:00 2001 From: lperisse Date: Sun, 22 Feb 2026 14:03:17 +0100 Subject: [PATCH 01/15] clean branch for LEAF with (almost) minimal working loops and PDF + macros --- README.md | 106 +- example/analysis | Bin 0 -> 564896 bytes example/analysis.cpp | 571 +- example/analysis.h | 32 +- example/test_example.sh | 28 +- inputs/timePDF_DRnew_Large.root | Bin 61210 -> 0 bytes inputs/timePDF_Directionality.root | Bin 59086 -> 0 bytes inputs/timePDF_Directionality_DRnew.root | Bin 55846 -> 0 bytes inputs/timePDF_HE.root | Bin 66766 -> 0 bytes leaf/DataModel-lite/HitCollection.h | 4 +- leaf/GNUmakefile | 29 - leaf/LEAF.cc | 660 +- leaf/LEAF.hh | 52 +- leaf/LeafConfig.cc | 2 +- leaf/LeafSplines.cc | 95 +- leaf/LeafSplines.hh | 8 +- leaf/Likelihoods.cc | 83 +- libWCSIM/.gitignore | 4 + libWCSIM/include/#WCSimPmtInfo.hh# | 52 - libWCSIM/include/GdCaptureGammas.hh | 51 - libWCSIM/include/GdNeutronHPCapture.hh | 48 - libWCSIM/include/GdNeutronHPCaptureFS.hh | 74 - libWCSIM/include/TJNuBeamFlux.hh | 107 - libWCSIM/include/TNRooTrackerVtx.hh | 195 - libWCSIM/include/WCSimDarkRateMessenger.hh | 48 - libWCSIM/include/WCSimDetectorConstruction.hh | 699 -- libWCSIM/include/WCSimDetectorMessenger.hh | 88 - libWCSIM/include/WCSimEnumerations.hh | 43 - libWCSIM/include/WCSimEventAction.hh | 86 - .../include/WCSimMultiPMTParameterisation.hh | 75 - libWCSIM/include/WCSimPMTObject.hh | 427 - libWCSIM/include/WCSimPhysicsListFactory.hh | 45 - .../WCSimPhysicsListFactoryMessenger.hh | 30 - libWCSIM/include/WCSimPmtInfo.hh | 50 - .../include/WCSimPrimaryGeneratorAction.hh | 167 - .../include/WCSimPrimaryGeneratorMessenger.hh | 40 - libWCSIM/include/WCSimRandomMessenger.hh | 28 - libWCSIM/include/WCSimRandomParameters.hh | 76 - libWCSIM/include/WCSimRootEvent.hh | 485 - libWCSIM/include/WCSimRootGeom.hh | 132 - libWCSIM/include/WCSimRootLinkDef.hh | 29 - libWCSIM/include/WCSimRootOptions.hh | 219 - libWCSIM/include/WCSimRunAction.hh | 232 - libWCSIM/include/WCSimRunActionMessenger.hh | 35 - libWCSIM/include/WCSimStackingAction.hh | 27 - libWCSIM/include/WCSimSteppingAction.hh | 49 - libWCSIM/include/WCSimTrackInformation.hh | 55 - libWCSIM/include/WCSimTrackingAction.hh | 38 - libWCSIM/include/WCSimTrackingMessenger.hh | 28 - libWCSIM/include/WCSimTrajectory.hh | 137 - libWCSIM/include/WCSimTuningMessenger.hh | 47 - libWCSIM/include/WCSimTuningParameters.hh | 90 - libWCSIM/include/WCSimVisManager.hh | 27 - libWCSIM/include/WCSimWCAddDarkNoise.hh | 72 - libWCSIM/include/WCSimWCDAQMessenger.hh | 78 - libWCSIM/include/WCSimWCDigi.hh | 232 - libWCSIM/include/WCSimWCDigitizer.hh | 112 - libWCSIM/include/WCSimWCHit.hh | 188 - libWCSIM/include/WCSimWCPMT.hh | 54 - libWCSIM/include/WCSimWCSD.hh | 34 - libWCSIM/include/WCSimWCTrigger.hh | 362 - libWCSIM/include/evNtuple.h | 106 - libWCSIM/include/jhfNtuple.h | 89 - libWCSIM/libWCSimRoot.so | Bin 1723709 -> 0 bytes .../src/#WCSimConstructGeometryTables.cc# | 494 - libWCSIM/src/#WCSimWCDigitizer.cc# | 384 - libWCSIM/src/GdCaptureGammas.cc | 263 - libWCSIM/src/GdNeutronHPCapture.cc | 191 - libWCSIM/src/GdNeutronHPCaptureFS.cc | 213 - libWCSIM/src/TJNuBeamFlux.cc | 111 - libWCSIM/src/TNRooTrackerVtx.cc | 368 - libWCSIM/src/WCSimConstructCylinder.cc | 1541 --- libWCSIM/src/WCSimConstructEggShapedHyperK.cc | 723 -- libWCSIM/src/WCSimConstructGeometryTables.cc | 491 - libWCSIM/src/WCSimConstructMaterials.cc | 1264 --- libWCSIM/src/WCSimConstructMultiPMT.cc | 885 -- libWCSIM/src/WCSimConstructPMT.cc | 493 - libWCSIM/src/WCSimDarkRateMessenger.cc | 193 - libWCSIM/src/WCSimDetectorConfigs.cc | 1138 --- libWCSIM/src/WCSimDetectorConstruction.cc | 435 - libWCSIM/src/WCSimDetectorMessenger.cc | 701 -- libWCSIM/src/WCSimEnumerations.cc | 66 - libWCSIM/src/WCSimEventAction.cc | 2122 ---- libWCSIM/src/WCSimMultiPMTParameterisation.cc | 94 - libWCSIM/src/WCSimPMTObject.cc | 3073 ------ libWCSIM/src/WCSimPMTQE.cc | 97 - libWCSIM/src/WCSimPhysicsListFactory.cc | 158 - .../src/WCSimPhysicsListFactoryMessenger.cc | 49 - libWCSIM/src/WCSimPmtInfo.cc | 41 - libWCSIM/src/WCSimPrimaryGeneratorAction.cc | 613 -- .../src/WCSimPrimaryGeneratorMessenger.cc | 150 - libWCSIM/src/WCSimRandomMessenger.cc | 44 - libWCSIM/src/WCSimRootDict.cc | 8869 ----------------- libWCSIM/src/WCSimRootDict.cc~ | 8556 ---------------- libWCSIM/src/WCSimRootDict.h | 87 - libWCSIM/src/WCSimRootEvent.cc | 581 -- libWCSIM/src/WCSimRootGeom.cc | 122 - libWCSIM/src/WCSimRootOptions.cc | 143 - libWCSIM/src/WCSimRunAction.cc | 782 -- libWCSIM/src/WCSimRunActionMessenger.cc | 65 - libWCSIM/src/WCSimStackingAction.cc | 74 - libWCSIM/src/WCSimSteppingAction.cc | 253 - libWCSIM/src/WCSimTrackInformation.cc | 14 - libWCSIM/src/WCSimTrackingAction.cc | 183 - libWCSIM/src/WCSimTrackingMessenger.cc | 42 - libWCSIM/src/WCSimTrajectory.cc | 203 - libWCSIM/src/WCSimTuningMessenger.cc | 222 - libWCSIM/src/WCSimTuningParameters.cc | 49 - libWCSIM/src/WCSimVisManager.cc | 151 - libWCSIM/src/WCSimWCAddDarkNoise.cc | 373 - libWCSIM/src/WCSimWCDAQMessenger.cc | 349 - libWCSIM/src/WCSimWCDigi.cc | 111 - libWCSIM/src/WCSimWCDigitizer.cc | 397 - libWCSIM/src/WCSimWCHit.cc | 182 - libWCSIM/src/WCSimWCPMT.cc | 248 - libWCSIM/src/WCSimWCSD.cc | 299 - libWCSIM/src/WCSimWCTrigger.cc | 565 -- libWCSIM/src/findClosestPacking.py | 123 - macros/AnalyzeWSHierarchy.cpp | 1841 +--- macros/FitVertexLE.c | 2233 ----- macros/LEAFOutputAnalysisHybrid_leafclass.c | 1433 --- macros/LEAFOutputAnalysisHybrid_master.c | 2289 ----- macros/Makefile | 14 +- macros/ProducePDF.cpp | 1081 +- macros/analyze_WCSim_output.sh | 2 - shell/Launcher.sh | 21 - shell/Launcher_analyzeWCSim.sh | 16 - shell/Merger_analyzeWCSim.sh | 9 - shell/generateShell.c | 33 - shell/generateShell_analyzeWCSim.c | 29 - 130 files changed, 1084 insertions(+), 54415 deletions(-) create mode 100755 example/analysis delete mode 100644 inputs/timePDF_DRnew_Large.root delete mode 100644 inputs/timePDF_Directionality.root delete mode 100644 inputs/timePDF_Directionality_DRnew.root delete mode 100644 inputs/timePDF_HE.root create mode 100644 libWCSIM/.gitignore delete mode 100644 libWCSIM/include/#WCSimPmtInfo.hh# delete mode 100755 libWCSIM/include/GdCaptureGammas.hh delete mode 100755 libWCSIM/include/GdNeutronHPCapture.hh delete mode 100644 libWCSIM/include/GdNeutronHPCaptureFS.hh delete mode 100644 libWCSIM/include/TJNuBeamFlux.hh delete mode 100644 libWCSIM/include/TNRooTrackerVtx.hh delete mode 100644 libWCSIM/include/WCSimDarkRateMessenger.hh delete mode 100644 libWCSIM/include/WCSimDetectorConstruction.hh delete mode 100644 libWCSIM/include/WCSimDetectorMessenger.hh delete mode 100644 libWCSIM/include/WCSimEnumerations.hh delete mode 100644 libWCSIM/include/WCSimEventAction.hh delete mode 100644 libWCSIM/include/WCSimMultiPMTParameterisation.hh delete mode 100644 libWCSIM/include/WCSimPMTObject.hh delete mode 100644 libWCSIM/include/WCSimPhysicsListFactory.hh delete mode 100644 libWCSIM/include/WCSimPhysicsListFactoryMessenger.hh delete mode 100644 libWCSIM/include/WCSimPmtInfo.hh delete mode 100644 libWCSIM/include/WCSimPrimaryGeneratorAction.hh delete mode 100644 libWCSIM/include/WCSimPrimaryGeneratorMessenger.hh delete mode 100644 libWCSIM/include/WCSimRandomMessenger.hh delete mode 100644 libWCSIM/include/WCSimRandomParameters.hh delete mode 100644 libWCSIM/include/WCSimRootEvent.hh delete mode 100644 libWCSIM/include/WCSimRootGeom.hh delete mode 100644 libWCSIM/include/WCSimRootLinkDef.hh delete mode 100644 libWCSIM/include/WCSimRootOptions.hh delete mode 100644 libWCSIM/include/WCSimRunAction.hh delete mode 100644 libWCSIM/include/WCSimRunActionMessenger.hh delete mode 100644 libWCSIM/include/WCSimStackingAction.hh delete mode 100644 libWCSIM/include/WCSimSteppingAction.hh delete mode 100644 libWCSIM/include/WCSimTrackInformation.hh delete mode 100644 libWCSIM/include/WCSimTrackingAction.hh delete mode 100644 libWCSIM/include/WCSimTrackingMessenger.hh delete mode 100644 libWCSIM/include/WCSimTrajectory.hh delete mode 100644 libWCSIM/include/WCSimTuningMessenger.hh delete mode 100644 libWCSIM/include/WCSimTuningParameters.hh delete mode 100644 libWCSIM/include/WCSimVisManager.hh delete mode 100644 libWCSIM/include/WCSimWCAddDarkNoise.hh delete mode 100644 libWCSIM/include/WCSimWCDAQMessenger.hh delete mode 100644 libWCSIM/include/WCSimWCDigi.hh delete mode 100644 libWCSIM/include/WCSimWCDigitizer.hh delete mode 100644 libWCSIM/include/WCSimWCHit.hh delete mode 100644 libWCSIM/include/WCSimWCPMT.hh delete mode 100644 libWCSIM/include/WCSimWCSD.hh delete mode 100644 libWCSIM/include/WCSimWCTrigger.hh delete mode 100644 libWCSIM/include/evNtuple.h delete mode 100644 libWCSIM/include/jhfNtuple.h delete mode 100755 libWCSIM/libWCSimRoot.so delete mode 100644 libWCSIM/src/#WCSimConstructGeometryTables.cc# delete mode 100644 libWCSIM/src/#WCSimWCDigitizer.cc# delete mode 100755 libWCSIM/src/GdCaptureGammas.cc delete mode 100755 libWCSIM/src/GdNeutronHPCapture.cc delete mode 100644 libWCSIM/src/GdNeutronHPCaptureFS.cc delete mode 100644 libWCSIM/src/TJNuBeamFlux.cc delete mode 100644 libWCSIM/src/TNRooTrackerVtx.cc delete mode 100644 libWCSIM/src/WCSimConstructCylinder.cc delete mode 100644 libWCSIM/src/WCSimConstructEggShapedHyperK.cc delete mode 100644 libWCSIM/src/WCSimConstructGeometryTables.cc delete mode 100644 libWCSIM/src/WCSimConstructMaterials.cc delete mode 100644 libWCSIM/src/WCSimConstructMultiPMT.cc delete mode 100755 libWCSIM/src/WCSimConstructPMT.cc delete mode 100644 libWCSIM/src/WCSimDarkRateMessenger.cc delete mode 100644 libWCSIM/src/WCSimDetectorConfigs.cc delete mode 100644 libWCSIM/src/WCSimDetectorConstruction.cc delete mode 100644 libWCSIM/src/WCSimDetectorMessenger.cc delete mode 100644 libWCSIM/src/WCSimEnumerations.cc delete mode 100644 libWCSIM/src/WCSimEventAction.cc delete mode 100644 libWCSIM/src/WCSimMultiPMTParameterisation.cc delete mode 100644 libWCSIM/src/WCSimPMTObject.cc delete mode 100644 libWCSIM/src/WCSimPMTQE.cc delete mode 100644 libWCSIM/src/WCSimPhysicsListFactory.cc delete mode 100644 libWCSIM/src/WCSimPhysicsListFactoryMessenger.cc delete mode 100644 libWCSIM/src/WCSimPmtInfo.cc delete mode 100644 libWCSIM/src/WCSimPrimaryGeneratorAction.cc delete mode 100644 libWCSIM/src/WCSimPrimaryGeneratorMessenger.cc delete mode 100644 libWCSIM/src/WCSimRandomMessenger.cc delete mode 100644 libWCSIM/src/WCSimRootDict.cc delete mode 100644 libWCSIM/src/WCSimRootDict.cc~ delete mode 100644 libWCSIM/src/WCSimRootDict.h delete mode 100644 libWCSIM/src/WCSimRootEvent.cc delete mode 100644 libWCSIM/src/WCSimRootGeom.cc delete mode 100644 libWCSIM/src/WCSimRootOptions.cc delete mode 100644 libWCSIM/src/WCSimRunAction.cc delete mode 100644 libWCSIM/src/WCSimRunActionMessenger.cc delete mode 100644 libWCSIM/src/WCSimStackingAction.cc delete mode 100644 libWCSIM/src/WCSimSteppingAction.cc delete mode 100644 libWCSIM/src/WCSimTrackInformation.cc delete mode 100644 libWCSIM/src/WCSimTrackingAction.cc delete mode 100644 libWCSIM/src/WCSimTrackingMessenger.cc delete mode 100644 libWCSIM/src/WCSimTrajectory.cc delete mode 100644 libWCSIM/src/WCSimTuningMessenger.cc delete mode 100644 libWCSIM/src/WCSimTuningParameters.cc delete mode 100644 libWCSIM/src/WCSimVisManager.cc delete mode 100644 libWCSIM/src/WCSimWCAddDarkNoise.cc delete mode 100644 libWCSIM/src/WCSimWCDAQMessenger.cc delete mode 100644 libWCSIM/src/WCSimWCDigi.cc delete mode 100644 libWCSIM/src/WCSimWCDigitizer.cc delete mode 100644 libWCSIM/src/WCSimWCHit.cc delete mode 100644 libWCSIM/src/WCSimWCPMT.cc delete mode 100644 libWCSIM/src/WCSimWCSD.cc delete mode 100644 libWCSIM/src/WCSimWCTrigger.cc delete mode 100644 libWCSIM/src/findClosestPacking.py delete mode 100644 macros/FitVertexLE.c delete mode 100644 macros/LEAFOutputAnalysisHybrid_leafclass.c delete mode 100755 macros/LEAFOutputAnalysisHybrid_master.c delete mode 100755 macros/analyze_WCSim_output.sh delete mode 100755 shell/Launcher.sh delete mode 100755 shell/Launcher_analyzeWCSim.sh delete mode 100755 shell/Merger_analyzeWCSim.sh delete mode 100644 shell/generateShell.c delete mode 100644 shell/generateShell_analyzeWCSim.c diff --git a/README.md b/README.md index 0355e3a..512348d 100644 --- a/README.md +++ b/README.md @@ -1,66 +1,86 @@ -# LEAF -Low Energy Algoritm Framework +# :seedling: LEAF :seedling: + +**L**ow **E**nergy **A**lgorithm **F**ramework + + +# DESCRIPTION This algorithm is an alternative and simple LE fitter than can be used for HyperK and SuperK. ~~~~~~~~~~~~~~~~~~~~~~~~~ 2020/02/09: LEAF was convert as a C++ class and can be included in your code. +~~~~~~~~~~~~~~~~~~~~~~~~~ -New compilation method: - source RunAtStart.sh - ./SetupDataModel.sh - cd leaf/ - make clean; make - -In order to use the class in your code look at example/ -~~~~~~~~~~~~~~~~~~~~~~~~~ +# DOWNLOAD AND PRE-REQUISITES + +To download this repository use : + +``` +git clone --single-branch --branch develop_lite https://github.com/hyperk/LEAF.git +``` + +Then make sure the following pre-requisites are installed. +1. ROOT v5r34 or superior (not tested for older versions, but might work). +2. WCSim version compatible with your ROOT version. +3. BONSAI installation (although LEAF can work without it). +4. HKAstroAnalysis class is private and can be downloaded by SK collaborators on sukap cluster (although LEAF can work without it). + + +# COMPATIBILITY -# Pre-requisite to use the code: -1. BONSAI installation. -2. ROOT v5r34 or superior (not tested for older versions, but might work). -3. HKAstroAnalysis class is private and can be downloaded by SK collaborators on sukap cluster. +Versions listed below have been tested so far. -# Compatibility tested so far: 1. WCSim-hybrid version: for geometries "HyperK", "HyperK_mPMT", "HyperK_HybridmPMT", "HyperK_HybridmPMT10PC" 2. In general, with all WCSim-hybrid geometries using whether BoxandLine20inchHQE or PMT3inchR14374 PMTs. 3. With official HK WCSim: Ask G. Pronost. -# How to: -1. Source RunAtStart.sh after you updated your ROOT directory. -2. Use the script ./SetupDataModel.sh to define the DataModel (if you have hk-AstroAnalysis, you should setup the global variable) -2. Enter the leaf/ repository and make clean;make -3. Enter the example repository and make clean;make -4. One example of how to run the code is set in example: test_example.sh -5. inputs PDF, input from WCSim can be downloaded on sukap cluster. Please untar them in the LEAF repository. -6. You can use shell scripts in shell/ in order to run the fitter or launch on batch. - -# Useful scripts in ./macros and ./shell -You can compile with GNUMake like following in ./macros: + +# INSTALLATION + +1. Go to libWCSIM/ repository and make softlinks to your WCSim installation. +``` +$ cd libWCSIM/ +$ ln -s /path/to/your/WCSim/include/ include +$ ln -s /path/to/your/WCSim/src/ src +$ ln -s /path/to/your/WCSim/lib/libWCSimRoot.so libWCSimRoot.so +$ ln -s /path/to/your/WCSim/lib/libWCSimRoot.so.1.12.xx libWCSimRoot.so.1.12.xx +``` +2. Go to the cloned LEAF repository and source the script RunAtStart.sh after making sure you are sourcing the proper ROOT directory. +``` +$ cd /path/to/the/cloned/repository/LEAF +$ source ./RunAtStart.sh +``` +3. Run the script ./SetupDataModel.sh to define the DataModel (if you have hk-AstroAnalysis, you should setup the global variable) +4. Enter the leaf/ repository and `make clean; make` +5. Enter the example/ repository and `make clean; make` +6. One example of how to run the code is set in example: test_example.sh + + +# TUNING FILES + +Tuning files are provided in the inputs/ repository (e.g. ./inputs/timePDF_Directionality_DRnew.root) and are made from 10 MeV electrons generated isotropically and uniformly in the tank. +Alternatively, you can generate your own PDFs by following the commands below. + +1. Go to macros/ repository and compile AnalyzeWSHierarchy and ProducePDF with GNUMake. ``` +$ cd ./macros +$ make AnalyzeWSHierarchy $ make ProducePDF ``` -## Making tuning file (e.g. ./inputs/timePDF_Directionality_DRnew.root) -1. Produce plots by AnalyzeWSHierarchy: reads out WCSim output and makes plots. -2. Produce time PDF (and angular PDF) by ProducePDF: uses plots made by AnalyzeWSHierarchy and generate PDFs for LEAF. +2. Produce plots using AnalyzeWSHierarchy which reads out WCSim output. Optionally, you can index a range of events to read with -s (start index) and -e (end index). ``` -$ AnalyzeWSHierarchy -f wcrim_hybrid.root -o plots.root -$ ProducePDF -f plots.root -o PDF.root +$ ./AnalyzeWSHierarchy -i wcrim.root -o plots.root -s 0 -e 1000 -v ``` -## Making generic plots -- LEAFOutputAnalysisHybrid_leafclass: read LEAF output to produce generic plots. If one uses the master branch for LEAF, please use LEAFOutputAnalysisHybrid_master +3. Produce time PDF and angular PDF using ProducePDF: uses plots made using AnalyzeWSHierarchy and generate PDFs for LEAF. +``` +$ ./ProducePDF -i plots.root -o PDF.root +``` -## Shell scripts for analysis of large files -You can refere shell scripts in ./shell in order to analyze many files. -They are not working with latest LEAF class and its examples. They are just example how to analyze. +Pathess to PDF files required as inputs for LEAF are hard-coded inside leaf/LeafSplines.cc, inside the LoadSplines() methods. +Make sure these pathes are consistant with the files you generate on your own. -- generateShellXX.c: this is a root macro which generates shell scripts to be submitted to sukap by LauncherXX.sh - - generateShell.c - - generateShell_analyzeWCSim.c -- LauncherXX.sh: this submits jobs to sukap - - Launcher.sh - - Launcher_analyzeWCSim.sh -- Merger_analyzeWCSim.sh: merge generated output by Launcher_analyzeWCSim.sh +wcsim1p12p16_UnifVtx_electron_HK_2MeV_1M \ No newline at end of file diff --git a/example/analysis b/example/analysis new file mode 100755 index 0000000000000000000000000000000000000000..df9c8d53341c7810349dab25cc04fc63ee74dbee GIT binary patch literal 564896 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 P{>IB?{s)~54$1x>J2cMz literal 0 HcmV?d00001 diff --git a/example/analysis.cpp b/example/analysis.cpp index b2db7ef..ccf8916 100644 --- a/example/analysis.cpp +++ b/example/analysis.cpp @@ -4,125 +4,18 @@ /** Date: Febuary 10th 2020 **/ /** Desc: Example application code for Benjamin's Low-E Fitter for Hyper-K **/ /*********************************************************************************/ + #include "analysis.h" +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///* Some Utility Functions +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -double calculateToWall(double R, double h, const std::vector& position, const std::vector& direction) -{ - double x = position[0], y = position[1], z = position[2]; - double dx = direction[0], dy = direction[1], dz = direction[2]; - - double A = dx * dx + dy * dy; - double B = 2 * (x * dx + y * dy); - double C = x * x + y * y - R * R; - - double discriminant = B * B - 4 * A * C; - - double t_cylinder = -1; - if (discriminant >= 0) { - double t1 = (-B - sqrt(discriminant)) / (2 * A); - double t2 = (-B + sqrt(discriminant)) / (2 * A); - - if (t1 > 0) t_cylinder = t1; - if (t2 > 0 && (t2 < t1 || t_cylinder < 0)) t_cylinder = t2; - } - - //Calculate the t values for intersection with top and bottom - double t_top = (h / 2 - z) / dz; - double t_bottom = (-h / 2 - z) / dz; - - //Check if the intersections are on the top or bottom - double x_top = x + t_top * dx; - double y_top = y + t_top * dy; - double x_bottom = x + t_bottom * dx; - double y_bottom = y + t_bottom * dy; - - if (x_top * x_top + y_top * y_top > R * R) t_top = -1; //Invalid if outside radius - if (x_bottom * x_bottom + y_bottom * y_bottom > R * R) t_bottom = -1; //Invalid if outside radius - - //Find the smallest positive t that corresponds to a valid intersection (side or top/bottom) - double t_wall = -1; - if (t_cylinder > 0) t_wall = t_cylinder; - if (t_top > 0 && (t_top < t_wall || t_wall < 0)) t_wall = t_top; - if (t_bottom > 0 && (t_bottom < t_wall || t_wall < 0)) t_wall = t_bottom; - - return t_wall; -} - -double calculateDWall(double R, double h, const std::vector& position) -{ - double x = position[0], y = position[1], z = position[2]; - double distanceToAxis = sqrt(x * x + y * y); - double dSide = fabs(distanceToAxis - R); - double dTop = fabs(z - h / 2); - double dBottom = fabs(z + h / 2); - return std::min({dSide, dTop, dBottom}); -} - -double angleBetween3DVectors(const std::vector& a, const std::vector& b) -{ - if(a.size() < 3 || b.size() < 3) - { - throw std::invalid_argument("Vectors must be of size at least 3."); - } - // double dotProduct = dot(a,b); - - // Magnitudes - double magA = std::sqrt(a[0]*a[0] + a[1]*a[1] + a[2]*a[2]); - double magB = std::sqrt(b[0]*b[0] + b[1]*b[1] + b[2]*b[2]); - - if (magA == 0 || magB == 0) { - throw std::invalid_argument("Zero-length vector."); - } - - // Cosine of the angle - double cosTheta = dot(a,b) / (magA * magB); - - // Clamp to [-1, 1] to avoid domain errors in acos - cosTheta = std::max(-1.0, std::min(1.0, cosTheta)); - - // Return angle in degrees - return std::acos(cosTheta) * 180.0 / M_PI; -} - -bool IsDarkRateHit(WCSimRootTrigger *fRootTrigger, WCSimRootCherenkovDigiHit *wcDigitHit) -{ - bool isDR = false; - std::vector rawhitphotonIDs = wcDigitHit->GetPhotonIds(); - if(rawhitphotonIDs.size() > 0) - { - double DR_Amount = 0; - for(unsigned int i = 0; i < rawhitphotonIDs.size(); i++) - { - TObject *RawHitTimess; - if (rawhitphotonIDs[i] >= 0 && rawhitphotonIDs[i] < (fRootTrigger->GetCherenkovHitTimes())->GetEntries()) - { - RawHitTimess = (fRootTrigger->GetCherenkovHitTimes())->At(rawhitphotonIDs[i]); - } - else - { - std::cerr << "Error: Invalid photon ID index: " << rawhitphotonIDs[i] << std::endl; - continue; - } - WCSimRootCherenkovHitTime *wcRawHitTimee = dynamic_cast(RawHitTimess); - // std::cout << "Photon type : " << wcRawHitTimee->GetPhotonCreatorProcessName() << std::endl; - if(wcRawHitTimee->GetPhotonCreatorProcessName() == "darkNoise") DR_Amount+=1.0; - } - DR_Amount = DR_Amount / rawhitphotonIDs.size(); - if(DR_Amount > 0.1) isDR = true; //? what threshold to consider a hit as darkRate ? - } - else - { - std::cout << "Error: No photon IDs found for this hit : " << wcDigitHit->GetTubeId() << std::endl; - } - return isDR; -} double GetResidualTime(const std::vector& origin, double originTime, WCSimRootCherenkovDigiHit *wcDigitHit, TimeDelta fTimeCorrection, double fLfTriggerTime) { - float fCVacuum = 3e8 * 1e2 / 1e9; // speed of light, in centimeter per ns. + float fCVacuum = 29.9792458; // speed of light, in centimeter per ns. float fNIndex = 1.373; // 1.385;//1.373;//refraction index of water double fLightSpeed = fCVacuum / fNIndex; double HitT = wcDigitHit->GetT() + fLfTriggerTime; @@ -135,164 +28,151 @@ double GetResidualTime(const std::vector& origin, double originTime, WCS return hitTime - tof - originTime; } -double GetDistanceToNeighbors(WCSimRootTrigger *fRootTrigger, WCSimRootCherenkovDigiHit *wcDigitHit, int N_Neighbors) +arguments FetchInput(int argc, char* argv[]) { - std::vector distances; - - WCSimRootPMT pmt; - pmt = fLeafGeometry->GetPMT(wcDigitHit->GetTubeId() - 1, false); - - std::vector PMTpos(3); - for (int j = 0; j < 3; j++) PMTpos[j] = pmt.GetPosition(j); - - //loop over each hit, check if it is not the same as the one we are looking at - for (int i = 0; i < fRootTrigger->GetNcherenkovdigihits(); i++) - { - WCSimRootCherenkovDigiHit *neighborHit = dynamic_cast((fRootTrigger->GetCherenkovDigiHits())->At(i)); - - if(wcDigitHit->GetTubeId() == neighborHit->GetTubeId()) - continue; - - WCSimRootPMT neighborPMT; - neighborPMT = fLeafGeometry->GetPMT(neighborHit->GetTubeId() - 1, false); - - std::vector neighborPMTpos(3); - for (int j = 0; j < 3; j++) neighborPMTpos[j] = neighborPMT.GetPosition(j); - - double distance = calculateDistance(PMTpos, neighborPMTpos); - distances.push_back(distance); - } + int c = -1; + arguments arglist; + + //Input in c the argument (-f etc...) and in optarg the next argument + //When the above test becomes -1, it means it fails to find a new argument + std::cout << std::endl; + while( (c = getopt(argc, argv, "i:o:d:h:s:e:v")) != -1 ) + { + switch(c) + { + //Input file name + case 'i': + arglist.inputFile = optarg; + std::cout << "Input WCSim file: " << arglist.inputFile << std::endl; + break; + + //Output file name + case 'o': + arglist.outputFile = optarg; + if(arglist.outputFile == NULL){sprintf(arglist.outputFile,"out.txt");} + std::cout << "Output root file: " << arglist.outputFile << std::endl; + break; + + //Darknoise + case 'd': + arglist.darkNoise = atof(optarg); + std::cout << "Dark noise frequency: " << arglist.darkNoise << " kHz" << std::endl; + break; + + //Darknoise hybrid + case 'h': + arglist.darkNoiseH = atof(optarg); + arglist.hybrid = true; + std::cout << "Dark noise frequency (hybrid geometry): " << arglist.darkNoiseH << " kHz" << std::endl; + break; + + //Starting event + case 's': + arglist.startEvent = atoi(optarg); + if(arglist.startEvent == NULL || arglist.startEvent < 0){arglist.startEvent = 0;} + std::cout << "Starting event #" << arglist.startEvent << std::endl; + break; + + //Ending event + case 'e': + arglist.endEvent = atoi(optarg); + if(arglist.endEvent == NULL){arglist.endEvent = 0;} + if(arglist.endEvent >= arglist.startEvent){std::cout << "Ending event #" << arglist.endEvent << std::endl;} + if(arglist.endEvent < arglist.startEvent){std::cout << "Ending event = last WCSim event" << std::endl;} + break; + + //Warning + case 'v': + arglist.verbose = true; + std::cout << "VERBOSE option on" << std::endl; + break; + } + } + std::cout << std::endl; - //* Sort the distances, keep the N_Neighbors closest ones - std::sort(distances.begin(), distances.end()); - // size = N_Neighbors; - if (distances.size() < (long unsigned int)N_Neighbors ) - { - std::cerr << "Not enough neighbors found!" << std::endl; - return -1; - } - double sum = 0; - for (int i = 0; i < N_Neighbors; i++) sum += distances[i]; - return sum / N_Neighbors; + return arglist; } -///* MAIN EXECUTION + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +/* MAIN EXECUTION */ +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// int main(int argc, char **argv) { - std::string sInputFile = ""; - std::string sOutputFile = ""; - - int iNeededArgc = 3; - double dDarkNoise = 0.; // kHz - double dDarkNoiseHybrid = 0.; // kHz - - iNeededArgc += 1; -#ifdef mPMT - iNeededArgc += 1; -#endif - - if (argc == iNeededArgc) - { - int iArg = 1; - sInputFile = argv[iArg]; - iArg += 1; - sOutputFile = argv[iArg]; - iArg += 1; - dDarkNoise = atof(argv[iArg]); - iArg += 1; + //Get arguments + arguments arglist = FetchInput(argc, argv); + std::string sInputFile = arglist.inputFile; + std::string sOutputFile = arglist.outputFile; + double dDarkNoise = arglist.darkNoise; + double dDarkNoiseHybrid = 0.; #ifdef mPMT - dDarkNoiseHybrid = atof(argv[iArg]); - iArg += 1; + dDarkNoiseHybrid = arglist.darkNoiseH; #endif - } - else - { - - std::cout << "Synthax: " << argv[0] << " input output"; - std::cout << " DN_in_kHz_B&L"; - -#ifdef mPMT - std::cout << " DN_in_kHz_mPMT"; -#endif - std::cout << std::endl; - return 0; - } + int firstEvents = arglist.startEvent; //We start counting at 0 + int lastEvents = arglist.endEvent; + bool verbose = arglist.verbose; // Read WCSim output TFile *fInputFile = new TFile(sInputFile.c_str(), "READ"); // Get TTrees - TTree *fInputTree = (TTree *)fInputFile->Get("wcsimT"); + TTree *fInputTree = (TTree *)fInputFile->Get("wcsimT"); TTree *fInputGeoTree = (TTree *)fInputFile->Get("wcsimGeoT"); fLeafGeometry = 0; fInputGeoTree->SetBranchAddress("wcsimrootgeom", &fLeafGeometry); + // Set Branch for PMTs WCSimRootEvent *fIDevent = new WCSimRootEvent(); - // Set Branch fInputTree->SetBranchAddress("wcsimrootevent", &fIDevent); - // Set autodelete to avoid memory leak - fInputTree->GetBranch("wcsimrootevent")->SetAutoDelete(kTRUE); + fInputTree->GetBranch("wcsimrootevent")->SetAutoDelete(kTRUE); // Set autodelete to avoid memory leak - // WCSimRootEvent *fHybridevent = new WCSimRootEvent(); + // Set Branch for mPMTs #ifdef mPMT - // Set Branche - // fInputTree->SetBranchAddress("wcsimrootevent2", &fHybridevent); - // Set autodelete to avoid memory leak - fInputTree->GetBranch("wcsimrootevent2")->SetAutoDelete(kTRUE); + WCSimRootEvent *fHybridevent = new WCSimRootEvent(); + fInputTree->SetBranchAddress("wcsimrootevent2", &fHybridevent); + fInputTree->GetBranch("wcsimrootevent2")->SetAutoDelete(kTRUE); // Set autodelete to avoid memory leak #endif + // Set Branch for OD PMTs #ifdef OD_ON WCSimRootEvent *fODevent = new WCSimRootEvent(); - // Set Branche fInputTree->SetBranchAddress("wcsimrootevent_OD", &fODevent); - // Set autodelete to avoid memory leak - fInputTree->GetBranch("wcsimrootevent_OD")->SetAutoDelete(kTRUE); + fInputTree->GetBranch("wcsimrootevent_OD")->SetAutoDelete(kTRUE); // Set autodelete to avoid memory leak #endif - // Read Geo - fInputGeoTree->GetEntry(0); - // Create Output TTree TFile *fOutputFile = new TFile(sOutputFile.c_str(), "RECREATE"); fOutputFile->SetCompressionLevel(2); - TTree *fGeoTree = new TTree("wcsimGeoT", "Geometry TTree"); - TTree *fPrimaryTree = new TTree("Reduced", "Reduced TTree"); - - // Set Branches - SetGeoBranch(fGeoTree); + // Read Geo and set branch + fInputGeoTree->GetEntry(0); + TTree *fGeoTree = new TTree("wcsimGeoT", "Geometry TTree"); + TTree *fPrimaryTree = new TTree("Reduced", "Reduced TTree"); + fGeoTree->Branch("wcsimrootgeom", fLeafGeometry); FitterOutput leaf_output; SetCustomBranch(fPrimaryTree, leaf_output); - fGeoTree->Fill(); // Get PMT Number: int nPMT_ID = fLeafGeometry->GetWCNumPMT(); + std::cout << " ID " << nPMT_ID << std::endl; #ifdef OD_ON int nPMT_OD = fLeafGeometry->GetODWCNumPMT(); + std::cout << " OD " << nPMT_OD << std::endl; #endif int nMultPMT = fLeafGeometry->GetWCNumPMT(true); - - std::cout << " ID " << nPMT_ID << std::endl; std::cout << " mPMT " << nMultPMT << std::endl; + // Initialize HK Manager geometry HKManager::GetME()->SetGeometry(fLeafGeometry, dDarkNoise * 1e3, dDarkNoiseHybrid * 1e3); // Initialize LEAF LEAF::GetME()->Initialize(HKManager::GetME()->GetGeometry()); // Loads the geometry in leaf and loads the pdfs //* for each config variable, check if it has been set, take the default variable if not - int maxEvents = -1; // in cm, the step size for coarse grid search - const char* envValue = std::getenv("nbOfEvents"); - if (envValue != nullptr) - { - maxEvents = std::stoi(envValue); - std::cout << "max events is set to " << maxEvents << std::endl; - } else std::cout << "Environment variable max events is not set. Using all events" << std::endl; - - envValue = std::getenv("maxHitsAngle"); + const char* envValue = std::getenv("maxHitsAngle"); if (envValue != nullptr) { maxHitAngle = std::stof(envValue); @@ -314,31 +194,31 @@ int main(int argc, char **argv) } else std::cout << "Environment variable maxDistanceToNeighbors is not set. Using default value : " << maxDistanceToNeighbors << std::endl; // Read Input Tree - int nPrimaryEvents = fInputTree->GetEntries(); - - if(maxEvents > 0) nPrimaryEvents = std::min(nPrimaryEvents, maxEvents); - int iWrite = 0; int failAmount = 0; + int nPrimaryEvents = fInputTree->GetEntries(); + if(lastEvents > 0) nPrimaryEvents = std::min(nPrimaryEvents, lastEvents); TStopwatch timer; timer.Reset(); timer.Start(); // Loop on Primary events - for (int i = 0; i < nPrimaryEvents; i++) + for (int i=firstEvents ; iResetHitInfo(); // HKManager::GetME()->ResetSecondaryHitInfo(); - - // if ( i%1000==0 ) { timer.Stop(); - std::cout << "Event # = " << i << " / " << nPrimaryEvents << " ( " << timer.RealTime() << " )\n"; timer.Reset(); - timer.Start(); - //} + if(verbose) + { + std::cout << "\n===========================================================================================================================================================" << std::endl; + std::cout << "Event # = " << i+1 << " / " << nPrimaryEvents << std::endl; + } + + timer.Start(); fInputTree->GetEntry(i); // Initialize output variables @@ -353,32 +233,23 @@ int main(int argc, char **argv) true_origin_Y.clear(); true_origin_Z.clear(); true_origin_T.clear(); + leaf_Vertex.clear(); leaf_Dir.clear(); leaf_MyDir.clear(); leaf_QuickDir.clear(); - + digithit_pmtId.clear(); digithit_T.clear(); correctedDigithit_T.clear(); digithit_Q.clear(); - digithit_Angle.clear(); - digithit_NormAngle.clear(); - digithit_NeighborsDist.clear(); - hit_is_DR.clear(); Charge_PMT.clear(); - relativeAngle.clear(); - lf_relativeAngle.clear(); - hit_residual.clear(); rawhit_num = 0; digithit_num = 0; fLFTime = -9999; - hit_5_15ns = 0; - hit_50ns = 0; - Hit_ID = 0; Hit_ID_50 = 0; Hit_ID_200 = 0; @@ -400,11 +271,6 @@ int main(int argc, char **argv) trueVertex = std::vector(4); trueDir = std::vector(3); - lf_spatial_res = 0.; - lf_Dir_res = 0.; - lf_time_res = 0.; - lf_energy_res = 0.; - bestTrigger = 0; fLfTriggerTime = 0.; @@ -412,9 +278,9 @@ int main(int argc, char **argv) /* ID events */ /****************************************************************************************/ - fHit = 0; - fHit_20 = 0; - fHit_50 = 0; + fHit = 0; + fHit_20 = 0; + fHit_50 = 0; fHit_200 = 0; fHit_400 = 0; @@ -439,20 +305,21 @@ int main(int argc, char **argv) /* mPMT events */ /****************************************************************************************/ +#ifdef mPMT fHit = 0; fHit_20 = 0; fHit_50 = 0; fHit_200 = 0; fHit_400 = 0; -#ifdef mPMT // /*bool bmPMT =*/AnalyseEvent(fHybridevent, mPMT_EVENT); -#endif + Hit_mPMT = fHit; Hit_mPMT_20 = fHit_20; Hit_mPMT_50 = fHit_50; Hit_mPMT_200 = fHit_200; Hit_mPMT_400 = fHit_400; +#endif /****************************************************************************************/ /* OD events */ @@ -467,15 +334,16 @@ int main(int argc, char **argv) // There should be a dedicated OD analyser, as many thing should be different than for ID // Doesn't exist yet - /*bool bOD =*/AnalyseODEvent(fODevent, OD_EVENT); + /*bool bOD =*/ AnalyseODEvent(fODevent, OD_EVENT); Hit_OD = fHit; Hit_OD_50 = fHit_50; Hit_OD_200 = fHit_200; Hit_OD_400 = fHit_400; #endif + /****************************************************************************************/ - /* Benjamin Fitter */ + /* Benjamin Quilain Fitter */ /****************************************************************************************/ TStopwatch timerLF; @@ -494,26 +362,45 @@ int main(int argc, char **argv) fLFTime = timerLF.RealTime(); - std::cout << " LEAF took: " << timerLF.RealTime() << " for " << HKManager::GetME()->GetHitCollection()->Size() << " Hits"; - std::cout << " (Vtx Search : " << fOutputProps.Vtx_Search_ComputeTime << " , Vtx Minimize : " << fOutputProps.Vtx_Minimize_ComputeTime << ", Dir Search : " << fOutputProps.Dir_Search_ComputeTime << " , Dir Minimize : " << fOutputProps.Dir_Minimize_ComputeTime << " , Energy Fit : " << fOutputProps.Energy_Fit_ComputeTime << ")" << std::endl; - bool validEvent = PostLeafAnalysis(fIDevent,ID_EVENT, leaf_output); + if (verbose) + { + std::cout << " LEAF took: " << timerLF.RealTime() << " sec for " << HKManager::GetME()->GetHitCollection()->Size() << " Hits"; + std::cout << " (Vtx Search : " << fOutputProps.Vtx_Search_ComputeTime + << " , Vtx Minimize : " << fOutputProps.Vtx_Minimize_ComputeTime + << ", Dir Search : " << fOutputProps.Dir_Search_ComputeTime + << " , Dir Minimize : " << fOutputProps.Dir_Minimize_ComputeTime + << " , Energy Fit : " << fOutputProps.Energy_Fit_ComputeTime << ")" << std::endl; + std::cout << " True vertex: (" << trueVertex[0] + << ", " << trueVertex[1] + << ", " << trueVertex[2] + << ", " << trueVertex[3] << ") [cm/cm/cm/ns] " + << " // direction: (" << trueDir[0] + << ", " << trueDir[1] + << ", " << trueDir[2] + << " // energy: " << true_energy << std::endl; + std::cout << " LEAF vertex: (" << fOutput.Vtx[0] + << ", " << fOutput.Vtx[1] + << ", " << fOutput.Vtx[2] + << ", " << fOutput.Vtx[3] << ") [cm/cm/cm/ns]" < + << " // direction: (" << fOutput.Dir[0] + << ", " << fOutput.Dir[1] + << ", " << fOutput.Dir[2] + << " // energy: " << fOutput.Energy << std::endl; + } /****************************************************************************************/ /* Fill output tree */ /****************************************************************************************/ - if(validEvent) - { - fPrimaryTree->Fill(); - iWrite += 1; - } + + fPrimaryTree->Fill(); + iWrite += 1; } - std::cout << "Event # = " << nPrimaryEvents << " / " << nPrimaryEvents << std::endl; - - std::cout << ((nPrimaryEvents - failAmount) / nPrimaryEvents) * 100 << "% of the events were processed" << std::endl; + std::cout << "\n==========================================================================================================================================================="; + std::cout << "\n===========================================================================================================================================================\n" << std::endl; + std::cout << ((nPrimaryEvents - failAmount) / nPrimaryEvents) * 100 << "% of the events have been processed" << std::endl; fOutputFile->cd(); - fOutputFile->Write("", TObject::kOverwrite); delete fPrimaryTree; @@ -521,6 +408,7 @@ int main(int argc, char **argv) return 1; } + //* All the variables that will be kept in the output Tree void SetCustomBranch(TTree *fPrimaryTree, FitterOutput leaf_output) { @@ -537,8 +425,6 @@ void SetCustomBranch(TTree *fPrimaryTree, FitterOutput leaf_output) fPrimaryTree->Branch("true_origin_T", &true_origin_T); fPrimaryTree->Branch("true_energy", &true_energy); fPrimaryTree->Branch("true_dir", &trueDir, "true_dir[3]/D"); - fPrimaryTree->Branch("DWall", &dWall, "DWall/D"); - fPrimaryTree->Branch("ToWall", &toWall, "lf_wall/D"); fPrimaryTree->Branch("ID_hits", &Hit_ID, "Hit_ID/I"); fPrimaryTree->Branch("ID_hits_50", &Hit_ID_50, "Hit_ID_50/I"); @@ -551,9 +437,6 @@ void SetCustomBranch(TTree *fPrimaryTree, FitterOutput leaf_output) fPrimaryTree->Branch("mPMT_hits_200", &Hit_mPMT_200, "Hit_mPMT_200/I"); fPrimaryTree->Branch("mPMT_hits_400", &Hit_mPMT_400, "Hit_mPMT_400/I"); - fPrimaryTree->Branch("hit_5_15ns", &hit_5_15ns, "hit_5_15ns/I"); - fPrimaryTree->Branch("hit_50ns", &hit_50ns, "hit_50ns/I"); - fPrimaryTree->Branch("lf_vertex", &leaf_Vertex); fPrimaryTree->Branch("lf_NLL", &leaf_output.NLL, "lf_NLL/D"); fPrimaryTree->Branch("lf_good", &leaf_output.NLLR, "lf_good/D"); @@ -563,44 +446,25 @@ void SetCustomBranch(TTree *fPrimaryTree, FitterOutput leaf_output) fPrimaryTree->Branch("lf_MyDir", &leaf_MyDir); fPrimaryTree->Branch("lf_Quick_Dir", &leaf_QuickDir); fPrimaryTree->Branch("lf_Dir_NLL", &leaf_output.DNLL, "lf_Dir_NLL/D"); - fPrimaryTree->Branch("lf_DWall", &lf_dWall, "DWall/D"); - fPrimaryTree->Branch("lf_ToWall", &lf_ToWall, "lf_ToWall/D"); - - fPrimaryTree->Branch("lf_spatial_res", &lf_spatial_res, "lf_spatial_res/D"); - fPrimaryTree->Branch("lf_time_res", &lf_time_res, "lf_time_res/D"); - fPrimaryTree->Branch("lf_Dir_res", &lf_Dir_res,"lf_Dir_res/D"); - fPrimaryTree->Branch("lf_MyDir_res", &lf_MyDir_res,"lf_MyDir_res/D"); - fPrimaryTree->Branch("lf_Quick_Dir_res", &lf_Quick_Dir_res,"lf_Quick_Dir_res/D"); - fPrimaryTree->Branch("lf_energy_res", &lf_energy_res, "lf_energy_res/D"); - - fPrimaryTree->Branch("Leaf_ComputeTime", &fOutputProps.Leaf_ComputeTime, "Leaf_ComputeTime/D"); - fPrimaryTree->Branch("Vtx_Search_ComputeTime", &fOutputProps.Vtx_Search_ComputeTime, "Vtx_Search_ComputeTime/D"); - fPrimaryTree->Branch("Vtx_Minimize_ComputeTime", &fOutputProps.Vtx_Minimize_ComputeTime, "Vtx_Minimize_ComputeTime/D"); - fPrimaryTree->Branch("Dir_Quick_Search_ComputeTime", &fOutputProps.Dir_Quick_Search_ComputeTime, "Dir_Quick_Search_ComputeTime/D"); - fPrimaryTree->Branch("Dir_Search_ComputeTime", &fOutputProps.Dir_Search_ComputeTime, "Dir_Search_ComputeTime/D"); - fPrimaryTree->Branch("Dir_Minimize_ComputeTime", &fOutputProps.Dir_Minimize_ComputeTime, "Dir_Minimize_ComputeTime/D"); - fPrimaryTree->Branch("Energy_Fit_ComputeTime", &fOutputProps.Energy_Fit_ComputeTime, "Energy_Fit_ComputeTime/D"); + fPrimaryTree->Branch("lf_ComputeTime", &fOutputProps.Leaf_ComputeTime, "Leaf_ComputeTime/D"); + fPrimaryTree->Branch("lf_Vtx_Search_ComputeTime", &fOutputProps.Vtx_Search_ComputeTime, "Vtx_Search_ComputeTime/D"); + fPrimaryTree->Branch("lf_Vtx_Minimize_ComputeTime", &fOutputProps.Vtx_Minimize_ComputeTime, "Vtx_Minimize_ComputeTime/D"); + fPrimaryTree->Branch("lf_Dir_Quick_Search_ComputeTime", &fOutputProps.Dir_Quick_Search_ComputeTime, "Dir_Quick_Search_ComputeTime/D"); + fPrimaryTree->Branch("lf_Dir_Search_ComputeTime", &fOutputProps.Dir_Search_ComputeTime, "Dir_Search_ComputeTime/D"); + fPrimaryTree->Branch("lf_Dir_Minimize_ComputeTime", &fOutputProps.Dir_Minimize_ComputeTime, "Dir_Minimize_ComputeTime/D"); + fPrimaryTree->Branch("lf_Energy_Fit_ComputeTime", &fOutputProps.Energy_Fit_ComputeTime, "Energy_Fit_ComputeTime/D"); fPrimaryTree->Branch("rawTriggerTime", &rawTriggerTime, "rawTriggerTime/D"); fPrimaryTree->Branch("TotalCharge", &leaf_output.TotalCharge, "TotalCharge/D"); - fPrimaryTree->Branch("RelativeAngle", &relativeAngle); - fPrimaryTree->Branch("lf_RelativeAngle", &lf_relativeAngle); fPrimaryTree->Branch("DigiHitT", &digithit_T); fPrimaryTree->Branch("CorrectedDigiHitT", &correctedDigithit_T); fPrimaryTree->Branch("HitIsDR", &hit_is_DR); fPrimaryTree->Branch("DigiHitQ", &digithit_Q); - fPrimaryTree->Branch("DigiHitAngle", &digithit_Angle); - fPrimaryTree->Branch("DigiHitNormAngle", &digithit_NormAngle); - fPrimaryTree->Branch("DigiHitNeighborsDist", &digithit_NeighborsDist); fPrimaryTree->Branch("DigiHitResidual", &hit_residual); fPrimaryTree->Branch("Charge_PMT", &Charge_PMT); } -void SetGeoBranch(TTree *fGeoTree) -{ - fGeoTree->Branch("wcsimrootgeom", fLeafGeometry); -} bool AnalyseEvent(WCSimRootEvent *tEvent, int iEventType) { @@ -689,9 +553,6 @@ bool AnalyseEvent(WCSimRootEvent *tEvent, int iEventType) Normalize(trueDir); } - toWall = calculateToWall(R, h, trueVertex, trueDir); - dWall = calculateDWall(R, h, trueVertex); - true_particleId.push_back(wcTrack->GetIpnu()); true_energy.push_back(wcTrack->GetE()); true_origin_T.push_back(fRootTrigger->GetVtx(3)); @@ -717,90 +578,30 @@ bool AnalyseEvent(WCSimRootEvent *tEvent, int iEventType) startingCherenkovHitID = digithit_pmtId.size(); std::vector times; - //* check if trigger is too soon or too late compared to the event (trigger happened because of dark rate) - double hitTimesStack = 0; - for (int iDigitHit = 0; iDigitHit < nDigitizedCherenkovHits; iDigitHit++) - { - TObject *Hit = (fRootTrigger->GetCherenkovDigiHits())->At(iDigitHit); - WCSimRootCherenkovDigiHit *wcDigitHit = dynamic_cast(Hit); - double HitT = wcDigitHit->GetT() + fLfTriggerTime; - hitTimesStack+=HitT; - } - double hitTmean = hitTimesStack/nDigitizedCherenkovHits; - if(hitTmean > 2000.0 || hitTmean < -2000.0) return false; //* set these values to define the filter (currently filtering nothing) - - double AllQ = 0; - // Loop on Digitized Hits + double AllQ = 0; for (int iDigitHit = 0; iDigitHit < nDigitizedCherenkovHits; iDigitHit++) { - //* Get and Compute Hit Informations - + //* Get Hit Informations TObject *Hit = (fRootTrigger->GetCherenkovDigiHits())->At(iDigitHit); WCSimRootCherenkovDigiHit *wcDigitHit = dynamic_cast(Hit); int pmtId = wcDigitHit->GetTubeId(); WCSimRootPMT pmt = fLeafGeometry->GetPMT(pmtId - 1, false); - double HitT = wcDigitHit->GetT() + fLfTriggerTime; - double HitQ = wcDigitHit->GetQ(); + double HitT = wcDigitHit->GetT() + fLfTriggerTime; + double HitQ = wcDigitHit->GetQ(); int peForTube = wcDigitHit->GetQ(); - std::vector lfHitDir = std::vector(3); - std::vector PMTOrientation = std::vector(3); - std::vector vDir = std::vector(3); - bool isDR = IsDarkRateHit(fRootTrigger, wcDigitHit); - double hitResidual = GetResidualTime(trueVertex, true_origin_T[0], wcDigitHit, fTimeCorrection, fLfTriggerTime); - for (int j = 0; j < 3; j++) - { - PMTOrientation[j] = pmt.GetOrientation(j); - vDir[j] = pmt.GetPosition(j) - trueVertex[j]; - lfHitDir[j] = pmt.GetPosition(j); - } - - Normalize(vDir); - Normalize(lfHitDir); - Normalize(PMTOrientation); - - std::vector neg_vDir = { -vDir[0], -vDir[1], -vDir[2] }; - double NormAngle = dot(neg_vDir, PMTOrientation); - - double hitRelativeAngle = dot(vDir, trueDir); - - //* Use that inforation to filter some hits - //* we aim at killing dark rate hits - //* ideally without using any information form the true event - - //* Direction Filter - double angle = angleBetween3DVectors(vDir, trueDir); - // if(angle > maxHitAngle) continue; // works best at 90° - - //* Filter base on distance to hit neighbors - double distanceToNeighbor = GetDistanceToNeighbors(fRootTrigger, wcDigitHit, N_Neighbors); - // if(distanceToNeighbor > maxDistanceToNeighbors) continue; - - //*DR FILTER - if(isDR) continue; // ideal filter to check reconstruction without dark rate - ///* fill infos to output root file + //* Fill output root file AllQ += HitQ; digithit_pmtId.push_back(pmtId); digithit_T.push_back(HitT); correctedDigithit_T.push_back(HitT - fLfTriggerTime - triggerInfo[1]); digithit_Q.push_back(HitQ); - hit_is_DR.push_back(isDR); - digithit_Angle.push_back(angle); - digithit_NormAngle.push_back((TMath::ACos(NormAngle))*180./TMath::Pi()); - digithit_NeighborsDist.push_back(distanceToNeighbor); Charge_PMT.push_back(peForTube); - relativeAngle.push_back((TMath::ACos(hitRelativeAngle))*180./TMath::Pi()); digithit_Type.push_back(iEventType); - hit_residual.push_back(hitResidual); } - for(long unsigned int j=0;j -5) hit_5_15ns++; - if(hit_residual[j] < 50 && hit_residual[j] > -50) hit_50ns++; - } int iIdx_BS = 0; @@ -853,7 +654,7 @@ bool AnalyseEvent(WCSimRootEvent *tEvent, int iEventType) // Count hit in 50 ns window while (HitT - Hit_time_50[0] > 50.) Hit_time_50.erase(Hit_time_50.begin()); - // Count hit in 200 ns windowAnalyseEvent + // Count hit in 200 ns window while (HitT - Hit_time_200[0] > 200.) Hit_time_200.erase(Hit_time_200.begin()); // Count hit in 400 ns window @@ -867,47 +668,3 @@ bool AnalyseEvent(WCSimRootEvent *tEvent, int iEventType) } return true; } - -bool PostLeafAnalysis(WCSimRootEvent * tEvent, int iEventType, FitterOutput leaf_output) -{ - if (!(true_origin_X.size() > 0 && true_origin_Y.size() > 0 && true_origin_Z.size() > 0)) return false; - - for(int j=0;j<4;j++) leaf_Vertex.push_back(leaf_output.Vtx[j]); - for(int j=0;j<3;j++) leaf_Dir.push_back(leaf_output.Dir[j]); - for(int j=0;j<3;j++) leaf_MyDir.push_back(leaf_output.MyDir[j]); - for(int j=0;j<3;j++) leaf_QuickDir.push_back(leaf_output.Quick_Dir[j]); - - //* RESOLUTIONS COMPUTATION - std::vector true_vertex = {true_origin_X[0], true_origin_Y[0], true_origin_Z[0]}; - lf_dWall = calculateDWall(R, h, leaf_output.Vtx); - lf_ToWall = calculateToWall(R, h,leaf_output.Vtx, leaf_output.Dir); - lf_spatial_res = calculateDistance(true_vertex, leaf_output.Vtx); - lf_time_res = abs(leaf_output.Vtx[3]-true_origin_T[0]); - - if(leaf_output.Dir.size() == 3) lf_Dir_res = TMath::ACos(dot(leaf_output.Dir, trueDir))*180./TMath::Pi(); - if(leaf_output.MyDir.size() == 3) lf_MyDir_res = TMath::ACos(dot(leaf_output.MyDir, trueDir))*180./TMath::Pi(); - if(leaf_output.Quick_Dir.size() == 3) lf_Quick_Dir_res = TMath::ACos(dot(leaf_output.Quick_Dir, trueDir))*180./TMath::Pi(); - - lf_energy_res = abs(leaf_output.Energy - true_energy[0]); - - //* ANGLE ANALYSIS - WCSimRootTrigger * fRootTrigger = tEvent->GetTrigger(bestTrigger); - - for(int iDigitHit = startingCherenkovHitID; (long unsigned int)iDigitHit < digithit_pmtId.size(); iDigitHit++) - { - TObject *Hit = (fRootTrigger->GetCherenkovDigiHits())->At(iDigitHit); - WCSimRootCherenkovDigiHit *wcDigitHit = dynamic_cast(Hit); - WCSimRootPMT pmt = fLeafGeometry->GetPMT(wcDigitHit->GetTubeId() - 1, false); - - std::vector lfHitDir = std::vector(3); - for(int j=0;j<3;j++) lfHitDir[j] = pmt.GetPosition(j) - leaf_output.Vtx[j]; - Normalize(lfHitDir); - - std::vector trueHitDir = std::vector(3); - for(int j=0;j<3;j++) trueHitDir[j] = pmt.GetPosition(j) - trueVertex[j]; - Normalize(trueHitDir); - double hitlfRelativeAngle = dot(trueHitDir, leaf_output.Dir); - lf_relativeAngle.push_back((TMath::ACos(hitlfRelativeAngle))*180./TMath::Pi()); - } - return true; -} \ No newline at end of file diff --git a/example/analysis.h b/example/analysis.h index 6d22c78..37c09c3 100644 --- a/example/analysis.h +++ b/example/analysis.h @@ -114,7 +114,6 @@ FitterOutputProps fOutputProps; double fLFTime; //* Other hits infos - int Hit_ID; int Hit_ID_20; int Hit_ID_50; @@ -153,6 +152,33 @@ float bsT[2000]; float bsQ[2000]; int bsnhit[1]; + +//-----------------------------------------------------------------------------------------// + +struct arguments +{ + char * inputFile = NULL; + char * outputFile = NULL; + double darkNoise = 4.2; // Dark noise frequency in Hz + double darkNoiseH = 0.; // Dark noise frequency in Hz when using the hybrid geometry + double timeshift = 0.; // Shift hit time + int startEvent = 0; // First event to analyze + int endEvent = 0; // Last event to analyze + bool hybrid = false; + bool verbose = false; +}; + +struct FitterAnalysis +{ + double Wall; + double Good; + int n50[3]; + double dir[3][3]; + double dir_goodness[3]; + double dirKS[3]; +}; + + //-----------------------------------------------------------------------------------------// void SetCustomBranch(TTree *fPrimaryTree, FitterOutput leaf_output); @@ -160,3 +186,7 @@ void SetCustomBranchInput(TTree *fPrimaryTree); void SetGeoBranch(TTree *fGeoTree); bool AnalyseEvent(WCSimRootEvent *tEvent, int iEventType); bool PostLeafAnalysis(WCSimRootEvent * tEvent, int iEventType, FitterOutput leaf_output); +arguments FetchInput(int argc, char* argv[]); + + + diff --git a/example/test_example.sh b/example/test_example.sh index 9a21b8b..63c37b2 100755 --- a/example/test_example.sh +++ b/example/test_example.sh @@ -1,16 +1,38 @@ #!/bin/bash +# Launch single job +# +#SBATCH --job-name=leaf # Job name +#SBATCH --output=/sps/t2k/lperisse/Soft/leaf/logs/analysis_%j.log # Standard output and error log +#SBATCH --partition=htc # Partition choice +#SBATCH --ntasks=1 # Maximum number of parallel processes +#SBATCH --mem=5G # Amount of memory required +#SBATCH --time=0-01:00 # 7 days by default on htc partition + + # Replace $input contents with the path toward your WCSim input file # (Note: make sure the WCSim path in RunAtStart matches the WCSim version you used to produce the file) -input=$WCSIMDIR/wcsim_hybrid.root +input=/sps/t2k/lperisse/Soft/wcsim/results/electron/wcsim1p12p29_electron_HK_test.root +output=/sps/t2k/lperisse/Soft/wcsim/results/electron/wcsim1p12p29_electron_HK_test.leaf.root + -# test.root doesn't exist, this is just a placeholder +# Argument syntaxe to run ./analysis: +#-i Input WCSim ROOT file +#-o Output ROOT file +# d Dark noise frequency of PMTs in kHz +# h Dark noise frequency of mPMTS in kHz +# s First event to analyze +#-e Last event to analyze +# v VERBOSE option if [ ! -f "$input" ]; then echo "Set input file doesn't exist! Add your WCSim input file here. (Note: make sure the WCSim path in RunAtStart matches the WCSim version you used to produce the file)" else echo "Processing ${input}..." - ./analysis $input output.root 0 0 + cd ${LEAFDIR}/example + ./analysis -i $input -o $output -s 0 -e 5 -d 4.2 -h 0.0 -v fi + + diff --git a/inputs/timePDF_DRnew_Large.root b/inputs/timePDF_DRnew_Large.root deleted file mode 100644 index 0b1b78c4405ca31ce0dcb8250ecd99e1ab5a78dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61210 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 diff --git a/inputs/timePDF_Directionality.root b/inputs/timePDF_Directionality.root deleted file mode 100644 index 2baa242acb9a339008e37f533eb6911e869a1d8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59086 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⪼hqKhHg%oOzw-Z*4RCfe-lN`ORAbCC}sYHhF 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 diff --git a/inputs/timePDF_Directionality_DRnew.root b/inputs/timePDF_Directionality_DRnew.root deleted file mode 100644 index 028935075228b933df130a7c28c314e092c13fee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55846 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

SLIoh7G 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%0Dth}~WzQXkmpcFn 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%0A{rgdJEG>%WrbAA$T5 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

TRTT^J4PeIdz-R8G$QcyJKI3@>$044|P<8 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 -#include - - -using std::setw; -// These routines are object registration routines that you can pass -// to the traversal code. - -void WCSimDetectorConstruction::PrintGeometryTree -(G4VPhysicalVolume* aPV ,int aDepth, int /*replicaNo*/, - const G4Transform3D& aTransform) -{ - for (int levels = 0; levels < aDepth; levels++) G4cout << " "; - G4cout << aPV->GetName() << " Level:" << aDepth - << " Pos:" << aTransform.getTranslation() - << " Rot:" << aTransform.getRotation().getTheta()/deg - << "," << aTransform.getRotation().getPhi()/deg - << "," << aTransform.getRotation().getPsi()/deg - << G4endl; -} - -void WCSimDetectorConstruction::GetWCGeom -(G4VPhysicalVolume* aPV ,int aDepth, int /*replicaNo*/, - const G4Transform3D& aTransform) -{ - - // Grab mishmash of useful information from the tree while traversing it - // This information will later be written to the geometry file - // (Alternatively one might define accessible constants) - - if ((aPV->GetName() == "WCBox")) { // last condition is the HyperK Envelope name. - // Stash info in data member - WCOffset = G4ThreeVector(aTransform.getTranslation().getX()/cm, - aTransform.getTranslation().getY()/cm, - aTransform.getTranslation().getZ()/cm); - WCXRotation = G4ThreeVector(aTransform.getRotation().xx(), aTransform.getRotation().xy(), aTransform.getRotation().xz()); - WCYRotation = G4ThreeVector(aTransform.getRotation().yx(), aTransform.getRotation().yy(), aTransform.getRotation().yz()); - WCZRotation = G4ThreeVector(aTransform.getRotation().zx(), aTransform.getRotation().zy(), aTransform.getRotation().zz()); - } - - // Stash info in data member - // AH Need to store this in CM for it to be understood by SK code - WCPMTSize = WCPMTRadius/cm;// I think this is just a variable no if needed - - // Note WC can be off-center... get both extremities - static G4float zmin=100000,zmax=-100000.; - static G4float xmin=100000,xmax=-100000.; - static G4float ymin=100000,ymax=-100000.; - if (aDepth == 0) { // Reset for this traversal - xmin=100000,xmax=-100000.; - ymin=100000,ymax=-100000.; - zmin=100000,zmax=-100000.; - } - - if ((aPV->GetName() == "WCCapBlackSheet") || (aPV->GetName().find("glassFaceWCPMT") != std::string::npos)){ - G4float x = aTransform.getTranslation().getX()/cm; - G4float y = aTransform.getTranslation().getY()/cm; - G4float z = aTransform.getTranslation().getZ()/cm; - - if (xxmax){xmax=x;} - - if (yymax){ymax=y;} - - if (zzmax){zmax=z;} - - WCCylInfo[0] = xmax-xmin; - WCCylInfo[1] = ymax-ymin; - WCCylInfo[2] = zmax-zmin; - // G4cout << "determine height: " << zmin << " " << zmax << " " << aPV->GetName()<<" " << z << G4endl; - } -} - -void WCSimDetectorConstruction::DescribeAndRegisterPMT(G4VPhysicalVolume* aPV ,int aDepth, int replicaNo, - const G4Transform3D& aTransform) -{ - static std::string replicaNoString[20]; - - std::stringstream depth; - std::stringstream pvname; - - depth << replicaNo; - pvname << aPV->GetName(); - - replicaNoString[aDepth] = pvname.str() + "-" + depth.str(); - - - //TF: To Consider: add a separate table for mPMT positions? Need to use its orientation anyway - // Could be useful for the near future. Need to add an == WCMultiPMT here then. - if (aPV->GetName()== WCIDCollectionName || aPV->GetName()== WCIDCollectionName2 ||aPV->GetName()== WCODCollectionName ) - { - - // First increment the number of PMTs in the tank. - //totalNumPMTs++; - if(aPV->GetName()== WCIDCollectionName) totalNumPMTs++; - else if(aPV->GetName()== WCIDCollectionName2) totalNumPMTs2++; - - // Put the location of this tube into the location map so we can find - // its ID later. It is coded by its tubeTag string. - // This scheme must match that used in WCSimWCSD::ProcessHits() - - std::string tubeTag; - int mPMT_pmtno = -1; - bool foundString = false; - // - - for (int i=0; i <= aDepth; i++){ - tubeTag += ":" + replicaNoString[i]; - std::string::size_type position = replicaNoString[i].find("pmt-"); - if( position == 0) { - foundString = true; - mPMT_pmtno = atoi(replicaNoString[i].substr(position+4).c_str())+1; - if(mPMT_pmtno == 1) - if(aPV->GetName()== WCIDCollectionName) totalNum_mPMTs++; - else if(aPV->GetName()== WCIDCollectionName2) totalNum_mPMTs2++; - } - } - if(!foundString){ - // to distinguish mPMT PMTs from single PMTs: - mPMT_pmtno = 0; - if(aPV->GetName()== WCIDCollectionName) totalNum_mPMTs++; - else if(aPV->GetName()== WCIDCollectionName2) totalNum_mPMTs2++; - } - - // G4cout << tubeTag << G4endl; - if(aPV->GetName()== WCIDCollectionName){ - if ( tubeLocationMap.find(tubeTag) != tubeLocationMap.end() ) { - G4cerr << "Repeated tube tag: " << tubeTag << G4endl; - G4cerr << "Assigned to both tube #" << tubeLocationMap[tubeTag] << " and #" << totalNumPMTs << G4endl; - G4cerr << "Cannot continue -- hits will not be recorded correctly." << G4endl; - G4cerr << "Please make sure that logical volumes with multiple placements are each given a unique copy number" << G4endl; - assert(false); - } - G4cout << "First PMT type, the tube is " << tubeTag << ", number of tubes = " << totalNumPMTs << ", Num mPMT/mPMT = " << totalNum_mPMTs << ", PMT number in mPMT = " << mPMT_pmtno << G4endl; - tubeLocationMap[tubeTag] = totalNumPMTs; - // Put the transform for this tube into the map keyed by its ID - tubeIDMap[totalNumPMTs] = aTransform; - - - mPMTIDMap[totalNumPMTs] = std::make_pair(totalNum_mPMTs,mPMT_pmtno); - //G4cout << "depth " << depth.str() << G4endl; - //G4cout << "tubeLocationmap[" << tubeTag << "]= " << tubeLocationMap[tubeTag] << "\n"; - - // Print - // G4cout << "Tube: "<GetName()== WCIDCollectionName2){ - if ( tubeLocationMap2.find(tubeTag) != tubeLocationMap2.end() ) { - G4cerr << "Repeated tube tag: " << tubeTag << G4endl; - G4cerr << "Assigned to both tube #" << tubeLocationMap2[tubeTag] << " and #" << totalNumPMTs2 << G4endl; - G4cerr << "Cannot continue -- hits will not be recorded correctly." << G4endl; - G4cerr << "Please make sure that logical volumes with multiple placements are each given a unique copy number" << G4endl; - assert(false); - } - tubeLocationMap2[tubeTag] = totalNumPMTs2; - // Put the transform for this tube into the map keyed by its ID - tubeIDMap2[totalNumPMTs2] = aTransform; - - - G4cout << "Second PMT type, the tube is " << tubeTag << ", number of tubes = " << totalNumPMTs2 << ", Num mPMT/mPMT = " << totalNum_mPMTs2 << ", PMT number in mPMT = " << mPMT_pmtno << G4endl; - mPMTIDMap2[totalNumPMTs2] = std::make_pair(totalNum_mPMTs2,mPMT_pmtno); - //G4cout << "depth " << depth.str() << G4endl; - //G4cout << "tubeLocationmap[" << tubeTag << "]= " << tubeLocationMap[tubeTag] << "\n"; - - // Print - // G4cout << "Tube: "< 0)//veto pmt - {cylLocation=3;} - else if (pmtOrientation.z()==1.0)//bottom - {cylLocation=2;} - else if (pmtOrientation.z()==-1.0)//top - {cylLocation=0;} - else // barrel - {cylLocation=1;} - - G4cout << "Debug B.Q: First type of PMT implemented, number = " << totalNumPMTs << ", Tube ID = " << tubeID << ",Number of the PMT/mPMT is = " << mPMTIDMap[tubeID].first << " and numbering of the PMT in the mPMT is = " << mPMTIDMap[tubeID].second << G4endl; - geoFile.precision(9); - geoFile << setw(4) << tubeID - << " " << setw(4) << mPMTIDMap[tubeID].first - << " " << setw(4) << mPMTIDMap[tubeID].second - << " " << setw(8) << newTransform.getTranslation().getX()/cm - << " " << setw(8) << newTransform.getTranslation().getY()/cm - << " " << setw(8) << newTransform.getTranslation().getZ()/cm - << " " << setw(7) << pmtOrientation.x() - << " " << setw(7) << pmtOrientation.y() - << " " << setw(7) << pmtOrientation.z() - << " " << setw(3) << cylLocation - << G4endl; - - WCSimPmtInfo *new_pmt = new WCSimPmtInfo(cylLocation, - newTransform.getTranslation().getX()/cm, - newTransform.getTranslation().getY()/cm, - newTransform.getTranslation().getZ()/cm, - pmtOrientation.x(), - pmtOrientation.y(), - pmtOrientation.z(), - tubeID, - mPMTIDMap[tubeID].first, - mPMTIDMap[tubeID].second); - - fpmts.push_back(new_pmt); - - } - - //Record location of the second PMT type for the hybrid configuration - for (unsigned int i=0;i 0)//veto pmt - {cylLocation=3;} - else if (pmtOrientation.z()==1.0)//bottom - {cylLocation=2;} - else if (pmtOrientation.z()==-1.0)//top - {cylLocation=0;} - else // barrel - {cylLocation=1;} - - G4cout << "Debug B.Q: Second type of PMT implemented, number = " << totalNumPMTs2 << ", Tube ID = " << tubeID << ",Number of the PMT/mPMT is = " << mPMTIDMap2[tubeID].first << " and numbering of the PMT in the mPMT is = " << mPMTIDMap2[tubeID].second << G4endl; - - geoFile.precision(9); - geoFile << setw(4) << tubeID - << " " << setw(4) << mPMTIDMap2[tubeID].first - << " " << setw(4) << mPMTIDMap2[tubeID].second - << " " << setw(8) << newTransform.getTranslation().getX()/cm - << " " << setw(8) << newTransform.getTranslation().getY()/cm - << " " << setw(8) << newTransform.getTranslation().getZ()/cm - << " " << setw(7) << pmtOrientation.x() - << " " << setw(7) << pmtOrientation.y() - << " " << setw(7) << pmtOrientation.z() - << " " << setw(3) << cylLocation - << G4endl; - - WCSimPmtInfo *new_pmt = new WCSimPmtInfo(cylLocation, - newTransform.getTranslation().getX()/cm, - newTransform.getTranslation().getY()/cm, - newTransform.getTranslation().getZ()/cm, - pmtOrientation.x(), - pmtOrientation.y(), - pmtOrientation.z(), - tubeID, - mPMTIDMap2[tubeID].first, - mPMTIDMap2[tubeID].second); - - fpmts2.push_back(new_pmt); - - } - - geoFile.close(); - - std::cout << "Geofile written" << std::endl; -} - - -// Code for traversing the geometry tree. This code is very general you pass -// it a function and it will call the function with the information on each -// object it finds. -// -// The traversal code comes from a combination of me/G4Lab project & -// from source/visualization/modeling/src/G4PhysicalVolumeModel.cc -// -// If you are trying to understand how passing the function works you need -// to understand pointers to member functions... -// -// Also notice that DescriptionFcnPtr is a (complicated) typedef. -// - -void WCSimDetectorConstruction::TraverseReplicas -(G4VPhysicalVolume* aPV, int aDepth, const G4Transform3D& aTransform, - DescriptionFcnPtr registrationRoutine) -{ - // Recursively visit all of the geometry below the physical volume - // pointed to by aPV including replicas. - - G4ThreeVector originalTranslation = aPV->GetTranslation(); - G4RotationMatrix* pOriginalRotation = aPV->GetRotation(); - - if (aPV->IsReplicated() ) - { - EAxis axis; - G4int nReplicas; - G4double width, offset; - G4bool consuming; - - aPV->GetReplicationData(axis,nReplicas,width,offset,consuming); - - for (int n = 0; n < nReplicas; n++) - { - //TF: for mPMT parameterization - // because kZAxis is a dummy value altered by Parameterised volume in MultiPMTParam - if(aPV->IsParameterised() ){ - //G4cout << "Replica No. " << n << G4endl; - //use the actual translation and rotation of the replica. - (aPV->GetParameterisation())->ComputeTransformation(n,aPV); - } - - else{ - - switch(axis) { - default: - case kXAxis: - aPV->SetTranslation(G4ThreeVector - (-width*(nReplicas-1)*0.5+n*width,0,0)); - aPV->SetRotation(0); - break; - case kYAxis: - aPV->SetTranslation(G4ThreeVector - (0,-width*(nReplicas-1)*0.5+n*width,0)); - aPV->SetRotation(0); - break; - case kZAxis: - aPV->SetTranslation(G4ThreeVector - (0,0,-width*(nReplicas-1)*0.5+n*width)); - aPV->SetRotation(0); - break; - case kRho: - //Lib::Out::putL("GeometryVisitor::visit: WARNING:"); - //Lib::Out::putL(" built-in replicated volumes replicated"); - //Lib::Out::putL(" in radius are not yet properly visualizable."); - aPV->SetTranslation(G4ThreeVector(0,0,0)); - aPV->SetRotation(0); - break; - case kPhi: - { - G4RotationMatrix rotation; - rotation.rotateZ(-(offset+(n+0.5)*width)); - // Minus Sign because for the physical volume we need the - // coordinate system rotation. - aPV->SetTranslation(G4ThreeVector(0,0,0)); - aPV->SetRotation(&rotation); - } - break; - - } // axis switch - } - DescribeAndDescendGeometry(aPV, aDepth, n, aTransform, - registrationRoutine); - - } // num replicas for loop - } // if replicated - else - DescribeAndDescendGeometry(aPV, aDepth, aPV->GetCopyNo(), aTransform, - registrationRoutine); - - // Restore original transformation... - aPV->SetTranslation(originalTranslation); - aPV->SetRotation(pOriginalRotation); -} - -void WCSimDetectorConstruction::DescribeAndDescendGeometry -(G4VPhysicalVolume* aPV ,int aDepth, int replicaNo, - const G4Transform3D& aTransform, DescriptionFcnPtr registrationRoutine) -{ - - // Calculate the new transform relative to the old transform - G4Transform3D* transform = - new G4Transform3D(*(aPV->GetObjectRotation()), aPV->GetTranslation()); - - G4Transform3D newTransform = aTransform * (*transform); - delete transform; - - /* - G4cout << aPV->GetObjectRotation()->getPhi() << " " << aPV->GetObjectRotation()->getTheta() << " " - << aPV->GetObjectRotation()->getPsi() << G4endl; - G4cout << aPV->GetTranslation().x() << " " << aPV->GetTranslation().y() << " " - << aPV->GetTranslation().z() << G4endl; - */ - - // Call the routine we use to print out geometry descriptions, make - // tables, etc. The routine was passed here as a parameter. It needs to - // be a member function of the class - - (this->*registrationRoutine)(aPV, aDepth, replicaNo, newTransform); - - int nDaughters = aPV->GetLogicalVolume()->GetNoDaughters(); - - for (int iDaughter = 0; iDaughter < nDaughters; iDaughter++) - TraverseReplicas(aPV->GetLogicalVolume()->GetDaughter(iDaughter), - aDepth+1, newTransform, registrationRoutine); -} - - - -G4double WCSimDetectorConstruction::GetGeo_Dm(G4int i){ - if (i>=0&&i<=2){ - return WCCylInfo[i]; - }else if(i==3){ - return innerradius; - }else{ - return 0; - } -} diff --git a/libWCSIM/src/#WCSimWCDigitizer.cc# b/libWCSIM/src/#WCSimWCDigitizer.cc# deleted file mode 100644 index 28ddac4..0000000 --- a/libWCSIM/src/#WCSimWCDigitizer.cc# +++ /dev/null @@ -1,384 +0,0 @@ -#include "WCSimWCDigitizer.hh" -#include "WCSimWCPMT.hh" -#include "WCSimWCDigi.hh" -#include "WCSimWCHit.hh" -#include "G4EventManager.hh" -#include "G4Event.hh" -#include "G4SDManager.hh" -#include "G4DigiManager.hh" -#include "G4ios.hh" -#include "G4RotationMatrix.hh" -#include "G4ThreeVector.hh" - -#include "WCSimDetectorConstruction.hh" -#include "WCSimPmtInfo.hh" -#include "WCSimDarkRateMessenger.hh" - -#include -// for memset -#include - -#ifndef NPMTS_VERBOSE -#define NPMTS_VERBOSE 10 -#endif - - -// ******************************************* -// BASE CLASS -// ******************************************* - -#ifndef WCSIMWCDIGITIZER_VERBOSE -#define WCSIMWCDIGITIZER_VERBOSE -#endif - -WCSimWCDigitizerBase::WCSimWCDigitizerBase(G4String name, - WCSimDetectorConstruction* inDetector, - WCSimWCDAQMessenger* myMessenger, - DigitizerType_t digitype, - G4String detectorElement) - :G4VDigitizerModule(name), myDetector(inDetector), DAQMessenger(myMessenger), DigitizerType(digitype), DigitizerClassName(""), detectorElement(detectorElement) -{ - G4String colName; - if(detectorElement=="tank") colName = "WCDigitizedStoreCollection"; - else if(detectorElement=="tankPMT2") colName = "WCDigitizedStoreCollection2"; - collectionName.push_back(colName); - ReInitialize(); - - if(DAQMessenger == NULL) { - G4cerr << "WCSimWCDAQMessenger pointer is NULL when passed to WCSimWCDigitizerBase constructor. Exiting..." - << G4endl; - exit(-1); - } -} - -WCSimWCDigitizerBase::~WCSimWCDigitizerBase(){ -} - -void WCSimWCDigitizerBase::GetVariables() -{ - //set the options to digitizer-specific defaults - DigitizerDeadTime = GetDefaultDeadTime(); - DigitizerIntegrationWindow = GetDefaultIntegrationWindow(); - - //read the .mac file to override them - if(DAQMessenger != NULL) { - DAQMessenger->TellMeAboutTheDigitizer(this); - DAQMessenger->SetDigitizerOptions(); - } - else { - G4cerr << "WCSimWCDAQMessenger pointer is NULL when used in WCSimWCDigitizerBase::GetVariables(). Exiting..." - << G4endl; - exit(-1); - } - - G4cout << "Using digitizer deadtime " << DigitizerDeadTime << " ns" << G4endl; - G4cout << "Using digitizer integration window " << DigitizerIntegrationWindow << " ns" << G4endl; -} - -void WCSimWCDigitizerBase::Digitize() -{ - //Input is WCSimWCDigitsCollection with raw PMT hits (photon + dark noise) - //Output is WCSimWCDigitsCollection with digitied PMT hits - - //Clear the DigiStoreHitMap - ReInitialize(); - - //Temporary Storage of Digitized hits which is passed to the trigger - DigiStore = new WCSimWCDigitsCollection(collectionName[0],collectionName[0]); - - G4DigiManager* DigiMan = G4DigiManager::GetDMpointer(); - - - // Get the PMT collection ID - G4String rawcollectionName; - if(detectorElement=="tank") rawcollectionName = "WCRawPMTSignalCollection"; - else if(detectorElement=="tankPMT2") rawcollectionName = "WCRawPMTSignalCollection2"; - G4int WCHCID = DigiMan->GetDigiCollectionID(rawcollectionName); - - // Get the PMT Digits collection - WCSimWCDigitsCollection* WCHCPMT = - (WCSimWCDigitsCollection*)(DigiMan->GetDigiCollection(WCHCID)); - - if (WCHCPMT) { - DigitizeHits(WCHCPMT); - } - - StoreDigiCollection(DigiStore); - -} - -bool WCSimWCDigitizerBase::AddNewDigit(int tube, int gate, float digihittime, float peSmeared, std::vector digi_comp) -{ - //gate is not a trigger, but just the position of the digit in the array - //inside the WCSimWCDigi object -#ifdef WCSIMWCDIGITIZER_VERBOSE - if(tube < NPMTS_VERBOSE) { - G4cout<<"Adding hit "< 0.0) { - if ( DigiStoreHitMap[tube] == 0) { - WCSimWCDigi* Digi = new WCSimWCDigi(); - Digi->SetTubeID(tube); - Digi->SetPe(gate,peSmeared); - Digi->AddPe(digihittime); - Digi->SetTime(gate,digihittime); - Digi->AddDigiCompositionInfo(digi_comp); - DigiStoreHitMap[tube] = DigiStore->insert(Digi); -#ifdef WCSIMWCDIGITIZER_VERBOSE - if(tube < NPMTS_VERBOSE) - G4cout << " NEW HIT" << G4endl; -#endif - } - else { - (*DigiStore)[DigiStoreHitMap[tube]-1]->SetPe(gate,peSmeared); - (*DigiStore)[DigiStoreHitMap[tube]-1]->SetTime(gate,digihittime); - (*DigiStore)[DigiStoreHitMap[tube]-1]->AddPe(digihittime); - (*DigiStore)[DigiStoreHitMap[tube]-1]->AddDigiCompositionInfo(digi_comp); -#ifdef WCSIMWCDIGITIZER_VERBOSE - if(tube < NPMTS_VERBOSE) - G4cout << " DEJA VU" << G4endl; -#endif - } - return true; - }//peSmeared > 0 - else { -#ifdef WCSIMWCDIGITIZER_VERBOSE - if(tube < NPMTS_VERBOSE) - G4cout << "DIGIT REJECTED with charge " << peSmeared - << " time " << digihittime << G4endl; -#endif - return false; - } -} - -void WCSimWCDigitizerBase::SaveOptionsToOutput(WCSimRootOptions * wcopt) -{ - wcopt->SetDigitizerClassName(DigitizerClassName); - wcopt->SetDigitizerDeadTime(DigitizerDeadTime); - wcopt->SetDigitizerIntegrationWindow(DigitizerIntegrationWindow); -} - - -// ******************************************* -// DERIVED CLASS -// ******************************************* - -WCSimWCDigitizerSKI::WCSimWCDigitizerSKI(G4String name, - WCSimDetectorConstruction* myDetector, - WCSimWCDAQMessenger* myMessenger, - G4String detectorElement) - : WCSimWCDigitizerBase(name, myDetector, myMessenger, kDigitizerSKI, detectorElement) -{ - DigitizerClassName = "SKI"; - GetVariables(); -} - -WCSimWCDigitizerSKI::~WCSimWCDigitizerSKI(){ -} - -void WCSimWCDigitizerSKI::DigitizeHits(WCSimWCDigitsCollection* WCHCPMT) { - G4cout << "WCSimWCDigitizerSKI::DigitizeHits START WCHCPMT->entries() = " << WCHCPMT->entries() << G4endl; - - double BQcounterInTime = 0; - double BQcounterInTimeAll = 0; - double BQcounterThreshold = 0; - double BQcounterThresholdAll = 0; - double BQcounterTotalCharge = 0; - //loop over entires in WCHCPMT, each entry corresponds to - //the photons on one PMT - for (G4int i = 0 ; i < WCHCPMT->entries() ; i++) - { - - //We must first sort hits by PMT in time. This is very important as the code - //assumes that each hit is in time order from lowest to highest. - (*WCHCPMT)[i]->SortArrayByHitTime(); - int tube = (*WCHCPMT)[i]->GetTubeID(); -#ifdef WCSIMWCDIGITIZER_VERBOSE - if(tube < NPMTS_VERBOSE) { - G4cout << "tube " << tube - << " totalpe = " << (*WCHCPMT)[i]->GetTotalPe() - << " times"; - for(int ip = 0; ip < (*WCHCPMT)[i]->GetTotalPe(); ip++) - G4cout << " " << (*WCHCPMT)[i]->GetTime(ip); - /* - G4cout<<" parents =\t"; - for( G4int ip = 0 ; ip < (*WCHCPMT)[i]->GetTotalPe() ; ip++) - G4cout << " " << (*WCHCPMT)[i]->GetParentID(ip); - */ - G4cout < digi_comp; - - BQcounterTotalCharge+=(*WCHCPMT)[i]->GetTotalPe(); - //loop over the hits on this PMT - for( G4int ip = 0 ; ip < (*WCHCPMT)[i]->GetTotalPe() ; ip++) - { - float time = (*WCHCPMT)[i]->GetTime(ip); - float pe = (*WCHCPMT)[i]->GetPe(ip); - - BQcounterInTimeAll++; - //start the integration time as the time of the first hit - //Hits must be sorted in time - if(ip==0) { - intgr_start=time; - peSmeared = 0; - //Set the limits of the integration window [intgr_start,upperlimit] - upperlimit = intgr_start + DigitizerIntegrationWindow; - } - -#ifdef WCSIMWCDIGITIZER_VERBOSE - if(tube < NPMTS_VERBOSE) - G4cout << "ip " << ip - << " pe " << pe - << " time " << time - << " intgr_start " << intgr_start - << " upperlimit " << upperlimit - << G4endl; -#endif - - bool MakeDigit = false; - if(time >= intgr_start && time <= upperlimit) { - peSmeared += pe; - photon_unique_id = ip; - digi_comp.push_back(photon_unique_id); - -#ifdef WCSIMWCDIGITIZER_VERBOSE - if(tube < NPMTS_VERBOSE) - G4cout<<"INFO: time "<GetTotalPe()){ - MakeDigit = true; - } - BQcounterInTime ++; - } - //if ensures we don't append the same digit multiple times while in the integration window - else if(digi_comp.size()) { - //this hit is outside the integration time window. - //Charge integration is over. The is now a DigitizerDeadTime ns dead - //time period where no hits can be recorded - MakeDigit = true; - } - - //Make digit here - if(MakeDigit) { - int iflag; - WCSimWCDigitizerSKI::Threshold(peSmeared,iflag); - - BQcounterThresholdAll+=peSmeared; - - //Check if previous hit passed the threshold. If so we will digitize the hit - if(iflag == 0) { - //digitize hit - peSmeared *= efficiency; - bool accepted = WCSimWCDigitizerBase::AddNewDigit(tube, digi_unique_id, intgr_start, peSmeared, digi_comp); - if(accepted) { - digi_unique_id++; - BQcounterThreshold+=peSmeared; - } - assert(digi_comp.size()); - digi_comp.clear(); - } - else { - //reject hit -#ifdef WCSIMWCDIGITIZER_VERBOSE - if(tube < NPMTS_VERBOSE) - G4cout << "DIGIT REJECTED with time " << intgr_start << G4endl; -#endif - digi_comp.clear(); - } - } - - //Now try and deal with the next hit - if(time > upperlimit && time <= upperlimit + DigitizerDeadTime) { - //Now we need to reject hits that are after the integration - //period to the end of the veto signal - continue; - } - else if(time > upperlimit + DigitizerDeadTime){ -#ifdef WCSIMWCDIGITIZER_VERBOSE - if(tube < NPMTS_VERBOSE) - G4cout<<"*** PREPARING FOR >1 DIGI ***"<GetTotalPe()) { - int iflag; - WCSimWCDigitizerSKI::Threshold(peSmeared,iflag); - if(iflag == 0) { - //digitize hit - peSmeared *= efficiency; - bool accepted = WCSimWCDigitizerBase::AddNewDigit(tube, digi_unique_id, intgr_start, peSmeared, digi_comp); - if(accepted) { - digi_unique_id++; - } - assert(digi_comp.size()); - digi_comp.clear(); - } - else { - //reject hit -#ifdef WCSIMWCDIGITIZER_VERBOSE - if(tube < NPMTS_VERBOSE) - G4cout << "DIGIT REJECTED with time " << intgr_start << G4endl; -#endif - digi_comp.clear(); - } - } - } - }//ip (totalpe) - }//i (WCHCPMT->entries()) - G4cout << "B.Q Debug, Proportions of pe in time = " << BQcounterInTime/(BQcounterInTimeAll==0?1:BQcounterInTimeAll) << ", and passing threshold = " << BQcounterThreshold/(BQcounterThresholdAll==0?1:BQcounterThresholdAll) << G4endl; - G4cout << "B.Q Debug, Total Charge = " << BQcounterTotalCharge << ", charge passing cuts = " << BQcounterThreshold << G4endl; - G4cout<<"WCSimWCDigitizerSKI::DigitizeHits END DigiStore->entries() " << DigiStore->entries() << "\n"; - -#ifdef WCSIMWCDIGITIZER_VERBOSE - G4cout<<"\n\n\nCHECK DIGI COMP:"<entries() ; idigi++){ - int tubeid = (*DigiStore)[idigi]->GetTubeID(); - if(tubeid < NPMTS_VERBOSE) { - std::map< int, std::vector > comp = (*DigiStore)[idigi]->GetDigiCompositionInfo(); - for(size_t i = 0; i < comp.size(); i++){ - G4cout << "tube " << tubeid - << " gate " << i << " p_id"; - for(size_t iv = 0; iv < comp[i].size(); iv++) { - G4cout << " " << comp[i][iv]; - }//iv - G4cout << G4endl; - }//i - } - }//idigi -#endif -} - diff --git a/libWCSIM/src/GdCaptureGammas.cc b/libWCSIM/src/GdCaptureGammas.cc deleted file mode 100755 index 7277cb1..0000000 --- a/libWCSIM/src/GdCaptureGammas.cc +++ /dev/null @@ -1,263 +0,0 @@ - -/////////////////////////////////////////////////////////////////////////////// -// Spectrum of radiative neutron capture by Gadolinium -// version 1.0.0 -// (Sep.09.2005) - -// Author : karim.zbiri@subatech.in2p3.fr - -//This file contains the gammas spectrum produced in radiative capture of -//neutrons by gadolinium. -//This work is adapted from earlier work in geant3 for chooz 1. - -//First version by Karim Zbiri, April, 2005 -/////////////////////////////////////////////////////////////////////////////// - - -#include "GdCaptureGammas.hh" -#include "Randomize.hh" -#include -#include "G4Gamma.hh" -using namespace std; - -GdCaptureGammas::GdCaptureGammas () {} - -GdCaptureGammas::~GdCaptureGammas () {} - -G4ReactionProductVector * GdCaptureGammas::GetGammas(G4int isotopeA) -{ - G4ReactionProductVector * theGammas = new G4ReactionProductVector; - vector nrj = Initialize(isotopeA); - for(unsigned int i=0; iSetDefinition( G4Gamma::Gamma() ); - - G4double costheta = 2.*G4UniformRand()-1; - G4double theta = acos(costheta); - G4double phi = CLHEP::twopi*G4UniformRand(); - G4double sinth = sin(theta); - - theOne->SetTotalEnergy( nrj[i] ); - G4ThreeVector temp(nrj[i]*sinth*cos(phi), nrj[i]*sinth*sin(phi),nrj[i]*cos(theta) ); - theOne->SetMomentum( temp ) ; - theGammas->push_back(theOne); - } - return theGammas; -} - -vector GdCaptureGammas::Initialize(G4int isotopeA) -{ - vector Eg; - //double DefElem = G4UniformRand()*48.80; - //if(DefElem < 39.83) - if(isotopeA == 157) - Eg = CapGad157(); - else if(isotopeA == 155) - Eg = CapGad155(); - else { - G4cerr << "Unexpected Gd isotope A=" << isotopeA << ". Using 157 instead." << G4endl; - Eg = CapGad157(); - } - - return Eg; -} - -vector GdCaptureGammas::CapGad155() -{ - // gammas from GAD155 - // either 2 gammas - // either a continuum - // total energy = 8.46 MeV - - Elevel = 8.46; - double Nlevel = G4UniformRand(); - vector Egammas; - - if(Nlevel > 0.023) Egammas=continuum(); - else if (Nlevel >= 0.013) Egammas=casca1Gd155(); - else Egammas=casca2Gd155(); - - return Egammas; -} - -vector GdCaptureGammas::CapGad157() -{ - // gammas from GAD155 - // either 2 gammas - // either a continuum - // total energy = 7.87 MeV - - Elevel = 7.87; - double Nlevel = G4UniformRand(); - vector Egammas; - - if(Nlevel > 0.068) Egammas=continuum(); - else if(Nlevel < 0.037) Egammas=casca1Gd157(); - else if(Nlevel < 0.05) Egammas=casca2Gd157(); - else if(Nlevel >= 0.05) Egammas=casca3Gd157(); - - return Egammas; -} - -vector GdCaptureGammas::casca1Gd155() -{ - vector energy; - energy.push_back(7.33); - energy.push_back(1.17); - return energy; -} - -vector GdCaptureGammas::casca2Gd155() -{ - vector energy; - energy.push_back(6.44); - energy.push_back(2.18); - return energy; -} - -vector GdCaptureGammas::casca1Gd157() -{ - vector energy; - energy.push_back(6.74); - energy.push_back(1.11); - return energy; -} - -vector GdCaptureGammas::casca2Gd157() -{ - vector energy; - energy.push_back(5.62); - energy.push_back(2.25); - return energy; -} - -vector GdCaptureGammas::casca3Gd157() -{ - vector energy; - energy.push_back(5.88); - energy.push_back(1.99); - return energy; -} - - -vector GdCaptureGammas::continuum() -{ - // continuum part of gadolinium - //cross sections - vector energy; - const double eps=0.0001,bint=0.01; - const int ngadbin=750; - float sigfond,sigex1,sigftot,sigcont,sigtot; - double dexlevel,auxe,hasard,cint,Eneuve; - int isigma; - do - { - //first excited level and ground level - sigfond=pow(Elevel,3); - sigex1=pow(Elevel-1,3); - sigftot=sigfond+sigex1; - - //continuum - auxe=(Elevel-2.)/bint; - isigma=int(auxe+eps); - sigcont=cumule(isigma); - sigtot=sigfond+sigex1+sigcont; - dexlevel=G4UniformRand()*sigtot; - if(dexlevel < sigfond) - { - energy.push_back(Elevel); Elevel =0.; - return energy;} - if((dexlevel>= sigfond) && (dexlevel <= sigftot)) { - energy.push_back(Elevel-1); - energy.push_back(1); - Elevel=0.; - return energy;} - if(dexlevel > sigftot) - { - hasard=G4UniformRand()*sigcont; - for(int i=0;ihasard) - { - if(Elevel>Eneuve) - { - energy.push_back(Elevel-Eneuve); - Elevel=Eneuve; - } - if(Elevel<2.) exit(0); - if(Elevel <= 2.01) {energy.push_back(Elevel);Elevel =0.; - return energy;} - break; - } - if(i==ngadbin-1) exit(0); - } - } - } while(Elevel > 2.01); - //energy.push_back(Elevel); - return energy; -} - -double GdCaptureGammas::cumule(int ienerg) -{ -// computes the integrated probability from the threshold -// to the energy of indice ienerg - -// input : IENERG indice for the energy with NGADBIN intervalles -// of width BINT - -// output : integrated probabilities cumule - - double norm,A,A2,A4,A6,T1,T2,T3,T4,xi; - // const double eps=0.0001; - const int ngadbin=750; - if(ienerg>ngadbin-1) exit(0); - intc(); - norm=2./(pow(sqrt(37.),8)); - A=sqrt(37.)*sqrt(Elevel-2.); - A2=pow(A,2); - A4=pow(A,4); - A6=pow(A,6); - T1=xint[0][ienerg]*A6; - T2=-3.*xint[1][ienerg]*A4; - T3=3.*xint[2][ienerg]*A2; - T4=-1.0*xint[3][ienerg]; - xi=T1+T2+T3+T4; - return norm*xi; -} - -void GdCaptureGammas::intc() -{ -// computes the table xint(4,750) -// integration -// of the function (X**N) * exp(X) - - -// output : N=1 comes in XINT(1,75) -// 2 2 -// 3 3 -// 4 4 - - double aux[7],ener,xk; - const double ngadbin=750,bint=0.01; - for(int i=0;iGetName()!="Gadolinium") - if((*(G4Element::GetElementTable()))[i]->GetZ() != 64) - { - theCapture[i].Init((*(G4Element::GetElementTable()))[i], dirName); - G4cout<<(*(G4Element::GetElementTable()))[i]->GetName()<GetName()<::iterator - ite = (*theCapture).begin() ; ite != (*theCapture).end() ; ite++ ) - { - delete *ite; - } - (*theCapture).clear(); - } - - #include "G4NeutronHPThermalBoost.hh" - G4HadFinalState * GdNeutronHPCapture::ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& aNucleus ) - { - G4NeutronHPManager::GetInstance()->OpenReactionWhiteBoard(); - if(getenv("NeutronHPCapture")) G4cout <<" ####### GdNeutronHPCapture called"<GetNumberOfElements(); - G4int index = theMaterial->GetElement(0)->GetIndex(); - if(n!=1) - { - xSec = new G4double[n]; - G4double sum=0; - G4int i; - const G4double * NumAtomsPerVolume = theMaterial->GetVecNbOfAtomsPerVolume(); - G4double rWeight; - G4NeutronHPThermalBoost aThermalE; - for (i=0; iGetElement(i)->GetIndex(); - rWeight = NumAtomsPerVolume[i]; - //G4cout << theMaterial->GetElement(i)->GetName() << G4endl; - xSec[i] = (*(*theCapture)[index]).GetXsec(aThermalE.GetThermalEnergy(aTrack, - theMaterial->GetElement(i), - theMaterial->GetTemperature())); - xSec[i] *= rWeight; - sum+=xSec[i]; - } - G4double random = G4UniformRand(); - G4double running = 0; - for (i=0; iGetElement(i)->GetIndex(); - //if(random<=running/sum) break; - if( sum == 0 || random <= running/sum ) break; - } - if(i==n) i=std::max(0, n-1); - delete [] xSec; - } - //return theCapture[index].ApplyYourself(aTrack); - //G4HadFinalState* result = theCapture[index].ApplyYourself(aTrack); - G4HadFinalState* result = (*(*theCapture)[index]).ApplyYourself(aTrack); - - //Overwrite target parameters - aNucleus.SetParameters(G4NeutronHPManager::GetInstance()->GetReactionWhiteBoard()->GetTargA(),G4NeutronHPManager::GetInstance()->GetReactionWhiteBoard()->GetTargZ()); - const G4Element* target_element = (*G4Element::GetElementTable())[index]; - const G4Isotope* target_isotope=NULL; - G4int iele = target_element->GetNumberOfIsotopes(); - for ( G4int j = 0 ; j != iele ; j++ ) { - target_isotope=target_element->GetIsotope( j ); - if ( target_isotope->GetN() == G4NeutronHPManager::GetInstance()->GetReactionWhiteBoard()->GetTargA() ) break; - } - //G4cout << "Target Material of this reaction is " << theMaterial->GetName() << G4endl; - //G4cout << "Target Element of this reaction is " << target_element->GetName() << G4endl; - //G4cout << "Target Isotope of this reaction is " << target_isotope->GetName() << G4endl; - aNucleus.SetIsotope( target_isotope ); - - G4NeutronHPManager::GetInstance()->CloseReactionWhiteBoard(); - return result; - } - -void GdNeutronHPCapture::BuildPhysicsTable(const G4ParticleDefinition&) -{ - - if ( !G4Threading::IsWorkerThread() ){ - - if ( theCapture == NULL ) theCapture = new std::vector; - - if ( numEle == (G4int)G4Element::GetNumberOfElements() ) return; - - if ( theCapture->size() == G4Element::GetNumberOfElements() ) { - numEle = G4Element::GetNumberOfElements(); - return; - } - - - G4cout << "Capture : start of construction!!!!!!!!" << G4endl; - if ( !getenv("G4NEUTRONHPDATA") ) - throw G4HadronicException(__FILE__, __LINE__, "Please setenv G4NEUTRONHPDATA to point to the neutron cross-section files."); - dirName = getenv("G4NEUTRONHPDATA"); - G4String tString = "/Capture"; - dirName = dirName + tString; - G4cout << "+++++++++++++++++++++++++++++++++++++++++++++++++" << G4endl; - // G4cout <<"Disname="<GetName()!="Gadolinium") - G4cout << (*(G4Element::GetElementTable()))[i]->GetName() << G4endl; - (*theCapture).push_back( new G4NeutronHPChannel ); - (*(*theCapture)[i]).Init((*(G4Element::GetElementTable()))[i], dirName); - if ((*(G4Element::GetElementTable()))[i]->GetZ() != 64) { - (*(*theCapture)[i]).Register(theFS); - // theCapture[i].Register(theGdFS); - } else { - (*(*theCapture)[i]).Register(theGdFS); - } - } - delete theFS; - delete theGdFS; - } - numEle = G4Element::GetNumberOfElements(); - -} \ No newline at end of file diff --git a/libWCSIM/src/GdNeutronHPCaptureFS.cc b/libWCSIM/src/GdNeutronHPCaptureFS.cc deleted file mode 100644 index 3f479d0..0000000 --- a/libWCSIM/src/GdNeutronHPCaptureFS.cc +++ /dev/null @@ -1,213 +0,0 @@ - - -/////////////////////////////////////////////////////////////////////////////// -// Spectrum of radiative neutron capture by Gadolinium -// version 1.0.0 -// (Sep.09.2005) - -// Author : karim.zbiri@subatech.in2p3.fr - -//Modified class from original G4NeutronHPCaptureFS class to deexcite and -//add correctly the secondary to the hadronic final state - -// Karim Zbiri, Aug, 2005 -/////////////////////////////////////////////////////////////////////////////// - - - -#include -#include "GdNeutronHPCaptureFS.hh" -#include "G4Gamma.hh" -#include "G4ReactionProduct.hh" -#include "G4Nucleus.hh" -#include "G4PhotonEvaporation.hh" -#include "G4Fragment.hh" -#include "G4ParticleTable.hh" -#include "G4NeutronHPDataUsed.hh" -#include "G4SystemOfUnits.hh" - - - - G4HadFinalState * GdNeutronHPCaptureFS::ApplyYourself(const G4HadProjectile & theTrack) - { - if ( theResult.Get() == NULL ) theResult.Put( new G4HadFinalState ); - theResult.Get()->Clear(); - - G4int i; - // prepare neutron - G4double eKinetic = theTrack.GetKineticEnergy(); - const G4HadProjectile *incidentParticle = &theTrack; - theNeutron = const_cast(incidentParticle->GetDefinition()) ; - theNeutron.SetMomentum( incidentParticle->Get4Momentum().vect() ); - theNeutron.SetKineticEnergy( eKinetic ); - -// prepare target - G4double eps = 0.0001; - if(targetMass<500*MeV) - targetMass = ( G4NucleiProperties::GetNuclearMass( static_cast(theBaseA+eps) , static_cast(theBaseZ+eps) )) / - G4Neutron::Neutron()->GetPDGMass(); - G4ThreeVector neutronVelocity = 1./G4Neutron::Neutron()->GetPDGMass()*theNeutron.GetMomentum(); - G4double temperature = theTrack.GetMaterial()->GetTemperature(); - theTarget = aNucleus.GetBiasedThermalNucleus(targetMass, neutronVelocity, temperature); - -// go to nucleus rest system - theNeutron.Lorentz(theNeutron, -1*theTarget); - eKinetic = theNeutron.GetKineticEnergy(); - -// dice the photons - - G4ReactionProductVector * thePhotons = NULL; - thePhotons = theFinalgammas.GetGammas(theBaseA); - - // update the nucleus - - G4ThreeVector aCMSMomentum = theNeutron.GetMomentum()+theTarget.GetMomentum(); - G4LorentzVector p4(aCMSMomentum, theTarget.GetTotalEnergy() + theNeutron.GetTotalEnergy()); - nucleus = new G4Fragment(static_cast(theBaseA+1), static_cast(theBaseZ) ,p4); - - // G4Fragment * theOne = NULL; - - G4int nPhotons = 0; - if(thePhotons!=NULL) nPhotons=thePhotons->size(); - - - for(i=0;ioperator[](i)->GetMomentum()); - G4LorentzVector gamma(pGamma,thePhotons->operator[](i)->GetTotalEnergy()); - theOne= new G4Fragment(gamma,G4Gamma::GammaDefinition()); - UpdateNucleus(theOne,thePhotons->operator[](i)->GetTotalEnergy()); - } - - theTwo = new G4DynamicParticle; - theTwo->SetDefinition(G4IonTable::GetIonTable() - ->GetIon(static_cast(theBaseZ), static_cast(theBaseA+1), 0)); - theTwo->SetMomentum(nucleus->GetMomentum()); - - //delete theOne; - -// add them to the final state - - G4int nParticles = nPhotons; - if(1==nPhotons) nParticles = 2; - - // back to lab system - for(i=0; ioperator[](i)->Lorentz(*(thePhotons->operator[](i)), theTarget); - } - - // Recoil, if only one gamma - if (1==nPhotons) - { - G4DynamicParticle * theOne = new G4DynamicParticle; - G4ParticleDefinition * aRecoil = G4IonTable::GetIonTable() - ->GetIon(static_cast(theBaseZ), static_cast(theBaseA+1), 0); - theOne->SetDefinition(aRecoil); - // Now energy; - // Can be done slightly better @ - G4ThreeVector aMomentum = theTrack.Get4Momentum().vect() - +theTarget.GetMomentum() - -thePhotons->operator[](0)->GetMomentum(); - - G4ThreeVector theMomUnit = aMomentum.unit(); - G4double aKinEnergy = theTrack.GetKineticEnergy() - +theTarget.GetKineticEnergy(); // gammas come from Q-value - G4double theResMass = aRecoil->GetPDGMass(); - G4double theResE = aRecoil->GetPDGMass()+aKinEnergy; - G4double theAbsMom = std::sqrt(theResE*theResE - theResMass*theResMass); - G4ThreeVector theMomentum = theAbsMom*theMomUnit; - theOne->SetMomentum(theMomentum); - theResult.Get()->AddSecondary(theOne); - } - - // Now fill in the gammas. - for(i=0; iSetDefinition(thePhotons->operator[](i)->GetDefinition()); - theOne->SetMomentum(thePhotons->operator[](i)->GetMomentum()); - theResult.Get()->AddSecondary(theOne); - delete thePhotons->operator[](i); - } - delete thePhotons; - - //ADD deexcited nucleus - - theResult.Get()->AddSecondary(theTwo); - - // clean up the primary neutron - theResult.Get()->SetStatusChange(stopAndKill); - return theResult.Get(); - } - - - -void GdNeutronHPCaptureFS::UpdateNucleus( const G4Fragment* gamma , G4double eGamma ) -{ - - G4LorentzVector p4Gamma = gamma->GetMomentum(); - G4ThreeVector pGamma(p4Gamma.vect()); - - G4LorentzVector p4Nucleus(nucleus->GetMomentum() ); - - G4double m1 = G4IonTable::GetIonTable()->GetIonMass(static_cast(nucleus->GetZ()), - static_cast(nucleus->GetA())); - G4double m2 = nucleus->GetZ() * G4Proton::Proton()->GetPDGMass() + - (nucleus->GetA()- nucleus->GetZ())*G4Neutron::Neutron()->GetPDGMass(); - - G4double Mass = std::min(m1,m2); - - G4double newExcitation = p4Nucleus.mag() - Mass - eGamma; - - // G4cout<<" Egamma = "<(A), static_cast(Z), M, dirName, tString, dbool); - - G4String filename = aFile.GetName(); - theBaseA = A; - theBaseZ = G4int(Z+.5); - if(!dbool || ( Z<2.5 && ( std::abs(theBaseZ - Z)>0.0001 || std::abs(theBaseA - A)>0.0001))) - { - hasAnyData = false; - hasFSData = false; - hasXsec = false; - return; - } - std::ifstream theData(filename, std::ios::in); - - hasFSData = theFinalStatePhotons.InitMean(theData); - if(hasFSData) - { - targetMass = theFinalStatePhotons.GetTargetMass(); - theFinalStatePhotons.InitAngular(theData); - theFinalStatePhotons.InitEnergies(theData); - } - theData.close(); - } - - diff --git a/libWCSIM/src/TJNuBeamFlux.cc b/libWCSIM/src/TJNuBeamFlux.cc deleted file mode 100644 index 6fb3199..0000000 --- a/libWCSIM/src/TJNuBeamFlux.cc +++ /dev/null @@ -1,111 +0,0 @@ -#include "TJNuBeamFlux.hh" -#include - -//_______________________________________________________________________________________ -RooTrackerVtxBase::RooTrackerVtxBase() : - TObject() -{ -} -//_______________________________________________________________________________________ -JNuBeamFlux::JNuBeamFlux() : - RooTrackerVtxBase() -{ - NuFileName = new TObjString("Not-set"); - this->Reset(); -} -//_______________________________________________________________________________________ -JNuBeamFlux::~JNuBeamFlux() -{ - if(NuFileName != NULL) { delete NuFileName; NuFileName = NULL; } -} -//_______________________________________________________________________________________ -void JNuBeamFlux::Copy(const JNuBeamFlux * flux) -{ - NuFileName->SetString(flux->NuFileName->GetString()); - NuFluxEntry = flux->NuFluxEntry; - NuParentPdg = flux->NuParentPdg; - NuParentDecMode = flux->NuParentDecMode; - NuCospibm = flux->NuCospibm; - NuNorm = flux->NuNorm; - NuCospi0bm = flux->NuCospi0bm; - NuRnu = flux->NuRnu; - NuIdfd = flux->NuIdfd; - NuGipart = flux->NuGipart; - NuGamom0 = flux->NuGamom0; - NuEnusk = flux->NuEnusk; - NuNormsk = flux->NuNormsk; - NuAnorm = flux->NuAnorm; - NuVersion = flux->NuVersion; - NuTuneid = flux->NuTuneid; - NuNtrig = flux->NuNtrig; - NuPint = flux->NuPint; - NuRand = flux->NuRand; - for(int i=0;i<2;i++){ - NuXnu [i] = flux->NuXnu[i]; - NuBpos[i] = flux->NuBpos[i]; - NuBtilt[i] = flux->NuBtilt[i]; - NuBrms[i] = flux->NuBrms[i]; - NuEmit[i] = flux->NuEmit[i]; - NuAlpha[i] = flux->NuAlpha[i]; - } - for(int i=0;i<3;i++){ - NuGpos0[i] = flux->NuGpos0[i]; - NuGvec0[i] = flux->NuGvec0[i]; - NuHcur[i] = flux->NuHcur[i]; - } - for(int i=0;i<4;i++){ - NuParentDecP4[i] = flux->NuParentDecP4[i]; - NuParentDecX4[i] = flux->NuParentDecX4[i]; - NuParentProP4[i] = flux->NuParentProP4[i]; - NuParentProX4[i] = flux->NuParentProX4[i]; - } - NuNg = flux->NuNg; - for(int i=0;iNuGcosbm[i]; - NuGdistc[i] = flux->NuGdistc[i]; - NuGdistal[i] = flux->NuGdistal[i]; - NuGdistti[i] = flux->NuGdistti[i]; - NuGdistfe[i] = flux->NuGdistfe[i]; - NuGpid[i] = flux->NuGpid[i]; - NuGmec[i] = flux->NuGmec[i]; - NuGmat[i] = flux->NuGmat[i]; - for(int j=0;j<3;j++) { - NuGp[i][j] = flux->NuGp[i][j]; - NuGv[i][j] = flux->NuGv[i][j]; - } - } -} -//_______________________________________________________________________________________ -void JNuBeamFlux::Reset() -{ - NuFluxEntry = -1; - NuFileName->SetString("Not-set"); - - NuParentPdg = 0; - NuParentDecMode = -1; - NuCospibm = NuNorm = NuCospi0bm = NuRnu = -999999.; - NuIdfd = NuGipart = -999999; - NuGamom0 = NuEnusk = NuNormsk = NuAnorm = NuVersion = -999999.; - NuTuneid = NuNtrig = NuPint = NuRand = -999999; - for(int i=0;i<2;i++){ - NuXnu [i] = NuBpos[i] = NuBtilt[i] = NuBrms[i] = NuEmit[i] = NuAlpha[i] = -999999.; - } - for(int i=0;i<3;i++) NuGpos0[i] = NuGvec0[i] = NuHcur[i] = -999999.; - for(int i=0;i<4;i++) NuParentDecP4[i] = NuParentDecX4[i] = NuParentProP4[i] = NuParentProX4[i] = -999999.; - NuNg = -1; - for(int i=0;i -#include - -#include "TNRooTrackerVtx.hh" - -using std::endl; -using std::cout; -using std::setw; -using std::setprecision; -using std::setfill; -using std::ios; - -ClassImp(NRooTrackerVtx) - -//_______________________________________________________________________________________ -NRooTrackerVtx::NRooTrackerVtx() : - JNuBeamFlux() -{ - this->Init(); -} -//_______________________________________________________________________________________ -NRooTrackerVtx::~NRooTrackerVtx() -{ - if(GeomPath != NULL) { delete GeomPath; GeomPath = NULL; } - if(GeneratorName != NULL) { delete GeneratorName; GeneratorName = NULL; } - if(EvtCode != NULL) { delete EvtCode; EvtCode = NULL; } - if(OrigFileName != NULL) { delete OrigFileName; OrigFileName = NULL; } - if(OrigTreeName != NULL) { delete OrigTreeName; OrigTreeName = NULL; } -} -//_______________________________________________________________________________________ -void NRooTrackerVtx::Copy(const NRooTrackerVtx * event) -{ - GeomPath->SetString(event->GeomPath->GetString()); - GeneratorName->SetString(event->GeneratorName->GetString()); - EvtCode->SetString(event->EvtCode->GetString()); - OrigFileName->SetString(event->OrigFileName->GetString()); - OrigTreeName->SetString(event->OrigTreeName->GetString()); - - EvtNum = event->EvtNum; - EvtXSec = event->EvtXSec; - EvtDXSec = event->EvtDXSec; - EvtWght = event->EvtWght; - EvtProb = event->EvtProb; - OrigTreePOT = event->OrigTreePOT; - OrigEvtNum = event->OrigEvtNum; - TimeInSpill = event->TimeInSpill; - OrigTreeEntries = event->OrigTreeEntries; - TruthVertexID = event->TruthVertexID; - - for(int i=0; i < 4; i++) { - EvtVtx[i] = event->EvtVtx[i]; - } - - NuNorm = event->NuNorm; - NuEnusk = event->NuEnusk; - NuNormsk = event->NuNormsk; - NuAnorm = event->NuAnorm; - - StdHepN = event->StdHepN; - - //define the dynamic arrays - StdHepPdg = new int[StdHepN]; - StdHepStatus = new int[StdHepN]; - StdHepFd = new int[StdHepN]; - StdHepLd = new int[StdHepN]; - StdHepFm = new int[StdHepN]; - StdHepLm = new int[StdHepN]; - - for(int i=0; i< StdHepN; i++) - { - StdHepPdg [i] = event->StdHepPdgTemp [i]; - StdHepStatus[i] = event->StdHepStatusTemp [i]; - - StdHepFd [i] = event->StdHepFdTemp [i]; - StdHepLd [i] = event->StdHepLdTemp [i]; - StdHepFm [i] = event->StdHepFmTemp [i]; - StdHepLm [i] = event->StdHepLmTemp [i]; - - for(int j=0; j < 4; j++) { StdHepX4 [i][j] = event->StdHepX4 [i][j]; } - for(int j=0; j < 4; j++) { StdHepP4 [i][j] = event->StdHepP4 [i][j]; } - for(int j=0; j < 3; j++) { StdHepPolz [i][j] = event->StdHepPolz [i][j]; } - } - - NEnvc = event->NEnvc; - - //define the dynamic arrays - NEipvc = new int[NEnvc]; - NEiorgvc = new int[NEnvc]; - NEiflgvc = new int[NEnvc]; - NEicrnvc = new int[NEnvc]; - - for(int i=0; i< NEnvc; i++) { - NEipvc[i] = event->NEipvcTemp[i]; - NEiorgvc[i] = event->NEiorgvcTemp[i]; - NEiflgvc[i] = event->NEiflgvcTemp[i]; - NEicrnvc[i] = event->NEicrnvcTemp[i]; - for(int j=0; j < 3; j++) { NEpvc[i][j] = event->NEpvc[i][j]; } - } - - NEcrsx = event->NEcrsx; - NEcrsy = event->NEcrsy; - NEcrsz = event->NEcrsz; - NEcrsphi = event->NEcrsphi; - - NEnvert = event->NEnvert; - //define the dynamic array - NEiflgvert = new int[NEnvert]; - for(int i=0; i< NEnvert; i++) { - NEiflgvert[i] = event->NEiflgvertTemp[i] ; - for(int j=0; j < 3; j++) { NEposvert[i][j] = event->NEposvert[i][j]; } - } - - NEnvcvert = event->NEnvcvert; - - //define the dynamic arrays - NEabspvert = new float[NEnvcvert]; - NEabstpvert = new float[NEnvcvert]; - NEipvert = new int[NEnvcvert]; - NEiverti = new int[NEnvcvert]; - NEivertf = new int[NEnvcvert]; - - for(int i=0; i< NEnvcvert; i++) { - NEabspvert[i] = event->NEabspvertTemp[i]; - NEabstpvert[i] = event->NEabstpvertTemp[i]; - NEipvert[i] = event->NEipvertTemp[i]; - NEiverti[i] = event->NEivertiTemp[i]; - NEivertf[i] = event->NEivertfTemp[i]; - for(int j=0; j < 3; j++) { NEdirvert[i][j] = event->NEdirvert[i][j]; } - } - - // Remember to copy the flux info - JNuBeamFlux * flux = (JNuBeamFlux*) event; - JNuBeamFlux::Copy(flux); - -} -//_______________________________________________________________________________________ -void NRooTrackerVtx::Reset() -{ - - if (GeomPath ) GeomPath -> SetString("Not-set"); - if (GeneratorName) GeneratorName -> SetString("Not-set"); - if (EvtCode ) EvtCode -> SetString("Not-set"); - if (OrigFileName ) OrigFileName -> SetString("Not-set"); - if (OrigTreeName ) OrigTreeName -> SetString("Not-set"); - - EvtNum = -1; - EvtXSec = -1.0; - EvtDXSec = -1.0; - EvtWght = -1.0; - EvtProb = -1.0; - OrigTreePOT = -1.0; - OrigEvtNum = -1; - TimeInSpill = -1.0; - OrigTreeEntries = -1; - TruthVertexID = -1; - - for(int i=0; i < 4; i++){ - EvtVtx[i] = 0.0; - } - - StdHepN = 0; - - for(int i=0; iReset(); -} -//_______________________________________________________________________________________ -void NRooTrackerVtx::Print(const Option_t*) const -{ - - cout << "\nNRooTrackerMCTruth: " << endl; - cout << " --> GeneratorName = " << GeneratorName->GetString() << endl; - cout << " --> EvtCode = " << EvtCode->GetString() << endl; - cout << " --> GeomPath = " << GeomPath->GetString() << endl; - cout << " --> EvtNum = " << EvtNum << endl; - cout << " --> EvtXSec = " << EvtXSec << endl; - cout << " --> EvtDXSec = " << EvtDXSec << endl; - cout << " --> EvtWght = " << EvtWght << endl; - cout << " --> EvtProb = " << EvtProb << endl; - cout << " --> TruthVertexID = " << TruthVertexID << endl; - - - cout << "NRooTrackerStdHep:" << endl; - - for(int i=0; i pdgc: " - << " / ist: " - << setfill(' ') << setw(3) << StdHepStatus[i] - << " / mom: " - << setfill(' ') << setw(3) << StdHepFm[i] - << " / daughters: (" - << setfill(' ') << setw(3) << StdHepFd[i] - << ", " - << setfill(' ') << setw(3) << StdHepLd[i] - << ") / E = " - << setfill(' ') << setw(10) << StdHepP4[i][kNStdHepIdxE] - << ", px = " - << setfill(' ') << setw(10) << StdHepP4[i][kNStdHepIdxPx] - << ", py = " - << setfill(' ') << setw(10) << StdHepP4[i][kNStdHepIdxPy] - << ", pz = " - << setfill(' ') << setw(10) << StdHepP4[i][kNStdHepIdxPz] - << endl; - } - - cout << endl << "Jnu-beam pass through info:" << endl; - cout << " --> NuParentPdg = " << NuParentPdg << endl; - cout << " --> NuParentDecMode = " << NuParentDecMode << endl; - cout << " --> NuParentDecP4[4] = " << NuParentDecP4[0] << ", "<< NuParentDecP4[1] << ", " << NuParentDecP4[2] << ", " << NuParentDecP4[3] << endl; - cout << " --> NuParentDecX4[4] = " << NuParentDecX4[0] << ", "<< NuParentDecX4[1] << ", " << NuParentDecX4[2] << ", " << NuParentDecX4[3] << endl; - cout << " --> NuParentProP4[4] = " << NuParentProP4[0] << ", "<< NuParentProP4[1] << ", " << NuParentProP4[2] << ", " << NuParentProP4[3] << endl; - cout << " --> NuParentProX4[4] = " << NuParentProX4[0] << ", "<< NuParentProX4[1] << ", " << NuParentProX4[2] << ", " << NuParentProX4[3] << endl; - cout << " --> NuGipart = " << NuGipart << endl; - cout << " --> NuGamom0 = " << NuGamom0 << endl; - cout << " --> NuGpos0[3] = " << NuGpos0[0] << ", "<< NuGpos0[1] << ", " << NuGpos0[2] << endl; - cout << " --> NuGvec0[3] = " << NuGvec0[0] << ", "<< NuGvec0[1] << ", " << NuGvec0[2] << endl; - - cout << "NuEnusk = " << NuEnusk << endl; - cout << "NuNorm = " << NuNorm << endl; - cout << "NuNormsk = " << NuNormsk << endl; - cout << "NuAnorm = " << NuAnorm << endl; - - cout << "NuVersion = " << NuVersion << endl; - cout << "NuTuneid = " << NuTuneid << endl;; - cout << "NuPint = " << NuPint << endl; - - cout << "NuBpos[2] = "; - for(int ip = 0; ip < 2; ip++) - cout << NuBpos[ip] << " "; - cout << endl; - - cout << "NuBtilt[2] = "; - for(int ip = 0; ip < 2; ip++) - cout << NuBtilt[ip] << " "; - cout << endl; - - cout << "NuBrms[2] = "; - for(int ip = 0; ip < 2; ip++) - cout << NuBrms[ip] << " "; - cout << endl; - - cout << "NuEmit[2] = "; - for(int ip = 0; ip < 2; ip++) - cout << NuEmit[ip] << " "; - cout << endl; - - cout << "NuAlpha[2] = "; - for(int ip = 0; ip < 2; ip++) - cout << NuAlpha[ip] << " "; - cout << endl; - - cout << "NuHcur[3] = "; - for(int ip = 0; ip < 3; ip++) - cout << NuHcur[ip] << " "; - cout << endl; - - - cout << endl << "NEUT pass through info:" << endl << endl; - - cout << "NEnvc = " << NEnvc << endl; - cout << "ip NEipvc[ip] NEiorgvc[ip] NEiflgvc[ip] NEicrnvc[ip] NEpvc[ip][3]" << endl; - for(int ip = 0; ip < NEnvc; ip++) { - cout << ip << " " << NEipvc[ip] << " " << NEiorgvc[ip] << " "; - cout << NEiflgvc[ip] << " " << NEicrnvc[ip] << " "; - for(int ip2 = 0; ip2 < 3; ip2++){ - cout << NEpvc[ip][ip2] << " "; - } - cout << endl; - } - cout << endl; - - cout << "NEcrsx NEcrsy NEcrsz NEcrsphi" << endl; - cout << NEcrsx << " " << NEcrsy << " " << NEcrsz << " " << NEcrsphi << endl; - - cout << "NEnvert = " << NEnvert << endl; - cout << "iv NEiflgvert[iv] NEposvert[iv][3]" << endl; - - for(int iv = 0; iv < NEnvert; iv++){ - cout << iv << " " << NEiflgvert[iv] << " "; - for(int ip2 = 0; ip2 < 3; ip2++){ - cout << NEposvert[iv][ip2] << " "; - } - cout << endl; - } - cout << endl; - - cout << "NEnvcvert = " << NEnvcvert << endl; - cout << "ip NEabspvert[ip] NEabstpvert[ip] NEipvert[ip] NEiverti[ip] NEivertf[ip] NEdirvert[ip][3]" << endl; - for(int ip = 0; ip < NEnvcvert; ip++){ - cout << ip << " " << NEabspvert[ip] << " " << NEabstpvert[ip] << " " << NEipvert[ip] << " " << NEiverti[ip] << " " << NEivertf[ip] << " "; - for(int ip2 = 0; ip2 < 3; ip2++){ - cout << NEdirvert[ip][ip2] << " "; - } - cout << endl; - } - cout << endl; - - cout << endl << "Pass-through file info:" << endl; - cout << " --> OrigFileName = " << OrigFileName->GetString() << endl; - cout << " --> OrigTreeName = " << OrigTreeName->GetString() << endl; - cout << " --> OrigEvtNum = " << OrigEvtNum << endl; - cout << " --> TimeInSpill = " << TimeInSpill << endl; - cout << " --> OrigTreeEntries = " << OrigTreeEntries << endl; - cout << " --> OrigTreePOT = " << OrigTreePOT << endl; - -} -//_______________________________________________________________________________________ - diff --git a/libWCSIM/src/WCSimConstructCylinder.cc b/libWCSIM/src/WCSimConstructCylinder.cc deleted file mode 100644 index cdcf073..0000000 --- a/libWCSIM/src/WCSimConstructCylinder.cc +++ /dev/null @@ -1,1541 +0,0 @@ -// -*- mode:c++; tab-width:4; -*- -#include "WCSimDetectorConstruction.hh" - -#include "G4Material.hh" -#include "G4Element.hh" -#include "G4Box.hh" -#include "G4Tubs.hh" -#include "G4UnionSolid.hh" -#include "G4Sphere.hh" -#include "G4Trd.hh" -#include "G4IntersectionSolid.hh" -#include "G4Polyhedra.hh" -#include "G4LogicalVolume.hh" -#include "G4ThreeVector.hh" -#include "G4RotationMatrix.hh" -#include "G4PVReplica.hh" -#include "G4PVPlacement.hh" -#include "G4PVParameterised.hh" -#include "G4AssemblyVolume.hh" -#include "G4SubtractionSolid.hh" -#include "globals.hh" -#include "G4VisAttributes.hh" -#include "G4LogicalBorderSurface.hh" -#include "G4LogicalSkinSurface.hh" -#include "G4OpBoundaryProcess.hh" -#include "G4OpticalSurface.hh" -#include "G4UserLimits.hh" -#include "G4ReflectionFactory.hh" -#include "G4GeometryTolerance.hh" -#include "G4GeometryManager.hh" - -#include "WCSimTuningParameters.hh" //jl145 - -#include "G4SystemOfUnits.hh" -#include "G4PhysicalConstants.hh" -//#define DEBUG - -/*********************************************************** - * - * This file contains the functions which construct a - * cylindrical WC detector. It used by both the SK and - * LBNE WC detector modes. It is called in the Construct() - * method in WCSimDetectorConstruction.cc. - * - * Sourcefile for the WCSimDetectorConstruction class - * - ***********************************************************/ - - -G4LogicalVolume* WCSimDetectorConstruction::ConstructCylinder() -{ - G4cout << "**** Building Cylindrical Detector ****" << G4endl; - - //----------------------------------------------------- - // Positions - //----------------------------------------------------- - - debugMode = false; - - WCPosition=0.;//Set the WC tube offset to zero - - WCIDRadius = WCIDDiameter/2.; - // the number of regular cell in phi direction: - WCBarrelRingNPhi = (G4int)(WCBarrelNumPMTHorizontal/WCPMTperCellHorizontal); - // the part of one ring, that is covered by the regular cells: - totalAngle = 2.0*pi*rad*(WCBarrelRingNPhi*WCPMTperCellHorizontal/WCBarrelNumPMTHorizontal) ; - // angle per regular cell: - dPhi = totalAngle/ WCBarrelRingNPhi; - // it's height: - barrelCellHeight = (WCIDHeight-2.*WCBarrelPMTOffset)/WCBarrelNRings; - // the height of all regular cells together: - mainAnnulusHeight = WCIDHeight -2.*WCBarrelPMTOffset -2.*barrelCellHeight; - - //TF: has to change for mPMT vessel: - - G4cout << WCIDRadius << ", " << WCPMTExposeHeight << ", " << mPMT_vessel_cyl_height << ", " << mPMT_vessel_radius << G4endl; -#ifdef DEBUG - G4cout << "HYBRID = " << hybrid << G4endl; -#endif - - if(hybrid){ - if(mPMT_vessel_cyl_height + mPMT_vessel_radius < 1.*mm) - innerAnnulusRadius = WCIDRadius - std::max(WCPMTExposeHeight,WCPMTExposeHeight2)-1.*mm; - else - innerAnnulusRadius = WCIDRadius - std::max(WCPMTExposeHeight,(mPMT_vessel_cyl_height + mPMT_vessel_radius)) -1.*mm; - } - else{ - if(mPMT_vessel_cyl_height + mPMT_vessel_radius < 1.*mm) - innerAnnulusRadius = WCIDRadius - WCPMTExposeHeight -1.*mm; - else - innerAnnulusRadius = WCIDRadius - (mPMT_vessel_cyl_height + mPMT_vessel_radius) -1.*mm; - } - //TF: need to add a Polyhedra on the other side of the outerAnnulusRadius for the OD - outerAnnulusRadius = WCIDRadius + WCBlackSheetThickness + 1.*mm;//+ Stealstructure etc. - - // the radii are measured to the center of the surfaces - // (tangent distance). Thus distances between the corner and the center are bigger. - WCLength = WCIDHeight + 2*2.3*m; //jl145 - reflects top veto blueprint, cf. Farshid Feyzi - WCRadius = (WCIDDiameter/2. + WCBlackSheetThickness + 1.5*m)/cos(dPhi/2.) ; // ToDo: OD - - // now we know the extend of the detector and are able to tune the tolerance - G4GeometryManager::GetInstance()->SetWorldMaximumExtent(WCLength > WCRadius ? WCLength : WCRadius); - G4cout << "Computed tolerance = " - << G4GeometryTolerance::GetInstance()->GetSurfaceTolerance()/mm - << " mm" << G4endl; - - //Decide if adding Gd - water = "Water"; - if (WCAddGd) - { - water = "Doped Water"; - if(!G4Material::GetMaterial("Doped Water", false)) AddDopedWater(); - } - - // Optionally switch on the checkOverlaps. Once the geometry is debugged, switch off for - // faster running. Checking ALL overlaps is crucial. No overlaps are allowed, otherwise - // G4Navigator will be confused and result in wrong photon tracking and resulting yields. - // ToDo: get these options from .mac - checkOverlaps = true; - checkOverlapsPMT = false; - // Optionally place parts of the detector. Very useful for visualization and debugging - // geometry overlaps in detail. - placeBarrelPMTs = true; - placeCapPMTs = true; - placeBorderPMTs = true; - - - //----------------------------------------------------- - // Volumes - //----------------------------------------------------- - // The water barrel is placed in an tubs of air - - G4Tubs* solidWC = new G4Tubs("WC", - 0.0*m, - WCRadius+2.*m, - .5*WCLength+4.2*m, //jl145 - per blueprint - 0.*deg, - 360.*deg); - - G4LogicalVolume* logicWC = - new G4LogicalVolume(solidWC, - G4Material::GetMaterial("Air"), - "WC", - 0,0,0); - - - G4VisAttributes* showColor = new G4VisAttributes(G4Colour(0.0,1.0,0.0)); - logicWC->SetVisAttributes(showColor); - - logicWC->SetVisAttributes(G4VisAttributes::Invisible); //amb79 - - //----------------------------------------------------- - // everything else is contained in this water tubs - //----------------------------------------------------- - G4Tubs* solidWCBarrel = new G4Tubs("WCBarrel", - 0.0*m, - WCRadius+1.*m, // add a bit of extra space - .5*WCLength, //jl145 - per blueprint - 0.*deg, - 360.*deg); - - G4LogicalVolume* logicWCBarrel = - new G4LogicalVolume(solidWCBarrel, - G4Material::GetMaterial(water), - "WCBarrel", - 0,0,0); - - G4VPhysicalVolume* physiWCBarrel = - new G4PVPlacement(0, - G4ThreeVector(0.,0.,0.), - logicWCBarrel, - "WCBarrel", - logicWC, - false, - 0, - checkOverlaps); - -// This volume needs to made invisible to view the blacksheet and PMTs with RayTracer - if (Vis_Choice == "RayTracer") - {logicWCBarrel->SetVisAttributes(G4VisAttributes::Invisible);} - - else - {//{if(!debugMode) - //logicWCBarrel->SetVisAttributes(G4VisAttributes::Invisible);} - } - //----------------------------------------------------- - // Form annular section of barrel to hold PMTs - //---------------------------------------------------- - - - G4double mainAnnulusZ[2] = {-mainAnnulusHeight/2., mainAnnulusHeight/2}; - G4double mainAnnulusRmin[2] = {innerAnnulusRadius, innerAnnulusRadius}; - G4double mainAnnulusRmax[2] = {outerAnnulusRadius, outerAnnulusRadius}; - - G4Polyhedra* solidWCBarrelAnnulus = new G4Polyhedra("WCBarrelAnnulus", - 0.*deg, // phi start - totalAngle, - (G4int)WCBarrelRingNPhi, //NPhi-gon - 2, - mainAnnulusZ, - mainAnnulusRmin, - mainAnnulusRmax); - - G4LogicalVolume* logicWCBarrelAnnulus = - new G4LogicalVolume(solidWCBarrelAnnulus, - G4Material::GetMaterial(water), - "WCBarrelAnnulus", - 0,0,0); - // G4cout << *solidWCBarrelAnnulus << G4endl; - G4VPhysicalVolume* physiWCBarrelAnnulus = - new G4PVPlacement(0, - G4ThreeVector(0.,0.,0.), - logicWCBarrelAnnulus, - "WCBarrelAnnulus", - logicWCBarrel, - false, - 0, - checkOverlaps); -if(!debugMode) - logicWCBarrelAnnulus->SetVisAttributes(G4VisAttributes::Invisible); //amb79 - - //----------------------------------------------------- - // Subdivide the BarrelAnnulus into rings - //----------------------------------------------------- - G4double RingZ[2] = {-barrelCellHeight/2., - barrelCellHeight/2.}; - - G4Polyhedra* solidWCBarrelRing = new G4Polyhedra("WCBarrelRing", - 0.*deg,//+dPhi/2., // phi start - totalAngle, //phi end - (G4int)WCBarrelRingNPhi, //NPhi-gon - 2, - RingZ, - mainAnnulusRmin, - mainAnnulusRmax); - - G4LogicalVolume* logicWCBarrelRing = - new G4LogicalVolume(solidWCBarrelRing, - G4Material::GetMaterial(water), - "WCBarrelRing", - 0,0,0); - - G4VPhysicalVolume* physiWCBarrelRing = - new G4PVReplica("WCBarrelRing", - logicWCBarrelRing, - logicWCBarrelAnnulus, - kZAxis, - (G4int)WCBarrelNRings-2, - barrelCellHeight); - -if(!debugMode) - {G4VisAttributes* tmpVisAtt = new G4VisAttributes(G4Colour(0,0.5,1.)); - tmpVisAtt->SetForceWireframe(true);// This line is used to give definition to the rings in OGLSX Visualizer - logicWCBarrelRing->SetVisAttributes(tmpVisAtt); - //If you want the rings on the Annulus to show in OGLSX, then comment out the line below. - logicWCBarrelRing->SetVisAttributes(G4VisAttributes::Invisible); - } -else { - G4VisAttributes* tmpVisAtt = new G4VisAttributes(G4Colour(0,0.5,1.)); - tmpVisAtt->SetForceWireframe(true); - logicWCBarrelRing->SetVisAttributes(tmpVisAtt); - } - - //----------------------------------------------------- - // Subdivisions of the BarrelRings are cells - //------------------------------------------------------ - - - G4Polyhedra* solidWCBarrelCell = new G4Polyhedra("WCBarrelCell", - -dPhi/2.+0.*deg, // phi start - dPhi, //total Phi - 1, //NPhi-gon - 2, - RingZ, - mainAnnulusRmin, - mainAnnulusRmax); - //G4cout << *solidWCBarrelCell << G4endl; - G4LogicalVolume* logicWCBarrelCell = - new G4LogicalVolume(solidWCBarrelCell, - G4Material::GetMaterial(water), - "WCBarrelCell", - 0,0,0); - - G4VPhysicalVolume* physiWCBarrelCell = - new G4PVReplica("WCBarrelCell", - logicWCBarrelCell, - logicWCBarrelRing, - kPhi, - (G4int)WCBarrelRingNPhi, - dPhi, - 0.); - - if(!debugMode) - {G4VisAttributes* tmpVisAtt = new G4VisAttributes(G4Colour(1.,0.5,0.5)); - tmpVisAtt->SetForceSolid(true);// This line is used to give definition to the cells in OGLSX Visualizer - logicWCBarrelCell->SetVisAttributes(tmpVisAtt); - //If you want the columns on the Annulus to show in OGLSX, then comment out the line below. - logicWCBarrelCell->SetVisAttributes(G4VisAttributes::Invisible); - } - else { - G4VisAttributes* tmpVisAtt = new G4VisAttributes(G4Colour(1.,0.5,0.5)); - tmpVisAtt->SetForceWireframe(true); - logicWCBarrelCell->SetVisAttributes(tmpVisAtt); - } - - //----------------------------------------------------------- - // The Blacksheet, a daughter of the cells containing PMTs, - // and also some other volumes to make the edges light tight - //----------------------------------------------------------- - - //------------------------------------------------------------- - // add barrel blacksheet to the normal barrel cells - // ------------------------------------------------------------ - G4double annulusBlackSheetRmax[2] = {(WCIDRadius+WCBlackSheetThickness), - WCIDRadius+WCBlackSheetThickness}; - G4double annulusBlackSheetRmin[2] = {(WCIDRadius), - WCIDRadius}; - G4cout << WCIDRadius << ", " << WCBlackSheetThickness << ", " << barrelCellHeight/2. << G4endl; - G4cout << WCIDHeight << ", " << WCBarrelPMTOffset << ", " << WCBarrelNRings << G4endl; - G4cout << dPhi << ", " << RingZ << G4endl; - G4cout << mainAnnulusRmin[0] << ", " << mainAnnulusRmax[0] << ", " << mainAnnulusZ[0] << G4endl; - G4cout << mainAnnulusRmin[1] << ", " << mainAnnulusRmax[1] << ", " << mainAnnulusZ[1] << G4endl; - - G4Polyhedra* solidWCBarrelCellBlackSheet = new G4Polyhedra("WCBarrelCellBlackSheet", - -dPhi/2., // phi start - dPhi, //total phi - 1, //NPhi-gon - 2, - RingZ, - annulusBlackSheetRmin, - annulusBlackSheetRmax); - - logicWCBarrelCellBlackSheet = - new G4LogicalVolume(solidWCBarrelCellBlackSheet, - G4Material::GetMaterial("Blacksheet"), - "WCBarrelCellBlackSheet", - 0,0,0); - - G4VPhysicalVolume* physiWCBarrelCellBlackSheet = - new G4PVPlacement(0, - G4ThreeVector(0.,0.,0.), - logicWCBarrelCellBlackSheet, - "WCBarrelCellBlackSheet", - logicWCBarrelCell, - false, - 0, - checkOverlaps); - - - G4LogicalBorderSurface * WaterBSBarrelCellSurface - = new G4LogicalBorderSurface("WaterBSBarrelCellSurface", - physiWCBarrelCell, - physiWCBarrelCellBlackSheet, - OpWaterBSSurface); - - new G4LogicalSkinSurface("BSBarrelCellSkinSurface",logicWCBarrelCellBlackSheet, - BSSkinSurface); - - // Change made here to have the if statement contain the !debugmode to be consistent - // This code gives the Blacksheet its color. - -if (Vis_Choice == "RayTracer"){ - - G4VisAttributes* WCBarrelBlackSheetCellVisAtt - = new G4VisAttributes(G4Colour(0.2,0.9,0.2)); // green color - WCBarrelBlackSheetCellVisAtt->SetForceSolid(true); // force the object to be visualized with a surface - WCBarrelBlackSheetCellVisAtt->SetForceAuxEdgeVisible(true); // force auxiliary edges to be shown - if(!debugMode) - logicWCBarrelCellBlackSheet->SetVisAttributes(WCBarrelBlackSheetCellVisAtt); - else - logicWCBarrelCellBlackSheet->SetVisAttributes(G4VisAttributes::Invisible);} - -else { - - G4VisAttributes* WCBarrelBlackSheetCellVisAtt - = new G4VisAttributes(G4Colour(0.2,0.9,0.2)); - if(!debugMode) - logicWCBarrelCellBlackSheet->SetVisAttributes(G4VisAttributes::Invisible); - else - logicWCBarrelCellBlackSheet->SetVisAttributes(WCBarrelBlackSheetCellVisAtt);} - - //----------------------------------------------------------- - // add extra tower if necessary - // --------------------------------------------------------- - - // we have to declare the logical Volumes - // outside of the if block to access it later on - G4LogicalVolume* logicWCExtraTowerCell; - G4LogicalVolume* logicWCExtraBorderCell; - if(!(WCBarrelRingNPhi*WCPMTperCellHorizontal == WCBarrelNumPMTHorizontal)){ - - // as the angles between the corners of the main annulus - // and the corners extra tower are different, we need to adjust the - // tangent distance the surfaces of the extra tower. Otherwise - // the corners of the main annulus and the extra tower would - // not match. - G4double extraTowerRmin[2]; - G4double extraTowerRmax[2]; - for(int i = 0; i < 2 ; i++){ - extraTowerRmin[i] = mainAnnulusRmin[i] != 0 ? mainAnnulusRmin[i]/cos(dPhi/2.)*cos((2.*pi-totalAngle)/2.) : 0.; - extraTowerRmax[i] = mainAnnulusRmax[i] != 0 ? mainAnnulusRmax[i]/cos(dPhi/2.)*cos((2.*pi-totalAngle)/2.) : 0.; - } - G4Polyhedra* solidWCExtraTower = new G4Polyhedra("WCextraTower", - totalAngle-2.*pi,//+dPhi/2., // phi start - 2.*pi - totalAngle // total angle. - -G4GeometryTolerance::GetInstance()->GetSurfaceTolerance()/(10.*m), - // we need this little Gap between the extra tower and the main annulus - // to avoid a shared surface. Without the gap the photons stuck - // at this place for mare than 25 steps and the howl simulation - // crashes. - 1, //NPhi-gon - 2, - mainAnnulusZ, - extraTowerRmin, - extraTowerRmax); - - G4LogicalVolume* logicWCExtraTower = - new G4LogicalVolume(solidWCExtraTower, - G4Material::GetMaterial(water), - "WCExtraTower", - 0,0,0); - G4VPhysicalVolume* physiWCExtraTower = - new G4PVPlacement(0, - G4ThreeVector(0.,0.,0.), - logicWCExtraTower, - "WCExtraTower", - logicWCBarrel, - false, - 0, - checkOverlaps); - - - - logicWCExtraTower->SetVisAttributes(G4VisAttributes::Invisible); - //------------------------------------------- - // subdivide the extra tower into cells - //------------------------------------------ - - G4Polyhedra* solidWCExtraTowerCell = new G4Polyhedra("WCExtraTowerCell", - totalAngle-2.*pi,//+dPhi/2., // phi start - 2.*pi - totalAngle -G4GeometryTolerance::GetInstance()->GetSurfaceTolerance()/(10.*m), //phi end - 1, //NPhi-gon - 2, - RingZ, - extraTowerRmin, - extraTowerRmax); - //G4cout << * solidWCExtraTowerCell << G4endl; - logicWCExtraTowerCell = - new G4LogicalVolume(solidWCExtraTowerCell, - G4Material::GetMaterial(water), - "WCExtraTowerCell", - 0,0,0); - G4VPhysicalVolume* physiWCTowerCell = - new G4PVReplica("extraTowerCell", - logicWCExtraTowerCell, - logicWCExtraTower, - kZAxis, - (G4int)WCBarrelNRings-2, - barrelCellHeight); - - G4VisAttributes* tmpVisAtt = new G4VisAttributes(G4Colour(1.,0.5,0.5)); - tmpVisAtt->SetForceSolid(true);// This line is used to give definition to the cells in OGLSX Visualizer - //logicWCExtraTowerCell->SetVisAttributes(tmpVisAtt); - logicWCExtraTowerCell->SetVisAttributes(G4VisAttributes::Invisible); - //TF vis. - - //--------------------------------------------- - // add blacksheet to this cells - //-------------------------------------------- - - G4double towerBSRmin[2]; - G4double towerBSRmax[2]; - for(int i = 0; i < 2; i++){ - towerBSRmin[i] = annulusBlackSheetRmin[i]/cos(dPhi/2.)*cos((2.*pi-totalAngle)/2.); - towerBSRmax[i] = annulusBlackSheetRmax[i]/cos(dPhi/2.)*cos((2.*pi-totalAngle)/2.); - } - G4Polyhedra* solidWCTowerBlackSheet = new G4Polyhedra("WCExtraTowerBlackSheet", - totalAngle-2.*pi,//+dPhi/2., // phi start - 2.*pi - totalAngle -G4GeometryTolerance::GetInstance()->GetSurfaceTolerance()/(10.*m), //phi end - 1, //NPhi-gon - 2, - RingZ, - towerBSRmin, - towerBSRmax); - //G4cout << * solidWCTowerBlackSheet << G4endl; - logicWCTowerBlackSheet = - new G4LogicalVolume(solidWCTowerBlackSheet, - G4Material::GetMaterial("Blacksheet"), - "WCExtraTowerBlackSheet", - 0,0,0); - - G4VPhysicalVolume* physiWCTowerBlackSheet = - new G4PVPlacement(0, - G4ThreeVector(0.,0.,0.), - logicWCTowerBlackSheet, - "WCExtraTowerBlackSheet", - logicWCExtraTowerCell, - false, - 0, - checkOverlaps); - - - G4LogicalBorderSurface * WaterBSTowerCellSurface - = new G4LogicalBorderSurface("WaterBSBarrelCellSurface", - physiWCTowerCell, - physiWCTowerBlackSheet, - OpWaterBSSurface); - - new G4LogicalSkinSurface("BSTowerCellSkinSurface",logicWCTowerBlackSheet, - BSSkinSurface); - -// These lines add color to the blacksheet in the extratower. If using RayTracer, comment the first chunk and use the second. The Blacksheet should be green. - - if (Vis_Choice == "OGLSX"){ - - G4VisAttributes* WCBarrelBlackSheetCellVisAtt - = new G4VisAttributes(G4Colour(0.2,0.9,0.2)); // green color - - if(!debugMode) - {logicWCTowerBlackSheet->SetVisAttributes(G4VisAttributes::Invisible);} - else - {logicWCTowerBlackSheet->SetVisAttributes(WCBarrelBlackSheetCellVisAtt);}} - - if (Vis_Choice == "RayTracer"){ - - G4VisAttributes* WCBarrelBlackSheetCellVisAtt - = new G4VisAttributes(G4Colour(0.2,0.9,0.2)); // green color - WCBarrelBlackSheetCellVisAtt->SetForceSolid(true); // force the object to be visualized with a surface - WCBarrelBlackSheetCellVisAtt->SetForceAuxEdgeVisible(true); // force auxiliary edges to be shown - - if(!debugMode) - logicWCTowerBlackSheet->SetVisAttributes(WCBarrelBlackSheetCellVisAtt); - else - logicWCTowerBlackSheet->SetVisAttributes(WCBarrelBlackSheetCellVisAtt);} - - else { - - G4VisAttributes* WCBarrelBlackSheetCellVisAtt - = new G4VisAttributes(G4Colour(0.2,0.9,0.2)); // green color - - if(!debugMode) - {logicWCTowerBlackSheet->SetVisAttributes(G4VisAttributes::Invisible);} - else - {logicWCTowerBlackSheet->SetVisAttributes(WCBarrelBlackSheetCellVisAtt);}} - - -} - - //jl145------------------------------------------------ - // Add top veto volume - //----------------------------------------------------- - - G4bool WCTopVeto = (WCSimTuningParams->GetTopVeto()); - - G4LogicalVolume* logicWCTopVeto; - - if(WCTopVeto){ - - G4double WCTyvekThickness = 1.0*mm; //completely made up - - G4VSolid* solidWCTopVeto; - solidWCTopVeto = - new G4Tubs( "WCTopVeto", - 0.0*m, - WCIDRadius + WCTyvekThickness, - 0.5*m + WCTyvekThickness, - 0.*deg, - 360.*deg); - - logicWCTopVeto = - new G4LogicalVolume(solidWCTopVeto, - G4Material::GetMaterial(water), - "WCTopVeto", - 0,0,0); - - G4VPhysicalVolume* physiWCTopVeto = - new G4PVPlacement( 0, - G4ThreeVector(0.,0.,WCIDHeight/2 - +1.0*m), - logicWCTopVeto, - "WCTopVeto", - logicWCBarrel, - false,0, - checkOverlaps); - - //Add the top veto Tyvek - //----------------------------------------------------- - - G4VSolid* solidWCTVTyvek; - solidWCTVTyvek = - new G4Tubs( "WCTVTyvek", - 0.0*m, - WCIDRadius, - WCTyvekThickness/2, - 0.*deg, - 360.*deg); - - - G4LogicalVolume* logicWCTVTyvek = - new G4LogicalVolume(solidWCTVTyvek, - G4Material::GetMaterial("Tyvek"), - "WCTVTyvek", - 0,0,0); - - //Bottom - G4VPhysicalVolume* physiWCTVTyvekBot = - new G4PVPlacement( 0, - G4ThreeVector(0.,0.,-0.5*m - -WCTyvekThickness/2), - logicWCTVTyvek, - "WCTVTyvekBot", - logicWCTopVeto, - false,0, - checkOverlaps); - - G4LogicalBorderSurface * WaterTyTVSurfaceBot = - new G4LogicalBorderSurface( "WaterTyTVSurfaceBot", - physiWCTopVeto, - physiWCTVTyvekBot, - OpWaterTySurface); - - //Top - G4VPhysicalVolume* physiWCTVTyvekTop = - new G4PVPlacement( 0, - G4ThreeVector(0.,0.,0.5*m - +WCTyvekThickness/2), - logicWCTVTyvek, - "WCTVTyvekTop", - logicWCTopVeto, - false,0, - checkOverlaps); - - G4LogicalBorderSurface * WaterTyTVSurfaceTop = - new G4LogicalBorderSurface( "WaterTyTVSurfaceTop", - physiWCTopVeto, - physiWCTVTyvekTop, - OpWaterTySurface); - - //Side - G4VSolid* solidWCTVTyvekSide; - solidWCTVTyvekSide = - new G4Tubs( "WCTVTyvekSide", - WCIDRadius, - WCIDRadius + WCTyvekThickness, - 0.5*m + WCTyvekThickness, - 0.*deg, - 360.*deg); - - - G4LogicalVolume* logicWCTVTyvekSide = - new G4LogicalVolume(solidWCTVTyvekSide, - G4Material::GetMaterial("Tyvek"), - "WCTVTyvekSide", - 0,0,0); - - G4VPhysicalVolume* physiWCTVTyvekSide = - new G4PVPlacement( 0, - G4ThreeVector(0.,0.,0.), - logicWCTVTyvekSide, - "WCTVTyvekSide", - logicWCTopVeto, - false,0, - checkOverlaps); - - G4LogicalBorderSurface * WaterTyTVSurfaceSide = - new G4LogicalBorderSurface( "WaterTyTVSurfaceSide", - physiWCTopVeto, - physiWCTVTyvekSide, - OpWaterTySurface); - - } - - // - // - //jl145------------------------------------------------ - - - //////////// M Fechner : I need to declare the PMT here in order to - // place the PMTs in the truncated cells - //----------------------------------------------------- - // The PMT - //----------------------------------------------------- - - ////////////J Felde: The PMT logical volume is now constructed separately - // from any specific detector geometry so that any geometry can use the same definition. - // K.Zbiri: The PMT volume and the PMT glass are now put in parallel. - // The PMT glass is the sensitive volume in this new configuration. - - // TF: Args are set to properties of the class which is somehow global (see the ConstructDetector.hh) - // They are set in the WCSimDetectorConfigs and are property of the PMT. - G4LogicalVolume* logicWCPMT; - if(nID_PMTs<=1) logicWCPMT = ConstructPMT(WCPMTName, WCIDCollectionName,"tank",nID_PMTs); - else logicWCPMT = ConstructMultiPMT(WCPMTName, WCIDCollectionName,"tank",nID_PMTs); - if(!logicWCPMT){ - G4cerr << "Overlapping PMTs in multiPMT" << G4endl; - return NULL; - } - G4LogicalVolume* logicWCPMT2; -#ifdef DEBUG - G4cout << "HYBRID2 = " << hybrid << G4endl; -#endif - if(hybrid){ - G4cout<<"First type of PMT LV is created. Now creating the LV for the second type of PMT"<SetForceSolid(true); - WClogic->SetForceAuxEdgeVisible(true); - - //logicWCPMT->SetVisAttributes(WClogic); - //logicWCPMT->SetVisAttributes(G4VisAttributes::Invisible); - - //jl145------------------------------------------------ - // Add top veto PMTs - //----------------------------------------------------- - - if(WCTopVeto){ - - G4double WCTVPMTSpacing = (WCSimTuningParams->GetTVSpacing())*cm; - G4double WCTVEdgeLimit = WCCapEdgeLimit; - G4int TVNCell = WCTVEdgeLimit/WCTVPMTSpacing + 2; - - int icopy = 0; - -#ifdef DEBUG - G4cout<<"Debug B.Q: Constructing the cells for veto"<rotateY(90.*deg); //if mPMT: perp to wall - else if(orientation == VERTICAL) - WCPMTRotation->rotateY(0.*deg); //if mPMT: vertical/aligned to wall - else if(orientation == HORIZONTAL) - WCPMTRotation->rotateX(90.*deg); //if mPMT: horizontal to wall - - - - - - - - - - G4double barrelCellWidth = 2.*WCIDRadius*tan(dPhi/2.); - G4double horizontalSpacing = barrelCellWidth/WCPMTperCellHorizontal; - G4double verticalSpacing = barrelCellHeight/WCPMTperCellVertical; - - if(placeBarrelPMTs){ - -#ifdef DEBUG - G4cout << "Debug B.Q : Number of PMT horizontal = " << WCPMTperCellHorizontal << ", number of PMT vertical = " << WCPMTperCellVertical << G4endl; - G4cout << "Debug B.Q : Horizontal spacing = "<< horizontalSpacing << " vertical spacing = " << verticalSpacing << G4endl; -#endif - - for(G4double i = 0; i < WCPMTperCellHorizontal; i++){ - for(G4double j = 0; j < WCPMTperCellVertical; j++){ - G4ThreeVector PMTPosition = G4ThreeVector(WCIDRadius, - -barrelCellWidth/2.+(i+0.5)*horizontalSpacing, - -barrelCellHeight/2.+(j+0.5)*verticalSpacing); - - G4VPhysicalVolume* physiWCBarrelPMT = - new G4PVPlacement(WCPMTRotation, // its rotation - PMTPosition, - (i==j && hybrid && WCPMTPercentCoverage2!=0)?logicWCPMT2:logicWCPMT, // its logical volume - pmtname,//"WCPMT", // its name - logicWCBarrelCell, // its mother volume - false, // no boolean operations - (int)(i*WCPMTperCellVertical+j), - checkOverlapsPMT); - - // logicWCPMT->GetDaughter(0),physiCapPMT is the glass face. If you add more - // daugter volumes to the PMTs (e.g. a acryl cover) you have to check, if - // this is still the case. - } - } - - //------------------------------------------------------------- - // Add PMTs in extra Tower if necessary - //------------------------------------------------------------ - - - if(!(WCBarrelRingNPhi*WCPMTperCellHorizontal == WCBarrelNumPMTHorizontal)){ - -#ifdef DEBUG - G4cout << "Debug B.Q: Wish to place extra PMTs" << G4endl; - G4cout << "Debug B.Q : WCBarrelRingNPhi = " << WCBarrelRingNPhi << ", WCBarrelNumPMTHorizontal = " << WCBarrelNumPMTHorizontal << G4endl; -#endif - - G4RotationMatrix* WCPMTRotation = new G4RotationMatrix; - WCPMTRotation->rotateY(90.*deg); - WCPMTRotation->rotateX((2*pi-totalAngle)/2.);//align the PMT with the Cell - //Stopped here: B.Q - G4double towerWidth = WCIDRadius*tan(2*pi-totalAngle); - - G4double horizontalSpacing = towerWidth/(WCBarrelNumPMTHorizontal-WCBarrelRingNPhi*WCPMTperCellHorizontal); - G4double verticalSpacing = barrelCellHeight/WCPMTperCellVertical; - - for(G4double i = 0; i < (WCBarrelNumPMTHorizontal-WCBarrelRingNPhi*WCPMTperCellHorizontal); i++){ - for(G4double j = 0; j < WCPMTperCellVertical; j++){ - G4ThreeVector PMTPosition = G4ThreeVector(WCIDRadius/cos(dPhi/2.)*cos((2.*pi-totalAngle)/2.), - towerWidth/2.-(i+0.5)*horizontalSpacing, - -barrelCellHeight/2.+(j+0.5)*verticalSpacing); - PMTPosition.rotateZ(-(2*pi-totalAngle)/2.); // align with the symmetry - //axes of the cell - - G4VPhysicalVolume* physiWCBarrelPMT = - new G4PVPlacement(WCPMTRotation, // its rotation - PMTPosition, - (i==j && hybrid && WCPMTPercentCoverage2!=0)?logicWCPMT2:logicWCPMT, // its logical volume - pmtname, // its name - logicWCExtraTowerCell, // its mother volume - false, // no boolean operations - (int)(i*WCPMTperCellVertical+j), - checkOverlapsPMT); - - // logicWCPMT->GetDaughter(0),physiCapPMT is the glass face. If you add more - // daughter volumes to the PMTs (e.g. a acryl cover) you have to check, if - // this is still the case. - } - } - - } - - }//end if placeBarrelPMTs - - G4LogicalVolume* logicTopCapAssembly = ConstructCaps(-1); - G4LogicalVolume* logicBottomCapAssembly = ConstructCaps(1); - - // These lines make the large cap volume invisible to view the caps blacksheets. Need to make invisible for - // RayTracer - if (Vis_Choice == "RayTracer"){ - logicBottomCapAssembly->SetVisAttributes(G4VisAttributes::Invisible); - logicTopCapAssembly->SetVisAttributes(G4VisAttributes::Invisible); - } else { - logicBottomCapAssembly->SetVisAttributes(G4VisAttributes::Invisible); - logicTopCapAssembly->SetVisAttributes(G4VisAttributes::Invisible); - } - - G4VPhysicalVolume* physiTopCapAssembly = - new G4PVPlacement(0, - G4ThreeVector(0.,0.,(mainAnnulusHeight/2.+ capAssemblyHeight/2.)), - logicTopCapAssembly, - "TopCapAssembly", - logicWCBarrel, - false, 0, - checkOverlaps); - - G4VPhysicalVolume* physiBottomCapAssembly = - new G4PVPlacement(0, - G4ThreeVector(0.,0.,(-mainAnnulusHeight/2.- capAssemblyHeight/2.)), - logicBottomCapAssembly, - "BottomCapAssembly", - logicWCBarrel, - false, 0, - checkOverlaps); - - return logicWC; -} - - -G4LogicalVolume* WCSimDetectorConstruction::ConstructCaps(G4int zflip) -{ - capAssemblyHeight = (WCIDHeight-mainAnnulusHeight)/2+1*mm+WCBlackSheetThickness; - - G4Tubs* solidCapAssembly = new G4Tubs("CapAssembly", - 0.0*m, - outerAnnulusRadius/cos(dPhi/2.), - capAssemblyHeight/2, - 0.*deg, - 360.*deg); - - G4LogicalVolume* logicCapAssembly = - new G4LogicalVolume(solidCapAssembly, - G4Material::GetMaterial(water), - "CapAssembly", - 0,0,0); - - - //---------------------------------------------------- - // extra rings for the top and bottom of the annulus - //--------------------------------------------------- - G4double borderAnnulusZ[3] = {(-barrelCellHeight/2.-(WCIDRadius-innerAnnulusRadius))*zflip, - -barrelCellHeight/2.*zflip, - barrelCellHeight/2.*zflip}; - G4double borderAnnulusRmin[3] = { WCIDRadius, innerAnnulusRadius, innerAnnulusRadius}; - G4double borderAnnulusRmax[3] = {outerAnnulusRadius, outerAnnulusRadius,outerAnnulusRadius}; - G4Polyhedra* solidWCBarrelBorderRing = new G4Polyhedra("WCBarrelBorderRing", - 0.*deg, // phi start - totalAngle, - (G4int)WCBarrelRingNPhi, //NPhi-gon - 3, - borderAnnulusZ, - borderAnnulusRmin, - borderAnnulusRmax); - G4LogicalVolume* logicWCBarrelBorderRing = - new G4LogicalVolume(solidWCBarrelBorderRing, - G4Material::GetMaterial(water), - "WCBarrelRing", - 0,0,0); - //G4cout << *solidWCBarrelBorderRing << G4endl; - - G4VPhysicalVolume* physiWCBarrelBorderRing = - new G4PVPlacement(0, - G4ThreeVector(0.,0.,(capAssemblyHeight/2.- barrelCellHeight/2.)*zflip), - logicWCBarrelBorderRing, - "WCBarrelBorderRing", - logicCapAssembly, - false, 0, - checkOverlaps); - - - - if(!debugMode){ - - G4VisAttributes* tmpVisAtt = new G4VisAttributes(G4Colour(1.,0.5,0.5)); - tmpVisAtt->SetForceSolid(true);// This line is used to give definition to the cells in OGLSX Visualizer - //logicWCBarrelBorderRing->SetVisAttributes(tmpVisAtt); - logicWCBarrelBorderRing->SetVisAttributes(G4VisAttributes::Invisible); - //TF vis. - } - - //---------------------------------------------------- - // Subdivide border rings into cells - // -------------------------------------------------- - G4Polyhedra* solidWCBarrelBorderCell = new G4Polyhedra("WCBarrelBorderCell", - -dPhi/2., // phi start - dPhi, //total angle - 1, //NPhi-gon - 3, - borderAnnulusZ, - borderAnnulusRmin, - borderAnnulusRmax); - - G4LogicalVolume* logicWCBarrelBorderCell = - new G4LogicalVolume(solidWCBarrelBorderCell, - G4Material::GetMaterial(water), - "WCBarrelBorderCell", - 0,0,0); - //G4cout << *solidWCBarrelBorderCell << G4endl; - G4VPhysicalVolume* physiWCBarrelBorderCell = - new G4PVReplica("WCBarrelBorderCell", - logicWCBarrelBorderCell, - logicWCBarrelBorderRing, - kPhi, - (G4int)WCBarrelRingNPhi, - dPhi, - 0.); - -// These lines of code below will turn the border rings invisible. - -// used for RayTracer - if (Vis_Choice == "RayTracer"){ - - if(!debugMode){ - G4VisAttributes* tmpVisAtt = new G4VisAttributes(G4Colour(1.,0.5,0.5)); - tmpVisAtt->SetForceSolid(true); - logicWCBarrelBorderCell->SetVisAttributes(tmpVisAtt); - logicWCBarrelBorderCell->SetVisAttributes(G4VisAttributes::Invisible);} - else { - G4VisAttributes* tmpVisAtt = new G4VisAttributes(G4Colour(1.,0.5,0.5)); - tmpVisAtt->SetForceWireframe(true); - logicWCBarrelBorderCell->SetVisAttributes(tmpVisAtt); - logicWCBarrelBorderCell->SetVisAttributes(G4VisAttributes::Invisible);}} - -// used for OGLSX - else { - - if(!debugMode) - { - G4VisAttributes* tmpVisAtt = new G4VisAttributes(G4Colour(1.,0.5,0.5)); - tmpVisAtt->SetForceSolid(true); - logicWCBarrelBorderCell->SetVisAttributes(tmpVisAtt); - logicWCBarrelBorderCell->SetVisAttributes(G4VisAttributes::Invisible); - } - else { - G4VisAttributes* tmpVisAtt = new G4VisAttributes(G4Colour(1.,0.5,0.5)); - //tmpVisAtt->SetForceWireframe(true); - tmpVisAtt->SetForceSolid(true); - logicWCBarrelBorderCell->SetVisAttributes(tmpVisAtt);}} - - - //------------------------------------------------------------ - // add blacksheet to the border cells. - // We can use the same logical volume as for the normal - // barrel cells. - // --------------------------------------------------------- - - - G4VPhysicalVolume* physiWCBarrelBorderCellBlackSheet = - new G4PVPlacement(0, - G4ThreeVector(0.,0.,0.), - logicWCBarrelCellBlackSheet, - "WCBarrelCellBlackSheet", - logicWCBarrelBorderCell, - false, - 0, - checkOverlaps); - - G4LogicalBorderSurface * WaterBSBarrelBorderCellSurface - = new G4LogicalBorderSurface("WaterBSBarrelCellSurface", - physiWCBarrelBorderCell, - physiWCBarrelBorderCellBlackSheet, - OpWaterBSSurface); - - // we have to declare the logical Volumes - // outside of the if block to access it later on - G4LogicalVolume* logicWCExtraTowerCell; - G4LogicalVolume* logicWCExtraBorderCell; - if(!(WCBarrelRingNPhi*WCPMTperCellHorizontal == WCBarrelNumPMTHorizontal)){ - //---------------------------------------------- - // also the extra tower need special cells at the - // top and th bottom. - // (the top cell is created later on by reflecting the - // bottom cell) - //--------------------------------------------- - G4double extraBorderRmin[3]; - G4double extraBorderRmax[3]; - for(int i = 0; i < 3; i++){ - extraBorderRmin[i] = borderAnnulusRmin[i]/cos(dPhi/2.)*cos((2.*pi-totalAngle)/2.); - extraBorderRmax[i] = borderAnnulusRmax[i]/cos(dPhi/2.)*cos((2.*pi-totalAngle)/2.); - } - G4Polyhedra* solidWCExtraBorderCell = new G4Polyhedra("WCspecialBarrelBorderCell", - totalAngle-2.*pi,//+dPhi/2., // phi start - 2.*pi - totalAngle -G4GeometryTolerance::GetInstance()->GetSurfaceTolerance()/(10.*m), //total phi - 1, //NPhi-gon - 3, - borderAnnulusZ, - extraBorderRmin, - extraBorderRmax); - - logicWCExtraBorderCell = - new G4LogicalVolume(solidWCExtraBorderCell, - G4Material::GetMaterial(water), - "WCspecialBarrelBorderCell", - 0,0,0); - //G4cout << *solidWCExtraBorderCell << G4endl; - - G4VPhysicalVolume* physiWCExtraBorderCell = - new G4PVPlacement(0, - G4ThreeVector(0.,0.,(capAssemblyHeight/2.- barrelCellHeight/2.)*zflip), - logicWCExtraBorderCell, - "WCExtraTowerBorderCell", - logicCapAssembly, - false, 0, - checkOverlaps); - - G4VisAttributes* tmpVisAtt = new G4VisAttributes(G4Colour(1.,0.5,0.5)); - tmpVisAtt->SetForceSolid(true);// This line is used to give definition to the cells in OGLSX Visualizer - logicWCExtraBorderCell->SetVisAttributes(tmpVisAtt); - logicWCExtraBorderCell->SetVisAttributes(G4VisAttributes::Invisible); - //TF vis. - - - G4VPhysicalVolume* physiWCExtraBorderBlackSheet = - new G4PVPlacement(0, - G4ThreeVector(0.,0.,0.), - logicWCTowerBlackSheet, - "WCExtraTowerBlackSheet", - logicWCExtraBorderCell, - false, - 0, - checkOverlaps); - - G4LogicalBorderSurface * WaterBSExtraBorderCellSurface - = new G4LogicalBorderSurface("WaterBSBarrelCellSurface", - physiWCExtraBorderCell, - physiWCExtraBorderBlackSheet, - OpWaterBSSurface); - - } - //------------------------------------------------------------ - // add caps - // ----------------------------------------------------------- - //crucial to match with borderAnnulusZ - G4double capZ[4] = { (-WCBlackSheetThickness-1.*mm)*zflip, - (WCBarrelPMTOffset - (WCIDRadius-innerAnnulusRadius))*zflip, - (WCBarrelPMTOffset - (WCIDRadius-innerAnnulusRadius))*zflip, - WCBarrelPMTOffset*zflip} ; - - G4double capRmin[4] = { 0. , 0., 0., 0.} ; - G4double capRmax[4] = {outerAnnulusRadius, outerAnnulusRadius, WCIDRadius, innerAnnulusRadius}; - G4VSolid* solidWCCap; - -#ifdef DEBUG - G4cout << "B.Q Cap: " << totalAngle << ", " << WCBarrelRingNPhi << ", " << outerAnnulusRadius << ", " << innerAnnulusRadius << ", " << WCBlackSheetThickness << ", " << zflip << ", " << WCBarrelPMTOffset << G4endl; -#endif - - if(WCBarrelRingNPhi*WCPMTperCellHorizontal == WCBarrelNumPMTHorizontal){ - solidWCCap - = new G4Polyhedra("WCCap", - 0.*deg, // phi start - totalAngle, //phi end - (int)WCBarrelRingNPhi, //NPhi-gon - 4, // 2 z-planes - capZ, //position of the Z planes - capRmin, // min radius at the z planes - capRmax// max radius at the Z planes - ); - } else { - // if there is an extra tower, the cap volume is a union of - // to polyhedra. We have to unite both parts, because there are - // PMTs that are on the border between both parts. - G4Polyhedra* mainPart - = new G4Polyhedra("WCCapMainPart", - 0.*deg, // phi start - totalAngle, //phi end - (int)WCBarrelRingNPhi, //NPhi-gon - 4, // 2 z-planes - capZ, //position of the Z planes - capRmin, // min radius at the z planes - capRmax// max radius at the Z planes - ); - G4double extraCapRmin[4]; - G4double extraCapRmax[4]; - for(int i = 0; i < 4 ; i++){ - extraCapRmin[i] = capRmin[i] != 0. ? capRmin[i]/cos(dPhi/2.)*cos((2.*pi-totalAngle)/2.) : 0.; - extraCapRmax[i] = capRmax[i] != 0. ? capRmax[i]/cos(dPhi/2.)*cos((2.*pi-totalAngle)/2.) : 0.; - } - G4Polyhedra* extraSlice - = new G4Polyhedra("WCCapExtraSlice", - totalAngle-2.*pi, // phi start - 2.*pi - totalAngle -G4GeometryTolerance::GetInstance()->GetSurfaceTolerance()/(10.*m), //total phi - // fortunately there are no PMTs an the gap! - 1, //NPhi-gon - 4, // z-planes - capZ, //position of the Z planes - extraCapRmin, // min radius at the z planes - extraCapRmax// max radius at the Z planes - ); - solidWCCap = - new G4UnionSolid("WCCap", mainPart, extraSlice); - - //G4cout << *solidWCCap << G4endl; - - } - // G4cout << *solidWCCap << G4endl; - G4LogicalVolume* logicWCCap = - new G4LogicalVolume(solidWCCap, - G4Material::GetMaterial(water), - "WCCapPolygon", - 0,0,0); - - G4VPhysicalVolume* physiWCCap = - new G4PVPlacement(0, // no rotation - G4ThreeVector(0.,0.,(-capAssemblyHeight/2.+1*mm+WCBlackSheetThickness)*zflip), // its position - logicWCCap, // its logical volume - "WCCap", // its name - logicCapAssembly, // its mother volume - false, // no boolean operations - 0, // Copy # - checkOverlaps); - - -// used for RayTracer - if (Vis_Choice == "RayTracer"){ - if(!debugMode){ - G4VisAttributes* tmpVisAtt2 = new G4VisAttributes(G4Colour(1,0.5,0.5)); - tmpVisAtt2->SetForceSolid(true); - logicWCCap->SetVisAttributes(tmpVisAtt2); - logicWCCap->SetVisAttributes(G4VisAttributes::Invisible); - - } else{ - - G4VisAttributes* tmpVisAtt2 = new G4VisAttributes(G4Colour(0.6,0.5,0.5)); - tmpVisAtt2->SetForceSolid(true); - logicWCCap->SetVisAttributes(tmpVisAtt2);}} - -// used for OGLSX - else{ - if(!debugMode){ - - G4VisAttributes* tmpVisAtt = new G4VisAttributes(G4Colour(1.,0.5,0.5)); - tmpVisAtt->SetForceSolid(true);// This line is used to give definition to the cells in OGLSX Visualizer - //logicWCCap->SetVisAttributes(tmpVisAtt); - logicWCCap->SetVisAttributes(G4VisAttributes::Invisible); - //TF vis. - - } else - {G4VisAttributes* tmpVisAtt2 = new G4VisAttributes(G4Colour(.6,0.5,0.5)); - tmpVisAtt2->SetForceWireframe(true); - logicWCCap->SetVisAttributes(tmpVisAtt2);}} - - //--------------------------------------------------------------------- - // add cap blacksheet - // ------------------------------------------------------------------- - - G4double capBlackSheetZ[4] = {-WCBlackSheetThickness*zflip, 0., 0., (WCBarrelPMTOffset - (WCIDRadius-innerAnnulusRadius)) *zflip}; - G4double capBlackSheetRmin[4] = {0., 0., WCIDRadius, WCIDRadius}; - G4double capBlackSheetRmax[4] = {WCIDRadius+WCBlackSheetThickness, - WCIDRadius+WCBlackSheetThickness, - WCIDRadius+WCBlackSheetThickness, - WCIDRadius+WCBlackSheetThickness}; - G4VSolid* solidWCCapBlackSheet; - if(WCBarrelRingNPhi*WCPMTperCellHorizontal == WCBarrelNumPMTHorizontal){ - solidWCCapBlackSheet - = new G4Polyhedra("WCCapBlackSheet", - 0.*deg, // phi start - totalAngle, //total phi - WCBarrelRingNPhi, //NPhi-gon - 4, // z-planes - capBlackSheetZ, //position of the Z planes - capBlackSheetRmin, // min radius at the z planes - capBlackSheetRmax// max radius at the Z planes - ); - // G4cout << *solidWCCapBlackSheet << G4endl; - } else { - // same as for the cap volume - G4Polyhedra* mainPart - = new G4Polyhedra("WCCapBlackSheetMainPart", - 0.*deg, // phi start - totalAngle, //phi end - WCBarrelRingNPhi, //NPhi-gon - 4, // z-planes - capBlackSheetZ, //position of the Z planes - capBlackSheetRmin, // min radius at the z planes - capBlackSheetRmax// max radius at the Z planes - ); - G4double extraBSRmin[4]; - G4double extraBSRmax[4]; - for(int i = 0; i < 4 ; i++){ - extraBSRmin[i] = capBlackSheetRmin[i] != 0. ? capBlackSheetRmin[i]/cos(dPhi/2.)*cos((2.*pi-totalAngle)/2.) : 0.; - extraBSRmax[i] = capBlackSheetRmax[i] != 0. ? capBlackSheetRmax[i]/cos(dPhi/2.)*cos((2.*pi-totalAngle)/2.) : 0.; - } - G4Polyhedra* extraSlice - = new G4Polyhedra("WCCapBlackSheetextraSlice", - totalAngle-2.*pi, // phi start - 2.*pi - totalAngle -G4GeometryTolerance::GetInstance()->GetSurfaceTolerance()/(10.*m), // - WCBarrelRingNPhi, //NPhi-gon - 4, // z-planes - capBlackSheetZ, //position of the Z planes - extraBSRmin, // min radius at the z planes - extraBSRmax// max radius at the Z planes - ); - - solidWCCapBlackSheet = - new G4UnionSolid("WCCapBlackSheet", mainPart, extraSlice); - } - G4LogicalVolume* logicWCCapBlackSheet = - new G4LogicalVolume(solidWCCapBlackSheet, - G4Material::GetMaterial("Blacksheet"), - "WCCapBlackSheet", - 0,0,0); - G4VPhysicalVolume* physiWCCapBlackSheet = - new G4PVPlacement(0, - G4ThreeVector(0.,0.,0.), - logicWCCapBlackSheet, - "WCCapBlackSheet", - logicWCCap, - false, - 0, - checkOverlaps); - - G4LogicalBorderSurface * WaterBSBottomCapSurface - = new G4LogicalBorderSurface("WaterBSCapPolySurface", - physiWCCap,physiWCCapBlackSheet, - OpWaterBSSurface); - - new G4LogicalSkinSurface("BSBottomCapSkinSurface",logicWCCapBlackSheet, - BSSkinSurface); - - G4VisAttributes* WCCapBlackSheetVisAtt - = new G4VisAttributes(G4Colour(0.9,0.2,0.2)); - -// used for OGLSX - if (Vis_Choice == "OGLSX"){ - - G4VisAttributes* WCCapBlackSheetVisAtt - = new G4VisAttributes(G4Colour(0.9,0.2,0.2)); - - if(!debugMode) - logicWCCapBlackSheet->SetVisAttributes(G4VisAttributes::Invisible); - else - logicWCCapBlackSheet->SetVisAttributes(WCCapBlackSheetVisAtt);} - -// used for RayTracer (makes the caps blacksheet yellow) - if (Vis_Choice == "RayTracer"){ - - G4VisAttributes* WCCapBlackSheetVisAtt - = new G4VisAttributes(G4Colour(1.0,1.0,0.0)); - - if(!debugMode) - //logicWCCapBlackSheet->SetVisAttributes(G4VisAttributes::Invisible); //Use this line if you want to make the blacksheet on the caps invisible to view through - logicWCCapBlackSheet->SetVisAttributes(WCCapBlackSheetVisAtt); - else - logicWCCapBlackSheet->SetVisAttributes(WCCapBlackSheetVisAtt);} - - //--------------------------------------------------------- - // Add top and bottom PMTs - // ----------------------------------------------------- - - G4LogicalVolume* logicWCPMT; - if(nID_PMTs<=1) logicWCPMT = ConstructPMT(WCPMTName, WCIDCollectionName,"tank",nID_PMTs); - else logicWCPMT = ConstructMultiPMT(WCPMTName, WCIDCollectionName,"tank",nID_PMTs); - G4LogicalVolume* logicWCPMT2; - if(hybrid){ - if(nID_PMTs2<=1) logicWCPMT2 = ConstructPMT(WCPMTName2, WCIDCollectionName2,"tankPMT2",nID_PMTs2); - else logicWCPMT2 = ConstructMultiPMT(WCPMTName2, WCIDCollectionName2,"tankPMT2",nID_PMTs2); - } - //G4LogicalVolume* logicWCPMT = ConstructPMT(WCPMTName, WCIDCollectionName); - G4String pmtname = "WCMultiPMT"; - - // If using RayTracer and want to view the detector without caps, comment out the top and bottom PMT's - G4double xoffset; - G4double yoffset; - G4int icopy = 0; - - G4RotationMatrix* WCCapPMTRotation = new G4RotationMatrix; - //if mPMT: perp to wall - if(orientation == PERPENDICULAR){ - if(zflip==-1){ - WCCapPMTRotation->rotateY(180.*deg); - } - } - else if (orientation == VERTICAL) - WCCapPMTRotation->rotateY(90.*deg); - else if (orientation == HORIZONTAL) - WCCapPMTRotation->rotateX(90.*deg); - - // loop over the cap - if(placeCapPMTs){ - G4int CapNCell = WCCapEdgeLimit/WCCapPMTSpacing + 2; -#ifdef DEBUG - G4cout << "Debug B.Q, wccap edge = " << WCCapEdgeLimit << ", spacing = " << WCCapPMTSpacing << ", CapNCell = " << CapNCell << ", PMT radius = " << WCPMTRadius << G4endl; - // G4cout << "Debug B.Q, test = " << ((horizontalModulo == verticalModulo) && hybrid && WCPMTPercentCoverage2!=0) << G4endl; -#endif - for ( int i = -CapNCell ; i < CapNCell; i++) { - for (int j = -CapNCell ; j < CapNCell; j++) { - - - xoffset = i*WCCapPMTSpacing + WCCapPMTSpacing*0.5; - yoffset = j*WCCapPMTSpacing + WCCapPMTSpacing*0.5; - - - G4ThreeVector cellpos = G4ThreeVector(xoffset, yoffset, 0); - // G4double WCBarrelEffRadius = WCIDDiameter/2. - WCCapPMTSpacing; - // double comp = xoffset*xoffset + yoffset*yoffset - // - 2.0 * WCBarrelEffRadius * sqrt(xoffset*xoffset+yoffset*yoffset) - // + WCBarrelEffRadius*WCBarrelEffRadius; - // if ( (comp > WCPMTRadius*WCPMTRadius) && ((sqrt(xoffset*xoffset + yoffset*yoffset) + WCPMTRadius) < WCCapEdgeLimit) ) { - double dcenter = hybrid?std::max(WCPMTRadius,WCPMTRadius2):WCPMTRadius; - dcenter+=sqrt(xoffset*xoffset + yoffset*yoffset); - if (dcenter < WCCapEdgeLimit) - - // for debugging boundary cases: - // && ((sqrt(xoffset*xoffset + yoffset*yoffset) + WCPMTRadius) > (WCCapEdgeLimit-100)) ) - { - - //B.Q for Hybrid - G4int horizontalModulo = (i+CapNCell) - WCPMTperCellHorizontal*std::floor((i+CapNCell)/WCPMTperCellHorizontal); - G4int verticalModulo = (j+CapNCell) - WCPMTperCellVertical*std::floor((j+CapNCell)/WCPMTperCellVertical); - -#ifdef DEBUG - //G4cout << "Debug B.Q, xoffset = " << xoffset << ", yoffset = " << yoffset << ", distance = " << dcenter << G4endl; - //G4cout << "Debug B.Q, xoffset = " << xoffset << ", yoffset = " << yoffset << ", CapNCell = " << CapNCell << ", spacing = " << WCCapPMTSpacing << G4endl; - // G4cout << "Debug B.Q, test = " << ((horizontalModulo == verticalModulo) && hybrid && WCPMTPercentCoverage2!=0) << G4endl; -#endif - G4VPhysicalVolume* physiCapPMT = - new G4PVPlacement(WCCapPMTRotation, - cellpos,// its position - ((horizontalModulo == verticalModulo) && hybrid && WCPMTPercentCoverage2!=0)?logicWCPMT2:logicWCPMT, // its logical volume - pmtname, // its name - logicWCCap, // its mother volume - false, // no boolean os - icopy, // every PMT need a unique id. - checkOverlapsPMT); - /* - G4VPhysicalVolume* physiCapPMT = - new G4PVPlacement(WCCapPMTRotation, - cellpos,// its position - logicWCPMT, // its logical volume - pmtname, // its name - logicWCCap, // its mother volume - false, // no boolean os - icopy, // every PMT need a unique id. - checkOverlapsPMT); - */ - // logicWCPMT->GetDaughter(0),physiCapPMT is the glass face. If you add more - // daugter volumes to the PMTs (e.g. a acryl cover) you have to check, if - // this is still the case. - - // ((i%WCPMTperCellHorizontal == j%WCPMTperCellVertical) && hybrid)?logicWCPMT2:logicWCPMT, // its logical volume - - icopy++; - } - } - } - - - G4cout << "total on cap: " << icopy << "\n"; - G4cout << "Coverage was calculated to be: " << (icopy*WCPMTRadius*WCPMTRadius/(WCIDRadius*WCIDRadius)) << "\n"; - }//end if placeCapPMTs - - /////////////// Barrel PMT placement - G4RotationMatrix* WCPMTRotation = new G4RotationMatrix; - if(orientation == PERPENDICULAR) - WCPMTRotation->rotateY(90.*deg); //if mPMT: perp to wall - else if(orientation == VERTICAL) - WCPMTRotation->rotateY(0.*deg); //if mPMT: vertical/aligned to wall - else if(orientation == HORIZONTAL) - WCPMTRotation->rotateX(90.*deg); //if mPMT: horizontal to wall - - - G4double barrelCellWidth = 2.*WCIDRadius*tan(dPhi/2.); - G4double horizontalSpacing = barrelCellWidth/WCPMTperCellHorizontal; - G4double verticalSpacing = barrelCellHeight/WCPMTperCellVertical; - - if(placeBorderPMTs){ -#ifdef DEBUG - G4cout << "Debug B.Q : place border pmt, spacing horiz = " << horizontalSpacing << ", vertical = " << verticalSpacing*zflip << G4endl; -#endif - - for(G4double i = 0; i < WCPMTperCellHorizontal; i++){ - for(G4double j = 0; j < WCPMTperCellVertical; j++){ - G4ThreeVector PMTPosition = G4ThreeVector(WCIDRadius, - -barrelCellWidth/2.+(i+0.5)*horizontalSpacing, - (-barrelCellHeight/2.+(j+0.5)*verticalSpacing)*zflip); - - G4VPhysicalVolume* physiWCBarrelBorderPMT = - new G4PVPlacement(WCPMTRotation, // its rotation - PMTPosition, - (i==j && hybrid && WCPMTPercentCoverage2!=0)?logicWCPMT2:logicWCPMT, // its logical volume - pmtname, // its name - logicWCBarrelBorderCell, // its mother volume - false, // no boolean operations - (int)(i*WCPMTperCellVertical+j), - checkOverlapsPMT); - - // logicWCPMT->GetDaughter(0),physiCapPMT is the glass face. If you add more - // daugter volumes to the PMTs (e.g. a acryl cover) you have to check, if - // this is still the case. - } - } - //------------------------------------------------------------- - // Add PMTs in extra Tower if necessary - //------------------------------------------------------------ - - - if(!(WCBarrelRingNPhi*WCPMTperCellHorizontal == WCBarrelNumPMTHorizontal)){ - -#ifdef DEBUG - G4cout << "Debug B.Q : Add extra tower cap " << G4endl; -#endif - - G4RotationMatrix* WCPMTRotation = new G4RotationMatrix; - WCPMTRotation->rotateY(90.*deg); - WCPMTRotation->rotateX((2*pi-totalAngle)/2.);//align the PMT with the Cell - - G4double towerWidth = WCIDRadius*tan(2*pi-totalAngle); - - G4double horizontalSpacing = towerWidth/(WCBarrelNumPMTHorizontal-WCBarrelRingNPhi*WCPMTperCellHorizontal); - G4double verticalSpacing = barrelCellHeight/WCPMTperCellVertical; - - for(G4double i = 0; i < (WCBarrelNumPMTHorizontal-WCBarrelRingNPhi*WCPMTperCellHorizontal); i++){ - for(G4double j = 0; j < WCPMTperCellVertical; j++){ - G4ThreeVector PMTPosition = G4ThreeVector(WCIDRadius/cos(dPhi/2.)*cos((2.*pi-totalAngle)/2.), - towerWidth/2.-(i+0.5)*horizontalSpacing, - (-barrelCellHeight/2.+(j+0.5)*verticalSpacing)*zflip); - PMTPosition.rotateZ(-(2*pi-totalAngle)/2.); // align with the symmetry - //axes of the cell - - G4VPhysicalVolume* physiWCBarrelBorderPMT = - new G4PVPlacement(WCPMTRotation, // its rotation - PMTPosition, - (i==j && hybrid && WCPMTPercentCoverage2!=0)?logicWCPMT2:logicWCPMT, // its logical volume - "WCPMT", // its name - logicWCExtraBorderCell, // its mother volume - false, // no boolean operations - (int)(i*WCPMTperCellVertical+j), - checkOverlapsPMT); - - // logicWCPMT->GetDaughter(0),physiCapPMT is the glass face. If you add more - // daugter volumes to the PMTs (e.g. a acryl cover) you have to check, if - // this is still the case. - } - } - - } - }//end if placeBorderPMTs -return logicCapAssembly; - -} - - diff --git a/libWCSIM/src/WCSimConstructEggShapedHyperK.cc b/libWCSIM/src/WCSimConstructEggShapedHyperK.cc deleted file mode 100644 index aae8614..0000000 --- a/libWCSIM/src/WCSimConstructEggShapedHyperK.cc +++ /dev/null @@ -1,723 +0,0 @@ -// -*- mode:c++; tab-width:4; -*- -#include "WCSimDetectorConstruction.hh" - -#include "G4SystemOfUnits.hh" -#include "G4ThreeVector.hh" -#include "G4RotationMatrix.hh" -#include "G4Transform3D.hh" - -#include "G4Material.hh" -#include "G4NistManager.hh" - -#include "G4Box.hh" -#include "G4Trap.hh" -#include "G4Tubs.hh" -#include "G4Sphere.hh" - -#include "G4UnionSolid.hh" -#include "G4SubtractionSolid.hh" - -#include "G4LogicalVolume.hh" -#include "G4PVPlacement.hh" -#include "G4PVReplica.hh" - -#include "G4LogicalSkinSurface.hh" - -#include "G4VisAttributes.hh" - -#include "G4SDManager.hh" -#include "WCSimWCSD.hh" - - -/*********************************************************** - * - * This file contains the functions which construct an - * egg-shaped HyperK detector. It used by the HK detector - * configuration modes. It is called in the Construct() - * method in WCSimDetectorConstruction.cc. - * - * Sourcefile for the WCSimDetectorConstruction class - * - ***********************************************************/ - - -G4LogicalVolume* WCSimDetectorConstruction::ConstructEggShapedHyperK() -{ - G4cout << "**** Construct egg-shaped HyperK Detector ****" << G4endl; - - PMTCopyNo = 0; - wallSlabCopyNo = 0; - - // ------------- Volumes -------------- - - checkOverlaps = true; - - // HyperK Volume - - G4LogicalVolume* eggShapedHyperKLV - = new G4LogicalVolume(new G4Box("EggShapedHyperKBox", - waterTank_Height/2., - waterTank_Height/2., - waterTank_Length/2.+blackSheetThickness), - FindMaterial("G4_AIR"), - "EggShapedHyperK"); - eggShapedHyperKLV->SetVisAttributes(G4VisAttributes::Invisible); - - new G4LogicalSkinSurface("WaterBSSurface",eggShapedHyperKLV,OpWaterBSSurface); - -// G4VPhysicalVolume* eggShapedHyperKPV -// = new G4PVPlacement(0,G4ThreeVector(),eggShapedHyperKLV, -// "EggShapedHyperK",0,false,0,checkOverlaps); - - // +/- Z Black Sheets - - G4LogicalVolume* blackSheetZLV - = new G4LogicalVolume(new G4Box("blackSheetZ", - waterTank_Height/2., - waterTank_Height/2., - blackSheetThickness/2.), - FindMaterial("G4_POLYETHYLENE"), - "blackSheetZ"); -// blackSheetZLV->SetVisAttributes(new G4VisAttributes(G4Colour(0,0.5,1.))); - - new G4LogicalSkinSurface("WaterBSSurface",blackSheetZLV,OpWaterBSSurface); - - G4double z = waterTank_Length/2.+blackSheetThickness/2.; - - new G4PVPlacement(0,G4ThreeVector(0,0, z),blackSheetZLV, - "blackSheetZ",eggShapedHyperKLV,false,0,checkOverlaps); - new G4PVPlacement(0,G4ThreeVector(0,0,-z),blackSheetZLV, - "blackSheetZ",eggShapedHyperKLV,false,1,checkOverlaps); - -// ----------------------------------------------------------------- -// G4LogicalVolume* pmtLV = ConstructPMT(innerPMT_Radius,innerPMT_Expose); -// new G4PVPlacement(0,G4ThreeVector(0.,0.,innerPMT_Expose/2.), -// pmtLV,"PMT",eggShapedHyperKLV,false,0,checkOverlaps); -// return eggShapedHyperKLV; -// ----------------------------------------------------------------- - - // The egg-shaped Water Tank - - G4VSolid* waterTank_top = ConstructHalf(waterTank_TopR,waterTank_UpperA); - G4VSolid* waterTank_bot = ConstructHalf(waterTank_BotR,waterTank_LowerB); - - G4RotationMatrix rotm = G4RotationMatrix(); - rotm.rotateZ(180.*degree); - - G4VSolid* waterTank_union - = new G4UnionSolid("Union",waterTank_top,waterTank_bot, - G4Transform3D(rotm, - G4ThreeVector(0,-waterTank_Height/2.,0))); - - waterTankLV - = new G4LogicalVolume(waterTank_union,FindMaterial("G4_WATER"),"Tank"); - waterTankLV->SetVisAttributes(G4VisAttributes::Invisible); - - new G4PVPlacement(0,G4ThreeVector(0,waterTank_Height/4.,0), - waterTankLV,"Tank",eggShapedHyperKLV,false,0,checkOverlaps); - - G4RotationMatrix* g4rot; - G4LogicalVolume* pmtCellLV; - - //Construct the PMTs - - G4LogicalVolume* logicWCPMT = ConstructPMT(WCPMTName, WCIDCollectionName); - G4LogicalVolume* logicWCPMT_OD = ConstructPMT(outerPMT_Name, WCODCollectionName); - - // Radial PMTs - - pmtCellLV = ConstructRadialPMT(true, innerPMT_TopR, innerPMT_Height, - waterTank_UpperA, innerPMT_Expose, - innerPMT_Rpitch, innerPMT_Apitch); - - g4rot = new G4RotationMatrix(); - g4rot->rotateY(90.*deg); - - G4double ratio = innerPMT_Radius/innerPMT_TopR; - G4double r = innerPMT_TopR*std::sqrt(1.-ratio*ratio); - r -= innerPMT_Expose/2.; - - new G4PVPlacement(g4rot, - G4ThreeVector(r,0.,0.), - logicWCPMT, - "PMT", - pmtCellLV, - false,PMTCopyNo++,checkOverlaps); - - pmtCellLV = ConstructRadialPMT(false, innerPMT_BotR, innerPMT_Height, - waterTank_LowerB,innerPMT_Expose, - innerPMT_Rpitch, innerPMT_Apitch); - - ratio = innerPMT_Radius/innerPMT_BotR; - r = innerPMT_BotR*std::sqrt(1.-ratio*ratio); - r -= innerPMT_Expose/2.; - - new G4PVPlacement(g4rot, - G4ThreeVector(r,0.,0.), - logicWCPMT, - "PMT", - pmtCellLV, - false,PMTCopyNo++,checkOverlaps); - - pmtCellLV = ConstructRadialPMT(true, outerPMT_TopR, outerPMT_Height, - waterTank_UpperA, outerPMT_Expose, - outerPMT_TopRpitch, outerPMT_Apitch); - - g4rot = new G4RotationMatrix(); - g4rot->rotateY(-90.*deg); - - G4double phi = outerPMT_TopRpitch/outerPMT_TopR/3; - G4double dphi = innerPMT_Radius/innerPMT_TopR; - - G4double angle = -phi + dphi; - - ratio = outerPMT_Radius/outerPMT_TopR; - r = outerPMT_TopR*std::sqrt(1.-ratio*ratio); - // don't understand this reall.... - r -= outerPMT_Expose; - - G4double x = r * std::cos(angle); - G4double y = r * std::sin(angle); -// G4double x = (outerPMT_TopR+outerPMT_Expose/2.) * std::cos(angle); -// G4double y = (outerPMT_TopR+outerPMT_Expose/2.) * std::sin(angle); - z = -outerPMT_Apitch/4.; - - new G4PVPlacement(g4rot, G4ThreeVector(x,y,z), - logicWCPMT_OD, - "PMT", - pmtCellLV, - false,PMTCopyNo++,checkOverlaps); - - angle = phi - dphi; - - x = r * std::cos(angle); - y = r * std::sin(angle); -// x = (outerPMT_TopR+outerPMT_Expose/2.) * std::cos(angle); -// y = (outerPMT_TopR+outerPMT_Expose/2.) * std::sin(angle); - z = outerPMT_Apitch/4.; - - new G4PVPlacement(g4rot, G4ThreeVector(x,y,z), - logicWCPMT_OD, - "PMT", - pmtCellLV, - false,PMTCopyNo++,checkOverlaps); - - pmtCellLV = ConstructRadialPMT(false, outerPMT_BotR, outerPMT_Height, - waterTank_LowerB, outerPMT_Expose, - outerPMT_BotRpitch, outerPMT_Apitch); - - phi = outerPMT_BotRpitch/outerPMT_BotR/3; - dphi = innerPMT_Radius/innerPMT_BotR; - - angle = -phi + dphi; - - ratio = outerPMT_Radius/outerPMT_BotR; - r = outerPMT_BotR*std::sqrt(1.-ratio*ratio); - // don't understand this reall.... - r -= outerPMT_Expose; - - x = r * std::cos(angle); - y = r * std::sin(angle); -// x = (outerPMT_BotR+outerPMT_Expose/2.) * std::cos(angle); -// y = (outerPMT_BotR+outerPMT_Expose/2.) * std::sin(angle); - z = -outerPMT_Apitch/4.; - - new G4PVPlacement(g4rot, G4ThreeVector(x,y,z), - logicWCPMT_OD, - "PMT", - pmtCellLV, - false,PMTCopyNo++,checkOverlaps); - - angle = phi - dphi; - - x = r * std::cos(angle); - y = r * std::sin(angle); -// x = (outerPMT_BotR+outerPMT_Expose/2.) * std::cos(angle); -// y = (outerPMT_BotR+outerPMT_Expose/2.) * std::sin(angle); - z = outerPMT_Apitch/4.; - - new G4PVPlacement(g4rot, G4ThreeVector(x,y,z), - logicWCPMT_OD, - "PMT", - pmtCellLV, - false,PMTCopyNo++,checkOverlaps); - - // End Wall PMTs - - pmtCellLV = ConstructEndWallPMT(); - - g4rot = new G4RotationMatrix(); - g4rot->rotateY(180.*deg); - - new G4PVPlacement(g4rot, G4ThreeVector(0.,0.,-innerPMT_Expose/2.), - logicWCPMT, - "PMT", - pmtCellLV, - false,PMTCopyNo++,checkOverlaps); - - // Top and Bottom PMTs - - pmtCellLV = ConstructCeilingPMT(true, innerPMT_TopW, innerPMT_Height, - innerPMT_Apitch, innerPMT_Expose); - - g4rot = new G4RotationMatrix(); - g4rot->rotateX(-90.*deg); - - new G4PVPlacement(g4rot, G4ThreeVector(0.,0.,0.), - logicWCPMT, - "PMT", - pmtCellLV, - false,PMTCopyNo++,checkOverlaps); - - pmtCellLV = ConstructCeilingPMT(false, innerPMT_BotW, innerPMT_Height, - innerPMT_Apitch, innerPMT_Expose); - - new G4PVPlacement(g4rot, G4ThreeVector(0.,0.,0.), - logicWCPMT, - "PMT", - pmtCellLV, - false,PMTCopyNo++,checkOverlaps); - - pmtCellLV = ConstructCeilingPMT(true, outerPMT_TopW, outerPMT_Height, - outerPMT_Apitch, outerPMT_Expose); - - g4rot = new G4RotationMatrix(); - g4rot->rotateX(90.*deg); - - new G4PVPlacement(g4rot, G4ThreeVector(0.,0.,0.), - logicWCPMT_OD, - "PMT", - pmtCellLV, - false,PMTCopyNo++,checkOverlaps); - - pmtCellLV = ConstructCeilingPMT(false, outerPMT_BotW, outerPMT_Height, - outerPMT_Apitch, outerPMT_Expose); - - new G4PVPlacement(g4rot, G4ThreeVector(0.,0.,0.), - logicWCPMT_OD, - "PMT", - pmtCellLV, - false,PMTCopyNo++,checkOverlaps); - - // - // always return the physical HyperK volume - // - return eggShapedHyperKLV; -} - -G4VSolid* WCSimDetectorConstruction::ConstructHalf(G4double waterTank_Radius, - G4double waterTank_OffSet) -{ - G4double sinPhi = (waterTank_Height/2.)/waterTank_Radius; - G4double cosPhi = std::sqrt(1.-sinPhi*sinPhi); - - G4double sinPhiHalf = std::sqrt((1.-cosPhi)/2.); - G4double cosPhiHalf = std::sqrt((1.+cosPhi)/2.); - - G4double phi = std::asin(sinPhi); - - G4Trap* waterTank_trap - = new G4Trap("TankTrap", - waterTank_Length/2.,0.,0., - waterTank_Height/4., - waterTank_Radius-waterTank_OffSet, - waterTank_Radius*cosPhi-waterTank_OffSet, - 0, - waterTank_Height/4., - waterTank_Radius-waterTank_OffSet, - waterTank_Radius*cosPhi-waterTank_OffSet, - 0); - - const G4double epsilon = 1*mm; - G4VSolid* waterTank_slice - = new G4SubtractionSolid("TankSlice", - new G4Tubs("WaterTubs", - 0.,waterTank_Radius, - waterTank_Length/2., - -phi/2.,phi), - new G4Box("WaterBox", - waterTank_Radius*cosPhiHalf, - waterTank_Radius*sinPhiHalf, - waterTank_Length/2.+epsilon)); - - G4RotationMatrix rotm = G4RotationMatrix(); - rotm.rotateZ(phi/2.); - - G4VSolid* waterTank_union1 - = new G4UnionSolid("Union1",waterTank_trap,waterTank_slice, - G4Transform3D(rotm,G4ThreeVector(-waterTank_OffSet, - -waterTank_Height/4., - 0))); - - rotm = G4RotationMatrix(); - rotm.rotateZ(phi/2.); - rotm.rotateY(180.*degree); - - G4VSolid* waterTank_union2 - = new G4UnionSolid("Union2",waterTank_union1,waterTank_slice, - G4Transform3D(rotm,G4ThreeVector(waterTank_OffSet, - -waterTank_Height/4., - 0))); - return waterTank_union2; -} - - -G4LogicalVolume* WCSimDetectorConstruction::ConstructRadialPMT(G4bool top, - G4double radius, - G4double height, - G4double offset, - G4double expose, - G4double pitchR, - G4double pitchZ) -{ - G4bool inner = false; - if (height == innerPMT_Height) inner = true; - - G4double sinPhi = height/radius; - - G4double phi = std::asin(sinPhi); - G4int nphi = (G4int)(radius*phi/pitchR); - - if(radius == innerPMT_TopR){ - nphi = nphi + 1; - innerPMT_TopN = nphi; - } - if(radius == innerPMT_BotR){ - innerPMT_BotN = nphi; - } - if(radius == outerPMT_TopR){ - nphi = innerPMT_TopN/3; - } - if(radius == outerPMT_BotR){ - nphi = innerPMT_BotN/3; - } - - phi = nphi * pitchR/radius; - - G4double dphi = pitchR/radius; - - G4double length = waterTank_Length; - G4int nz = (G4int)(length/pitchZ); - length = nz * pitchZ; - - G4LogicalVolume* pmtAnnulusLV - = new G4LogicalVolume(new G4Tubs("PMTAnnulus", - radius-2.*expose,radius, - length/2., - -phi/2.,phi), - FindMaterial("G4_WATER"), - "PMTAnnulus"); - pmtAnnulusLV->SetVisAttributes(G4VisAttributes::Invisible); - - G4LogicalVolume* blackSheetALV = NULL; - if (inner) { - blackSheetALV = - new G4LogicalVolume(new G4Tubs("blackSheetA", - radius,radius+blackSheetThickness, - length/2., - -phi/2.,phi), - FindMaterial("G4_POLYETHYLENE"), - "blackSheetA"); -// blackSheetALV->SetVisAttributes(new G4VisAttributes(G4Colour(0,0.5,1.))); - new G4LogicalSkinSurface("WaterBSSurface",blackSheetALV,OpWaterBSSurface); - } - - G4LogicalVolume* pmtRingLV - = new G4LogicalVolume(new G4Tubs("PMTRing", - radius-2.*expose,radius, - pitchZ/2., - -phi/2.,phi), - FindMaterial("G4_WATER"), - "PMTRings"); - pmtRingLV->SetVisAttributes(G4VisAttributes::Invisible); - - G4LogicalVolume* pmtCellLV - = new G4LogicalVolume(new G4Tubs("PMTCell", - radius-2.*expose,radius, - pitchZ/2., - -dphi/2.,dphi), - FindMaterial("G4_WATER"), - "PMTCell"); - pmtCellLV->SetVisAttributes(G4VisAttributes::Invisible); - -//----------------------------------------------------------------- -// -// G4Tubs* cell_solid = new G4Tubs("Cell", -// radius-2.*expose,radius, -// pitchZ/2., -// -dphi/2.,dphi); -// G4LogicalVolume* cellLV = new G4LogicalVolume(cell_solid, -// FindMaterial("G4_WATER"), -// "Cell"); -// G4VisAttributes* red = new G4VisAttributes(G4Colour(255/255.,0/255.,0/255.)); -// cellLV->SetVisAttributes(red); -// G4RotationMatrix* g4rot = new G4RotationMatrix(); -// G4double angle = -phi/2.+dphi/2.; -// g4rot->rotateZ(angle); -// *g4rot = g4rot->inverse(); -// for (G4int i=0; irotateZ(-phi/2.); - if(!top)rotm->rotateZ(180.*degree); - - G4int t = 1; - if(!top)t = -1; - - new G4PVPlacement(rotm,G4ThreeVector(-t*offset,-waterTank_Height/4.,0), - pmtAnnulusLV,"PMTAnnulus",waterTankLV,false,0,checkOverlaps); - if (inner) - new G4PVPlacement(rotm,G4ThreeVector(-t*offset,-waterTank_Height/4.,0), - blackSheetALV,"blackSheetA",waterTankLV,false,0,checkOverlaps); - - rotm = new G4RotationMatrix(); - rotm->rotateZ(phi/2.); - if(!top)rotm->rotateZ(180.*degree); - rotm->rotateY(180.*degree); - - new G4PVPlacement(rotm,G4ThreeVector( t* offset,-waterTank_Height/4.,0), - pmtAnnulusLV,"PMTAnnulus",waterTankLV,false,1,checkOverlaps); - if (inner) - new G4PVPlacement(rotm,G4ThreeVector( t* offset,-waterTank_Height/4.,0), - blackSheetALV,"blackSheetA",waterTankLV,false,1,checkOverlaps); - -// return cellLV; - return pmtCellLV; -} - -G4LogicalVolume* WCSimDetectorConstruction::ConstructEndWallPMT() -{ - G4LogicalVolume* pmtCellLV - = new G4LogicalVolume(new G4Box("PMTCell", - innerPMT_Apitch/2., - innerPMT_Apitch/2., - innerPMT_Apitch/2.), - FindMaterial("G4_WATER"), - "PMTCell"); - pmtCellLV->SetVisAttributes(G4VisAttributes::Invisible); - - G4RotationMatrix* rotm = new G4RotationMatrix(); - rotm->rotateY(180.*degree); - - G4int i = 0; - G4double x = innerPMT_Apitch/2.; - G4ThreeVector xv = G4ThreeVector(x,0.,0.); - - while (x < innerPMT_TopR - waterTank_UpperA) - - { - G4int j = 0; - G4double y = innerPMT_Apitch/2.; - G4ThreeVector ov = G4ThreeVector(waterTank_UpperA,0.,0.); - G4ThreeVector yv = G4ThreeVector(0.,y,0.); - -// while (y < innerPMT_Height - innerPMT_Radius) - while (y < innerPMT_Height - 2*innerPMT_Expose) - { - G4ThreeVector dv = ov + xv + yv; -// if (dv.mag() > innerPMT_TopR - innerPMT_Radius) break; - if (dv.mag() > innerPMT_TopR - 2*innerPMT_Expose) break; - j++; - y+=innerPMT_Apitch; - yv = G4ThreeVector(0.,y,0.); - } - G4int ny = j; - j--; - y-=innerPMT_Apitch; - - G4double yt = y; - - j = 0; - y = innerPMT_Apitch/2.; - ov = G4ThreeVector(waterTank_LowerB,0.,0.); - yv = G4ThreeVector(0.,y,0.); - -// while (y < innerPMT_Height - innerPMT_Radius) - while (y < innerPMT_Height - 2*innerPMT_Expose) - { - G4ThreeVector dv = ov + xv + yv; -// if (dv.mag() > innerPMT_BotR - innerPMT_Radius) break; - if (dv.mag() > innerPMT_BotR - 2*innerPMT_Expose) break; - j++; - y+=innerPMT_Apitch; - yv = G4ThreeVector(0.,y,0.); - } - j--; - ny += j; - y-=innerPMT_Apitch; - - G4double yb = y; - - G4LogicalVolume* pmtSlabLV - = new G4LogicalVolume(new G4Box("PMTSlab", - innerPMT_Apitch/2., - (yt+yb)/2., - innerPMT_Apitch/2.), - FindMaterial("G4_WATER"), - "PMTSlab"); - pmtSlabLV->SetVisAttributes(G4VisAttributes::Invisible); - - new G4PVReplica("PMTCell", - pmtCellLV, - pmtSlabLV, - kYAxis, - ny, - innerPMT_Apitch); - - G4double xpos = x-innerPMT_Apitch/2.; - G4double ypos = (yt-yb)/2. - waterTank_Height/4. ; - G4double zpos = waterTank_Length/2.-innerPMT_Apitch/2.; - - new G4PVPlacement(0, G4ThreeVector(xpos,ypos, zpos), - pmtSlabLV,"PMTSlab",waterTankLV,false,wallSlabCopyNo++,checkOverlaps); - new G4PVPlacement(rotm,G4ThreeVector(xpos,ypos,-zpos), - pmtSlabLV,"PMTSlab",waterTankLV,false,wallSlabCopyNo++,checkOverlaps); - if ( i > 0 ) { - xpos = -xpos; - new G4PVPlacement(0, G4ThreeVector(xpos,ypos, zpos), - pmtSlabLV,"PMTSlab",waterTankLV,false,wallSlabCopyNo++,checkOverlaps); - new G4PVPlacement(rotm,G4ThreeVector(xpos,ypos,-zpos), - pmtSlabLV,"PMTSlab",waterTankLV,false,wallSlabCopyNo++,checkOverlaps); - } - - i++; - x+=innerPMT_Apitch; - xv = G4ThreeVector(x,0.,0.); - - } - - return pmtCellLV; -} - -G4LogicalVolume* WCSimDetectorConstruction::ConstructCeilingPMT(G4bool top, - G4double width, - G4double height, - G4double pitch, - G4double size) -{ - G4bool inner = false; - if (height == innerPMT_Height) inner = true; - - G4int nx = (G4int)(2.*width/pitch); - - // ***** to fix the overlap with annulus ***** - nx = nx - 1; - - G4double xlength = nx * pitch; - G4int nz = (G4int)(waterTank_Length/pitch); - G4double zlength = nz * pitch; - - G4LogicalVolume* pmtSlabLV - = new G4LogicalVolume(new G4Box("PMTSlab", - xlength/2., - size/2., - zlength/2.), - FindMaterial("G4_WATER"), - "PMTSlab"); - pmtSlabLV->SetVisAttributes(G4VisAttributes::Invisible); - - G4LogicalVolume* blackSheetYLV = NULL; - if (inner) { - blackSheetYLV = - new G4LogicalVolume(new G4Box("blackSheetY", - xlength/2., - blackSheetThickness/2., - zlength/2.), - FindMaterial("G4_POLYETHYLENE"), - "blackSheetY"); -// blackSheetYLV->SetVisAttributes(new G4VisAttributes(G4Colour(0,0.5,1.))); - new G4LogicalSkinSurface("WaterBSSurface",blackSheetYLV,OpWaterBSSurface); - } - - G4LogicalVolume* pmtSliceLV - = new G4LogicalVolume(new G4Box("PMTSlice", - xlength/2., - size/2., - pitch/2.), - FindMaterial("G4_WATER"), - "PMTSlab"); - pmtSliceLV->SetVisAttributes(G4VisAttributes::Invisible); - - G4LogicalVolume* pmtCellLV - = new G4LogicalVolume(new G4Box("PMTCell", - pitch/2., - size/2., - pitch/2.), - FindMaterial("G4_WATER"), - "PMTCell"); - pmtCellLV->SetVisAttributes(G4VisAttributes::Invisible); - - G4VPhysicalVolume* pmtSlicePV - = new G4PVReplica("PMTSlice", - pmtSliceLV, - pmtSlabLV, - kZAxis, - nz, - pitch); - - new G4PVReplica("PMTCell", - pmtCellLV, - pmtSlicePV, - kXAxis, - nx, - pitch); - - G4double xpos = 0.0*mm; - G4double ypos = (height-size/2.) - waterTank_Height/4.; - G4double zpos = 0.0*mm; - - if (top) { - new G4PVPlacement(0,G4ThreeVector(xpos,ypos,zpos), - pmtSlabLV,"PMTSlab",waterTankLV,false,wallSlabCopyNo++,checkOverlaps); - ypos += size/2. + blackSheetThickness/2.; - if (inner) new G4PVPlacement(0,G4ThreeVector(xpos,ypos,zpos), - blackSheetYLV,"blackSheet",waterTankLV,false,wallSlabCopyNo++,checkOverlaps); - } else { - ypos = (-height+size/2.) - waterTank_Height/4.; - G4RotationMatrix* rotm = new G4RotationMatrix(); - rotm->rotateZ(180.*degree); - new G4PVPlacement(rotm,G4ThreeVector(xpos,ypos,zpos), - pmtSlabLV,"PMTSlab",waterTankLV,false,wallSlabCopyNo++,checkOverlaps); - ypos -= size/2. + blackSheetThickness/2.; - if (inner) new G4PVPlacement(0,G4ThreeVector(xpos,ypos,zpos), - blackSheetYLV,"blackSheet",waterTankLV,false,wallSlabCopyNo++,checkOverlaps); - - } - - return pmtCellLV; -} - -/** - * Mapping allows HK and SK to eventually have different materials - */ -G4Material* WCSimDetectorConstruction::FindMaterial(G4String name) -{ - if (name == "G4_AIR") return FindMaterial("Air"); - if (name == "G4_WATER") return FindMaterial("Water"); - if (name == "G4_POLYETHYLENE") return FindMaterial("Blacksheet"); - G4Material* material = G4Material::GetMaterial(name,true); - return material; -} diff --git a/libWCSIM/src/WCSimConstructGeometryTables.cc b/libWCSIM/src/WCSimConstructGeometryTables.cc deleted file mode 100644 index 7a9b0ac..0000000 --- a/libWCSIM/src/WCSimConstructGeometryTables.cc +++ /dev/null @@ -1,491 +0,0 @@ -#include "WCSimDetectorConstruction.hh" -#include "WCSimPmtInfo.hh" - -#include "G4Material.hh" -#include "G4Element.hh" -#include "G4Box.hh" -#include "G4LogicalVolume.hh" -#include "G4VPhysicalVolume.hh" -#include "G4PVPlacement.hh" -#include "G4ThreeVector.hh" -#include "G4Vector3D.hh" -#include "globals.hh" -#include "G4VisAttributes.hh" -#include "G4Tubs.hh" -#include "G4Sphere.hh" -#include "G4VPVParameterisation.hh" - -#include "G4PhysicalConstants.hh" -#include "G4SystemOfUnits.hh" - -#include -#include - - -using std::setw; -// These routines are object registration routines that you can pass -// to the traversal code. - -void WCSimDetectorConstruction::PrintGeometryTree -(G4VPhysicalVolume* aPV ,int aDepth, int /*replicaNo*/, - const G4Transform3D& aTransform) -{ - for (int levels = 0; levels < aDepth; levels++) G4cout << " "; - G4cout << aPV->GetName() << " Level:" << aDepth - << " Pos:" << aTransform.getTranslation() - << " Rot:" << aTransform.getRotation().getTheta()/deg - << "," << aTransform.getRotation().getPhi()/deg - << "," << aTransform.getRotation().getPsi()/deg - << G4endl; -} - -void WCSimDetectorConstruction::GetWCGeom -(G4VPhysicalVolume* aPV ,int aDepth, int /*replicaNo*/, - const G4Transform3D& aTransform) -{ - - // Grab mishmash of useful information from the tree while traversing it - // This information will later be written to the geometry file - // (Alternatively one might define accessible constants) - - if ((aPV->GetName() == "WCBox")) { // last condition is the HyperK Envelope name. - // Stash info in data member - WCOffset = G4ThreeVector(aTransform.getTranslation().getX()/cm, - aTransform.getTranslation().getY()/cm, - aTransform.getTranslation().getZ()/cm); - WCXRotation = G4ThreeVector(aTransform.getRotation().xx(), aTransform.getRotation().xy(), aTransform.getRotation().xz()); - WCYRotation = G4ThreeVector(aTransform.getRotation().yx(), aTransform.getRotation().yy(), aTransform.getRotation().yz()); - WCZRotation = G4ThreeVector(aTransform.getRotation().zx(), aTransform.getRotation().zy(), aTransform.getRotation().zz()); - } - - // Stash info in data member - // AH Need to store this in CM for it to be understood by SK code - WCPMTSize = WCPMTRadius/cm;// I think this is just a variable no if needed - WCPMTSize2 = WCPMTRadius2/cm;// I think this is just a variable no if needed - - // Note WC can be off-center... get both extremities - static G4float zmin=100000,zmax=-100000.; - static G4float xmin=100000,xmax=-100000.; - static G4float ymin=100000,ymax=-100000.; - if (aDepth == 0) { // Reset for this traversal - xmin=100000,xmax=-100000.; - ymin=100000,ymax=-100000.; - zmin=100000,zmax=-100000.; - } - - if ((aPV->GetName() == "WCCapBlackSheet") || (aPV->GetName().find("glassFaceWCPMT") != std::string::npos)){ - G4float x = aTransform.getTranslation().getX()/cm; - G4float y = aTransform.getTranslation().getY()/cm; - G4float z = aTransform.getTranslation().getZ()/cm; - - if (xxmax){xmax=x;} - - if (yymax){ymax=y;} - - if (zzmax){zmax=z;} - - WCCylInfo[0] = xmax-xmin; - WCCylInfo[1] = ymax-ymin; - WCCylInfo[2] = zmax-zmin; - // G4cout << "determine height: " << zmin << " " << zmax << " " << aPV->GetName()<<" " << z << G4endl; - } -} - -void WCSimDetectorConstruction::DescribeAndRegisterPMT(G4VPhysicalVolume* aPV ,int aDepth, int replicaNo, - const G4Transform3D& aTransform) -{ - static std::string replicaNoString[20]; - - std::stringstream depth; - std::stringstream pvname; - - depth << replicaNo; - pvname << aPV->GetName(); - - replicaNoString[aDepth] = pvname.str() + "-" + depth.str(); - - - //TF: To Consider: add a separate table for mPMT positions? Need to use its orientation anyway - // Could be useful for the near future. Need to add an == WCMultiPMT here then. - if (aPV->GetName()== WCIDCollectionName || aPV->GetName()== WCIDCollectionName2 ||aPV->GetName()== WCODCollectionName ) - { - - // First increment the number of PMTs in the tank. - //totalNumPMTs++; - if(aPV->GetName()== WCIDCollectionName) totalNumPMTs++; - else if(aPV->GetName()== WCIDCollectionName2) totalNumPMTs2++; - - // Put the location of this tube into the location map so we can find - // its ID later. It is coded by its tubeTag string. - // This scheme must match that used in WCSimWCSD::ProcessHits() - - std::string tubeTag; - int mPMT_pmtno = -1; - bool foundString = false; - // - - for (int i=0; i <= aDepth; i++){ - tubeTag += ":" + replicaNoString[i]; - std::string::size_type position = replicaNoString[i].find("pmt-"); - if( position == 0) { - foundString = true; - mPMT_pmtno = atoi(replicaNoString[i].substr(position+4).c_str())+1; - if(mPMT_pmtno == 1) - if(aPV->GetName()== WCIDCollectionName) totalNum_mPMTs++; - else if(aPV->GetName()== WCIDCollectionName2) totalNum_mPMTs2++; - } - } - if(!foundString){ - // to distinguish mPMT PMTs from single PMTs: - mPMT_pmtno = 0; - if(aPV->GetName()== WCIDCollectionName) totalNum_mPMTs++; - else if(aPV->GetName()== WCIDCollectionName2) totalNum_mPMTs2++; - } - - // G4cout << tubeTag << G4endl; - if(aPV->GetName()== WCIDCollectionName){ - if ( tubeLocationMap.find(tubeTag) != tubeLocationMap.end() ) { - G4cerr << "Repeated tube tag: " << tubeTag << G4endl; - G4cerr << "Assigned to both tube #" << tubeLocationMap[tubeTag] << " and #" << totalNumPMTs << G4endl; - G4cerr << "Cannot continue -- hits will not be recorded correctly." << G4endl; - G4cerr << "Please make sure that logical volumes with multiple placements are each given a unique copy number" << G4endl; - assert(false); - } - tubeLocationMap[tubeTag] = totalNumPMTs; - // Put the transform for this tube into the map keyed by its ID - tubeIDMap[totalNumPMTs] = aTransform; - - - mPMTIDMap[totalNumPMTs] = std::make_pair(totalNum_mPMTs,mPMT_pmtno); - //G4cout << "depth " << depth.str() << G4endl; - //G4cout << "tubeLocationmap[" << tubeTag << "]= " << tubeLocationMap[tubeTag] << "\n"; - - // Print - // G4cout << "Tube: "<GetName()== WCIDCollectionName2){ - if ( tubeLocationMap2.find(tubeTag) != tubeLocationMap2.end() ) { - G4cerr << "Repeated tube tag: " << tubeTag << G4endl; - G4cerr << "Assigned to both tube #" << tubeLocationMap2[tubeTag] << " and #" << totalNumPMTs2 << G4endl; - G4cerr << "Cannot continue -- hits will not be recorded correctly." << G4endl; - G4cerr << "Please make sure that logical volumes with multiple placements are each given a unique copy number" << G4endl; - assert(false); - } - tubeLocationMap2[tubeTag] = totalNumPMTs2; - // Put the transform for this tube into the map keyed by its ID - tubeIDMap2[totalNumPMTs2] = aTransform; - - - mPMTIDMap2[totalNumPMTs2] = std::make_pair(totalNum_mPMTs2,mPMT_pmtno); - //G4cout << "depth " << depth.str() << G4endl; - //G4cout << "tubeLocationmap[" << tubeTag << "]= " << tubeLocationMap[tubeTag] << "\n"; - - // Print - // G4cout << "Tube: "< 0)//veto pmt - {cylLocation=3;} - else if (pmtOrientation.z()==1.0)//bottom - {cylLocation=2;} - else if (pmtOrientation.z()==-1.0)//top - {cylLocation=0;} - else // barrel - {cylLocation=1;} - - geoFile.precision(9); - geoFile << setw(4) << tubeID - << " " << setw(4) << mPMTIDMap[tubeID].first - << " " << setw(4) << mPMTIDMap[tubeID].second - << " " << setw(8) << newTransform.getTranslation().getX()/cm - << " " << setw(8) << newTransform.getTranslation().getY()/cm - << " " << setw(8) << newTransform.getTranslation().getZ()/cm - << " " << setw(7) << pmtOrientation.x() - << " " << setw(7) << pmtOrientation.y() - << " " << setw(7) << pmtOrientation.z() - << " " << setw(3) << cylLocation - << G4endl; - - WCSimPmtInfo *new_pmt = new WCSimPmtInfo(cylLocation, - newTransform.getTranslation().getX()/cm, - newTransform.getTranslation().getY()/cm, - newTransform.getTranslation().getZ()/cm, - pmtOrientation.x(), - pmtOrientation.y(), - pmtOrientation.z(), - tubeID, - mPMTIDMap[tubeID].first, - mPMTIDMap[tubeID].second); - - fpmts.push_back(new_pmt); - - } - - //Record location of the second PMT type for the hybrid configuration - for (unsigned int i=0;i 0)//veto pmt - {cylLocation=3;} - else if (pmtOrientation.z()==1.0)//bottom - {cylLocation=2;} - else if (pmtOrientation.z()==-1.0)//top - {cylLocation=0;} - else // barrel - {cylLocation=1;} - - - geoFile.precision(9); - geoFile << setw(4) << tubeID - << " " << setw(4) << mPMTIDMap2[tubeID].first - << " " << setw(4) << mPMTIDMap2[tubeID].second - << " " << setw(8) << newTransform.getTranslation().getX()/cm - << " " << setw(8) << newTransform.getTranslation().getY()/cm - << " " << setw(8) << newTransform.getTranslation().getZ()/cm - << " " << setw(7) << pmtOrientation.x() - << " " << setw(7) << pmtOrientation.y() - << " " << setw(7) << pmtOrientation.z() - << " " << setw(3) << cylLocation - << G4endl; - - WCSimPmtInfo *new_pmt = new WCSimPmtInfo(cylLocation, - newTransform.getTranslation().getX()/cm, - newTransform.getTranslation().getY()/cm, - newTransform.getTranslation().getZ()/cm, - pmtOrientation.x(), - pmtOrientation.y(), - pmtOrientation.z(), - tubeID, - mPMTIDMap2[tubeID].first, - mPMTIDMap2[tubeID].second); - - fpmts2.push_back(new_pmt); - - } - - geoFile.close(); - - std::cout << "Geofile written" << std::endl; -} - - -// Code for traversing the geometry tree. This code is very general you pass -// it a function and it will call the function with the information on each -// object it finds. -// -// The traversal code comes from a combination of me/G4Lab project & -// from source/visualization/modeling/src/G4PhysicalVolumeModel.cc -// -// If you are trying to understand how passing the function works you need -// to understand pointers to member functions... -// -// Also notice that DescriptionFcnPtr is a (complicated) typedef. -// - -void WCSimDetectorConstruction::TraverseReplicas -(G4VPhysicalVolume* aPV, int aDepth, const G4Transform3D& aTransform, - DescriptionFcnPtr registrationRoutine) -{ - // Recursively visit all of the geometry below the physical volume - // pointed to by aPV including replicas. - - G4ThreeVector originalTranslation = aPV->GetTranslation(); - G4RotationMatrix* pOriginalRotation = aPV->GetRotation(); - - if (aPV->IsReplicated() ) - { - EAxis axis; - G4int nReplicas; - G4double width, offset; - G4bool consuming; - - aPV->GetReplicationData(axis,nReplicas,width,offset,consuming); - - for (int n = 0; n < nReplicas; n++) - { - //TF: for mPMT parameterization - // because kZAxis is a dummy value altered by Parameterised volume in MultiPMTParam - if(aPV->IsParameterised() ){ - //G4cout << "Replica No. " << n << G4endl; - //use the actual translation and rotation of the replica. - (aPV->GetParameterisation())->ComputeTransformation(n,aPV); - } - - else{ - - switch(axis) { - default: - case kXAxis: - aPV->SetTranslation(G4ThreeVector - (-width*(nReplicas-1)*0.5+n*width,0,0)); - aPV->SetRotation(0); - break; - case kYAxis: - aPV->SetTranslation(G4ThreeVector - (0,-width*(nReplicas-1)*0.5+n*width,0)); - aPV->SetRotation(0); - break; - case kZAxis: - aPV->SetTranslation(G4ThreeVector - (0,0,-width*(nReplicas-1)*0.5+n*width)); - aPV->SetRotation(0); - break; - case kRho: - //Lib::Out::putL("GeometryVisitor::visit: WARNING:"); - //Lib::Out::putL(" built-in replicated volumes replicated"); - //Lib::Out::putL(" in radius are not yet properly visualizable."); - aPV->SetTranslation(G4ThreeVector(0,0,0)); - aPV->SetRotation(0); - break; - case kPhi: - { - G4RotationMatrix rotation; - rotation.rotateZ(-(offset+(n+0.5)*width)); - // Minus Sign because for the physical volume we need the - // coordinate system rotation. - aPV->SetTranslation(G4ThreeVector(0,0,0)); - aPV->SetRotation(&rotation); - } - break; - - } // axis switch - } - DescribeAndDescendGeometry(aPV, aDepth, n, aTransform, - registrationRoutine); - - } // num replicas for loop - } // if replicated - else - DescribeAndDescendGeometry(aPV, aDepth, aPV->GetCopyNo(), aTransform, - registrationRoutine); - - // Restore original transformation... - aPV->SetTranslation(originalTranslation); - aPV->SetRotation(pOriginalRotation); -} - -void WCSimDetectorConstruction::DescribeAndDescendGeometry -(G4VPhysicalVolume* aPV ,int aDepth, int replicaNo, - const G4Transform3D& aTransform, DescriptionFcnPtr registrationRoutine) -{ - - // Calculate the new transform relative to the old transform - G4Transform3D* transform = - new G4Transform3D(*(aPV->GetObjectRotation()), aPV->GetTranslation()); - - G4Transform3D newTransform = aTransform * (*transform); - delete transform; - - /* - G4cout << aPV->GetObjectRotation()->getPhi() << " " << aPV->GetObjectRotation()->getTheta() << " " - << aPV->GetObjectRotation()->getPsi() << G4endl; - G4cout << aPV->GetTranslation().x() << " " << aPV->GetTranslation().y() << " " - << aPV->GetTranslation().z() << G4endl; - */ - - // Call the routine we use to print out geometry descriptions, make - // tables, etc. The routine was passed here as a parameter. It needs to - // be a member function of the class - - (this->*registrationRoutine)(aPV, aDepth, replicaNo, newTransform); - - int nDaughters = aPV->GetLogicalVolume()->GetNoDaughters(); - - for (int iDaughter = 0; iDaughter < nDaughters; iDaughter++) - TraverseReplicas(aPV->GetLogicalVolume()->GetDaughter(iDaughter), - aDepth+1, newTransform, registrationRoutine); -} - - - -G4double WCSimDetectorConstruction::GetGeo_Dm(G4int i){ - if (i>=0&&i<=2){ - return WCCylInfo[i]; - }else if(i==3){ - return innerradius; - }else{ - return 0; - } -} diff --git a/libWCSIM/src/WCSimConstructMaterials.cc b/libWCSIM/src/WCSimConstructMaterials.cc deleted file mode 100644 index 4a5ef28..0000000 --- a/libWCSIM/src/WCSimConstructMaterials.cc +++ /dev/null @@ -1,1264 +0,0 @@ -#include "WCSimDetectorConstruction.hh" -#include "WCSimTuningParameters.hh" -#include "WCSimPMTObject.hh" - -#include "G4Material.hh" -#include "G4Element.hh" -#include "globals.hh" -#include "G4UnitsTable.hh" -#include "G4NistManager.hh" - -#include "G4LogicalBorderSurface.hh" -#include "G4LogicalSkinSurface.hh" -#include "G4OpBoundaryProcess.hh" - -#include "G4PhysicalConstants.hh" -#include "G4SystemOfUnits.hh" - -void WCSimDetectorConstruction::ConstructMaterials() -{ - //****Materials Definitions**** - - G4double density; - G4double a; - - - G4NistManager *nist_man = G4NistManager::Instance(); - - - //---Vacuum - - density = universe_mean_density; //from PhysicalConstants.h - G4double pressure = 1.e-19*pascal; - G4double temperature = 0.1*kelvin; - a = 1.01*g/mole; - G4Material* Vacuum = - new G4Material("Vacuum", 1., a, density, - kStateGas,temperature,pressure); - - //---Water - - a = 1.01*g/mole; - G4Element* elH - = new G4Element("Hydrogen","H", 1,a); - - a = 16.00*g/mole; - G4Element* elO - = new G4Element("Oxygen","O", 8,a); - - density = 1.00*g/cm3; - G4Material* Water - = new G4Material("Water",density,2); - Water->AddElement(elH, 2); - Water->AddElement(elO, 1); - - //---Ice - - density = 0.92*g/cm3;//Ice - G4Material* Ice = new G4Material("Ice",density,2); - Ice->AddElement(elH, 2); - Ice->AddElement(elO, 1); - - //---Steel - - a= 12.01*g/mole; - G4Element* elC - = new G4Element("Carbon","C", 6,a); - - a = 55.85*g/mole; - G4Element* elFe - = new G4Element("Iron","Fe", 26,a); - - density = 7.8*g/cm3; - G4Material* Steel - = new G4Material("Steel",density,2); - Steel->AddElement(elC, 1.*perCent); - Steel->AddElement(elFe, 99.*perCent); - - //---Stainless steel 304L (simple example, particular alloy can be different) - - a = 51.9961*g/mole; - G4Element* elCr = new G4Element("Chromium", "Cr", 24., a); - - a = 58.6934*g/mole; - G4Element* elNi = new G4Element("Nickel", "Ni", 28., a); - - a = 54.938*g/mole; - G4Element* elMn = new G4Element("Manganese", "Mn", 25., a); - - a = 30.974*g/mole; - G4Element* elP = new G4Element("Phosphore", "P", 15., a); - - a = 28.09*g/mole; - G4Element* elSi = new G4Element("Silicon", "Si", 14., a); - - a = 32.065*g/mole; - G4Element* elS = new G4Element("Sulphur", "S", 16., a); - - density = 7.81*g/cm3; - G4Material* StainlessSteel = new G4Material("StainlessSteel", density, 8); - - StainlessSteel->AddElement(elFe, 70.44*perCent); - StainlessSteel->AddElement(elCr, 18*perCent); - StainlessSteel->AddElement(elC, 0.08*perCent); - StainlessSteel->AddElement(elNi, 8*perCent); - StainlessSteel->AddElement(elP, 0.45*perCent); - StainlessSteel->AddElement(elSi, 1*perCent); - StainlessSteel->AddElement(elMn, 2*perCent); - StainlessSteel->AddElement(elS, 0.03*perCent); - - G4MaterialPropertiesTable *mpt = new G4MaterialPropertiesTable(); - - const G4int nEntries = 2; - G4double photonEnergy[nEntries] = {1.*eV , 7.*eV}; - - //G4double rindex_Steel[nEntries] = {1.462 , 1.462}; // No I haven't gone mad - G4double abslength_Steel[nEntries] = {.001*mm , .001*mm}; - //mpt->AddProperty("RINDEX", photonEnergy, rindex_Steel, nEntries); - mpt->AddProperty("ABSLENGTH", photonEnergy, abslength_Steel, nEntries); - - StainlessSteel->SetMaterialPropertiesTable(mpt); - - //---Solid Dry Ice - - density = 1.563*g/cm3; - G4Material* DryIce = new G4Material("SolidDryIce", density, 2); - DryIce->AddElement(elC, 1); - DryIce->AddElement(elO, 2); - - - - //---Air - - a = 14.01*g/mole; - G4Element* elN - = new G4Element("Nitrogen","N", 7,a); - - density = 1.290*mg/cm3; - G4Material* Air - = new G4Material("Air",density,2); - Air->AddElement(elN, 70.*perCent); - Air->AddElement(elO, 30.*perCent); - - //---Plastic - - density = 0.95*g/cm3; - G4Material* Plastic - = new G4Material("Plastic",density,2); - Plastic->AddElement(elC, 1); - Plastic->AddElement(elH, 2); - - //---Aluminum (element and material) - - a = 26.98*g/mole; - G4Element* elAl = new G4Element("Aluminum", "Al", 13, a); - - density = 2.7*g/cm3; - G4Material* Aluminum - = new G4Material("Aluminum",density,1); - Aluminum->AddElement(elAl, 1); - - - // TF: --Silver (coating for reflector): higher reflectivity, but cutoff at 400nm + bad for water - // Also exposure to air not good for Silver - // cfr. Wikipedia "Optical Coating" - - a = 107.8682*g/mole; - G4Element* elAg = new G4Element("Silver","Ag", 47, a); - - density = 10.5*g/cm3; - G4Material *Silver - = new G4Material("Silver",density,1); - Silver->AddElement(elAg, 1); - - // ToDo: Add combinations of Al with silver coatings - // ... - - - // TF: Add Wacker SilGel for optical coupling (from wacker.com) - // ToDo: update once final type of gel is decided and/or play with the gel in MC!!! - density = 0.98*g/cm3; - G4Material *SilGel - = new G4Material("SilGel",density,1); - SilGel->AddElement(elSi, 1); - - // TF: Add Acrylic from G4 database: - G4Material* Acrylic - = nist_man->FindOrBuildMaterial("G4_PLEXIGLASS"); - - - - - //---Black sheet - - density = 0.95*g/cm3; - G4Material* Blacksheet - = new G4Material("Blacksheet",density,2); - Blacksheet->AddElement(elC, 1); - Blacksheet->AddElement(elH, 2); - - //---Tyvek - jl145 - - density = 0.38*g/cm3; //cf. DuPont product handbook - G4Material* Tyvek - = new G4Material("Tyvek",density,2); - Tyvek->AddElement(elC, 1); //polyethylene - Tyvek->AddElement(elH, 2); - - //---Glass - - density = 2.20*g/cm3; - G4Material* SiO2 = new G4Material("SiO2",density,2); - SiO2->AddElement(elSi, 1); - SiO2->AddElement(elO , 2); - - a = 10.81*g/mole; - G4Element* elB = new G4Element("Boron", "B", 5, a); - - density = 2.46*g/cm3; - G4Material* B2O3 = new G4Material("B2O3",density,2); - B2O3->AddElement(elB, 2); - B2O3->AddElement(elO, 3); - - a = 22.99*g/mole; - G4Element* elNa = new G4Element("Sodium", "Na", 11, a); - - density = 2.27*g/cm3; - G4Material* Na2O = new G4Material("Na2O",density,2); - Na2O->AddElement(elNa, 2); - Na2O->AddElement(elO, 1); - - density = 4.00*g/cm3; - G4Material* Al2O3 = new G4Material("Al2O3",density,2); - Al2O3->AddElement(elAl, 2); - Al2O3->AddElement(elO, 3); - -// G4Material* blackAcryl -// = new G4Material("blackAcryl", density, 3); -// blackAcryl -> AddElement(elH, 6); -// blackAcryl -> AddElement(elC, 4); -// blackAcryl -> AddElement(elO, 2); - - density = 2.23*g/cm3; - G4Material* Glass - = new G4Material("Glass",density,4); - //G4Material* Glass - //= new G4Material("Glass",density,8); //Put in 8 materials later - - Glass->AddMaterial(SiO2, 80.6*perCent); - Glass->AddMaterial(B2O3, 13.0*perCent); - Glass->AddMaterial(Na2O, 4.0*perCent); - Glass->AddMaterial(Al2O3, 2.4*perCent); - //Glass->AddMaterial(Al2O3, 2.3*perCent); - //Put in 2.3 percent if the other 4 materials = 0.1 percent - - //---Rock - - // a = 16.00*g/mole; G4Element* elO = new G4Element("Oxygen","O", 8,a); - // a = 28.09*g/mole; G4Element* elSi = new G4Element("Silicon", "Si", 14., a); - // a = 26.98*g/mole; G4Element* elAl = new G4Element("Aluminum", "Al", 13, a); - // a = 55.85*g/mole; G4Element* elFe = new G4Element("Iron","Fe", 26,a); - a = 40.08*g/mole; G4Element* elCa = new G4Element("Calcium","Ca", 20,a); - // a = 22.99*g/mole; G4Element* elNa = new G4Element("Sodium", "Na", 11, a); - a = 39.10*g/mole; G4Element* elK = new G4Element("Potassium","K", 19,a); - a = 24.30*g/mole; G4Element* elMg = new G4Element("Magnesium","Mg",12,a); - - density = 2.7*g/cm3; - G4Material* Rock = new G4Material("Rock", density, 8); - - //From Daya-Bay - Rock->AddElement(elO, 48.50*perCent); - Rock->AddElement(elSi, 34.30*perCent); - Rock->AddElement(elAl, 8.00*perCent); - Rock->AddElement(elFe, 2.00*perCent); - Rock->AddElement(elCa, 0.20*perCent); - Rock->AddElement(elNa, 2.40*perCent); - Rock->AddElement(elK, 4.50*perCent); - Rock->AddElement(elMg, 0.10*perCent); - - - - // Potential alternative material definitions for HK - // Get nist material manager - //G4NistManager* nist = G4NistManager::Instance(); - //nist->FindOrBuildMaterial("G4_AIR"); - //nist->FindOrBuildMaterial("G4_WATER"); - //nist->FindOrBuildMaterial("G4_Galactic"); - //nist->FindOrBuildMaterial("G4_Pyrex_Glass"); - //nist->FindOrBuildMaterial("G4_POLYETHYLENE"); - - - - - - - -// ------------------------------------------------------------- -// Generate & Add Material Properties Table -// ------------------------------------------------------------- - - - const G4int NUMENTRIES = 32; - - G4double PPCKOV[NUMENTRIES] = - { 2.034E-9*GeV, 2.068E-9*GeV, 2.103E-9*GeV, 2.139E-9*GeV, - 2.177E-9*GeV, 2.216E-9*GeV, 2.256E-9*GeV, 2.298E-9*GeV, - 2.341E-9*GeV, 2.386E-9*GeV, 2.433E-9*GeV, 2.481E-9*GeV, - 2.532E-9*GeV, 2.585E-9*GeV, 2.640E-9*GeV, 2.697E-9*GeV, - 2.757E-9*GeV, 2.820E-9*GeV, 2.885E-9*GeV, 2.954E-9*GeV, - 3.026E-9*GeV, 3.102E-9*GeV, 3.181E-9*GeV, 3.265E-9*GeV, - 3.353E-9*GeV, 3.446E-9*GeV, 3.545E-9*GeV, 3.649E-9*GeV, - 3.760E-9*GeV, 3.877E-9*GeV, 4.002E-9*GeV, 4.136E-9*GeV }; - - - // default values - /* - G4double RINDEX1[NUMENTRIES] = - { 1.3435, 1.344, 1.3445, 1.345, 1.3455, - 1.346, 1.3465, 1.347, 1.3475, 1.348, - 1.3485, 1.3492, 1.35, 1.3505, 1.351, - 1.3518, 1.3522, 1.3530, 1.3535, 1.354, - 1.3545, 1.355, 1.3555, 1.356, 1.3568, - 1.3572, 1.358, 1.3585, 1.359, 1.3595, - 1.36, 1.3608}; - */ - - // M Fechner, values from refsg.F in apdetsim - /* G4double RINDEX1[NUMENTRIES] = - { 1.33332, 1.333364, 1.333396, 1.3343, 1.33465, - 1.33502, 1.3354, 1.33579, 1.3362, 1.33663, 1.33709, - 1.33756, 1.33806, 1.3386, 1.33915, 1.33974, - 1.34037, 1.34105, 1.34176, 1.34253, 1.34336, - 1.34425, 1.34521, 1.34626, 1.3474, 1.34864, - 1.35002, 1.35153, 1.35321, 1.35507, 1.35717, 1.35955 }; - */ - - //From SKDETSIM water absorption - const G4int NUMENTRIES_water=60; - - G4double ENERGY_water[NUMENTRIES_water] = - { 1.56962e-09*GeV, 1.58974e-09*GeV, 1.61039e-09*GeV, 1.63157e-09*GeV, - 1.65333e-09*GeV, 1.67567e-09*GeV, 1.69863e-09*GeV, 1.72222e-09*GeV, - 1.74647e-09*GeV, 1.77142e-09*GeV, 1.7971e-09*GeV, 1.82352e-09*GeV, - 1.85074e-09*GeV, 1.87878e-09*GeV, 1.90769e-09*GeV, 1.93749e-09*GeV, - 1.96825e-09*GeV, 1.99999e-09*GeV, 2.03278e-09*GeV, 2.06666e-09*GeV, - 2.10169e-09*GeV, 2.13793e-09*GeV, 2.17543e-09*GeV, 2.21428e-09*GeV, - 2.25454e-09*GeV, 2.29629e-09*GeV, 2.33962e-09*GeV, 2.38461e-09*GeV, - 2.43137e-09*GeV, 2.47999e-09*GeV, 2.53061e-09*GeV, 2.58333e-09*GeV, - 2.63829e-09*GeV, 2.69565e-09*GeV, 2.75555e-09*GeV, 2.81817e-09*GeV, - 2.88371e-09*GeV, 2.95237e-09*GeV, 3.02438e-09*GeV, 3.09999e-09*GeV, - 3.17948e-09*GeV, 3.26315e-09*GeV, 3.35134e-09*GeV, 3.44444e-09*GeV, - 3.54285e-09*GeV, 3.64705e-09*GeV, 3.75757e-09*GeV, 3.87499e-09*GeV, - 3.99999e-09*GeV, 4.13332e-09*GeV, 4.27585e-09*GeV, 4.42856e-09*GeV, - 4.59258e-09*GeV, 4.76922e-09*GeV, 4.95999e-09*GeV, 5.16665e-09*GeV, - 5.39129e-09*GeV, 5.63635e-09*GeV, 5.90475e-09*GeV, 6.19998e-09*GeV }; - - - - // Air - G4double RINDEX_air[NUMENTRIES_water] = - { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, - 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, - 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, - 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, - 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, - 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, - 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, - 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, - 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, - 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}; - - - // M Fechner : new ; define the water refraction index using refsg.F - //from skdetsim using the whole range. - G4double RINDEX1[NUMENTRIES_water] = - {1.32885, 1.32906, 1.32927, 1.32948, 1.3297, 1.32992, 1.33014, - 1.33037, 1.3306, 1.33084, 1.33109, 1.33134, 1.3316, 1.33186, 1.33213, - 1.33241, 1.3327, 1.33299, 1.33329, 1.33361, 1.33393, 1.33427, 1.33462, - 1.33498, 1.33536, 1.33576, 1.33617, 1.3366, 1.33705, 1.33753, 1.33803, - 1.33855, 1.33911, 1.3397, 1.34033, 1.341, 1.34172, 1.34248, 1.34331, - 1.34419, 1.34515, 1.3462, 1.34733, 1.34858, 1.34994, 1.35145, 1.35312, - 1.35498, 1.35707, 1.35943, 1.36211, 1.36518, 1.36872, 1.37287, 1.37776, - 1.38362, 1.39074, 1.39956, 1.41075, 1.42535}; - - - G4double ABWFF = 1.0; - - // Get from the tuning parameters - ABWFF = WCSimTuningParams->GetAbwff(); - - //T. Akiri: Values from Skdetsim - G4double ABSORPTION_water[NUMENTRIES_water] = - { - 16.1419*cm*ABWFF, 18.278*cm*ABWFF, 21.0657*cm*ABWFF, 24.8568*cm*ABWFF, 30.3117*cm*ABWFF, - 38.8341*cm*ABWFF, 54.0231*cm*ABWFF, 81.2306*cm*ABWFF, 120.909*cm*ABWFF, 160.238*cm*ABWFF, - 193.771*cm*ABWFF, 215.017*cm*ABWFF, 227.747*cm*ABWFF, 243.85*cm*ABWFF, 294.036*cm*ABWFF, - 321.647*cm*ABWFF, 342.81*cm*ABWFF, 362.827*cm*ABWFF, 378.041*cm*ABWFF, 449.378*cm*ABWFF, - 739.434*cm*ABWFF, 1114.23*cm*ABWFF, 1435.56*cm*ABWFF, 1611.06*cm*ABWFF, 1764.18*cm*ABWFF, - 2100.95*cm*ABWFF, 2292.9*cm*ABWFF, 2431.33*cm*ABWFF, 3053.6*cm*ABWFF, 4838.23*cm*ABWFF, - 6539.65*cm*ABWFF, 7682.63*cm*ABWFF, 9137.28*cm*ABWFF, 12220.9*cm*ABWFF, 15270.7*cm*ABWFF, - 19051.5*cm*ABWFF, 23671.3*cm*ABWFF, 29191.1*cm*ABWFF, 35567.9*cm*ABWFF, 42583*cm*ABWFF, - 49779.6*cm*ABWFF, 56465.3*cm*ABWFF, 61830*cm*ABWFF, 65174.6*cm*ABWFF, 66143.7*cm*ABWFF, - 64820*cm*ABWFF, 61635*cm*ABWFF, 57176.2*cm*ABWFF, 52012.1*cm*ABWFF, 46595.7*cm*ABWFF, - 41242.1*cm*ABWFF, 36146.3*cm*ABWFF, 31415.4*cm*ABWFF, 27097.8*cm*ABWFF, 23205.7*cm*ABWFF, - 19730.3*cm*ABWFF, 16651.6*cm*ABWFF, 13943.6*cm*ABWFF, 11578.1*cm*ABWFF, 9526.13*cm*ABWFF - }; - - //Xin Qian: proposed value for absorption length - // G4double ABSORPTION_water[NUMENTRIES_water] = -// {22.8154*cm*ABWFF, 28.6144*cm*ABWFF, 35.9923*cm*ABWFF, 45.4086*cm*ABWFF, 57.4650*cm*ABWFF, -// 72.9526*cm*ABWFF, 75*cm*ABWFF, 81.2317*cm*ABWFF, 120.901*cm*ABWFF, 160.243*cm*ABWFF, -// 193.797*cm*ABWFF, 215.045*cm*ABWFF, 227.786*cm*ABWFF, 243.893*cm*ABWFF, 294.113*cm*ABWFF, -// 321.735*cm*ABWFF, 342.931*cm*ABWFF, 362.967*cm*ABWFF, 378.212*cm*ABWFF, 449.602*cm*ABWFF, -// 740.143*cm*ABWFF, 1116.06*cm*ABWFF, 1438.78*cm*ABWFF, 1615.48*cm*ABWFF, 1769.86*cm*ABWFF, -// 2109.67*cm*ABWFF, 2304.13*cm*ABWFF, 2444.97*cm*ABWFF, 3076.83*cm*ABWFF, 4901.5*cm*ABWFF, -// 6666.57*cm*ABWFF, 7873.95*cm*ABWFF, 9433.81*cm*ABWFF, 10214.5*cm*ABWFF, 10845.8*cm*ABWFF, -// 15746.9*cm*ABWFF, 20201.8*cm*ABWFF, 22025.8*cm*ABWFF, 21142.2*cm*ABWFF, 15083.9*cm*ABWFF, -// 11751*cm*ABWFF, 8795.34*cm*ABWFF, 8741.23*cm*ABWFF, 7102.37*cm*ABWFF, 6060.68*cm*ABWFF, -// 4498.56*cm*ABWFF, 3039.56*cm*ABWFF, 2232.2*cm*ABWFF, 1938*cm*ABWFF, 1811.58*cm*ABWFF, -// 1610.32*cm*ABWFF, 1338.7*cm*ABWFF, 1095.3*cm*ABWFF, 977.525*cm*ABWFF, 965.258*cm*ABWFF, -// 1082.86*cm*ABWFF, 876.434*cm*ABWFF, 633.723*cm*ABWFF, 389.87*cm*ABWFF, 142.011*cm*ABWFF -// }; - - /*G4double ABSORPTION_water[NUMENTRIES_water] = //old - { 22.8154*cm*ABWFF, 28.6144*cm*ABWFF, 35.9923*cm*ABWFF, 45.4086*cm*ABWFF, 57.4650*cm*ABWFF, - 72.9526*cm*ABWFF, 92.9156*cm*ABWFF, 118.737*cm*ABWFF, 152.255*cm*ABWFF, 195.925*cm*ABWFF, - 202.429*cm*ABWFF, 224.719*cm*ABWFF, 236.407*cm*ABWFF, 245.700*cm*ABWFF, 289.017*cm*ABWFF, - 305.810*cm*ABWFF, 316.456*cm*ABWFF, 326.797*cm*ABWFF, 347.222*cm*ABWFF, 414.938*cm*ABWFF, - 636.943*cm*ABWFF, 934.579*cm*ABWFF, 1245.33*cm*ABWFF, 1402.52*cm*ABWFF, 1550.39*cm*ABWFF, - 1745.20*cm*ABWFF, 1883.24*cm*ABWFF, 2016.13*cm*ABWFF, 2442.18*cm*ABWFF, 3831.28*cm*ABWFF, - 4652.89*cm*ABWFF, 5577.04*cm*ABWFF, 6567.08*cm*ABWFF, 7559.88*cm*ABWFF, 8470.06*cm*ABWFF, - 9205.54*cm*ABWFF, 9690.95*cm*ABWFF, 9888.36*cm*ABWFF, 9804.50*cm*ABWFF, 9482.17*cm*ABWFF, - 8982.77*cm*ABWFF, 8369.39*cm*ABWFF, 7680.31*cm*ABWFF, 6902.11*cm*ABWFF, 6183.84*cm*ABWFF, - 5522.27*cm*ABWFF, 4914.33*cm*ABWFF, 4357.09*cm*ABWFF, 3847.72*cm*ABWFF, 3383.51*cm*ABWFF, - 2961.81*cm*ABWFF, 2580.08*cm*ABWFF, 2235.83*cm*ABWFF, 1926.66*cm*ABWFF, 1650.21*cm*ABWFF, - 1404.21*cm*ABWFF, 1186.44*cm*ABWFF, 994.742*cm*ABWFF, 827.027*cm*ABWFF, 681.278*cm*ABWFF}; - */ - - /* - G4double ABSORPTION_water[NUMENTRIES_water] = //new - {25.3504*cm, 31.7938*cm, 39.9915*cm, 50.454*cm, 63.85*cm, - 81.0584*cm, 103.24*cm, 131.93*cm, 169.172*cm, 217.694*cm, - 224.921*cm, 249.688*cm, 262.674*cm, 273*cm, 321.13*cm, 339.789*cm, - 351.617*cm, 363.108*cm, 385.802*cm, 461.042*cm, 707.714*cm, - 1038.42*cm, 1383.7*cm, 1558.36*cm, 1722.65*cm, 1939.11*cm, - 2092.49*cm, 2240.14*cm, 2962.96*cm, 4967.03*cm, 6368.58*cm, - 8207.56*cm, 10634.2*cm, 13855.3*cm, 18157.3*cm, 23940.2*cm, - 31766*cm, 42431.6*cm, 57074.9*cm, 77335.9*cm, 105598*cm, - 145361*cm, 192434*cm, 183898*cm, 176087*cm, 168913*cm, 162301*cm, - 156187*cm, 150516*cm, 145243*cm, 140327*cm, 135733*cm, 131430*cm, - 127392*cm, 123594*cm, 120016*cm, 116640*cm, 113448*cm, 110426*cm, - 107562*cm}; - */ - // M Fechner: Rayleigh scattering -- as of version 4.6.2 of GEANT, - // one may use one's own Rayleigh scattering lengths (the buffer is no - // longer overwritten for "water", see 4.6.2 release notes) - - // RAYFF = 1/ARAS, for those of you who know SKdetsim... - // actually that's not quite right because the scattering models - // are different; in G4 there is no scattering depolarization - // std value at SK = 0.6. But Mie scattering is implemented - // in SKdetsim and not in G4 - - - // april 2005 : reduced reflections, let's increase scattering... - // sep 09: for the large detector like superK the old values are muc better - //G4double RAYFF = 1.0/1.65; //old - // G4double RAYFF = 1.0/1.5; - - G4double RAYFF = 0.625; - - // Get from the tuning parameters - RAYFF = WCSimTuningParams->GetRayff(); - // printf("RAYFF: %f\n",RAYFF); - - //T. Akiri: Values from Skdetsim - G4double RAYLEIGH_water[NUMENTRIES_water] = { - 386929*cm*RAYFF, 366249*cm*RAYFF, 346398*cm*RAYFF, 327355*cm*RAYFF, 309097*cm*RAYFF, - 291603*cm*RAYFF, 274853*cm*RAYFF, 258825*cm*RAYFF, 243500*cm*RAYFF, 228856*cm*RAYFF, - 214873*cm*RAYFF, 201533*cm*RAYFF, 188816*cm*RAYFF, 176702*cm*RAYFF, 165173*cm*RAYFF, - 154210*cm*RAYFF, 143795*cm*RAYFF, 133910*cm*RAYFF, 124537*cm*RAYFF, 115659*cm*RAYFF, - 107258*cm*RAYFF, 99318.2*cm*RAYFF, 91822.2*cm*RAYFF, 84754*cm*RAYFF, 78097.3*cm*RAYFF, - 71836.5*cm*RAYFF, 65956*cm*RAYFF, 60440.6*cm*RAYFF, 55275.4*cm*RAYFF, 50445.6*cm*RAYFF, - 45937*cm*RAYFF, 41735.2*cm*RAYFF, 37826.6*cm*RAYFF, 34197.6*cm*RAYFF, 30834.9*cm*RAYFF, - 27725.4*cm*RAYFF, 24856.6*cm*RAYFF, 22215.9*cm*RAYFF, 19791.3*cm*RAYFF, 17570.9*cm*RAYFF, - 15543*cm*RAYFF, 13696.6*cm*RAYFF, 12020.5*cm*RAYFF, 10504.1*cm*RAYFF, 9137.15*cm*RAYFF, - 7909.45*cm*RAYFF, 6811.3*cm*RAYFF, 5833.25*cm*RAYFF, 4966.2*cm*RAYFF, 4201.36*cm*RAYFF, - 3530.28*cm*RAYFF, 2944.84*cm*RAYFF, 2437.28*cm*RAYFF, 2000.18*cm*RAYFF, 1626.5*cm*RAYFF, - 1309.55*cm*RAYFF, 1043.03*cm*RAYFF, 821.016*cm*RAYFF, 637.97*cm*RAYFF, 488.754*cm*RAYFF - }; - - /*G4double RAYLEIGH_water[NUMENTRIES_water] = { - 167024.4*cm*RAYFF, 158726.7*cm*RAYFF, 150742*cm*RAYFF, - 143062.5*cm*RAYFF, 135680.2*cm*RAYFF, 128587.4*cm*RAYFF, - 121776.3*cm*RAYFF, 115239.5*cm*RAYFF, 108969.5*cm*RAYFF, - 102958.8*cm*RAYFF, 97200.35*cm*RAYFF, 91686.86*cm*RAYFF, - 86411.33*cm*RAYFF, 81366.79*cm*RAYFF, 76546.42*cm*RAYFF, - 71943.46*cm*RAYFF, 67551.29*cm*RAYFF, 63363.36*cm*RAYFF, - 59373.25*cm*RAYFF, 55574.61*cm*RAYFF, 51961.24*cm*RAYFF, - 48527.00*cm*RAYFF, 45265.87*cm*RAYFF, 42171.94*cm*RAYFF, - 39239.39*cm*RAYFF, 36462.50*cm*RAYFF, 33835.68*cm*RAYFF, - 31353.41*cm*RAYFF, 29010.30*cm*RAYFF, 26801.03*cm*RAYFF, - 24720.42*cm*RAYFF, 22763.36*cm*RAYFF, 20924.88*cm*RAYFF, - 19200.07*cm*RAYFF, 17584.16*cm*RAYFF, 16072.45*cm*RAYFF, - 14660.38*cm*RAYFF, 13343.46*cm*RAYFF, 12117.33*cm*RAYFF, - 10977.70*cm*RAYFF, 9920.416*cm*RAYFF, 8941.407*cm*RAYFF, - 8036.711*cm*RAYFF, 7202.470*cm*RAYFF, 6434.927*cm*RAYFF, - 5730.429*cm*RAYFF, 5085.425*cm*RAYFF, 4496.467*cm*RAYFF, - 3960.210*cm*RAYFF, 3473.413*cm*RAYFF, 3032.937*cm*RAYFF, - 2635.746*cm*RAYFF, 2278.907*cm*RAYFF, 1959.588*cm*RAYFF, - 1675.064*cm*RAYFF, 1422.710*cm*RAYFF, 1200.004*cm*RAYFF, - 1004.528*cm*RAYFF, 833.9666*cm*RAYFF, 686.1063*cm*RAYFF - };*/ - - - // Get from the tuning parameters - G4double MIEFF = WCSimTuningParams->GetMieff(); - //G4double MIEFF = 0.0; - // printf("MIEFF: %f\n",MIEFF); - - //Values extracted from Skdetsim - G4double MIE_water[NUMENTRIES_water] = { - 7790020*cm*MIEFF, 7403010*cm*MIEFF, 7030610*cm*MIEFF, 6672440*cm*MIEFF, 6328120*cm*MIEFF, - 5997320*cm*MIEFF, 5679650*cm*MIEFF, 5374770*cm*MIEFF, 5082340*cm*MIEFF, 4802000*cm*MIEFF, - 4533420*cm*MIEFF, 4276280*cm*MIEFF, 4030220*cm*MIEFF, 3794950*cm*MIEFF, 3570120*cm*MIEFF, - 3355440*cm*MIEFF, 3150590*cm*MIEFF, 2955270*cm*MIEFF, 2769170*cm*MIEFF, 2592000*cm*MIEFF, - 2423470*cm*MIEFF, 2263300*cm*MIEFF, 2111200*cm*MIEFF, 1966900*cm*MIEFF, 1830120*cm*MIEFF, - 1700610*cm*MIEFF, 1578100*cm*MIEFF, 1462320*cm*MIEFF, 1353040*cm*MIEFF, 1250000*cm*MIEFF, - 1152960*cm*MIEFF, 1061680*cm*MIEFF, 975936*cm*MIEFF, 895491*cm*MIEFF, 820125*cm*MIEFF, - 749619*cm*MIEFF, 683760*cm*MIEFF, 622339*cm*MIEFF, 565152*cm*MIEFF, 512000*cm*MIEFF, - 462688*cm*MIEFF, 417027*cm*MIEFF, 374832*cm*MIEFF, 335923*cm*MIEFF, 300125*cm*MIEFF, - 267267*cm*MIEFF, 237184*cm*MIEFF, 209715*cm*MIEFF, 184704*cm*MIEFF, 162000*cm*MIEFF, - 141456*cm*MIEFF, 122931*cm*MIEFF, 106288*cm*MIEFF, 91395.2*cm*MIEFF, 78125*cm*MIEFF, - 66355.2*cm*MIEFF, 55968.2*cm*MIEFF, 46851.2*cm*MIEFF, 38896.2*cm*MIEFF, 32000*cm*MIEFF - }; - - //Mie scattering length values when assuming 10 times larger than Rayleigh scattering. - /*G4double MIE_water[NUMENTRIES_water] = { - 3869290*cm*MIEFF, 3662490*cm*MIEFF, 3463980*cm*MIEFF, 3273550*cm*MIEFF, 3090970*cm*MIEFF, - 2916030*cm*MIEFF, 2748530*cm*MIEFF, 2588250*cm*MIEFF, 2435000*cm*MIEFF, 2288560*cm*MIEFF, - 2148730*cm*MIEFF, 2015330*cm*MIEFF, 1888160*cm*MIEFF, 1767020*cm*MIEFF, 1651730*cm*MIEFF, - 1542100*cm*MIEFF, 1437950*cm*MIEFF, 1339100*cm*MIEFF, 1245370*cm*MIEFF, 1156590*cm*MIEFF, - 1072580*cm*MIEFF, 993182*cm*MIEFF, 918222*cm*MIEFF, 847540*cm*MIEFF, 780973*cm*MIEFF, - 718365*cm*MIEFF, 65956*cm*MIEFF, 604406*cm*MIEFF, 552754*cm*MIEFF, 504456*cm*MIEFF, - 459370*cm*MIEFF, 417352*cm*MIEFF, 378266*cm*MIEFF, 341976*cm*MIEFF, 308349*cm*MIEFF, - 277254*cm*MIEFF, 248566*cm*MIEFF, 222159*cm*MIEFF, 197913*cm*MIEFF, 175709*cm*MIEFF, - 155430*cm*MIEFF, 136966*cm*MIEFF, 120205*cm*MIEFF, 105041*cm*MIEFF, 91371.5*cm*MIEFF, - 79094.5*cm*MIEFF, 68113*cm*MIEFF, 58332.5*cm*MIEFF, 49662*cm*MIEFF, 42013.6*cm*MIEFF, - 35302.8*cm*MIEFF, 29448.4*cm*MIEFF, 24372.8*cm*MIEFF, 20001.8*cm*MIEFF, 16265*cm*MIEFF, - 13095.5*cm*MIEFF, 10430.3*cm*MIEFF, 8210.16*cm*MIEFF, 6379.7*cm*MIEFF, 4887.54*cm*MIEFF - }; - */ - - G4double MIE_water_const[3]={0.4,0.,1};// gforward, gbackward, forward backward ratio - - - //From SKDETSIM - /* - G4double RINDEX_glass[NUMENTRIES] = - { 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, - 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, - 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, - 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, - 1.600, 1.600, 1.600, 1.600 }; - */ - // M Fechner : unphysical, I want to reduce reflections - // back to the old value 1.55 - - - /* TF: UNPHYSICAL - G4double RINDEX_glass[NUMENTRIES_water] = - { 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, - 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, - 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, - 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, - 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, - 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, - 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, - 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, 1.600, - 1.600, 1.600 }; - */ - - // Based on analytical formula from http://refractiveindex.info/?shelf=glass&book=HIKARI-BK&page=J-BK7A for Borosilicate glass - G4double RINDEX_glass[NUMENTRIES_water] = - { 1.5110, 1.5112, 1.5114, 1.5116, 1.5118, - 1.5121, 1.5123, 1.5126, 1.5128, 1.5131, - 1.5133, 1.5136, 1.5139, 1.5142, 1.5145, - 1.5148, 1.5152, 1.5155, 1.5159, 1.5163, - 1.5167, 1.5171, 1.5176, 1.5180, 1.5185, - 1.5190, 1.5196, 1.5202, 1.5208, 1.5214, - 1.5221, 1.5228, 1.5236, 1.5244, 1.5253, - 1.5263, 1.5273, 1.5284, 1.5296, 1.5309, - 1.5323, 1.5338, 1.5354, 1.5372, 1.5392, - 1.5414, 1.5438, 1.5465, 1.5495, 1.5528, - 1.5566, 1.5608, 1.5657, 1.5713, 1.5777, - 1.5853, 1.5941, 1.6047, 1.6173, 1.6328 }; - - - //G4double RINDEX_blacksheet[NUMENTRIES] = - //{ 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, - // 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, - // 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, - // 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, - // 2.500, 2.500, 2.500, 2.500 }; - - - //G4double ABSORPTION1[NUMENTRIES] = - //{344.8*cm, 408.2*cm, 632.9*cm, 917.4*cm, 1234.6*cm, 1388.9*cm, - // 1515.2*cm, 1724.1*cm, 1886.8*cm, 2000.0*cm, 2631.6*cm, 3571.4*cm, - // 4545.5*cm, 4761.9*cm, 5263.2*cm, 5263.2*cm, 5555.6*cm, 5263.2*cm, - // 5263.2*cm, 4761.9*cm, 4545.5*cm, 4166.7*cm, 3703.7*cm, 3333.3*cm, - // 3000.0*cm, 2850.0*cm, 2700.0*cm, 2450.0*cm, 2200.0*cm, 1950.0*cm, - // 1750.0*cm, 1450.0*cm }; - - /* - G4double ABSORPTION_glass[NUMENTRIES] = - { 100.0*cm, 110.0*cm, 120.0*cm, 130.0*cm, 140.0*cm, 150.0*cm, 160.0*cm, - 165.0*cm, 170.0*cm, 175.0*cm, 180.0*cm, 185.0*cm, 190.0*cm, 195.0*cm, - 200.0*cm, 200.0*cm, 200.0*cm, 200.0*cm, 200.0*cm, 195.0*cm, 190.0*cm, - 185.0*cm, 180.0*cm, 175.0*cm, 170.0*cm, 160.0*cm, 150.0*cm, 140.0*cm, - 130.0*cm, 120.0*cm, 110.0*cm, 100.0*cm }; - */ - // M Fechner : the quantum efficiency already takes glass abs into account - - G4double ABSORPTION_glass[NUMENTRIES_water]= - { 1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm, - 1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm, - 1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm, - 1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm, - 1.0e9*cm, 1.0e9*cm, - 1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm, - 1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm, - 1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm, - 1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm,1.0e9*cm, - 1.0e9*cm, 1.0e9*cm }; - - G4double BLACKABS_blacksheet[NUMENTRIES_water] = - { 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, - 1.0e-9*cm, - 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, - 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, - 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, - 1.0e-9*cm, 1.0e-9*cm, - 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, - 1.0e-9*cm, - 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, - 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, - 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, 1.0e-9*cm, - 1.0e-9*cm, 1.0e-9*cm}; - - - //The following reflectivity for blacksheet is obtained from skdetsim - //There is a fudge factor of 2.7 for the reflectivity of blacksheet - //depending on whether SK1 or SK2 simulation is used. - //The BlackSheetFudgeFactor is set to true if you want to use the - //SK2 values, false if not. - //G4double SK1SK2FF = 1.0; - //G4bool BlackSheetFudgeFactor=false; - //G4bool BlackSheetFudgeFactor=true; - // if (BlackSheetFudgeFactor) SK1SK2FF=SK1SK2FF*2.7; - //if (BlackSheetFudgeFactor) SK1SK2FF=SK1SK2FF*1.55; - - //July 1, 2010, F. Beroz: changed SK1SK2FF to BSRFF to avoid confusion, - // since this parameter is not from SK. - - G4double BSRFF = 1.0; - - // Get from the tuning parameters - BSRFF = WCSimTuningParams->GetBsrff(); - - G4double REFLECTIVITY_blacksheet[NUMENTRIES_water] = - { 0.055*BSRFF, 0.055*BSRFF, - 0.055*BSRFF, 0.055*BSRFF, 0.055*BSRFF, 0.055*BSRFF, - 0.055*BSRFF, 0.055*BSRFF, 0.055*BSRFF, 0.055*BSRFF, - 0.055*BSRFF, 0.055*BSRFF, 0.055*BSRFF, 0.055*BSRFF, - 0.055*BSRFF, 0.055*BSRFF, 0.055*BSRFF, 0.055*BSRFF, - 0.055*BSRFF, 0.055*BSRFF, 0.055*BSRFF, 0.055*BSRFF, - 0.055*BSRFF, 0.055*BSRFF, 0.055*BSRFF, 0.055*BSRFF, - 0.055*BSRFF, 0.055*BSRFF, 0.055*BSRFF, 0.055*BSRFF, - 0.055*BSRFF, 0.057*BSRFF, 0.059*BSRFF, 0.060*BSRFF, - 0.059*BSRFF, 0.058*BSRFF, 0.057*BSRFF, 0.055*BSRFF, - 0.050*BSRFF, 0.045*BSRFF, 0.045*BSRFF, 0.045*BSRFF, - 0.045*BSRFF, 0.045*BSRFF, 0.045*BSRFF, 0.045*BSRFF, - 0.045*BSRFF, 0.045*BSRFF, 0.045*BSRFF, 0.045*BSRFF, - 0.045*BSRFF, 0.045*BSRFF, 0.045*BSRFF, 0.045*BSRFF, - 0.045*BSRFF, 0.045*BSRFF, 0.045*BSRFF, 0.045*BSRFF, - 0.045*BSRFF, 0.045*BSRFF }; - - /* - G4double REFLECTIVITY_blacksheet[NUMENTRIES] = - { 0.055*SK1SK2FF, 0.055*SK1SK2FF, 0.055*SK1SK2FF, 0.055*SK1SK2FF, - 0.055*SK1SK2FF, 0.055*SK1SK2FF, 0.055*SK1SK2FF, 0.055*SK1SK2FF, - 0.055*SK1SK2FF, 0.055*SK1SK2FF, 0.055*SK1SK2FF, 0.055*SK1SK2FF, - 0.055*SK1SK2FF, 0.057*SK1SK2FF, 0.059*SK1SK2FF, 0.060*SK1SK2FF, - 0.059*SK1SK2FF, 0.058*SK1SK2FF, 0.057*SK1SK2FF, 0.055*SK1SK2FF, - 0.050*SK1SK2FF, 0.045*SK1SK2FF, 0.045*SK1SK2FF, 0.045*SK1SK2FF, - 0.045*SK1SK2FF, 0.045*SK1SK2FF, 0.045*SK1SK2FF, 0.045*SK1SK2FF, - 0.045*SK1SK2FF, 0.045*SK1SK2FF, 0.045*SK1SK2FF, 0.045*SK1SK2FF }; - */ - - /* - G4double REFLECTIVITY_blacksheet[NUMENTRIES_water] = - { 0.055*SK1SK2FF, 0.055*SK1SK2FF, - 0.055*SK1SK2FF, 0.055*SK1SK2FF, 0.055*SK1SK2FF, 0.055*SK1SK2FF, - 0.055*SK1SK2FF, 0.055*SK1SK2FF, 0.055*SK1SK2FF, 0.055*SK1SK2FF, - 0.055*SK1SK2FF, 0.055*SK1SK2FF, 0.055*SK1SK2FF, 0.055*SK1SK2FF, - 0.055*SK1SK2FF, 0.055*SK1SK2FF, 0.055*SK1SK2FF, 0.055*SK1SK2FF, - 0.055*SK1SK2FF, 0.055*SK1SK2FF, 0.055*SK1SK2FF, 0.055*SK1SK2FF, - 0.055*SK1SK2FF, 0.055*SK1SK2FF, 0.055*SK1SK2FF, 0.055*SK1SK2FF, - 0.055*SK1SK2FF, 0.055*SK1SK2FF, 0.055*SK1SK2FF, 0.055*SK1SK2FF, - 0.055*SK1SK2FF, 0.057*SK1SK2FF, 0.059*SK1SK2FF, 0.060*SK1SK2FF, - 0.059*SK1SK2FF, 0.058*SK1SK2FF, 0.057*SK1SK2FF, 0.055*SK1SK2FF, - 0.050*SK1SK2FF, 0.045*SK1SK2FF, 0.045*SK1SK2FF, 0.045*SK1SK2FF, - 0.045*SK1SK2FF, 0.045*SK1SK2FF, 0.045*SK1SK2FF, 0.045*SK1SK2FF, - 0.045*SK1SK2FF, 0.045*SK1SK2FF, 0.045*SK1SK2FF, 0.045*SK1SK2FF, - 0.045*SK1SK2FF, 0.045*SK1SK2FF, 0.045*SK1SK2FF, 0.045*SK1SK2FF, - 0.045*SK1SK2FF, 0.045*SK1SK2FF, 0.045*SK1SK2FF, 0.045*SK1SK2FF , - 0.045*SK1SK2FF, 0.045*SK1SK2FF }; - */ - - //utter fiction at this stage - G4double EFFICIENCY[NUMENTRIES_water] = - { 0.001*m }; - - //utter fiction at this stage, does not matter - G4double RAYLEIGH_air[NUMENTRIES_water] = - { 0.001*m,0.001*m,0.001*m,0.001*m,0.001*m,0.001*m, - 0.001*m,0.001*m,0.001*m,0.001*m,0.001*m,0.001*m, - 0.001*m,0.001*m,0.001*m,0.001*m,0.001*m,0.001*m, - 0.001*m,0.001*m,0.001*m,0.001*m,0.001*m,0.001*m, - 0.001*m,0.001*m,0.001*m,0.001*m,0.001*m,0.001*m, - 0.001*m,0.001*m,0.001*m,0.001*m,0.001*m,0.001*m, - 0.001*m,0.001*m,0.001*m,0.001*m,0.001*m,0.001*m, - 0.001*m,0.001*m,0.001*m,0.001*m,0.001*m,0.001*m, - 0.001*m,0.001*m,0.001*m,0.001*m,0.001*m,0.001*m, - 0.001*m,0.001*m,0.001*m,0.001*m,0.001*m,0.001*m}; - - //utter fiction at this stage, does not matter - G4double MIE_air[NUMENTRIES_water] = - { 0.1*m,0.1*m,0.1*m,0.1*m,0.1*m,0.1*m, - 0.1*m,0.1*m,0.1*m,0.1*m,0.1*m,0.1*m, - 0.1*m,0.1*m,0.1*m,0.1*m,0.1*m,0.1*m, - 0.1*m,0.1*m,0.1*m,0.1*m,0.1*m,0.1*m, - 0.1*m,0.1*m,0.1*m,0.1*m,0.1*m,0.1*m, - 0.1*m,0.1*m,0.1*m,0.1*m,0.1*m,0.1*m, - 0.1*m,0.1*m,0.1*m,0.1*m,0.1*m,0.1*m, - 0.1*m,0.1*m,0.1*m,0.1*m,0.1*m,0.1*m, - 0.1*m,0.1*m,0.1*m,0.1*m,0.1*m,0.1*m, - 0.1*m,0.1*m,0.1*m,0.1*m,0.1*m,0.1*m}; - - G4double MIE_air_const[3]={0.99,0.99,0.8};// gforward, gbackward, forward backward ratio - - - //Not used yet, fictional values - //G4double SPECULARLOBECONSTANT1[NUMENTRIES] = - //{ 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, - // 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, - // 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, - // 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, - // 0.001, 0.001, 0.001, 0.001 }; - - //Not used yet, fictional values - //G4double SPECULARSPIKECONSTANT1[NUMENTRIES] = - //{ 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, - // 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, - // 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, - // 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, - // 0.001, 0.001, 0.001, 0.001 }; - - //Not used yet, fictional values - //G4double BACKSCATTERCONSTANT1[NUMENTRIES] = - //{ 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, - // 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, - // 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, - // 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, - // 0.001, 0.001, 0.001, 0.001 }; - - G4double EFFICIENCY_blacksheet[NUMENTRIES_water] = - { 0.0 }; - - //TF: Al, Ag and coatings - G4double REFLECTIVITY_aluminium[NUMENTRIES_water] = //start simple with flat 90% - { 0.9,0.9,0.9,0.9,0.9,0.9, - 0.9,0.9,0.9,0.9,0.9,0.9, - 0.9,0.9,0.9,0.9,0.9,0.9, - 0.9,0.9,0.9,0.9,0.9,0.9, - 0.9,0.9,0.9,0.9,0.9,0.9, - 0.9,0.9,0.9,0.9,0.9,0.9, - 0.9,0.9,0.9,0.9,0.9,0.9, - 0.9,0.9,0.9,0.9,0.9,0.9, - 0.9,0.9,0.9,0.9,0.9,0.9, - 0.9,0.9,0.9,0.9,0.9,0.9}; - - // TF: Properties acrylic from skdetsim: refractive index and absorption is enough - - // photon energies between 295nm and 600nm, using hc/(e*lambda) up to 3 digits - // ToDo: remove comment: python magic: L = ['%.3f*eV' %(h*c/(i*1e-9*eC)) for i in range(295,601)] - // L[::-1] to revert list - G4double ENERGY_skAcrylic[306] = - { 2.066*eV, 2.070*eV, 2.073*eV, 2.077*eV, 2.080*eV, 2.084*eV, 2.087*eV, - 2.091*eV, 2.094*eV, 2.098*eV, 2.101*eV, 2.105*eV, 2.109*eV, 2.112*eV, - 2.116*eV, 2.119*eV, 2.123*eV, 2.127*eV, 2.130*eV, 2.134*eV, 2.138*eV, - 2.141*eV, 2.145*eV, 2.149*eV, 2.153*eV, 2.156*eV, 2.160*eV, 2.164*eV, - 2.168*eV, 2.171*eV, 2.175*eV, 2.179*eV, 2.183*eV, 2.187*eV, 2.191*eV, - 2.194*eV, 2.198*eV, 2.202*eV, 2.206*eV, 2.210*eV, 2.214*eV, 2.218*eV, - 2.222*eV, 2.226*eV, 2.230*eV, 2.234*eV, 2.238*eV, 2.242*eV, 2.246*eV, - 2.250*eV, 2.254*eV, 2.258*eV, 2.262*eV, 2.267*eV, 2.271*eV, 2.275*eV, - 2.279*eV, 2.283*eV, 2.288*eV, 2.292*eV, 2.296*eV, 2.300*eV, 2.305*eV, - 2.309*eV, 2.313*eV, 2.317*eV, 2.322*eV, 2.326*eV, 2.331*eV, 2.335*eV, - 2.339*eV, 2.344*eV, 2.348*eV, 2.353*eV, 2.357*eV, 2.362*eV, 2.366*eV, - 2.371*eV, 2.375*eV, 2.380*eV, 2.384*eV, 2.389*eV, 2.394*eV, 2.398*eV, - 2.403*eV, 2.407*eV, 2.412*eV, 2.417*eV, 2.422*eV, 2.426*eV, 2.431*eV, - 2.436*eV, 2.441*eV, 2.445*eV, 2.450*eV, 2.455*eV, 2.460*eV, 2.465*eV, - 2.470*eV, 2.475*eV, 2.480*eV, 2.485*eV, 2.490*eV, 2.495*eV, 2.500*eV, - 2.505*eV, 2.510*eV, 2.515*eV, 2.520*eV, 2.525*eV, 2.530*eV, 2.535*eV, - 2.541*eV, 2.546*eV, 2.551*eV, 2.556*eV, 2.562*eV, 2.567*eV, 2.572*eV, - 2.578*eV, 2.583*eV, 2.588*eV, 2.594*eV, 2.599*eV, 2.605*eV, 2.610*eV, - 2.616*eV, 2.621*eV, 2.627*eV, 2.632*eV, 2.638*eV, 2.644*eV, 2.649*eV, - 2.655*eV, 2.661*eV, 2.666*eV, 2.672*eV, 2.678*eV, 2.684*eV, 2.689*eV, - 2.695*eV, 2.701*eV, 2.707*eV, 2.713*eV, 2.719*eV, 2.725*eV, 2.731*eV, - 2.737*eV, 2.743*eV, 2.749*eV, 2.755*eV, 2.761*eV, 2.768*eV, 2.774*eV, - 2.780*eV, 2.786*eV, 2.792*eV, 2.799*eV, 2.805*eV, 2.811*eV, 2.818*eV, - 2.824*eV, 2.831*eV, 2.837*eV, 2.844*eV, 2.850*eV, 2.857*eV, 2.863*eV, - 2.870*eV, 2.877*eV, 2.883*eV, 2.890*eV, 2.897*eV, 2.904*eV, 2.910*eV, - 2.917*eV, 2.924*eV, 2.931*eV, 2.938*eV, 2.945*eV, 2.952*eV, 2.959*eV, - 2.966*eV, 2.973*eV, 2.980*eV, 2.988*eV, 2.995*eV, 3.002*eV, 3.009*eV, - 3.017*eV, 3.024*eV, 3.031*eV, 3.039*eV, 3.046*eV, 3.054*eV, 3.061*eV, - 3.069*eV, 3.077*eV, 3.084*eV, 3.092*eV, 3.100*eV, 3.107*eV, 3.115*eV, - 3.123*eV, 3.131*eV, 3.139*eV, 3.147*eV, 3.155*eV, 3.163*eV, 3.171*eV, - 3.179*eV, 3.187*eV, 3.195*eV, 3.204*eV, 3.212*eV, 3.220*eV, 3.229*eV, - 3.237*eV, 3.246*eV, 3.254*eV, 3.263*eV, 3.271*eV, 3.280*eV, 3.289*eV, - 3.297*eV, 3.306*eV, 3.315*eV, 3.324*eV, 3.333*eV, 3.342*eV, 3.351*eV, - 3.360*eV, 3.369*eV, 3.378*eV, 3.388*eV, 3.397*eV, 3.406*eV, 3.416*eV, - 3.425*eV, 3.434*eV, 3.444*eV, 3.454*eV, 3.463*eV, 3.473*eV, 3.483*eV, - 3.493*eV, 3.502*eV, 3.512*eV, 3.522*eV, 3.532*eV, 3.542*eV, 3.553*eV, - 3.563*eV, 3.573*eV, 3.583*eV, 3.594*eV, 3.604*eV, 3.615*eV, 3.625*eV, - 3.636*eV, 3.647*eV, 3.657*eV, 3.668*eV, 3.679*eV, 3.690*eV, 3.701*eV, - 3.712*eV, 3.723*eV, 3.734*eV, 3.746*eV, 3.757*eV, 3.769*eV, 3.780*eV, - 3.792*eV, 3.803*eV, 3.815*eV, 3.827*eV, 3.839*eV, 3.850*eV, 3.862*eV, - 3.875*eV, 3.887*eV, 3.899*eV, 3.911*eV, 3.924*eV, 3.936*eV, 3.949*eV, - 3.961*eV, 3.974*eV, 3.987*eV, 3.999*eV, 4.012*eV, 4.025*eV, 4.039*eV, - 4.052*eV, 4.065*eV, 4.078*eV, 4.092*eV, 4.105*eV, 4.119*eV, 4.133*eV, - 4.147*eV, 4.161*eV, 4.175*eV, 4.189*eV, 4.203*eV }; - - // reverted array from skdetsim acrnsg.F because that one is function of wavelength - // instead of photon energy here. - // Real part of refractive index (2002: R. Nambu) - /* G4double RINDEX_skAcrylic[306] = - { 1.50443324, 1.504443389, 1.504455332, 1.504469061, 1.50448457, 1.504501851, - 1.504520896, 1.5045417, 1.504564254, 1.504588551, 1.504614584, 1.504642346, - 1.50467183, 1.504703029, 1.504735934, 1.50477054, 1.504806839, 1.504844823, - 1.504884485, 1.504925819, 1.504968817, 1.505013472, 1.505059776, 1.505107723, - 1.505157305, 1.505208515, 1.505261346, 1.505315791, 1.505371841, 1.505429491, - 1.505488733, 1.50554956, 1.505611965, 1.505675939, 1.505741477, 1.505808571, - 1.505877213, 1.505947398, 1.506019116, 1.506092362, 1.506167127, 1.506243405, - 1.506321189, 1.506400471, 1.506481244, 1.506563501, 1.506647235, 1.506732438, - 1.506819104, 1.506907224, 1.506996793, 1.507087802, 1.507180244, 1.507274113, - 1.507369401, 1.5074661, 1.507564205, 1.507663706, 1.507764598, 1.507866873, - 1.507970524, 1.508075544, 1.508181924, 1.508289659, 1.508398741, 1.508509163, - 1.508620917, 1.508733997, 1.508848395, 1.508964104, 1.509081116, 1.509199426, - 1.509319024, 1.509439905, 1.50956206, 1.509685483, 1.509810167, 1.509936104, - 1.510063288, 1.51019171, 1.510321364, 1.510452242, 1.510584337, 1.510717643, - 1.510852152, 1.510987856, 1.511124749, 1.511262823, 1.511402071, 1.511542485, - 1.51168406, 1.511826787, 1.511970659, 1.512115669, 1.51226181, 1.512409075, - 1.512557456, 1.512706946, 1.512857538, 1.513009225, 1.513162, 1.513315855, - 1.513470783, 1.513626777, 1.51378383, 1.513941935, 1.514101083, 1.514261269, - 1.514422485, 1.514584724, 1.514747978, 1.514912241, 1.515077504, 1.515243762, - 1.515411006, 1.51557923, 1.515748426, 1.515918587, 1.516089706, 1.516261775, - 1.516434788, 1.516608738, 1.516783616, 1.516959417, 1.517136132, 1.517313754, - 1.517492277, 1.517671692, 1.517851994, 1.518033174, 1.518215226, 1.518398141, - 1.518581914, 1.518766537, 1.518952002, 1.519138302, 1.519325431, 1.519513381, - 1.519702144, 1.519891714, 1.520082084, 1.520273245, 1.520465192, 1.520657916, - 1.520851411, 1.521045669, 1.521240683, 1.521436447, 1.521632951, 1.521830191, - 1.522028158, 1.522226844, 1.522426244, 1.522626349, 1.522827153, 1.523028648, - 1.523230828, 1.523433684, 1.523637209, 1.523841398, 1.524046241, 1.524251732, - 1.524457865, 1.524664631, 1.524872023, 1.525080035, 1.525288658, 1.525497887, - 1.525707713, 1.525918129, 1.526129129, 1.526340704, 1.526552849, 1.526765554, - 1.526978815, 1.527192622, 1.52740697, 1.52762185, 1.527837255, 1.52805318, - 1.528269615, 1.528486554, 1.52870399, 1.528921915, 1.529140323, 1.529359205, - 1.529578556, 1.529798368, 1.530018632, 1.530239344, 1.530460494, 1.530682076, - 1.530904083, 1.531126507, 1.531349341, 1.531572579, 1.531796212, 1.532020234, - 1.532244638, 1.532469415, 1.53269456, 1.532920065, 1.533145922, 1.533372124, - 1.533598665, 1.533825537, 1.534052732, 1.534280244, 1.534508066, 1.534736189, - 1.534964608, 1.535193314, 1.535422301, 1.535651561, 1.535881088, 1.536110873, - 1.53634091, 1.536571192, 1.536801711, 1.53703246, 1.537263432, 1.537494619, - 1.537726015, 1.537957613, 1.538189404, 1.538421383, 1.538653541, 1.538885871, - 1.539118367, 1.539351021, 1.539583826, 1.539816774, 1.540049859, 1.540283073, - 1.540516409, 1.54074986, 1.540983419, 1.541217077, 1.54145083, 1.541684668, - 1.541918585, 1.542152573, 1.542386626, 1.542620736, 1.542854896, 1.543089099, - 1.543323337, 1.543557604, 1.543791892, 1.544026194, 1.544260503, 1.544494811, - 1.544729111, 1.544963397, 1.54519766, 1.545431894, 1.545666092, 1.545900246, - 1.546134349, 1.546368394, 1.546602374, 1.546836281, 1.547070108, 1.547303849, - 1.547537495, 1.54777104, 1.548004477, 1.548237797, 1.548470995, 1.548704063, - 1.548936993, 1.549169778, 1.549402412, 1.549634887, 1.549867196, 1.550099331, - 1.550331286, 1.550563052, 1.550794624, 1.551025994, 1.551257154, 1.551488097, - 1.551718817, 1.551949306, 1.552179556, 1.552409561, 1.552639313, 1.552868806, - 1.553098031, 1.553326982, 1.553555652, 1.553784032, 1.554012117, 1.554239899, - 1.554467371, 1.554694525, 1.554921354, 1.555147851, 1.55537401, 1.555599822, - 1.55582528, 1.556050378, 1.556275107, 1.556499462, 1.556723434, 1.556947017 }; - */ - - // TF: from http://refractiveindex.info/?shelf=organic&book=poly%28methyl_methacrylate%29&page=Szczurowski - G4double RINDEX_skAcrylic[306] = - {1.4901, 1.4901, 1.4902, 1.4902, 1.4902, 1.4903, 1.4903, 1.4904, 1.4904, 1.4904, - 1.4905, 1.4905, 1.4906, 1.4906, 1.4907, 1.4907, 1.4908, 1.4908, 1.4908, 1.4909, - 1.4909, 1.4910, 1.4910, 1.4911, 1.4911, 1.4912, 1.4912, 1.4913, 1.4913, 1.4913, - 1.4914, 1.4914, 1.4915, 1.4915, 1.4916, 1.4916, 1.4917, 1.4917, 1.4918, 1.4918, - 1.4919, 1.4919, 1.4920, 1.4920, 1.4921, 1.4921, 1.4922, 1.4922, 1.4923, 1.4923, - 1.4924, 1.4924, 1.4925, 1.4926, 1.4926, 1.4927, 1.4927, 1.4928, 1.4928, 1.4929, - 1.4929, 1.4930, 1.4931, 1.4931, 1.4932, 1.4932, 1.4933, 1.4933, 1.4934, 1.4935, - 1.4935, 1.4936, 1.4936, 1.4937, 1.4938, 1.4938, 1.4939, 1.4940, 1.4940, 1.4941, - 1.4941, 1.4942, 1.4943, 1.4943, 1.4944, 1.4945, 1.4945, 1.4946, 1.4947, 1.4947, - 1.4948, 1.4949, 1.4949, 1.4950, 1.4951, 1.4951, 1.4952, 1.4953, 1.4954, 1.4954, - 1.4955, 1.4956, 1.4956, 1.4957, 1.4958, 1.4959, 1.4959, 1.4960, 1.4961, 1.4962, - 1.4962, 1.4963, 1.4964, 1.4965, 1.4965, 1.4966, 1.4967, 1.4968, 1.4969, 1.4970, - 1.4970, 1.4971, 1.4972, 1.4973, 1.4974, 1.4974, 1.4975, 1.4976, 1.4977, 1.4978, - 1.4979, 1.4980, 1.4980, 1.4981, 1.4982, 1.4983, 1.4984, 1.4985, 1.4986, 1.4987, - 1.4988, 1.4989, 1.4990, 1.4991, 1.4992, 1.4993, 1.4994, 1.4995, 1.4996, 1.4997, - 1.4997, 1.4998, 1.5000, 1.5001, 1.5002, 1.5003, 1.5004, 1.5005, 1.5006, 1.5007, - 1.5008, 1.5009, 1.5010, 1.5011, 1.5012, 1.5013, 1.5015, 1.5016, 1.5017, 1.5018, - 1.5019, 1.5020, 1.5022, 1.5023, 1.5024, 1.5025, 1.5026, 1.5028, 1.5029, 1.5030, - 1.5031, 1.5033, 1.5034, 1.5035, 1.5036, 1.5038, 1.5039, 1.5040, 1.5042, 1.5043, - 1.5044, 1.5046, 1.5047, 1.5049, 1.5050, 1.5051, 1.5053, 1.5054, 1.5056, 1.5057, - 1.5059, 1.5060, 1.5062, 1.5063, 1.5065, 1.5066, 1.5068, 1.5069, 1.5071, 1.5073, - 1.5074, 1.5076, 1.5077, 1.5079, 1.5081, 1.5082, 1.5084, 1.5086, 1.5088, 1.5089, - 1.5091, 1.5093, 1.5095, 1.5096, 1.5098, 1.5100, 1.5102, 1.5104, 1.5106, 1.5108, - 1.5109, 1.5111, 1.5113, 1.5115, 1.5117, 1.5119, 1.5121, 1.5123, 1.5125, 1.5127, - 1.5130, 1.5132, 1.5134, 1.5136, 1.5138, 1.5141, 1.5143, 1.5145, 1.5147, 1.5149, - 1.5152, 1.5154, 1.5157, 1.5159, 1.5161, 1.5164, 1.5166, 1.5169, 1.5171, 1.5174, - 1.5176, 1.5179, 1.5181, 1.5184, 1.5187, 1.5190, 1.5192, 1.5195, 1.5198, 1.5201, - 1.5203, 1.5206, 1.5209, 1.5212, 1.5215, 1.5218, 1.5221, 1.5224, 1.5227, 1.5230, - 1.5234, 1.5237, 1.5240, 1.5243, 1.5247, 1.5250, 1.5254, 1.5257, 1.5260, 1.5264, - 1.5267, 1.5271, 1.5275, 1.5279, 1.5282, 1.5286, 1.5290, 1.5294, 1.5297, 1.5302, - 1.5306, 1.5310, 1.5314, 1.5318, 1.5322, 1.5326}; - - - // Table from acrsg.F is abs coeff, so converted to abs length in m and inverted as - // it was original a function of wavelength and now photon energy in increased energies. - G4double ABSORPTION_skAcrylic[306] = - {3472.22*m, 3355.70*m, 3300.33*m, 3412.97*m, 3496.50*m, 3649.64*m, 3861.00*m, 3921.57*m, 3846.15*m, 3703.70*m, - 3448.28*m, 3048.78*m, 2932.55*m, 2770.08*m, 2808.99*m, 2906.98*m, 2898.55*m, 2906.98*m, 3003.00*m, 3164.56*m, - 3184.71*m, 3246.75*m, 3086.42*m, 2994.01*m, 2994.01*m, 2967.36*m, 3030.30*m, 3039.51*m, 3105.59*m, 2958.58*m, - 3012.05*m, 3039.51*m, 2967.36*m, 2932.55*m, 2923.98*m, 2890.17*m, 2857.14*m, 2865.33*m, 2915.45*m, 2898.55*m, - 2881.84*m, 2754.82*m, 2702.70*m, 2754.82*m, 2890.17*m, 2840.91*m, 2659.57*m, 2604.17*m, 2624.67*m, 2857.14*m, - 2849.00*m, 2849.00*m, 2610.97*m, 2597.40*m, 2688.17*m, 2590.67*m, 2439.02*m, 2380.95*m, 2398.08*m, 2320.19*m, - 2369.67*m, 2293.58*m, 2267.57*m, 2262.44*m, 2320.19*m, 2309.47*m, 2237.14*m, 2247.19*m, 2257.34*m, 2336.45*m, - 2347.42*m, 2421.31*m, 2439.02*m, 2392.34*m, 2392.34*m, 2500.00*m, 2500.00*m, 2512.56*m, 2481.39*m, 2444.99*m, - 2155.17*m, 2053.39*m, 2008.03*m, 2040.82*m, 1988.07*m, 2004.01*m, 1976.28*m, 1834.86*m, 1798.56*m, 1869.16*m, - 1808.32*m, 1754.39*m, 1805.05*m, 1841.62*m, 1872.66*m, 1964.64*m, 1976.28*m, 1893.94*m, 1890.36*m, 1908.40*m, - 1897.53*m, 1855.29*m, 1886.79*m, 1904.76*m, 1841.62*m, 1855.29*m, 1834.86*m, 1805.05*m, 1733.10*m, 1779.36*m, - 1754.39*m, 1788.91*m, 1831.50*m, 1834.86*m, 1869.16*m, 1912.05*m, 2004.01*m, 1968.50*m, 1915.71*m, 1818.18*m, - 1795.33*m, 1766.78*m, 1808.32*m, 1766.78*m, 1754.39*m, 1751.31*m, 1776.20*m, 1838.24*m, 1872.66*m, 1919.39*m, - 1901.14*m, 1988.07*m, 1926.78*m, 1893.94*m, 1901.14*m, 1851.85*m, 1818.18*m, 1769.91*m, 1727.12*m, 1724.14*m, - 1709.40*m, 1689.19*m, 1692.05*m, 1680.67*m, 1697.79*m, 1727.12*m, 1763.67*m, 1697.79*m, 1692.05*m, 1666.67*m, - 1600.00*m, 1636.66*m, 1615.51*m, 1610.31*m, 1538.46*m, 1501.50*m, 1519.76*m, 1492.54*m, 1515.15*m, 1457.73*m, - 1479.29*m, 1461.99*m, 1470.59*m, 1470.59*m, 1453.49*m, 1512.86*m, 1522.07*m, 1589.83*m, 1577.29*m, 1597.44*m, - 1600.00*m, 1672.24*m, 1663.89*m, 1647.45*m, 1661.13*m, 1607.72*m, 1543.21*m, 1488.10*m, 1459.85*m, 1373.63*m, - 1326.26*m, 1373.63*m, 1410.44*m, 1406.47*m, 1396.65*m, 1308.90*m, 1328.02*m, 1386.96*m, 1347.71*m, 1297.02*m, - 1262.63*m, 1234.57*m, 1283.70*m, 1319.26*m, 1310.62*m, 1319.26*m, 1402.52*m, 1459.85*m, 1464.13*m, 1472.75*m, - 1420.45*m, 1432.66*m, 1400.56*m, 1362.40*m, 1358.70*m, 1358.70*m, 1379.31*m, 1360.54*m, 1362.40*m, 1355.01*m, - 1342.28*m, 1367.99*m, 1293.66*m, 1221.00*m, 1197.60*m, 1165.50*m, 1119.82*m, 1107.42*m, 1108.65*m, 1040.58*m, - 1033.06*m, 1000.00*m, 952.38*m, 925.93*m, 909.09*m, 869.57*m, 800.00*m, 781.25*m, 769.23*m, 729.93*m, 735.29*m, - 729.93*m, 709.22*m, 684.93*m, 657.89*m, 645.16*m, 625.00*m, 581.40*m, 568.18*m, 558.66*m, 543.48*m, 540.54*m, 523.56*m, - 505.05*m, 490.20*m, 485.44*m, 462.96*m, 450.45*m, 442.48*m, 429.18*m, 420.17*m, 411.52*m, 411.52*m, 393.70*m, 393.70*m, - 386.10*m, 381.68*m, 355.87*m, 343.64*m, 331.13*m, 343.64*m, 338.98*m, 335.57*m, 326.80*m, 313.48*m, 303.95*m, 294.12*m, - 292.40*m, 280.90*m, 273.97*m, 270.27*m, 265.25*m, 261.78*m, 256.41*m, 250.00*m, 242.13*m, 237.53*m, 233.10*m, 228.83*m, - 226.76*m, 223.21*m, 219.30*m, 215.05*m, 211.86*m, 208.77*m, 206.61*m, 201.21*m, 196.85*m, 193.42*m, 189.75*m, 186.22*m, - 182.15*m, 175.75*m, 168.92*m, 162.60*m, 154.80*m, 144.51*m, 133.51*m, 120.19*m, 105.93*m, 90.91*m, 75.76*m, 61.35*m, - 48.54*m, 37.88*m, 29.41*m}; - - - // Can not use AddConstProperty for RINDEX (see http://hypernews.slac.stanford.edu/HyperNews/geant4/get/opticalphotons/379/1.html) - // ToDo: update with actual wavelength dependence, once known. - G4double RINDEX_SilGel[NUMENTRIES_water] = - {1.404, 1.404, 1.404, 1.404, 1.404, 1.404, 1.404, 1.404, 1.404, 1.404, - 1.404, 1.404, 1.404, 1.404, 1.404, 1.404, 1.404, 1.404, 1.404, 1.404, - 1.404, 1.404, 1.404, 1.404, 1.404, 1.404, 1.404, 1.404, 1.404, 1.404, - 1.404, 1.404, 1.404, 1.404, 1.404, 1.404, 1.404, 1.404, 1.404, 1.404, - 1.404, 1.404, 1.404, 1.404, 1.404, 1.404, 1.404, 1.404, 1.404, 1.404, - 1.404, 1.404, 1.404, 1.404, 1.404, 1.404, 1.404, 1.404, 1.404, 1.404}; - - // From Lew Classen (Erlangen) with PHOTON_NRG_MIN = .1*eV, and MAX = 7*eV - G4double ENERGY_SilGel[18] = { .1*eV, - 2.034*eV,2.13*eV,2.18*eV,2.22*eV,2.25*eV,2.3*eV, - 2.34*eV, 2.43*eV, 2.53*eV, 2.67*eV, 2.79*eV, - 3.1*eV, 3.28*eV, 3.56*eV, 3.77*eV,4.136*eV, 7.*eV}; - G4double ABSORPTION_SilGel[18] = { 0*m, - .975*m, .975*m, .966*m, .935*m, .890*m, .898*m, - .876*m, .844*m, .786*m, .727*m, .674*m, - .566*m, .485*m, .360*m, .220*m, .220*m, 0*m }; - - // If necessary: - //Reference: A. D. Rakić, A. B. Djurišic, J. M. Elazar, and M. L. Majewski. Optical properties of metallic films for vertical-cavity optoelectronic devices, Appl. Opt. 37, 5271-5283 (1998) - // from http://refractiveindex.info/?shelf=3d&book=metals&page=aluminium - /* - G4double ENERGY_Al[64] = - {1.644*eV, 1.678*eV, 1.713*eV, 1.748*eV, 1.785*eV, 1.822*eV, - 1.860*eV, 1.898*eV, 1.938*eV, 1.978*eV, 2.019*eV, 2.061*eV, - 2.104*eV, 2.148*eV, 2.193*eV, 2.238*eV, 2.285*eV, 2.332*eV, - 2.381*eV, 2.430*eV, 2.481*eV, 2.532*eV, 2.585*eV, 2.639*eV, - 2.693*eV, 2.749*eV, 2.807*eV, 2.865*eV, 2.925*eV, 2.985*eV, - 3.047*eV, 3.111*eV, 3.175*eV, 3.241*eV, 3.309*eV, 3.378*eV, - 3.448*eV, 3.519*eV, 3.593*eV, 3.667*eV, 3.744*eV, 3.821*eV, - 3.901*eV, 3.982*eV, 4.065*eV, 4.149*eV, 4.235*eV, 4.324*eV, - 4.413*eV, 4.505*eV, 4.599*eV, 4.694*eV, 4.792*eV, 4.892*eV, - 4.993*eV, 5.097*eV, 5.203*eV, 5.311*eV, 5.422*eV, 5.534*eV, - 5.649*eV, 5.767*eV, 5.887*eV, 6.009*eV}; - - G4double RINDEX_Al[64] = - {2.299, 2.096, 1.911, 1.752, 1.623, 1.518, 1.432, - 1.361, 1.299, 1.245, 1.196, 1.150, 1.106, 1.063, - 1.022, 0.982, 0.942, 0.903, 0.865, 0.827, 0.790, - 0.754, 0.719, 0.686, 0.653, 0.622, 0.592, 0.564, - 0.536, 0.511, 0.486, 0.463, 0.441, 0.420, 0.401, - 0.382, 0.365, 0.349, 0.333, 0.318, 0.305, 0.292, - 0.279, 0.268, 0.257, 0.246, 0.236, 0.227, 0.218, - 0.210, 0.202, 0.194, 0.187, 0.180, 0.173, 0.166, - 0.160, 0.154, 0.149, 0.143, 0.138, 0.133, 0.128, 0.123}; - */ - // ------------- Surfaces -------------- - - OpWaterBSSurface = - new G4OpticalSurface("WaterBSCellSurface"); - - OpWaterBSSurface->SetType(dielectric_dielectric); - OpWaterBSSurface->SetModel(unified); - OpWaterBSSurface->SetFinish(groundfrontpainted); - OpWaterBSSurface->SetSigmaAlpha(0.1); - - BSSkinSurface = - new G4OpticalSurface("BSSkinSurface"); - - BSSkinSurface->SetType(dielectric_dielectric); - BSSkinSurface->SetModel(unified); - BSSkinSurface->SetFinish(groundfrontpainted); - BSSkinSurface->SetSigmaAlpha(0.1); - - const G4int NUM = 2; - // G4double PP[NUM] = - //{ 2.038E-9*GeV, 4.144E-9*GeV }; - - G4double PP[NUM] = { 1.4E-9*GeV,6.2E-9*GeV}; - G4double RINDEX_blacksheet[NUM] = - { 1.76, 1.76 }; - // { 1.6, 1.6 };//B.Q - - G4double SPECULARLOBECONSTANT[NUM] = - { 0.3, 0.3 }; - G4double SPECULARSPIKECONSTANT[NUM] = - { 0.2, 0.2 }; - G4double BACKSCATTERCONSTANT[NUM] = - { 0.2, 0.2 }; - - OpGlassCathodeSurface = - new G4OpticalSurface("GlassCathodeSurface"); - OpGlassCathodeSurface->SetType(dielectric_dielectric); - OpGlassCathodeSurface->SetModel(unified); - // OpGlassCathodeSurface->SetFinish(groundbackpainted); - OpGlassCathodeSurface->SetFinish(polished); - //OpGlassCathodeSurface->SetSigmaAlpha(0.002); - // was 1.0 - // totally unphysical anyway - G4double RINDEX_cathode[NUM] = - { 1.0, 1.0 }; - /* - G4double SPECULARLOBECONSTANT_glasscath[NUM] = - { 1.0, 1.0 }; - // { 0.3, 0.3 }; - G4double SPECULARSPIKECONSTANT_glasscath[NUM] = - { 0.0, 0.0 }; - // { 0.2, 0.2 }; - G4double BACKSCATTERCONSTANT_glasscath[NUM] = - {0.0, 0.0}; - // { 0.2, 0.2 }; - */ - - - G4double RGCFF = 0.0; - RGCFF = WCSimTuningParams->GetRgcff(); //defaults in mac: 0.32 and flat - - - G4double REFLECTIVITY_glasscath[NUM] = - //{ 0.0+RGCFF, 0.0+RGCFF }; - //{ RGCFF, RGCFF }; - //{ 0.0, 0.0 }; - { 1.0*RGCFF, 1.0*RGCFF }; - - - G4double EFFICIENCY_glasscath[NUM] = - { 0.0, 0.0 }; - - - // jl145 ---- - // - OpWaterTySurface = - new G4OpticalSurface("WaterTyCellSurface"); - - OpWaterTySurface->SetType(dielectric_dielectric); - OpWaterTySurface->SetModel(unified); - OpWaterTySurface->SetFinish(groundbackpainted); //a guess, but seems to work - OpWaterTySurface->SetSigmaAlpha(0.5); //cf. A. Chavarria's ~30deg - - G4double RINDEX_tyvek[NUM] = - { 1.5, 1.5 }; // polyethylene permittivity is ~2.25 - G4double TySPECULARLOBECONSTANT[NUM] = - { 0.75, 0.75 }; // crudely estimated from A. Chavarria's thesis - G4double TySPECULARSPIKECONSTANT[NUM] = - { 0.0, 0.0 }; - G4double TyBACKSCATTERCONSTANT[NUM] = - { 0.0, 0.0 }; - // Lambertian prob is therefore 0.25 - - G4double TyREFLECTIVITY[NUM] = - { 0.94, 0.94 }; //cf. DuPont - // - // ---- - - - G4MaterialPropertiesTable *myMPT1 = new G4MaterialPropertiesTable(); - // M Fechner : new ; wider range for lambda - myMPT1->AddProperty("RINDEX", ENERGY_water, RINDEX1, NUMENTRIES_water); - myMPT1->AddProperty("ABSLENGTH",ENERGY_water, ABSORPTION_water, NUMENTRIES_water); - // M Fechner: new, don't let G4 compute it. - myMPT1->AddProperty("RAYLEIGH",ENERGY_water,RAYLEIGH_water,NUMENTRIES_water); - - // myMPT1->AddProperty("MIEHG",ENERGY_water,MIE_water,NUMENTRIES_water); -// myMPT1->AddConstProperty("MIEHG_FORWARD",MIE_water_const[0]); -// myMPT1->AddConstProperty("MIEHG_BACKWARD",MIE_water_const[1]); -// myMPT1->AddConstProperty("MIEHG_FORWARD_RATIO",MIE_water_const[2]); - - - Water->SetMaterialPropertiesTable(myMPT1); - // myMPT1->DumpTable(); - - G4MaterialPropertiesTable *myMPT2 = new G4MaterialPropertiesTable(); - myMPT2->AddProperty("RINDEX", ENERGY_water, RINDEX_air, NUMENTRIES_water); - // M Fechner : what is that ????? - myMPT2->AddProperty("ABSLENGTH", ENERGY_water, BLACKABS_blacksheet, NUMENTRIES_water); - myMPT2->AddProperty("RAYLEIGH",ENERGY_water, RAYLEIGH_air, NUMENTRIES_water); - - // myMPT2->AddProperty("MIEHG",ENERGY_water,MIE_air,NUMENTRIES_water); -// myMPT2->AddConstProperty("MIEHG_FORWARD",MIE_air_const[0]); -// myMPT2->AddConstProperty("MIEHG_BACKWARD",MIE_air_const[1]); -// myMPT2->AddConstProperty("MIEHG_FORWARD_RATIO",MIE_air_const[2]); - - Air->SetMaterialPropertiesTable(myMPT2); - - G4MaterialPropertiesTable *myMPT3 = new G4MaterialPropertiesTable(); - myMPT3->AddProperty("ABSLENGTH", ENERGY_water, BLACKABS_blacksheet, NUMENTRIES_water); - myMPT3->AddProperty("REFLECTIVITY", ENERGY_water, REFLECTIVITY_blacksheet, NUMENTRIES_water); - myMPT3->AddProperty("EFFICIENCY", ENERGY_water, EFFICIENCY, NUMENTRIES_water); - Plastic->SetMaterialPropertiesTable(myMPT3); - - G4MaterialPropertiesTable *myMPT4 = new G4MaterialPropertiesTable(); - myMPT4->AddProperty("ABSLENGTH", ENERGY_water, BLACKABS_blacksheet, NUMENTRIES_water); - //myMPT4->AddProperty("RINDEX", ENERGY_water, RINDEX_blacksheet, NUMENTRIES_water); //TF - never required if BS is properly defined as surface. - Blacksheet->SetMaterialPropertiesTable(myMPT4); - - G4MaterialPropertiesTable *myMPT5 = new G4MaterialPropertiesTable(); - myMPT5->AddProperty("RINDEX", ENERGY_water, RINDEX_glass, NUMENTRIES_water); - myMPT5->AddProperty("ABSLENGTH",ENERGY_water, ABSORPTION_glass, NUMENTRIES_water); - Glass->SetMaterialPropertiesTable(myMPT5); - - // jl145 ---- - // Abs legnth is same as blacksheet, very small. - G4MaterialPropertiesTable *myMPT6 = new G4MaterialPropertiesTable(); - myMPT6->AddProperty("ABSLENGTH", ENERGY_water, BLACKABS_blacksheet, NUMENTRIES_water); - Tyvek->SetMaterialPropertiesTable(myMPT6); - - /// SilGel : Currently based on WackerSilGel 612, BUT should be adjusted to best one (R&D) - G4MaterialPropertiesTable *SilGelPropTable = new G4MaterialPropertiesTable(); - SilGelPropTable->AddProperty("RINDEX", ENERGY_water, RINDEX_SilGel, NUMENTRIES_water); - SilGelPropTable->AddProperty("ABSLENGTH",ENERGY_SilGel, ABSORPTION_SilGel, 18); //ToDo: get measurement of optical properties of the optical gel. From slides: better than 40cm above 350nm. - SilGelPropTable->AddProperty("RAYLEIGH",ENERGY_water,RAYLEIGH_water,NUMENTRIES_water); //ToDo: get actual Rayleigh scattering in gel - SilGel->SetMaterialPropertiesTable(SilGelPropTable); - - //Acrylic - G4MaterialPropertiesTable *AcrPropTable = new G4MaterialPropertiesTable(); - AcrPropTable->AddProperty("RINDEX", ENERGY_skAcrylic, RINDEX_skAcrylic, 306); - AcrPropTable->AddProperty("ABSLENGTH", ENERGY_skAcrylic, ABSORPTION_skAcrylic, 306); - Acrylic->SetMaterialPropertiesTable(AcrPropTable); - - - - // ------------- Surfaces -------------- - - // Blacksheet - G4MaterialPropertiesTable *myST1 = new G4MaterialPropertiesTable(); - myST1->AddProperty("RINDEX", ENERGY_water, RINDEX_blacksheet, NUMENTRIES_water); - myST1->AddProperty("SPECULARLOBECONSTANT", PP, SPECULARLOBECONSTANT, NUM); - myST1->AddProperty("SPECULARSPIKECONSTANT", PP, SPECULARSPIKECONSTANT, NUM); - myST1->AddProperty("BACKSCATTERCONSTANT", PP, BACKSCATTERCONSTANT, NUM); - myST1->AddProperty("REFLECTIVITY", ENERGY_water, REFLECTIVITY_blacksheet, NUMENTRIES_water); - myST1->AddProperty("EFFICIENCY", ENERGY_water, EFFICIENCY_blacksheet, NUMENTRIES_water); - OpWaterBSSurface->SetMaterialPropertiesTable(myST1); - - BSSkinSurface->SetMaterialPropertiesTable(myST1); - - //Glass to Cathode surface inside PMTs - G4MaterialPropertiesTable *myST2 = new G4MaterialPropertiesTable(); - myST2->AddProperty("RINDEX", PP, RINDEX_cathode, NUM); - // myST2->AddProperty("SPECULARLOBECONSTANT", PP, SPECULARLOBECONSTANT_glasscath, NUM); - // myST2->AddProperty("SPECULARSPIKECONSTANT", PP, SPECULARSPIKECONSTANT_glasscath, NUM); - // myST2->AddProperty("BACKSCATTERCONSTANT", PP, BACKSCATTERCONSTANT_glasscath, NUM); - myST2->AddProperty("REFLECTIVITY", PP, REFLECTIVITY_glasscath, NUM); - myST2->AddProperty("EFFICIENCY", PP, EFFICIENCY_glasscath, NUM); - //myST2->AddProperty("ABSLENGTH", PP, abslength_paint , NUM); - OpGlassCathodeSurface->SetMaterialPropertiesTable(myST2); - - //Tyvek - jl145 - G4MaterialPropertiesTable *myST3 = new G4MaterialPropertiesTable(); - myST3->AddProperty("RINDEX", PP, RINDEX_tyvek, NUM); - myST3->AddProperty("SPECULARLOBECONSTANT", PP, TySPECULARLOBECONSTANT, NUM); - myST3->AddProperty("SPECULARSPIKECONSTANT", PP, TySPECULARSPIKECONSTANT, NUM); - myST3->AddProperty("BACKSCATTERCONSTANT", PP, TyBACKSCATTERCONSTANT, NUM); - myST3->AddProperty("REFLECTIVITY", PP, TyREFLECTIVITY, NUM); - myST3->AddProperty("EFFICIENCY", PP, EFFICIENCY_blacksheet, NUM); - //use same efficiency as blacksheet, which is 0 - OpWaterTySurface->SetMaterialPropertiesTable(myST3); - - - // Surfaces for Al, Ag and future combinations: - ReflectorSkinSurface = - new G4OpticalSurface("ReflectorSurface"); - ReflectorSkinSurface->SetType(dielectric_metal); - ReflectorSkinSurface->SetModel(unified); - ReflectorSkinSurface->SetFinish(polished); - - G4MaterialPropertiesTable *AlPropTable = new G4MaterialPropertiesTable(); - //AlPropTable->AddProperty("RINDEX", ENERGY_Al, RINDEX_Al, 64); //not necessary for boundaries if kept within their MotherVolumes. - AlPropTable->AddProperty("REFLECTIVITY", ENERGY_water, REFLECTIVITY_aluminium, NUMENTRIES_water); - ReflectorSkinSurface->SetMaterialPropertiesTable(AlPropTable); - - OpGelFoamSurface = - new G4OpticalSurface("GelFoamSurface"); - - OpGelFoamSurface->SetType(dielectric_dielectric); - OpGelFoamSurface->SetModel(unified); - OpGelFoamSurface->SetFinish(groundfrontpainted); - OpGelFoamSurface->SetSigmaAlpha(0.1); - - OpGelFoamSurface->SetMaterialPropertiesTable(myST1); //TF: same as water-blacksheet for now - - - - //ToDo: - G4MaterialPropertiesTable *AgPropTable = new G4MaterialPropertiesTable(); - G4MaterialPropertiesTable *AlAg1PropTable = new G4MaterialPropertiesTable(); -} - -void WCSimDetectorConstruction::AddDopedWater(G4double percentGd){ - G4Material * Water = G4Material::GetMaterial("Water"); - G4Material * DopedWater = G4Material::GetMaterial("Doped Water", false); - //Delete old doped water if it exists - if(DopedWater) delete DopedWater; - //Create new doped water material - DopedWater = new G4Material("Doped Water",1.00*g/cm3,2); - //Gd doped water has the same optical properties as pure water - DopedWater->SetMaterialPropertiesTable(Water->GetMaterialPropertiesTable()); - //Set concentration - G4double a = 157.25*g/mole; - G4Element* Gd = new G4Element("Gadolinium","Gd", 64,a); - DopedWater->AddMaterial(Water,(100.-percentGd)*perCent); - DopedWater->AddElement(Gd,percentGd*perCent); -} diff --git a/libWCSIM/src/WCSimConstructMultiPMT.cc b/libWCSIM/src/WCSimConstructMultiPMT.cc deleted file mode 100644 index bdcd397..0000000 --- a/libWCSIM/src/WCSimConstructMultiPMT.cc +++ /dev/null @@ -1,885 +0,0 @@ -#include "WCSimDetectorConstruction.hh" - -#include "G4Box.hh" -#include "G4Sphere.hh" -#include "G4SubtractionSolid.hh" -#include "G4UnionSolid.hh" -#include "G4LogicalVolume.hh" -#include "G4VisAttributes.hh" -#include "G4Material.hh" -#include "G4Polycone.hh" -#include "G4Tubs.hh" -#include "G4PVPlacement.hh" -#include "G4LogicalSkinSurface.hh" - -#include "G4SDManager.hh" -#include "WCSimWCSD.hh" - -#include "G4SystemOfUnits.hh" - -#include "WCSimMultiPMTParameterisation.hh" -#include "G4PVParameterised.hh" - - -//mPMT logical volume construction. -//A function of the WCSimDetectorConstruction class - - -// Keep track of created logical volumes (PMTs and mPMTs). -// If already created, call from map! -WCSimDetectorConstruction::PMTMap_t WCSimDetectorConstruction::PMTLogicalVolumes; - -// Options: - PMT type (let's do ONE type per multiPMT) -// - expose: how much the individual PMTs stick out of the blacksheet. -// Let's keep this approach for now and make the surface of our multiPMT a black sheet. - -// For MultiPMT: expose have different meaning, namely where to locate the sphere on the blacksheet ID/OD separator -G4LogicalVolume* WCSimDetectorConstruction::ConstructMultiPMT(G4String PMTName, G4String CollectionName, G4String detectorElement, G4int nIDPMTs) -{ - - - G4bool showme = true; - - std::cout<<"TEMP: Collection Name = "<second; - } - - G4cout << "Create mPMT" << G4endl; - G4cout << "Vessel height: " << mPMT_vessel_cyl_height << G4endl; - G4cout << "Vessel radius: " << mPMT_vessel_radius << G4endl; - G4cout << "Vessel radius curv: " << mPMT_vessel_radius_curv << G4endl; - G4cout << "Number of ID PMTs: " << nIDPMTs << G4endl; - - //All components of the PMT are now contained in a single logical volume logicWCPMT. - //Origin is on the blacksheet, faces positive z-direction. - - WCSimPMTObject *PMT = GetPMTPointer(CollectionName); - G4double expose = PMT->GetExposeHeight(); // THIS is the PMT expose, which I'm currently using for pressure mPMT_vessel construction - - // expose = 0.0153*m; //TF: to compare same size mPMT_vessels for different size PMTs - // this is NOT the "expose" of the mPMT - - //////////////////////////////////////////////////// - /// 1) Outer logical volume: fill with water /// - /// (cfr. same starting point as ConstructPMT) /// - //////////////////////////////////////////////////// - - // origin on blacksheet wall is origin of spherical top for ID, - // change if we want to use the cylindrical part in ID. - - // NEW: possibility of spherical Caps == sphere minus cylinder - G4double mPMT_vessel_cap_height = mPMT_vessel_radius_curv - sqrt(mPMT_vessel_radius_curv * mPMT_vessel_radius_curv - mPMT_vessel_radius*mPMT_vessel_radius); - - - G4double mPMT_zRange_outer[2] = {0, // must be zero or it will collide with the blacksheet and mess up the G4Navigator - mPMT_vessel_cyl_height + mPMT_vessel_cap_height}; - G4double mPMT_RRange_outer[2] = {mPMT_vessel_radius, - mPMT_vessel_radius}; - G4double mPMT_rRange_outer[2] = {0., 0.}; - - // Although G4Tubs is more natural, Polycone is used to be in control of z position - // and because z = 0 is position of bottom of cylinder, vs center in G4Tubs - G4Polycone* solidMultiPMT = - new G4Polycone("WCmPMT", - 0.0*deg, - 360.0*deg, - 2, - mPMT_zRange_outer, - mPMT_rRange_outer, // R Inner - mPMT_RRange_outer);// R Outer - - G4LogicalVolume *logicWCMultiPMT = - new G4LogicalVolume( solidMultiPMT, - G4Material::GetMaterial("Water"), - "WCMultiPMT", - 0,0,0); - - - - //////////////////////////////////////////////// - /// 2)Acrylic/Glass shell of the mPMT vessel /// - //////////////////////////////////////////////// - G4Sphere* mPMT_top_sphere_vessel = - new G4Sphere( "WCmPMT_tsphere_vessel", - 0, - mPMT_vessel_radius_curv, - 0.0*deg,360.0*deg, - 0.0*deg,90.0*deg); - - - G4SubtractionSolid * mPMT_top_cap_vessel; - //G4LogicalVolume * logic_mPMT_top_sphere_vessel; - G4double cap_position_offset = 0.*cm; - cap_position_offset = -1.0* (mPMT_vessel_radius_curv - mPMT_vessel_cap_height); //lower position of cap by the piece that we cut off. - G4LogicalVolume *logic_mPMT_vessel; - - // CAP - if(mPMT_vessel_radius_curv - mPMT_vessel_radius > .1*mm){ - G4Box* solidCutOffTubs = - new G4Box( "cutOffTubs", - mPMT_vessel_radius_curv + 1.*cm, // x/2 - mPMT_vessel_radius_curv + 1.*cm, // y/2 - mPMT_vessel_radius_curv - mPMT_vessel_cap_height); // z/2 - - mPMT_top_cap_vessel = - new G4SubtractionSolid( "InteriorWCPMT", - mPMT_top_sphere_vessel, - solidCutOffTubs); - - - //std::cout << "DEBUG MODE " << vessel_radius_curv - vessel_cap_height << " " < .1*mm){ - G4Box* solidCutOffContainer = - new G4Box( "cutOffContainer", - outerR_curv_container + 1.*cm, - outerR_curv_container + 1.*cm, - mPMT_vessel_radius_curv - mPMT_vessel_cap_height); - - mPMT_top_cap_container = - new G4SubtractionSolid( "InteriorWCPMT", - mPMT_top_sphere_container, - solidCutOffContainer); - - - // CAP wo CYLINDER inner - if( mPMT_vessel_cyl_height < 0.01*mm){ - - logic_mPMT_container = - new G4LogicalVolume( mPMT_top_cap_container, - G4Material::GetMaterial(mPMT_inner_material),//"SilGel"), //whole area between pressure vessel and support structure is optical gel! - "WCMultiPMT_container", - 0,0,0); - - } else{ - // CAP + CYLINDER inner - G4Tubs* mPMT_cylinder_container = - new G4Tubs("WCmPMT_cyl_container", - innerR_container, - outerR_container, - mPMT_vessel_cyl_height/2., - 0.0*deg, - 360.0*deg); - - - G4UnionSolid *union_container = - new G4UnionSolid("ContainerUnion",mPMT_cylinder_container,mPMT_top_cap_container,0,G4ThreeVector(0,0,cap_position_offset+mPMT_vessel_cyl_height/2)); - - G4cout << mPMT_cylinder_container << ", " << mPMT_top_cap_container << ", " << cap_position_offset+mPMT_vessel_cyl_height/2 << G4endl; - G4cout << innerR_curv_container << ", " << outerR_curv_container << ", " << innerR_container << ", " << outerR_container << G4endl; - logic_mPMT_container = - new G4LogicalVolume( union_container, - G4Material::GetMaterial(mPMT_inner_material),//"SilGel"), //whole area between pressure vessel and support structure is optical gel! - "WCMultiPMT_container", - 0,0,0); - - } - } else{ - //SPHERE wo CYLINDER inner - if( mPMT_vessel_cyl_height < 0.01*mm){ - logic_mPMT_container = - new G4LogicalVolume( mPMT_top_sphere_container, - G4Material::GetMaterial(mPMT_inner_material),//"SilGel"), //whole area between pressure vessel and support structure is optical gel! - "WCMultiPMT_container", - 0,0,0); - - - }else{ - // SPHERE w CYLINDER inner - G4Tubs* mPMT_cylinder_container = - new G4Tubs("WCmPMT_cyl_container", - innerR_container, - outerR_container, - mPMT_vessel_cyl_height/2., - 0.0*deg, - 360.0*deg); - - G4UnionSolid *union_container = - new G4UnionSolid("ContainerUnion",mPMT_cylinder_container,mPMT_top_sphere_container,0,G4ThreeVector(0,0,mPMT_vessel_cyl_height/2)); - - logic_mPMT_container = - new G4LogicalVolume( union_container, - G4Material::GetMaterial(mPMT_inner_material),//"SilGel"), //whole area between pressure vessel and support structure is optical gel! - "WCMultiPMT_container", - 0,0,0); - - } - } - - - ///////////////////////////////////////////////////// - /// 4) Fill the mPMT mpmt_vessel with single (ID) PMTs /// - ///////////////////////////////////////////////////// - - /* - * ToDo : Also have an alternate filling option according to some array. BUT do that - * in the parametrization somehow (eg. looping over an array or so) - */ - - // individual PMTs z=0 is offset by position_z_offset (see ConstructPMT) for n>1 - G4double pmtDistance = innerR_curv_container; // Inner radius od the DOM - pmtDistance -= (mPMT_vessel_radius_curv - mPMT_outer_material_d - 54.*mm); - G4cout << "Distance from the Z axis and corrected for z0 of individual PMTs = " << pmtDistance << " mm" << G4endl; - - G4LogicalVolume* logicWCPMT = ConstructPMT(PMTName, CollectionName,detectorElement,nIDPMTs); - - G4int NbOfTotPmt = 0; - if(nIDPMTs == 1){ - - ///////////////////////////////////////// - /// For single PMT WITH acrylic cover /// - ///////////////////////////////////////// - - double single_pmt_z_offset = 0.; - // raise/lower PMT to be inside the container - if(mPMT_vessel_cyl_height < 0.01*mm) - single_pmt_z_offset = -cap_position_offset; - else - single_pmt_z_offset = -mPMT_vessel_cyl_height/2; - // singlePMT: OK now! - new G4PVPlacement(0, - G4ThreeVector(0, 0, single_pmt_z_offset), - logicWCPMT, // its logical volume - "pmt", - logic_mPMT_container, // Mother logical volume, - false, - 0, - checkOverlaps); - - - //Place Container - new G4PVPlacement(0, // its rotation - G4ThreeVector(0,0,0), // its position - logic_mPMT_container, // its logical volume - "WCPMT_container", // its name - logic_mPMT_vessel, // its mother volume - false, // no boolean os - 0, - checkOverlaps); - - - /* Set all visualization here for better overview. */ - // Gray wireframe visual style - G4VisAttributes* VisAttGrey = new G4VisAttributes(G4Colour(0.2,0.2,0.2)); - //VisAttGrey->SetForceWireframe(true); - VisAttGrey->SetForceSolid(true); - G4VisAttributes* WCPMTVisAtt5 = new G4VisAttributes(G4Colour(.0,1.,1.)); - WCPMTVisAtt5->SetForceSolid(true); - G4VisAttributes* VisAttYellow = new G4VisAttributes(G4Colour(1.0,1.,0.)); - VisAttYellow->SetForceSolid(true); - - if(showme){ - logicWCMultiPMT->SetVisAttributes(VisAttGrey); - - logic_mPMT_vessel->SetVisAttributes(WCPMTVisAtt5); - logic_mPMT_container->SetVisAttributes(VisAttYellow); - } - - // Keep track of already created mPMT logical volumes in same map as for PMTs - PMTLogicalVolumes[key] = logicWCMultiPMT; - - - return logicWCMultiPMT; - } - else{ - NbOfTotPmt = FillCircles(); - if(NbOfTotPmt != nIDPMTs){ - G4cerr << "ERROR: Requested " << nIDPMTs << " PMTs but only acquired " << NbOfTotPmt << - " PMT from config file " << G4endl; - return NULL; - } - // OLDER version: - // CountPMT() needs number of PMTs for circle 1 - // This is the only free param of the OLDER fill-PMT alg - //NbOfTotPmt = CountPMT(nID_PMTs); // Total number of PMTs in the circles, defines vNiC and vAlpha - - } - - //Fill top sphere (or let the parametrisation figure out the whole filling? Yes!) - // raise/lower PMT to be inside the container - double pmt_z_offset = 0.; - if(mPMT_vessel_cyl_height >= 0.01*mm){ - pmt_z_offset = cap_position_offset+mPMT_vessel_cyl_height/2; // and same for inner structure - } - G4VPVParameterisation* pmtParam_id = - new WCSimMultiPMTParameterisation( - nIDPMTs, // NoPMTs - pmtDistance, // Radius of PMT translated positions on sphere - vNiC, // # PMTs in each circle - vAlpha, // Their tilt angle - vCircle, // Circle number - vAzimOffset, // The offset in azimuth angle of first PMT in that circle - pmt_z_offset); // Position offsets of circles, should become array! - - - // dummy value : kZAxis -- modified by parameterised volume - - // Mother Volume can only have ONE parametrization, - // hence need to cut in pieces OR parametrize all at once. - // TF: cut in pieces is better for different OD/ID types. But different parametrization objects needed? - - - G4VPhysicalVolume* hemisphere = - new G4PVParameterised("pmt", // their name - logicWCPMT, // their logical volume - logic_mPMT_container, // Mother logical volume - kZAxis, // Are placed along this axis - NbOfTotPmt, // Number of PMTs (replica's) - pmtParam_id, // The parametrisation - true); // checking overlaps - - - // Need a 4mm tolerance : still not perfect though because overlaps with mother volume happen still.. - if(hemisphere->CheckOverlaps(1000,4,1)){ - G4cerr << "Hemisphere has overlapping PMTs: Retry" << G4endl; - //return NULL; - } - - /* TESTING single case - G4RotationMatrix* rotm = new G4RotationMatrix(); - rotm->rotateY(-36.*CLHEP::degree); - new G4PVPlacement( rotm, // its rotation - G4ThreeVector(0,0,pmt_z_offset), // its position - logicWCPMT, // its logical volume - "test1", // its name - logic_mPMT_container, // its mother volume - false, // no boolean os - 0, - checkOverlaps); - */ - - - - - // Place Container: - /* - new G4PVPlacement( 0, // its rotation - G4ThreeVector(0,0,0), // its position - logic_mPMT_top_sphere_container, // its logical volume - "WCPMT_top_container", // its name - logic_mPMT_top_sphere_vessel, // its mother volume - false, // no boolean os - 0, - checkOverlaps); - */ - new G4PVPlacement( 0, // its rotation - G4ThreeVector(0,0,0), // its position - logic_mPMT_container, // its logical volume - "WCPMT_container", // its name - logic_mPMT_vessel, // its mother volume - false, // no boolean os - 0, - checkOverlaps); - - - - - - /////////////////////////////////////////////////////////////// - /// 5) Cover the surface with black material/paint/...sheet /// - /////////////////////////////////////////////////////////////// - - // Note: no union solid needed here as no object lives in this volume - - if(!addPMTBase){ - ///// - //Defines a cylinder - // origin is in the center of upward cylinder - if(mPMT_vessel_cyl_height > 0){ - G4Tubs* inner_cylinder = - new G4Tubs("inn_cyl", - 0., - innerR_container, - mPMT_vessel_cyl_height/2, - 0.0*deg, - 360.0*deg); - - G4LogicalVolume *logic_mPMT_cylinder_inner = - new G4LogicalVolume( inner_cylinder, - G4Material::GetMaterial("Blacksheet"), - "WCMultiPMT_inner_cyl", - 0,0,0); - - - //Place Inner Cylinder: - new G4PVPlacement( 0, // its rotation - G4ThreeVector(0,0,0), // its position - logic_mPMT_cylinder_inner, // its logical volume - "WCPMT_inner_cyl", // its name - logic_mPMT_vessel, // its mother volume - false, // no boolean os - 0, - checkOverlaps); - - new G4LogicalSkinSurface("FoamSurfaceCyl",logic_mPMT_cylinder_inner, OpGelFoamSurface); - G4VisAttributes* VisAttRed = new G4VisAttributes(G4Colour(1.0,0.,0.)); - VisAttRed->SetForceSolid(true); - logic_mPMT_cylinder_inner->SetVisAttributes(VisAttRed); - - } - G4Sphere* inner_top_sphere = - new G4Sphere( "WCmPMT_tsphere", - 0,innerR_curv_container, - 0.0*deg,360.0*deg, - 0.0*deg,90.0*deg); - - - - G4SubtractionSolid * inner_top_cap; - G4LogicalVolume * logic_mPMT_top_sphere_inner; - if(mPMT_vessel_radius_curv - mPMT_vessel_radius > .1*mm){ - - G4Box* solidCutOffInner = - new G4Box( "cutOffInner", - innerR_curv_container + 1.*cm, // x/2 - innerR_curv_container + 1.*cm, // y/2 - mPMT_vessel_radius_curv - mPMT_vessel_cap_height); // z/2 - - inner_top_cap = - new G4SubtractionSolid( "InteriorWCPMT", - inner_top_sphere, - solidCutOffInner); - - - logic_mPMT_top_sphere_inner = - new G4LogicalVolume( inner_top_cap, - G4Material::GetMaterial("Blacksheet"), - "WCMultiPMT_inner_top", - 0,0,0); - - - } else{ - logic_mPMT_top_sphere_inner = - new G4LogicalVolume( inner_top_sphere, - G4Material::GetMaterial("Blacksheet"), - "WCMultiPMT_inner_top", - 0,0,0); - } - - - //Place Inner Structure - new G4PVPlacement( 0, // its rotation - G4ThreeVector(0,0,pmt_z_offset), // its position - logic_mPMT_top_sphere_inner, // its logical volume - "WCPMT_inner_top", // its name - logic_mPMT_vessel, // its mother volume - false, // no boolean os - 0, - checkOverlaps); - - new G4LogicalSkinSurface("FoamSurfaceTop",logic_mPMT_top_sphere_inner, OpGelFoamSurface); - - G4VisAttributes* VisAttRed = new G4VisAttributes(G4Colour(1.0,0.,0.)); - VisAttRed->SetForceSolid(true); - logic_mPMT_top_sphere_inner->SetVisAttributes(VisAttRed); - } - - /* Set all visualization here for better overview. */ - // Gray wireframe visual style - G4VisAttributes* VisAttGrey = new G4VisAttributes(G4Colour(0.2,0.2,0.2)); - //VisAttGrey->SetForceWireframe(true); - VisAttGrey->SetForceSolid(true); - G4VisAttributes* WCPMTVisAtt5 = new G4VisAttributes(G4Colour(.0,1.,1.)); - WCPMTVisAtt5->SetForceSolid(true); - G4VisAttributes* VisAttYellow = new G4VisAttributes(G4Colour(1.0,1.,0.)); - VisAttYellow->SetForceSolid(true); - - - if(showme){ - logicWCMultiPMT->SetVisAttributes(VisAttGrey); - logic_mPMT_vessel->SetVisAttributes(WCPMTVisAtt5); - logic_mPMT_container->SetVisAttributes(VisAttYellow); - - } - - // Keep track of already created mPMT logical volumes in same map as for PMTs - PMTLogicalVolumes[key] = logicWCMultiPMT; - - return logicWCMultiPMT; -} - -/* - * Different approach (more practical) than the one below using CountPMT() - * We know total number of PMTs and have a minimum alpha. - * Using findClosestPacking.py to find combination with maximum viewing angle. - * This results in the number of circles and the number of PMTs per circle. - * Need to fill the vectors - */ -G4int WCSimDetectorConstruction::FillCircles(void){ - - //Read in text file (instead of setting 8 numbers) with configuration - // and pre-calculated values - //Fill vAlpha, vNiC, vCircle, vAzimOffset - std::vector vEta; - vEta.clear(); - - std::ifstream config(config_file); - if(!config){ - G4cerr << "Can not find mPMT configfile: " << config_file << G4endl; - return 0; - } - std::string line, item; - getline(config,line); - std::istringstream value(line); - while(getline(value, item, ' ')){ - if(atoi(item.c_str()) > 0) - vNiC.push_back(atoi(item.c_str())); - } - getline(config,line); - std::istringstream value2(line); - while(getline(value2, item, ' ')){ - vEta.push_back(atof(item.c_str())*CLHEP::deg); - } - G4double min_eta = *std::min_element(vEta.begin(),vEta.end()); - G4cout << "Min viewing angle eta from input file for mPMT filling is : " << min_eta << G4endl; - - getline(config,line); - std::istringstream value3(line); - while(getline(value3, item, ' ')){ - vAlpha.push_back(atof(item.c_str())*CLHEP::deg); - } - - //for(int i = 0; i < vNiC.size(); i++) { - // std::cout << "test " << vNiC[i] << " " << vAlpha[i]/CLHEP::deg << " " << vEta[i]/CLHEP::deg << std::endl; - //} - - /// NEW: optionally add an azimuth offset line for the first PMT of each circle (by default 0) - // necessary for hexagonal orientation - getline(config,line); - if(!line.empty()){ - std::istringstream value4(line); - while(getline(value4, item, ' ')){ - vAzimOffset.push_back(atof(item.c_str())*CLHEP::deg); - } - } - else { - for(size_t i = 0; i < vNiC.size();i++){ - vAzimOffset.push_back(0.*CLHEP::deg); - } - assert(vAzimOffset.size() == vAlpha.size()); - } - - // Total number of pmt in the circles - G4int TotPmt = 0; - for(size_t i = 0; i < vNiC.size();i++){ - TotPmt+=vNiC[i]; - for(int j = 0; j < vNiC[i]; j++){ - vCircle.push_back(i); //number circles internally between 0 and N-1 - } - } - - //std::cout << "Test: vNic: " << vNiC.size() << " vAlpha: " << vAlpha.size() << " vCircle: " << vCircle.size() << std::endl; - - return TotPmt; -} - - - - - -/* - * Method based on the number of PMTs in the first circle - * Then the rest will be filled according to closest packing - * Result are filled vNiC, vAlpha and vCircle vectors. - * Return total number of PMTs - * - * Downside : - uses same fEta (from first circle) for all. - * - assumes the viewing angle eta from the first circle - * is the minimum one, which is not always true. - * - needs an empirical number of PMTs in circle 1 to start with - * and cannot properly deal with a minimum opening angle. - * - calculate configuration for each WCSim MC (slow). - * => DEPRECATE at some point. - */ -G4int WCSimDetectorConstruction::CountPMT(G4int NoPmt) -{ - - G4double fEta = ComputeEta(NoPmt); // PMT viewing angle, viewing_angle (CONVERT TO DEG) - - G4int NoCircle = 1; - G4double alphaNext = fEta; - G4double alphaPrev = alphaNext; - G4double NiCNext = NoPmt; - - // Only fill the ones where alpha is above the minimum (to look over neighbouring mPMTs) - // Theta_min = eta + atan(R/r) with R radius of sphere, and r the distance between mPMTs - G4double theta_min = 13.*CLHEP::pi/180; //atan((vessel_radius_curv)/id_spacing) - if(alphaNext > theta_min + fEta){ - vAlpha.push_back(alphaNext); - vNiC.push_back(NoPmt); - G4cout << "Circle n. " << NoCircle << " - Number of PMTs: " << vNiC[NoCircle-1] << " - alpha: " << vAlpha[NoCircle-1]*180/3.141592 << " - eta " << fEta*180/3.141592 << G4endl; - NoCircle++; - } - - // Recursive calculation of vector contents - do - { - alphaNext = ComputeAlpha(alphaPrev, fEta); - NiCNext = ComputeNiC(alphaNext, fEta); - if(NiCNext<2){break;} // Prevents negative values of NiC - if(alphaNext > theta_min +fEta){ - vAlpha.push_back(alphaNext); - vNiC.push_back(NiCNext); - G4cout << "Circle n. " << NoCircle << " - Number of PMTs: " << vNiC[NoCircle-1] << " - alpha: " << vAlpha[NoCircle-1]*180/3.141592 << " - eta " << fEta*180/3.141592 << G4endl; - std::cout << "Circle n. " << NoCircle << " - Number of PMTs: " << vNiC[NoCircle-1] << " - alpha: " << vAlpha[NoCircle-1]*180/3.141592 << " - eta " << fEta*180/3.141592 << std::endl; - NoCircle++; - } - alphaPrev = alphaNext; - } while(NiCNext > 2); // No less than 3 detectors in each circle - - // TF: If possible, add top: - if(vAlpha[NoCircle-1]+2*fEta < 90.){ - alphaNext = CLHEP::pi/2; - NiCNext = 1; - vAlpha.push_back(alphaNext); - vNiC.push_back(NiCNext); - G4cout << "Circle n. " << NoCircle << " - Number of PMTs: " << vNiC[NoCircle-1] << " - alpha: " << vAlpha[NoCircle-1]*180/3.141592 << " - eta " << fEta*180/3.141592 << G4endl; - std::cout << "Circle n. " << NoCircle << " - Number of PMTs: " << vNiC[NoCircle-1] << " - alpha: " << vAlpha[NoCircle-1]*180/3.141592 << " - eta " << fEta*180/3.141592 << std::endl; - NoCircle++; - } - - - - // Total number of pmt in the circles - G4int TotPmt = 0; - for(size_t i = 0; i < vNiC.size();i++){ - TotPmt+=vNiC[i]; - for(int j = 0; j < vNiC[i]; j++){ - vCircle.push_back(i); //number circles internally between 0 and N-1 - } - } - - std::cout << "Total number of pmt: " << TotPmt << std::endl; - std::cout << "Percentage of covered hemispherical surface = " << TotPmt*(1-std::cos(fEta))*100 << "%" << std::endl; - std::cout << "Percentage of covered hemispherical surface above theta_min = " << TotPmt*(1-std::cos(fEta))*100/(1-std::cos(CLHEP::pi/2-theta_min)) << "%" << std::endl; - std::cout << "Test: vNic: " << vNiC.size() << " vAlpha: " << vAlpha.size() << " vCircle: " << vCircle.size() << std::endl; - - return TotPmt; -} - - - - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -//NoPmt is number of PMT is first circle -G4double WCSimDetectorConstruction::ComputeEta(G4int NoPmt) -{ - // From eq. 11 in Meas. Sci. Technol. 10 (1999) 1015–1019, where a_{c-1} = n_{c-1} = 0. - G4double cospi = std::cos(CLHEP::pi/NoPmt); - G4double etaLocal = std::atan(std::sqrt(1 - cospi*cospi)); - return etaLocal; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4double WCSimDetectorConstruction::ComputeAlpha (G4double alphaOfPrevC, G4double Eta) -{ - G4double alphaLocal = alphaOfPrevC + 2*Eta; - return alphaLocal; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4int WCSimDetectorConstruction::ComputeNiC (G4double alphaOfCircle, G4double Eta) -{ - G4double cos2eta = std::cos(Eta) * std::cos(Eta); - G4double sin2alpha = std::sin(alphaOfCircle) * std::sin(alphaOfCircle); - G4double cosalpha = std::cos(alphaOfCircle); - G4double arccos = std::acos(std::sqrt(cos2eta-sin2alpha)/cosalpha); //eq. 10 - G4int NiCLocal = std::floor(CLHEP::pi/arccos); //eq. 7 - return NiCLocal; -} diff --git a/libWCSIM/src/WCSimConstructPMT.cc b/libWCSIM/src/WCSimConstructPMT.cc deleted file mode 100755 index 07b2fb6..0000000 --- a/libWCSIM/src/WCSimConstructPMT.cc +++ /dev/null @@ -1,493 +0,0 @@ -#include "WCSimDetectorConstruction.hh" - -#include "G4Box.hh" -#include "G4Sphere.hh" -#include "G4SubtractionSolid.hh" -#include "G4LogicalVolume.hh" -#include "G4VisAttributes.hh" -#include "G4Material.hh" -#include "G4Polycone.hh" -#include "G4Cons.hh" -#include "G4PVPlacement.hh" -#include "G4LogicalBorderSurface.hh" - -#include "G4SDManager.hh" -#include "WCSimWCSD.hh" -#include "WCSimPMTObject.hh" - -#include "G4SystemOfUnits.hh" - -#include "G4LogicalSkinSurface.hh" - -//PMT logical volume construction. -//WCSimDetectorConstruction::PMTMap_t WCSimDetectorConstruction::PMTLogicalVolumes; - -//ToDo: use enum instead of string for PMTtype, and PMTs should be objects of one simple class. -G4LogicalVolume* WCSimDetectorConstruction::ConstructPMT(G4String PMTName, G4String CollectionName, G4String detectorElement, G4int nIDPMTs)//Modified by B.Q, 2018/12 to incorporate number of ID PMTs in the function input -{ - PMTKey_t key(PMTName,CollectionName); - - // Return pre-created PMT Logical Volume if it already exists. - PMTMap_t::iterator it = PMTLogicalVolumes.find(key); - if (it != PMTLogicalVolumes.end()) { - //G4cout << "Restore PMT" << G4endl; - return it->second; - } - - //G4cout << "Create PMT" << G4endl; - - - if (Vis_Choice == "RayTracer"){ - // Blue wireframe visual style - // Used in the RayTracer visualizer - G4VisAttributes* WCPMTVisAtt = new G4VisAttributes(G4Colour(0.0,0.0,1.0)); - WCPMTVisAtt->SetForceSolid(true); // force the object to be visualized with a surface - WCPMTVisAtt->SetForceAuxEdgeVisible(true); // force auxiliary edges to be shown - } - - - G4double expose = 0.; - G4double radius = 0.; - G4double glassThickness = 0.; - - WCSimPMTObject *PMT = GetPMTPointer(CollectionName); - expose = PMT->GetExposeHeight(); - radius = PMT->GetRadius(); //r at height = expose - glassThickness = PMT->GetPMTGlassThickness(); - - //sphereRadius R: radius of curvature, based on spherical approx near exposeHeight - //if radius of spherical cap at exposeHeight = PMTradius r (eg. 20"/2) - //then from r = sqrt(R*R - (R-expose)*(R-expose)), we get: - G4double sphereRadius = (expose*expose + radius*radius)/(2*expose); - G4double PMTOffset = sphereRadius - expose; - - //Optional reflectorCone: - G4double reflectorRadius = radius + id_reflector_height * tan(id_reflector_angle); - G4double reflectorThickness = 0.5*CLHEP::mm; - if((reflectorRadius - radius) < 1.*CLHEP::mm) - reflectorThickness = 0.*CLHEP::mm; - - - G4cout << "========================================================" << G4endl; - G4cout << "Expose height for PMT " << CollectionName << " : " << expose << " mm" << G4endl; - G4cout << "Radius at expose height : " << radius << " mm" << G4endl; - G4cout << "Radius of curvature : " << sphereRadius << " mm" << G4endl; - G4cout << "Reflector radius : " << reflectorRadius << " mm" << G4endl; - G4cout << "Reflector thickness : " << reflectorThickness << " mm" << G4endl; - G4cout << "========================================================" << G4endl; - - - G4VSolid *solidWCPMT; - G4double position_z_offset = 0.; // for positioning PMTs - G4double wcpmt_z_offset = 0.; // for positioning single PMT support (mPMT) - G4bool addPMTBase = false; - G4double pmtModuleHeight = 54.*CLHEP::mm; //includes puck and single PMT support, not PMT base. - - G4cout << "Number of PMTs per Vessel, in ConstructPMT = " << nIDPMTs << G4endl; - - if(nIDPMTs == 1){ - - //All components of the PMT are now contained in a single logical volume logicWCPMT. - //Origin is on the blacksheet, faces positive z-direction. - - G4double PMTHolderZ[2] = {0, std::max(expose,id_reflector_height+id_reflector_z_offset)}; - G4double PMTHolderR[2] = {std::max(radius,reflectorRadius) + reflectorThickness, - std::max(radius,reflectorRadius) + reflectorThickness}; - G4double PMTHolderr[2] = {0,0}; - - - solidWCPMT = - new G4Polycone("WCPMT", - 0.0*deg, - 360.0*deg, - 2, - PMTHolderZ, - PMTHolderr, // R Inner - PMTHolderR);// R Outer - - } else{ - - // NEW: reduce overlaps by using curved surfaces, but only for mPMTs because - // the single PMTs will rest on a curved PMT support (in WCSim as the polygon is - // quite non trivial to model and not so important to get right initially, later - // we'll directly use the SolidWorks exported STL to CADMesh as Tesselated surface - // but that's not urgent now) - - ////////////////////////////// - /// Optional: Add PMT base /// - ////////////////////////////// - - // ToDo: Base is PMT property! Should not hard coded here. - G4double baseHeight = 0.; - G4double baseRadius = 0.; - if(addPMTBase){ - G4double basePinLength = 28.*CLHEP::mm; //TF measurement: pins + base + transformer. - baseHeight = 97.*CLHEP::mm - expose + basePinLength; //97mm includes the PMT top as well. - baseRadius = 26.*CLHEP::mm; //for R121990-02 - } else { - // version without a base but with optional reflectorCone - baseHeight = expose; - baseRadius = std::max(radius,reflectorRadius) + reflectorThickness; //radius + reflectorThickness; too tight - } - - // ToDo: extend the shell - ///////////////////////////// - - G4cout << mPMT_vessel_radius_curv << ", " << mPMT_outer_material_d << ", " << expose << ", " << dist_pmt_vessel << G4endl; - - // for single PMTs no overlap issues and will rest on flat black sheets - // Need spherical shell for curved top to better match (and reduce overlaps) with - // gel layer ("container") and vessel. - solidWCPMT = - new G4Sphere("WCPMT", - mPMT_vessel_radius_curv - mPMT_outer_material_d - pmtModuleHeight, //rMin, 54mm is position of support structure - mPMT_vessel_radius_curv - mPMT_outer_material_d, //rMax - 0.0*deg, //phiStart - 360.0*deg, //Deltaphi - 0.0*deg, //thetaStart - mPMT_pmt_openingAngle); //Deltatheta - // Once we have a full PMT support in (not urgent), - // replacing the current "inner" black sphere support by using - // G4Tesselated from CADMesh'ing an STL, - // Cutoff the bottom to make it flat. - - - - //z=0 for spherical shell needs to be shifted - wcpmt_z_offset = mPMT_vessel_radius_curv - mPMT_outer_material_d - pmtModuleHeight; - position_z_offset = mPMT_vessel_radius_curv - mPMT_outer_material_d - expose - dist_pmt_vessel; - G4cout << mPMT_vessel_radius_curv << ", " << mPMT_outer_material_d << ", " << expose << ", " << dist_pmt_vessel << G4endl; - } - - /* - G4Material *material_around_pmt = G4Material::GetMaterial("Water"); - if(id_reflector_height > 0.1*CLHEP::mm && - (vessel_radius > 1.*CLHEP::mm || vessel_cyl_height > 1.*CLHEP::mm)) //or make this a user option? - material_around_pmt = ; //"SilGel" - */ - - //ToDo: define defaults for single PMTs and rename variable (optional gel for single 20" PMT) - G4LogicalVolume* logicWCPMT = - new G4LogicalVolume( solidWCPMT, - G4Material::GetMaterial(mPMT_material_pmtAssembly), // Default: SilGel for n > 1, Water for n = 1 - "WCPMT", - 0,0,0); - - - - ////////////////////////// - // Visualize logicWCPMT // - ////////////////////////// - - if (Vis_Choice == "RayTracer"){ - // Makes the volume containing the PMT visible, solid, and forces the auxiliary edges to be viewed. - G4VisAttributes* WCPMTVisAtt = new G4VisAttributes(G4Colour(0.0,0.0,1.0)); - WCPMTVisAtt->SetForceSolid(true); // force the object to be visualized with a surface - WCPMTVisAtt->SetForceAuxEdgeVisible(true); // force auxiliary edges to be shown - - logicWCPMT->SetVisAttributes(WCPMTVisAtt); - } else{ - G4VisAttributes* WCPMTVisAtt2 = new G4VisAttributes(G4Colour(1.0,0.0,0.0)); - WCPMTVisAtt2->SetForceSolid(true); - if(addPMTBase) - logicWCPMT->SetVisAttributes(WCPMTVisAtt2); - else{ - // Makes the volume containg the PMT invisible for normal visualization - G4VisAttributes* WCPMTVisAttGrey = new G4VisAttributes(G4Colour(0.2,0.2,0.2)); - WCPMTVisAttGrey->SetForceSolid(true); - logicWCPMT->SetVisAttributes(G4VisAttributes::Invisible); - logicWCPMT->SetVisAttributes(WCPMTVisAttGrey); //TF debug overlaps with this volume - } - } - - //Need a volume to cut away excess behind blacksheet - G4Box* solidCutOffTubs = - new G4Box( "cutOffTubs", - sphereRadius+1.*cm, - sphereRadius+1.*cm, - PMTOffset); - - //////////////////////////// - /// Create PMT Interior /// - //////////////////////////// - - G4Sphere* tmpSolidInteriorWCPMT = - new G4Sphere( "tmpInteriorWCPMT", - 0.0*m,(sphereRadius-glassThickness), - 0.0*deg,360.0*deg, - 0.0*deg,90.0*deg); - - G4SubtractionSolid* solidInteriorWCPMT = - new G4SubtractionSolid( "InteriorWCPMT", - tmpSolidInteriorWCPMT, - solidCutOffTubs); - - // "Air" here is not true air, but a modified material - // with n = 1 and a very short absorption length - G4LogicalVolume* logicInteriorWCPMT = - new G4LogicalVolume( solidInteriorWCPMT, - G4Material::GetMaterial("Air"), - "InteriorWCPMT", - 0,0,0); - - G4VPhysicalVolume* physiInteriorWCPMT = - new G4PVPlacement(0, - G4ThreeVector(0, 0, -1.0*PMTOffset + position_z_offset), - logicInteriorWCPMT, - "InteriorWCPMT", - logicWCPMT, - false, - 0, - checkOverlaps); - - - ////////////////////////////////// - // Visualize logicInteriorWCPMT // - ///////////////////////////////// - - if (Vis_Choice == "RayTracer"){ - // Adding color and forcing the inner portion of the PMT's to be viewed - G4VisAttributes* WCPMTVisAtt = new G4VisAttributes(G4Colour(0.0,0.0,1.0)); - WCPMTVisAtt->SetForceSolid(true); // force the object to be visualized with a surface - WCPMTVisAtt->SetForceAuxEdgeVisible(true); // force auxiliary edges to be shown - - logicInteriorWCPMT->SetVisAttributes(WCPMTVisAtt); - } else { - // Making the inner portion of the detector invisible for OGLSX visualization - logicInteriorWCPMT->SetVisAttributes(G4VisAttributes::Invisible); - } - - ///////////////////////////// - /// Create PMT Glass Face /// - ///////////////////////////// - - G4Sphere* tmpGlassFaceWCPMT = - new G4Sphere( "tmpGlassFaceWCPMT", - (sphereRadius-glassThickness), - sphereRadius, - 0.0*deg,360.0*deg, - 0.0*deg,90.0*deg); - - G4SubtractionSolid* solidGlassFaceWCPMT = - new G4SubtractionSolid( CollectionName, - tmpGlassFaceWCPMT, - solidCutOffTubs); - - G4LogicalVolume *logicGlassFaceWCPMT = - new G4LogicalVolume( solidGlassFaceWCPMT, - G4Material::GetMaterial("Glass"), - CollectionName, - 0,0,0); - - G4VPhysicalVolume* physiGlassFaceWCPMT = - new G4PVPlacement(0, - G4ThreeVector(0, 0, -1.0*PMTOffset+position_z_offset), - logicGlassFaceWCPMT, - CollectionName, - logicWCPMT, - false, - 0, - checkOverlaps); - - // For either visualization type, logicGlassFaceWCPMT will either be visible - // or invisible depending on which line is commented at the end of the respective if statements. - - if (Vis_Choice == "OGLSX") - { // Gray wireframe visual style - // used in OGLSX visualizer - G4VisAttributes* WCPMTVisAtt = new G4VisAttributes(G4Colour(0.2,0.2,0.2)); - WCPMTVisAtt->SetForceWireframe(true); - //logicGlassFaceWCPMT->SetVisAttributes(G4VisAttributes::Invisible); - logicGlassFaceWCPMT->SetVisAttributes(WCPMTVisAtt);} - - if (Vis_Choice == "RayTracer"){ - // Blue wireframe visual style - // Used in the RayTracer visualizer - G4VisAttributes* WCPMTVisAtt = new G4VisAttributes(G4Colour(0.0,0.0,1.0)); - WCPMTVisAtt->SetForceSolid(true); // force the object to be visualized with a surface - WCPMTVisAtt->SetForceAuxEdgeVisible(true); // force auxiliary edges to be shown - //logicGlassFaceWCPMT->SetVisAttributes(G4VisAttributes::Invisible); - - logicGlassFaceWCPMT->SetVisAttributes(WCPMTVisAtt); - } else { - - // Gray wireframe visual style - // used in OGLSX visualizer - //G4VisAttributes* WCPMTVisAtt = new G4VisAttributes(G4Colour(0.2,0.2,0.2)); //better for seeing hits - //WCPMTVisAtt->SetForceWireframe(true); - G4VisAttributes* WCPMTVisAtt = new G4VisAttributes(G4Colour(0.0,1.0,0.0)); //better for seeing geometry - WCPMTVisAtt->SetForceSolid(true); - //logicGlassFaceWCPMT->SetVisAttributes(G4VisAttributes::Invisible); - logicGlassFaceWCPMT->SetVisAttributes(WCPMTVisAtt); - - } - - //Add Logical Border Surface - new G4LogicalBorderSurface("GlassCathodeSurface", - physiGlassFaceWCPMT, - physiInteriorWCPMT, - OpGlassCathodeSurface); - - - - ////////////////////////// - /// Optional Reflector /// - ////////////////////////// - - if(id_reflector_height > 0.1*CLHEP::mm - && (reflectorRadius-radius) > -5*CLHEP::mm){ - - /* Some details: - * 1.1mm is the gap between reflector and PMT for mechanical construction - * (KM3NeT support matrix value) - * three degrees of freedom: height, z position and opening angle - */ - G4Cons* reflectorCone = - new G4Cons("WCPMT_reflect", - radius + 1.1*CLHEP::mm, //rmin - radius + 1.1*CLHEP::mm + reflectorThickness, //rmax - reflectorRadius + 1.1*CLHEP::mm, //Rmin - reflectorRadius + 1.1*CLHEP::mm + reflectorThickness, //Rmax - id_reflector_height/2, //z/2 - 0, 2*CLHEP::pi); - - - G4LogicalVolume* logicReflector = - new G4LogicalVolume( reflectorCone, - G4Material::GetMaterial("Aluminum"), //It actually is Al+ Ag evaporation - "reflectorCone", - 0,0,0); - - // Visualize - G4VisAttributes* WCPMTVisAtt3 = new G4VisAttributes(G4Colour(0.0,0.0,1.0)); - WCPMTVisAtt3->SetForceSolid(true); - logicReflector->SetVisAttributes(WCPMTVisAtt3); - - new G4LogicalSkinSurface("ReflectorLogSkinSurface",logicReflector,ReflectorSkinSurface); - - // reflector PMT Placement: - new G4PVPlacement(0, - G4ThreeVector(0, 0, id_reflector_z_offset+id_reflector_height/2+position_z_offset), - logicReflector, - "reflectorWCPMT", - logicWCPMT, - false, - 0, - checkOverlaps); - } - - - G4cout << id_reflector_height << ", " << id_reflector_height - radius << ", " << radius << ", " << reflectorThickness << ", " << reflectorRadius << ", " << id_reflector_z_offset << ", " << position_z_offset << G4endl; - - if(nIDPMTs > 1){ - //////////////////// - /// 1-PMT support // - //////////////////// - //54mm is position of full PMT support wrt inside of pressure vessel. - G4Cons * solidWCPMTsupport = - new G4Cons("WCPMTsupport", - 0., //rmin1 - tan(mPMT_pmt_openingAngle)*(mPMT_vessel_radius_curv - mPMT_outer_material_d - pmtModuleHeight), //rmax1 - 0., //rmin2 - tan(mPMT_pmt_openingAngle)*(mPMT_vessel_radius_curv - mPMT_outer_material_d - -expose - dist_pmt_vessel), //rmax2 - (pmtModuleHeight - expose - dist_pmt_vessel)/2, //h/2 - 0.0*deg, //phiStart - 360.0*deg); //Deltaphi - - G4LogicalVolume* logicWCPMTsupport = - new G4LogicalVolume(solidWCPMTsupport, - G4Material::GetMaterial("Blacksheet"), - "WCPMTsupport", - 0,0,0); - - new G4LogicalSkinSurface("FoamLogSkinSurface",logicWCPMTsupport,OpGelFoamSurface); - - new G4PVPlacement(0, - G4ThreeVector(0, 0, wcpmt_z_offset+(pmtModuleHeight - expose - dist_pmt_vessel)/2), - logicWCPMTsupport, - "WCPMTsupport", - logicWCPMT, - false, - 0, - checkOverlaps); - - // Visualize - G4VisAttributes* WCPMTVisAtt_sup = new G4VisAttributes(G4Colour(0.3,0.3,0.3)); - WCPMTVisAtt_sup->SetForceSolid(true); - logicWCPMTsupport->SetVisAttributes(WCPMTVisAtt_sup); - - - //Reflector support - if(id_reflector_height > 0.1*CLHEP::mm - && (reflectorRadius-radius) > -5*CLHEP::mm){ - - G4double ReflectorHolderZ[3] = {0, id_reflector_z_offset, id_reflector_z_offset+id_reflector_height}; - G4double ReflectorHolderR[3] = {tan(mPMT_pmt_openingAngle)*(mPMT_vessel_radius_curv - mPMT_outer_material_d - -expose - dist_pmt_vessel), - tan(mPMT_pmt_openingAngle)*(mPMT_vessel_radius_curv - mPMT_outer_material_d - -expose - dist_pmt_vessel+id_reflector_z_offset), - tan(mPMT_pmt_openingAngle)*(mPMT_vessel_radius_curv - mPMT_outer_material_d - -expose - dist_pmt_vessel+id_reflector_z_offset - +id_reflector_height)}; - - G4double ReflectorHolderr[3] = {radius + 1.1*CLHEP::mm + reflectorThickness, - radius + 1.1*CLHEP::mm + reflectorThickness, - reflectorRadius + 1.1*CLHEP::mm + reflectorThickness}; - - G4Polycone * solidWCPMTsupport2 = - new G4Polycone("WCPMTsupport2", - 0.0*deg, - 360.0*deg, - 3, - ReflectorHolderZ, - ReflectorHolderr, // R Inner - ReflectorHolderR);// R Outer - - - G4LogicalVolume* logicWCPMTsupport2 = - new G4LogicalVolume(solidWCPMTsupport2, - G4Material::GetMaterial("Blacksheet"), - "WCPMTsupport", - 0,0,0); - - new G4LogicalSkinSurface("FoamLogSkinSurface2",logicWCPMTsupport2,OpGelFoamSurface); - logicWCPMTsupport2->SetVisAttributes(WCPMTVisAtt_sup); - - new G4PVPlacement(0, - G4ThreeVector(0, 0, position_z_offset), - logicWCPMTsupport2, - "WCPMTsupport2", - logicWCPMT, - false, - 0, - checkOverlaps); - } - - } - - ///////////////////////// - // Sensitive detector /// - ///////////////////////// - - // Instantiate a new sensitive detector - // and register this sensitive detector volume with the SD Manager. - G4SDManager* SDman = G4SDManager::GetSDMpointer(); - G4String SDName = "/WCSim/"; - SDName += CollectionName; - - // If there is no such sensitive detector with that SDName yet, - // make a new one - if( ! SDman->FindSensitiveDetector(SDName, false) ) { - - aWCPMT = new WCSimWCSD(CollectionName,SDName,this,detectorElement); - SDman->AddNewDetector( aWCPMT ); - } - - logicGlassFaceWCPMT->SetSensitiveDetector( aWCPMT ); - - - PMTLogicalVolumes[key] = logicWCPMT; - - return logicWCPMT; -} diff --git a/libWCSIM/src/WCSimDarkRateMessenger.cc b/libWCSIM/src/WCSimDarkRateMessenger.cc deleted file mode 100644 index e35d62d..0000000 --- a/libWCSIM/src/WCSimDarkRateMessenger.cc +++ /dev/null @@ -1,193 +0,0 @@ -#include "WCSimDarkRateMessenger.hh" -#include "WCSimWCAddDarkNoise.hh" - -#include "G4UIdirectory.hh" -#include "G4UIcommand.hh" -#include "G4UIcmdWithADoubleAndUnit.hh" -#include "G4UIcmdWithADouble.hh" -#include "G4UIcmdWithAnInteger.hh" -#include "G4UIcmdWithAString.hh" - -WCSimDarkRateMessenger::WCSimDarkRateMessenger(WCSimWCAddDarkNoise* darkratepoint) - : WCSimAddDarkNoise(darkratepoint), WCSimDir(0), SetFrequency(0), SetConversionRate(0), SetDarkMode(0), SetDarkLow(0), SetDarkHigh(0), SetDarkWindow(0), SetDetectorElement(0) -{ - //Initialize(); -} - -WCSimDarkRateMessenger* WCSimDarkRateMessenger::iInstance = NULL; - -WCSimDarkRateMessenger* WCSimDarkRateMessenger::GetInstance(){ - //G4cout<<"making the static instance"<SetGuidance("Commands to change the dark noise frequency of the simulation"); - - double const conversion_to_kHz = 1000000; - double defaultFrequency = 0; - if(SetFrequency==0){SetFrequency = new G4UIcmdWithADoubleAndUnit("/DarkRate/SetDarkRate",this);} - SetFrequency->SetGuidance("Commands to change the dark noise frequency of the simulation"); - SetFrequency->SetParameterName("DarkRate",false); - SetFrequency->SetDefaultValue(defaultFrequency * conversion_to_kHz); - //kilohertz is 10e-6 (CLHEP units: 1kHz = 1000 / (1e9 ns) = 1e-6 as ns := 1.) - SetFrequency->SetUnitCategory("Frequency"); - SetFrequency->SetDefaultUnit("kHz"); - SetFrequency->SetUnitCandidates("Hz kHz MHz GHz"); - - - double defaultConvRate = 1; - if(SetConversionRate==0){ SetConversionRate = new G4UIcmdWithADouble("/DarkRate/SetConvert",this);} - SetConversionRate->SetGuidance("Calibrate the frequency of dark noise before applying the threshold (typically 0.25pe)"); - SetConversionRate->SetParameterName("DigiCorr",false); - SetConversionRate->SetDefaultValue(defaultConvRate); - - //Mode 0 - Add dark rate in window defined by /DarkRate/SetDarkLow and /DarkRate/SetDarkHigh - //If not set default is 0 and 100000ns - //Mode 1 - Add dark rate to a window of size /DarkRate/SetDarkWindow around each hit - int defaultDarkMode = 0; - if(SetDarkMode==0){SetDarkMode = new G4UIcmdWithAnInteger("/DarkRate/SetDarkMode",this);} - SetDarkMode->SetGuidance("Set the mode of adding dark noise to the event"); - SetDarkMode->SetParameterName("DarkMode",false); - SetDarkMode->SetDefaultValue(defaultDarkMode); - SetNewValue(SetDarkMode, G4UIcommand::ConvertToString(defaultDarkMode)); - - double defaultDarkLow = 0; - if(SetDarkLow==0){SetDarkLow = new G4UIcmdWithADoubleAndUnit("/DarkRate/SetDarkLow",this);} - SetDarkLow->SetGuidance("Set the lower GEANT time limit to add dark noise"); - SetDarkLow->SetParameterName("DarkLow",false); - SetDarkLow->SetDefaultValue(defaultDarkLow); - SetDarkLow->SetUnitCategory("Time"); - SetDarkLow->SetDefaultUnit("ns"); - SetNewValue(SetDarkLow, G4UIcommand::ConvertToString(defaultDarkLow, "ns")); - - double defaultDarkHigh = 100000; - if(SetDarkHigh==0){SetDarkHigh = new G4UIcmdWithADoubleAndUnit("/DarkRate/SetDarkHigh",this);} - SetDarkHigh->SetGuidance("Set the upper GEANT time limit to add dark noise"); - SetDarkHigh->SetParameterName("DarkHigh",false); - SetDarkHigh->SetDefaultValue(defaultDarkHigh); - SetDarkHigh->SetUnitCategory("Time"); - SetDarkHigh->SetDefaultUnit("ns"); - SetNewValue(SetDarkHigh, G4UIcommand::ConvertToString(defaultDarkHigh, "ns")); - - double defaultDarkWindow = 5000; - if(SetDarkWindow==0){SetDarkWindow = new G4UIcmdWithADoubleAndUnit("/DarkRate/SetDarkWindow",this);} - SetDarkWindow->SetGuidance("Set the window width to add dark noise"); - SetDarkWindow->SetParameterName("DarkWindow",false); - SetDarkWindow->SetDefaultValue(defaultDarkWindow); - SetDarkWindow->SetUnitCategory("Time"); - SetDarkWindow->SetDefaultUnit("ns"); - SetNewValue(SetDarkWindow, G4UIcommand::ConvertToString(defaultDarkWindow, "ns")); - - G4String defaultDetectorElement = "tank"; - if(SetDetectorElement==0){ SetDetectorElement = new G4UIcmdWithAString("/DarkRate/SetDetectorElement", this); } - SetDetectorElement->SetGuidance("Set the detector element for which trigger settings will be applied"); - G4String theguidance = "Available choices are:\n"; - G4String thecandidates=""; - for(std::map::iterator it=darknoiseptrs.begin(); it!=darknoiseptrs.end(); ++it){ - theguidance+=it->first; theguidance+="\n"; - thecandidates+=it->first; thecandidates+=" "; - } - SetDetectorElement->SetGuidance(theguidance); - SetDetectorElement->SetCandidates(thecandidates); - SetDetectorElement->SetParameterName("detectorElement", false); - SetDetectorElement->AvailableForStates(G4State_PreInit, G4State_Idle); - SetDetectorElement->SetDefaultValue(defaultDetectorElement); - - initaliseString = ""; -} - -WCSimDarkRateMessenger::~WCSimDarkRateMessenger() -{ - - delete SetFrequency; - delete SetConversionRate; - delete SetDarkMode; - delete SetDarkLow; - delete SetDarkHigh; - delete SetDarkWindow; - delete WCSimDir; - delete SetDetectorElement; -} - -void WCSimDarkRateMessenger::SetNewValue(G4UIcommand* command,G4String newValue) -{ - - for(std::map::iterator it=darknoiseptrs.begin(); it!=darknoiseptrs.end(); ++it){ - WCSimAddDarkNoise = (WCSimWCAddDarkNoise*) it->second; - - if(command == SetFrequency){ - // Since kHz is 10e-3 for this class we must multiply by a 10e6 factor - // to make default units in kHz - // ToDo: make this consistent with CLHEP unit system. Makes it easier to just using CLHEP! - double const conversion_to_kHz = 1000000; - WCSimAddDarkNoise->SetDarkRate(conversion_to_kHz * SetFrequency->GetNewDoubleValue(newValue)); - G4cout << "Setting Dark Rate " << conversion_to_kHz * SetFrequency->GetNewDoubleValue(newValue) - << initaliseString.c_str() << G4endl; - } - else if(command == SetConversionRate){ - WCSimAddDarkNoise->SetConversion(SetConversionRate->GetNewDoubleValue(newValue)); - G4cout << "Setting Dark Rate Conversion value " << SetConversionRate->GetNewDoubleValue(newValue) - << initaliseString.c_str() << G4endl; - } - else if(command == SetDarkMode){ - WCSimAddDarkNoise->SetDarkMode(SetDarkMode->GetNewIntValue(newValue)); - G4cout << "Setting DarkMode value " << SetDarkMode->GetNewIntValue(newValue) - << initaliseString.c_str() << G4endl; - } - else if(command == SetDarkLow){ - WCSimAddDarkNoise->SetDarkLow(SetDarkLow->GetNewDoubleValue(newValue)); - G4cout << "Setting DarkLow value " << SetDarkLow->GetNewDoubleValue(newValue) - << initaliseString.c_str() << G4endl; - } - else if(command == SetDarkHigh){ - WCSimAddDarkNoise->SetDarkHigh(SetDarkHigh->GetNewDoubleValue(newValue)); - G4cout << "Setting DarkHigh value " << SetDarkHigh->GetNewDoubleValue(newValue) - << initaliseString.c_str() << G4endl; - } - else if(command == SetDarkWindow){ - WCSimAddDarkNoise->SetDarkWindow(SetDarkWindow->GetNewDoubleValue(newValue)); - G4cout << "Setting DarkWindow value " << SetDarkWindow->GetNewDoubleValue(newValue) - << initaliseString.c_str() << G4endl; - } - else if(command == SetDetectorElement){ - if(darknoiseptrs.count(newValue)>0){ - WCSimAddDarkNoise=darknoiseptrs[newValue]; - G4cout << "Setting detectorElement value " << newValue - << initaliseString.c_str() << G4endl; - } - } - } -} - -void WCSimDarkRateMessenger::AddDarkRateInstance(WCSimWCAddDarkNoise* darkratepoint, G4String detectorElementin){ - if(darknoiseptrs.count(detectorElementin)>0){ - G4cout<<"new dark rate messenger for existing detector Element "<(detectorElementin,darkratepoint)); - WCSimAddDarkNoise=darkratepoint; - detectorElement=detectorElementin; - } -} - -void WCSimDarkRateMessenger::RemoveDarkRateInstance(G4String detectorElementin){ - if(darknoiseptrs.count(detectorElementin)>0){ - G4cout<<"deleting dark rate messenger for detector Element "<::iterator thepointer = darknoiseptrs.find(detectorElementin); - darknoiseptrs.erase(thepointer); - if(darknoiseptrs.size()==0){ delete this; } - } else { - G4cout<<"Attempt to remove nonexistant element "<GetPMTName(); - WCPMTExposeHeight = PMT->GetExposeHeight(); - WCPMTRadius = PMT->GetRadius(); - WCIDDiameter = 33.6815*m; //16.900*2*cos(2*pi*rad/75)*m; //inner detector diameter - WCIDHeight = 36.200*m; //"" "" height - WCBarrelPMTOffset = WCPMTRadius; //offset from vertical - WCBarrelNumPMTHorizontal = 150; - WCBarrelNRings = 17.; - WCPMTperCellHorizontal= 4; - WCPMTperCellVertical = 3; - WCCapPMTSpacing = 0.707*m; // distance between centers of top and bottom pmts - WCCapEdgeLimit = WCIDDiameter/2.0 - WCPMTRadius; - WCBlackSheetThickness = 2.0*cm; - WCAddGd = false; - - InitSinglePMT(); -} - - -// Note: the actual coverage is 20.27% -void WCSimDetectorConstruction::SuperK_20inchPMT_20perCent() -{ - WCDetectorName = "SuperK_20inchPMT_20perCent"; - WCIDCollectionName = WCDetectorName +"-glassFaceWCPMT"; - WCSimPMTObject * PMT = CreatePMTObject("PMT20inch", WCIDCollectionName); - WCPMTName = PMT->GetPMTName(); - WCPMTExposeHeight = PMT->GetExposeHeight(); - WCPMTRadius = PMT->GetRadius(); - WCIDDiameter = 33.6815*m; //16.900*2*cos(2*pi*rad/75)*m; //inner detector diameter - WCIDHeight = 36.200*m; //"" "" height - WCBarrelPMTOffset = 0.0715*m; //offset from vertical - WCPMTperCellHorizontal= 4; - WCPMTperCellVertical = 3; - WCPMTPercentCoverage = 20.27; - WCBarrelNumPMTHorizontal = round(WCIDDiameter*sqrt(pi*WCPMTPercentCoverage)/(10.0*WCPMTRadius)); - WCBarrelNRings = round(((WCBarrelNumPMTHorizontal*((WCIDHeight-2*WCBarrelPMTOffset)/(pi*WCIDDiameter))) - /WCPMTperCellVertical)); - WCCapPMTSpacing = (pi*WCIDDiameter/WCBarrelNumPMTHorizontal); // distance between centers of top and bottom pmts - WCCapEdgeLimit = WCIDDiameter/2.0 - WCPMTRadius; - WCBlackSheetThickness = 2.0*cm; - WCAddGd = false; - - InitSinglePMT(); -} - - -// Note: the actual coverage is 20.27% -void WCSimDetectorConstruction::SuperK_20inchBandL_20perCent() -{ - WCDetectorName = "SuperK_20inchBandL_20perCent"; - WCIDCollectionName = WCDetectorName +"-glassFaceWCPMT"; - WCSimPMTObject * PMT = CreatePMTObject("BoxandLine20inchHQE", WCIDCollectionName); - WCPMTName = PMT->GetPMTName(); - WCPMTExposeHeight = PMT->GetExposeHeight(); - WCPMTRadius = PMT->GetRadius(); - WCIDDiameter = 33.6815*m; //16.900*2*cos(2*pi*rad/75)*m; //inner detector diameter - WCIDHeight = 36.200*m; //"" "" height - WCBarrelPMTOffset = 0.0715*m; //offset from vertical - WCPMTperCellHorizontal= 4; - WCPMTperCellVertical = 3; - WCPMTPercentCoverage = 20.27; - WCBarrelNumPMTHorizontal = round(WCIDDiameter*sqrt(pi*WCPMTPercentCoverage)/(10.0*WCPMTRadius)); - WCBarrelNRings = round(((WCBarrelNumPMTHorizontal*((WCIDHeight-2*WCBarrelPMTOffset)/(pi*WCIDDiameter))) - /WCPMTperCellVertical)); - WCCapPMTSpacing = (pi*WCIDDiameter/WCBarrelNumPMTHorizontal); // distance between centers of top and bottom pmts - WCCapEdgeLimit = WCIDDiameter/2.0 - WCPMTRadius; - WCBlackSheetThickness = 2.0*cm; - WCAddGd = false; - - InitSinglePMT(); -} - - -// Note: the actual coverage is 14.59% -void WCSimDetectorConstruction::SuperK_12inchBandL_15perCent() -{ - WCDetectorName = "SuperK_12inchBandL_15perCent"; - WCIDCollectionName = WCDetectorName +"-glassFaceWCPMT"; - WCSimPMTObject * PMT = CreatePMTObject("BoxandLine12inchHQE", WCIDCollectionName); - WCPMTName = PMT->GetPMTName(); - WCPMTExposeHeight = PMT->GetExposeHeight(); - WCPMTRadius = PMT->GetRadius(); - WCIDDiameter = 33.6815*m; //16.900*2*cos(2*pi*rad/75)*m; //inner detector diameter - WCIDHeight = 36.200*m; //"" "" height - WCBarrelPMTOffset = 0.0715*m; //offset from vertical - WCPMTperCellHorizontal= 4; - WCPMTperCellVertical = 3; - WCPMTPercentCoverage = 14.59; - WCBarrelNumPMTHorizontal = round(WCIDDiameter*sqrt(pi*WCPMTPercentCoverage)/(10.0*WCPMTRadius)); - WCBarrelNRings = round(((WCBarrelNumPMTHorizontal*((WCIDHeight-2*WCBarrelPMTOffset)/(pi*WCIDDiameter))) - /WCPMTperCellVertical)); - WCCapPMTSpacing = (pi*WCIDDiameter/WCBarrelNumPMTHorizontal); // distance between centers of top and bottom pmts - WCCapEdgeLimit = WCIDDiameter/2.0 - WCPMTRadius; - WCBlackSheetThickness = 2.0*cm; - WCAddGd = false; - - InitSinglePMT(); -} - - -// Note: the actual coverage is 13.51% -void WCSimDetectorConstruction::SuperK_20inchBandL_14perCent() -{ - WCDetectorName = "SuperK_20inchBandL_14perCent"; - WCIDCollectionName = WCDetectorName +"-glassFaceWCPMT"; - WCSimPMTObject * PMT = CreatePMTObject("BoxandLine20inchHQE", WCIDCollectionName); - WCPMTName = PMT->GetPMTName(); - WCPMTExposeHeight = PMT->GetExposeHeight(); - WCPMTRadius = PMT->GetRadius(); - WCIDDiameter = 33.6815*m; //16.900*2*cos(2*pi*rad/75)*m; //inner detector diameter - WCIDHeight = 36.200*m; //"" "" height - WCBarrelPMTOffset = 0.0715*m; //offset from vertical - WCPMTperCellHorizontal= 4; - WCPMTperCellVertical = 3; - WCPMTPercentCoverage = 13.51; - WCBarrelNumPMTHorizontal = round(WCIDDiameter*sqrt(pi*WCPMTPercentCoverage)/(10.0*WCPMTRadius)); - WCBarrelNRings = round(((WCBarrelNumPMTHorizontal*((WCIDHeight-2*WCBarrelPMTOffset)/(pi*WCIDDiameter))) - /WCPMTperCellVertical)); - WCCapPMTSpacing = (pi*WCIDDiameter/WCBarrelNumPMTHorizontal); // distance between centers of top and bottom pmts - WCCapEdgeLimit = WCIDDiameter/2.0 - WCPMTRadius; - WCBlackSheetThickness = 2.0*cm; - WCAddGd = false; - - InitSinglePMT(); -} - -void WCSimDetectorConstruction::Cylinder_60x74_20inchBandL_14perCent() -{ - WCDetectorName = "Cylinder_60x74_20inchBandL_14perCent()"; - WCIDCollectionName = WCDetectorName +"-glassFaceWCPMT"; - WCSimPMTObject * PMT = CreatePMTObject("BoxandLine20inchHQE", WCIDCollectionName); - WCPMTName = PMT->GetPMTName(); - WCPMTExposeHeight = PMT->GetExposeHeight(); - WCPMTRadius = PMT->GetRadius(); - WCIDDiameter = 74.0*m; - WCIDHeight = 60.0*m; - WCBarrelPMTOffset = WCPMTRadius; //offset from vertical - WCPMTperCellHorizontal= 4; - WCPMTperCellVertical = 3; - WCPMTPercentCoverage = 13.51; - WCBarrelNumPMTHorizontal = round(WCIDDiameter*sqrt(pi*WCPMTPercentCoverage)/(10.0*WCPMTRadius)); - WCBarrelNRings = round(((WCBarrelNumPMTHorizontal*((WCIDHeight-2*WCBarrelPMTOffset)/(pi*WCIDDiameter))) - /WCPMTperCellVertical)); - WCCapPMTSpacing = (pi*WCIDDiameter/WCBarrelNumPMTHorizontal); // distance between centers of top and bottom pmts - WCCapEdgeLimit = WCIDDiameter/2.0 - WCPMTRadius; - WCBlackSheetThickness = 2.0*cm; - WCAddGd = false; - - InitSinglePMT(); -} - -void WCSimDetectorConstruction::Cylinder_60x74_20inchBandL_40perCent() -{ - WCDetectorName = "Cylinder_60x74_20inchBandL_40perCent"; - WCIDCollectionName = WCDetectorName +"-glassFaceWCPMT"; - WCSimPMTObject * PMT = CreatePMTObject("BoxandLine20inchHQE", WCIDCollectionName); - WCPMTName = PMT->GetPMTName(); - WCPMTExposeHeight = PMT->GetExposeHeight(); - WCPMTRadius = PMT->GetRadius(); - WCIDDiameter = 74.0*m; - WCIDHeight = 60.0*m; - WCBarrelPMTOffset = WCPMTRadius; //offset from vertical - WCPMTperCellHorizontal= 4; - WCPMTperCellVertical = 3; - WCPMTPercentCoverage = 40.0; - WCBarrelNumPMTHorizontal = round(WCIDDiameter*sqrt(pi*WCPMTPercentCoverage)/(10.0*WCPMTRadius)); - WCBarrelNRings = round(((WCBarrelNumPMTHorizontal*((WCIDHeight-2*WCBarrelPMTOffset)/(pi*WCIDDiameter))) - /WCPMTperCellVertical)); - WCCapPMTSpacing = (pi*WCIDDiameter/WCBarrelNumPMTHorizontal); // distance between centers of top and bottom pmts - WCCapEdgeLimit = WCIDDiameter/2.0 - WCPMTRadius; - WCBlackSheetThickness = 2.0*cm; - WCAddGd = false; - - InitSinglePMT(); -} - -void WCSimDetectorConstruction::Cylinder_12inchHPD_15perCent() -{ - WCDetectorName = "Cylinder_12inchHPD_15perCent"; - WCIDCollectionName = WCDetectorName +"-glassFaceWCPMT"; - // cylindrical detector with a height of 100m and a diameter of 69m - // with 12" HPD and 14.59% photocoverage - WCSimPMTObject * PMT = CreatePMTObject("HPD12inchHQE", WCIDCollectionName); - WCPMTName = PMT->GetPMTName(); - WCPMTExposeHeight = PMT->GetExposeHeight(); - WCPMTRadius = PMT->GetRadius(); - WCIDDiameter = 69.0*m; - WCIDHeight = 100.0*m; - WCBarrelPMTOffset = WCPMTRadius; //offset from vertical - WCPMTperCellHorizontal= 4; - WCPMTperCellVertical = 3; - WCPMTPercentCoverage = 14.59; - WCBarrelNumPMTHorizontal = round(WCIDDiameter*sqrt(pi*WCPMTPercentCoverage)/(10.0*WCPMTRadius)); - WCBarrelNRings = round(((WCBarrelNumPMTHorizontal*((WCIDHeight-2*WCBarrelPMTOffset)/(pi*WCIDDiameter))) - /WCPMTperCellVertical)); - WCCapPMTSpacing = (pi*WCIDDiameter/WCBarrelNumPMTHorizontal); // distance between centers of top and bottom pmts - WCCapEdgeLimit = WCIDDiameter/2.0 - WCPMTRadius; - WCBlackSheetThickness = 2.0*cm; - WCAddGd = false; - - InitSinglePMT(); -} - -void WCSimDetectorConstruction::SetHyperKGeometry() -{ - WCDetectorName = "HyperK"; - WCIDCollectionName = WCDetectorName +"-glassFaceWCPMT"; - WCSimPMTObject * PMT = CreatePMTObject("BoxandLine20inchHQE", WCIDCollectionName); - WCPMTName = PMT->GetPMTName(); - WCPMTExposeHeight = PMT->GetExposeHeight(); - WCPMTRadius = PMT->GetRadius(); - WCIDDiameter = 70.8*m; // = 74m - 2*(60cm ID wall + 1m OD) - WCIDHeight = 54.8*m; // = 60m - 2*(60cm ID wall + 2m OD) - WCBarrelPMTOffset = WCPMTRadius; //offset from vertical - WCPMTperCellHorizontal= 4; - WCPMTperCellVertical = 3; - WCPMTPercentCoverage = 40.0; - WCBarrelNumPMTHorizontal = round(WCIDDiameter*sqrt(pi*WCPMTPercentCoverage)/(10.0*WCPMTRadius)); - WCBarrelNRings = round(((WCBarrelNumPMTHorizontal*((WCIDHeight-2*WCBarrelPMTOffset)/(pi*WCIDDiameter))) - /WCPMTperCellVertical)); - WCCapPMTSpacing = (pi*WCIDDiameter/WCBarrelNumPMTHorizontal); // distance between centers of top and bottom pmts - WCCapEdgeLimit = WCIDDiameter/2.0 - WCPMTRadius; - WCBlackSheetThickness = 2.0*cm; - WCAddGd = false; -} -//B. Quilain, HK with 20'' PMTs -void WCSimDetectorConstruction::SetHyperK_SKPMTGeometry() -{ - WCDetectorName = "HyperK_SKPMT"; - WCIDCollectionName = WCDetectorName +"-glassFaceWCPMT"; - WCSimPMTObject * PMT = CreatePMTObject("PMT20inch", WCIDCollectionName); - - WCPMTName = PMT->GetPMTName(); - WCPMTExposeHeight = PMT->GetExposeHeight(); - WCPMTRadius = PMT->GetRadius(); - WCIDDiameter = 70.8*m; // = 74m - 2*(60cm ID wall + 1m OD) - WCIDHeight = 54.8*m; // = 60m - 2*(60cm ID wall + 2m OD) - WCBarrelPMTOffset = WCPMTRadius; //offset from vertical - WCPMTperCellHorizontal= 4; - WCPMTperCellVertical = 3; - WCPMTPercentCoverage = 40.0; - WCBarrelNumPMTHorizontal = round(WCIDDiameter*sqrt(pi*WCPMTPercentCoverage)/(10.0*WCPMTRadius)); - WCBarrelNRings = round(((WCBarrelNumPMTHorizontal*((WCIDHeight-2*WCBarrelPMTOffset)/(pi*WCIDDiameter))) - /WCPMTperCellVertical)); - WCCapPMTSpacing = (pi*WCIDDiameter/WCBarrelNumPMTHorizontal); // distance between centers of top and bottom pmts - WCCapEdgeLimit = WCIDDiameter/2.0 - WCPMTRadius; - WCBlackSheetThickness = 2.0*cm; - WCAddGd = false; -} - -//B. Quilain, HK with 10'' PMTs -void WCSimDetectorConstruction::SetHyperK_10inchGeometry() -{ - WCDetectorName = "HyperK_10inch"; - WCIDCollectionName = WCDetectorName +"-glassFaceWCPMT"; - WCSimPMTObject * PMT = CreatePMTObject("PMT10inch", WCIDCollectionName); - - WCPMTName = PMT->GetPMTName(); - WCPMTExposeHeight = PMT->GetExposeHeight(); - WCPMTRadius = PMT->GetRadius(); - WCIDDiameter = 70.8*m; // = 74m - 2*(60cm ID wall + 1m OD) - WCIDHeight = 54.8*m; // = 60m - 2*(60cm ID wall + 2m OD) - WCBarrelPMTOffset = WCPMTRadius; //offset from vertical - WCPMTperCellHorizontal= 4; - WCPMTperCellVertical = 3; - WCPMTPercentCoverage = 40.0;//10.0; - WCBarrelNumPMTHorizontal = round(WCIDDiameter*sqrt(pi*WCPMTPercentCoverage)/(10.0*WCPMTRadius)); - WCBarrelNRings = round(((WCBarrelNumPMTHorizontal*((WCIDHeight-2*WCBarrelPMTOffset)/(pi*WCIDDiameter))) - /WCPMTperCellVertical)); - WCCapPMTSpacing = (pi*WCIDDiameter/WCBarrelNumPMTHorizontal); // distance between centers of top and bottom pmts - WCCapEdgeLimit = WCIDDiameter/2.0 - WCPMTRadius; - WCBlackSheetThickness = 2.0*cm; - WCAddGd = false; -} - -//B. Quilain, HK with 8'' PMTs -void WCSimDetectorConstruction::SetHyperK_8inchGeometry() -{ - WCDetectorName = "HyperK_8inch"; - WCIDCollectionName = WCDetectorName +"-glassFaceWCPMT"; - WCSimPMTObject * PMT = CreatePMTObject("PMT8inch", WCIDCollectionName); - - WCPMTName = PMT->GetPMTName(); - WCPMTExposeHeight = PMT->GetExposeHeight(); - WCPMTRadius = PMT->GetRadius(); - WCIDDiameter = 70.8*m; // = 74m - 2*(60cm ID wall + 1m OD) - WCIDHeight = 54.8*m; // = 60m - 2*(60cm ID wall + 2m OD) - WCBarrelPMTOffset = WCPMTRadius; //offset from vertical - WCPMTperCellHorizontal= 4; - WCPMTperCellVertical = 3; - WCPMTPercentCoverage = 6.4;//40.0; - WCBarrelNumPMTHorizontal = round(WCIDDiameter*sqrt(pi*WCPMTPercentCoverage)/(10.0*WCPMTRadius)); - WCBarrelNRings = round(((WCBarrelNumPMTHorizontal*((WCIDHeight-2*WCBarrelPMTOffset)/(pi*WCIDDiameter))) - /WCPMTperCellVertical)); - WCCapPMTSpacing = (pi*WCIDDiameter/WCBarrelNumPMTHorizontal); // distance between centers of top and bottom pmts - WCCapEdgeLimit = WCIDDiameter/2.0 - WCPMTRadius; - WCBlackSheetThickness = 2.0*cm; - WCAddGd = false; -} - -//B. Quilain, HK with 3'' PMTs -void WCSimDetectorConstruction::SetHyperK_3inchGeometry() -{ - WCDetectorName = "HyperK_3inch"; - WCIDCollectionName = WCDetectorName +"-glassFaceWCPMT"; - WCSimPMTObject * PMT = CreatePMTObject("PMT3inchR12199_02", WCIDCollectionName); - - WCPMTName = PMT->GetPMTName(); - WCPMTExposeHeight = PMT->GetExposeHeight(); - WCPMTRadius = PMT->GetRadius(); - WCIDDiameter = 70.8*m; // = 74m - 2*(60cm ID wall + 1m OD) - WCIDHeight = 54.8*m; // = 60m - 2*(60cm ID wall + 2m OD) - WCBarrelPMTOffset = WCPMTRadius; //offset from vertical - WCPMTperCellHorizontal= 4; - WCPMTperCellVertical = 3; - WCPMTPercentCoverage = 1;//40.0; - WCBarrelNumPMTHorizontal = round(WCIDDiameter*sqrt(pi*WCPMTPercentCoverage)/(10.0*WCPMTRadius)); - WCBarrelNRings = round(((WCBarrelNumPMTHorizontal*((WCIDHeight-2*WCBarrelPMTOffset)/(pi*WCIDDiameter))) - /WCPMTperCellVertical)); - WCCapPMTSpacing = (pi*WCIDDiameter/WCBarrelNumPMTHorizontal); // distance between centers of top and bottom pmts - WCCapEdgeLimit = WCIDDiameter/2.0 - WCPMTRadius; - WCBlackSheetThickness = 2.0*cm; - WCAddGd = false; -} -// B.Quilain, HK with mPMTs -// These are defaults that can be altered through the macros -void WCSimDetectorConstruction::SetHyperK_mPMTGeometry() -{ - WCDetectorName = "HyperK_mPMT"; - hybrid=false; - WCIDCollectionName = WCDetectorName +"-glassFaceWCPMT"; - mPMT_ID_PMT = "PMT3inchR14374"; //can be changed in macro through mPMT settings. - mPMT_OD_PMT = "PMT3inchR14374"; - //mPMT_ID_PMT = "PMT3inchR12199_02"; //can be changed in macro through mPMT settings. - //mPMT_OD_PMT = "PMT3inchR12199_02"; - WCSimPMTObject * PMT = CreatePMTObject(mPMT_ID_PMT, WCIDCollectionName); - WCPMTName = PMT->GetPMTName(); - WCPMTExposeHeight = PMT->GetExposeHeight(); - WCPMTRadius = PMT->GetRadius();//Radius of a small PMT, not of a module - - //mPMT params go first because detector depends on it: - mPMT_vessel_cyl_height = 38.*CLHEP::mm; //option A, option B would be 277 mm - mPMT_vessel_radius_curv = 342.*CLHEP::mm; //needs to include the vessel thickness, as we construct from outside inwards. - mPMT_vessel_radius = 254.*CLHEP::mm; - dist_pmt_vessel = 2*CLHEP::mm; - orientation = PERPENDICULAR; - mPMT_outer_material = "G4_PLEXIGLASS"; - mPMT_inner_material = "Air"; // TODO: real air, hence update abs_length - mPMT_material_pmtAssembly = "SilGel"; - mPMT_outer_material_d = 10*CLHEP::mm; - - // Radius of cone at z=reflectorHeight - id_reflector_height = 0;//6.53*CLHEP::mm; // for a radius of 7.25mm, for hex: 5.4mm (radius of 6mm) - id_reflector_z_offset = 0;//4.8*CLHEP::mm; //from KM3Net CAD drawings - id_reflector_angle = 0;//48.*CLHEP::deg; // Need to be remeasured for different PMT curvature - mPMT_pmt_openingAngle = 8.7*CLHEP::deg; // for hex: 8.5deg - G4double mPMT_vessel_tot_height = mPMT_vessel_radius + mPMT_vessel_cyl_height; - - // parameters related to filling the ID mPMT - nID_PMTs = 19; - config_file = wcsimdir_path+"/mPMT-configfiles/mPMTconfig_19_nuPrism_3ring.txt"; // for smaller reflector, use: mPMTconfig_19_nuPrism.txt (hex) - - WCBarrelPMTOffset = mPMT_vessel_tot_height; - WCIDVerticalPosition = 0.; - - WCIDDiameter = 70.8*m; // = 74m - 2*(60cm ID wall + 1m OD) - WCIDHeight = 54.8*m; // = 60m - 2*(60cm ID wall + 2m OD) - WCPMTperCellHorizontal= 1;//4; - WCPMTperCellVertical = 1;//3; - WCPMTPercentCoverage = 5.0;//40.0; - WCBarrelNumPMTHorizontal = round(WCIDDiameter*sqrt(pi*WCPMTPercentCoverage)/(10.0*mPMT_vessel_radius)); - G4cout << "## Number of Horizontal PMT along diameter = " << WCBarrelNumPMTHorizontal << ", diameter = "<< WCIDDiameter << ", coverage = "<< WCPMTPercentCoverage << ", PMT radius = " << WCPMTRadius << ", test = " << WCIDDiameter*sqrt(pi*WCPMTPercentCoverage)/(10.0*WCPMTRadius) << G4endl; - WCBarrelNRings = round(((WCBarrelNumPMTHorizontal*((WCIDHeight-2*WCBarrelPMTOffset)/(pi*WCIDDiameter))) - /WCPMTperCellVertical)); - WCCapPMTSpacing = (pi*WCIDDiameter/WCBarrelNumPMTHorizontal); // distance between centers of top and bottom pmts - WCCapEdgeLimit = WCIDDiameter/2.0 - WCPMTRadius; - WCBlackSheetThickness = 2.0*cm; - WCAddGd = false; -} - -// B.Quilain, HK with hybrid configuration: mPMTs + B&L -// These are defaults that can be altered through the macros -void WCSimDetectorConstruction::SetHyperK_HybridmPMTGeometry() -{ - //Box&Line - WCDetectorName = "HyperK_HybridmPMT"; - WCIDCollectionName = WCDetectorName +"-glassFaceWCPMT"; - WCSimPMTObject * PMT = CreatePMTObject("BoxandLine20inchHQE", WCIDCollectionName); - WCPMTName = PMT->GetPMTName(); - WCPMTExposeHeight = PMT->GetExposeHeight(); - WCPMTRadius = PMT->GetRadius(); - nID_PMTs = 1; - //WCPMTVesselCycHeight = 0; - //WCPMTVesselRadiusCurv = 0; - //WCPMTVesselRadius = 0; - //WCPMTDistPMTVessel = 0; - - //WCDetectorName2 = "HyperK_HybridmPMT"; - //WCIDCollectionName2 = WCDetectorName +"-glassFaceWCPMT"; - //WCSimPMTObject * PMT2 = CreatePMTObject("BoxandLine20inchHQE", WCIDCollectionName2); - //WCPMTName2 = PMT2->GetPMTName(); - //WCPMTExposeHeight2 = PMT2->GetExposeHeight(); - //WCPMTRadius2 = PMT2->GetRadius(); - //nID_PMTs = 1; - - //mPMT - hybrid = true; - WCIDCollectionName2 = WCDetectorName +"-glassFaceWCPMT2"; - mPMT_ID_PMT = "PMT3inchR14374"; //can be changed in macro through mPMT settings. - mPMT_OD_PMT = "PMT3inchR14374"; - //mPMT_ID_PMT = "PMT3inchR12199_02"; //can be changed in macro through mPMT settings. - //mPMT_OD_PMT = "PMT3inchR12199_02"; - WCSimPMTObject * PMT2 = CreatePMTObject(mPMT_ID_PMT, WCIDCollectionName2); - WCPMTName2 = PMT2->GetPMTName(); - WCPMTExposeHeight2 = PMT2->GetExposeHeight(); - WCPMTRadius2 = PMT2->GetRadius();//Radius of a small PMT, not of a module - nID_PMTs2 = 19; - //WCPMTVesselCycHeight = 38.*CLHEP::mm; //option A, option B would be 277 mm - //WCPMTVesselRadiusCurv = 342.*CLHEP::mm; //needs to include the vessel thickness, as we construct from outside inwards. - //WCPMTVesselRadius = 254.*CLHEP::mm; - //WCPMTDistPMTVessel = 2*CLHEP::mm; - - //mPMT params go first because detector depends on it: - mPMT_vessel_cyl_height = 38.*CLHEP::mm; //option A, option B would be 277 mm - mPMT_vessel_radius_curv = 342.*CLHEP::mm; //needs to include the vessel thickness, as we construct from outside inwards. - mPMT_vessel_radius = 254.*CLHEP::mm; - dist_pmt_vessel = 2*CLHEP::mm; - - orientation = PERPENDICULAR; - mPMT_outer_material = "G4_PLEXIGLASS"; - mPMT_inner_material = "Air"; // TODO: real air, hence update abs_length - mPMT_material_pmtAssembly = "SilGel"; - mPMT_outer_material_d = 10*CLHEP::mm; - // Radius of cone at z=reflectorHeight - id_reflector_height = 0;//6.53*CLHEP::mm; // for a radius of 7.25mm, for hex: 5.4mm (radius of 6mm) - id_reflector_z_offset = 0;//4.8*CLHEP::mm; //from KM3Net CAD drawings - id_reflector_angle = 0;//48.*CLHEP::deg; // Need to be remeasured for different PMT curvature - mPMT_pmt_openingAngle = 8.7*CLHEP::deg; // for hex: 8.5deg - // parameters related to filling the ID mPMT - config_file = wcsimdir_path+"/mPMT-configfiles/mPMTconfig_19_nuPrism_3ring.txt"; // for smaller reflector, use: mPMTconfig_19_nuPrism.txt (hex) - - G4double mPMT_vessel_tot_height = mPMT_vessel_radius + mPMT_vessel_cyl_height; - - - WCIDDiameter = 70.8*m; // = 74m - 2*(60cm ID wall + 1m OD) - WCIDHeight = 54.8*m; // = 60m - 2*(60cm ID wall + 2m OD) - WCBarrelPMTOffset = std::max(WCPMTRadius,mPMT_vessel_tot_height); //offset from vertical - WCIDVerticalPosition = 0.; - - WCPMTPercentCoverage = 20.0;//20.0;//40.0;//40.0; - WCPMTPercentCoverage2 = 5.;//5.0;//20.0; - WCPMTperCellHorizontal = round((WCPMTPercentCoverage+WCPMTPercentCoverage2) / (WCPMTPercentCoverage2==0?(WCPMTPercentCoverage+WCPMTPercentCoverage2):WCPMTPercentCoverage2)); - WCPMTperCellVertical = WCPMTperCellHorizontal; - //WCPMTperCellHorizontal= ((int) WCPMTPercentCoverage2/(WCPMTPercentCoverage+WCPMTPercentCoverage2));//Should be in agreement with coverage of PMT 1 & 2: here, 4/5 PMTs are B&L + 1/5 mPMT - //WCPMTperCellVertical = ((int) WCPMTPercentCoverage2/(WCPMTPercentCoverage+WCPMTPercentCoverage2));//Should be in agreement with coverage of PMT 1 & 2: here, 4/5 PMTs are B&L + 1/5 mPMT - - //WCBarrelNumPMTHorizontal = round(WCIDDiameter*sqrt(pi*(WCPMTPercentCoverage+WCPMTPercentCoverage2))/(10.0*std::max(WCPMTRadius,mPMT_vessel_tot_height))); - WCBarrelNumPMTHorizontal = round(WCIDDiameter*sqrt(pi*(WCPMTPercentCoverage+WCPMTPercentCoverage2))/(10.0*std::max(WCPMTRadius,mPMT_vessel_radius))); - WCBarrelNRings = round(((WCBarrelNumPMTHorizontal*((WCIDHeight-2*WCBarrelPMTOffset)/(pi*WCIDDiameter))) - /WCPMTperCellVertical)); - //G4cout << "## Number of Horizontal PMT along diameter = " << WCBarrelNumPMTHorizontal << ", diameter = "<< WCIDDiameter << ", coverage = "<< WCPMTPercentCoverage << ", PMT radius = " << WCPMTRadius << ", test = " << WCIDDiameter*sqrt(pi*WCPMTPercentCoverage)/(10.0*WCPMTRadius) << G4endl; - WCCapPMTSpacing = (pi*WCIDDiameter/WCBarrelNumPMTHorizontal); // distance between centers of top and bottom pmts - WCCapEdgeLimit = WCIDDiameter/2.0 - 5*std::max(WCPMTExposeHeight,mPMT_vessel_tot_height);//3.0*cm;//WCIDDiameter/2.0 - std::max(WCPMTRadius,mPMT_vessel_tot_height);//WCPMTRadius; - WCBlackSheetThickness = 2.0*cm; - WCAddGd = false; -} -// B.Quilain, HK with hybrid configuration: mPMTs + B&L -// These are defaults that can be altered through the macros -void WCSimDetectorConstruction::SetHyperK_HybridmPMT10PCGeometry() -{ - //Box&Line - WCDetectorName = "HyperK_HybridmPMT"; - WCIDCollectionName = WCDetectorName +"-glassFaceWCPMT"; - WCSimPMTObject * PMT = CreatePMTObject("BoxandLine20inchHQE", WCIDCollectionName); - WCPMTName = PMT->GetPMTName(); - WCPMTExposeHeight = PMT->GetExposeHeight(); - WCPMTRadius = PMT->GetRadius(); - nID_PMTs = 1; - //WCPMTVesselCycHeight = 0; - //WCPMTVesselRadiusCurv = 0; - //WCPMTVesselRadius = 0; - //WCPMTDistPMTVessel = 0; - - //WCDetectorName2 = "HyperK_HybridmPMT"; - //WCIDCollectionName2 = WCDetectorName +"-glassFaceWCPMT"; - //WCSimPMTObject * PMT2 = CreatePMTObject("BoxandLine20inchHQE", WCIDCollectionName2); - //WCPMTName2 = PMT2->GetPMTName(); - //WCPMTExposeHeight2 = PMT2->GetExposeHeight(); - //WCPMTRadius2 = PMT2->GetRadius(); - //nID_PMTs = 1; - - //mPMT - hybrid = true; - WCIDCollectionName2 = WCDetectorName +"-glassFaceWCPMT2"; - mPMT_ID_PMT = "PMT3inchR14374"; //can be changed in macro through mPMT settings. - mPMT_OD_PMT = "PMT3inchR14374"; - //mPMT_ID_PMT = "PMT3inchR12199_02"; //can be changed in macro through mPMT settings. - //mPMT_OD_PMT = "PMT3inchR12199_02"; - WCSimPMTObject * PMT2 = CreatePMTObject(mPMT_ID_PMT, WCIDCollectionName2); - WCPMTName2 = PMT2->GetPMTName(); - WCPMTExposeHeight2 = PMT2->GetExposeHeight(); - WCPMTRadius2 = PMT2->GetRadius();//Radius of a small PMT, not of a module - nID_PMTs2 = 19; - //WCPMTVesselCycHeight = 38.*CLHEP::mm; //option A, option B would be 277 mm - //WCPMTVesselRadiusCurv = 342.*CLHEP::mm; //needs to include the vessel thickness, as we construct from outside inwards. - //WCPMTVesselRadius = 254.*CLHEP::mm; - //WCPMTDistPMTVessel = 2*CLHEP::mm; - - //mPMT params go first because detector depends on it: - mPMT_vessel_cyl_height = 38.*CLHEP::mm; //option A, option B would be 277 mm - mPMT_vessel_radius_curv = 342.*CLHEP::mm; //needs to include the vessel thickness, as we construct from outside inwards. - mPMT_vessel_radius = 254.*CLHEP::mm; - dist_pmt_vessel = 2*CLHEP::mm; - - orientation = PERPENDICULAR; - mPMT_outer_material = "G4_PLEXIGLASS"; - mPMT_inner_material = "Air"; // TODO: real air, hence update abs_length - mPMT_material_pmtAssembly = "SilGel"; - mPMT_outer_material_d = 10*CLHEP::mm; - // Radius of cone at z=reflectorHeight - id_reflector_height = 0;//6.53*CLHEP::mm; // for a radius of 7.25mm, for hex: 5.4mm (radius of 6mm) - id_reflector_z_offset = 0;//4.8*CLHEP::mm; //from KM3Net CAD drawings - id_reflector_angle = 0;//48.*CLHEP::deg; // Need to be remeasured for different PMT curvature - mPMT_pmt_openingAngle = 8.7*CLHEP::deg; // for hex: 8.5deg - // parameters related to filling the ID mPMT - config_file = wcsimdir_path+"/mPMT-configfiles/mPMTconfig_19_nuPrism_3ring.txt"; // for smaller reflector, use: mPMTconfig_19_nuPrism.txt (hex) - - G4double mPMT_vessel_tot_height = mPMT_vessel_radius + mPMT_vessel_cyl_height; - - - WCIDDiameter = 70.8*m; // = 74m - 2*(60cm ID wall + 1m OD) - WCIDHeight = 54.8*m; // = 60m - 2*(60cm ID wall + 2m OD) - WCBarrelPMTOffset = std::max(WCPMTRadius,mPMT_vessel_tot_height); //offset from vertical - WCIDVerticalPosition = 0.; - - WCPMTPercentCoverage = 20.0;//40.0;//40.0; - WCPMTPercentCoverage2 = 10.0;//20.0; - WCPMTperCellHorizontal = round((WCPMTPercentCoverage+WCPMTPercentCoverage2) / (WCPMTPercentCoverage2==0?(WCPMTPercentCoverage+WCPMTPercentCoverage2):WCPMTPercentCoverage2)); - WCPMTperCellVertical = WCPMTperCellHorizontal; - //WCPMTperCellHorizontal= ((int) WCPMTPercentCoverage2/(WCPMTPercentCoverage+WCPMTPercentCoverage2));//Should be in agreement with coverage of PMT 1 & 2: here, 4/5 PMTs are B&L + 1/5 mPMT - //WCPMTperCellVertical = ((int) WCPMTPercentCoverage2/(WCPMTPercentCoverage+WCPMTPercentCoverage2));//Should be in agreement with coverage of PMT 1 & 2: here, 4/5 PMTs are B&L + 1/5 mPMT - - //WCBarrelNumPMTHorizontal = round(WCIDDiameter*sqrt(pi*(WCPMTPercentCoverage+WCPMTPercentCoverage2))/(10.0*std::max(WCPMTRadius,mPMT_vessel_tot_height))); - WCBarrelNumPMTHorizontal = round(WCIDDiameter*sqrt(pi*(WCPMTPercentCoverage+WCPMTPercentCoverage2))/(10.0*std::max(WCPMTRadius,mPMT_vessel_radius))); - WCBarrelNRings = round(((WCBarrelNumPMTHorizontal*((WCIDHeight-2*WCBarrelPMTOffset)/(pi*WCIDDiameter))) - /WCPMTperCellVertical)); - //G4cout << "## Number of Horizontal PMT along diameter = " << WCBarrelNumPMTHorizontal << ", diameter = "<< WCIDDiameter << ", coverage = "<< WCPMTPercentCoverage << ", PMT radius = " << WCPMTRadius << ", test = " << WCIDDiameter*sqrt(pi*WCPMTPercentCoverage)/(10.0*WCPMTRadius) << G4endl; - WCCapPMTSpacing = (pi*WCIDDiameter/WCBarrelNumPMTHorizontal); // distance between centers of top and bottom pmts - WCCapEdgeLimit = WCIDDiameter/2.0 - 5*std::max(WCPMTExposeHeight,mPMT_vessel_tot_height);//3.0*cm;//WCIDDiameter/2.0 - std::max(WCPMTRadius,mPMT_vessel_tot_height);//WCPMTRadius; - WCBlackSheetThickness = 2.0*cm; - WCAddGd = false; -} -// B.Quilain, HK with hybrid configuration: mPMTs + B&L -// These are defaults that can be altered through the macros -void WCSimDetectorConstruction::SetHyperK_HybridFakeGeometry() -{ - WCDetectorName = "HyperK_HybridFake"; - WCIDCollectionName = WCDetectorName +"-glassFaceWCPMT"; - mPMT_ID_PMT = "PMT3inchR12199_02"; //can be changed in macro through mPMT settings. - mPMT_OD_PMT = "PMT3inchR12199_02"; - WCSimPMTObject * PMT = CreatePMTObject(mPMT_ID_PMT, WCIDCollectionName); - WCPMTName = PMT->GetPMTName(); - WCPMTExposeHeight = PMT->GetExposeHeight(); - WCPMTRadius = PMT->GetRadius();//Radius of a small PMT, not of a module - nID_PMTs = 1; - - //mPMT params go first because detector depends on it: - mPMT_vessel_cyl_height = 38.*CLHEP::mm; //option A, option B would be 277 mm - mPMT_vessel_radius_curv = 342.*CLHEP::mm; //needs to include the vessel thickness, as we construct from outside inwards. - mPMT_vessel_radius = 254.*CLHEP::mm; - dist_pmt_vessel = 2*CLHEP::mm; - orientation = PERPENDICULAR; - mPMT_outer_material = "G4_PLEXIGLASS"; - mPMT_inner_material = "Air"; // TODO: real air, hence update abs_length - mPMT_material_pmtAssembly = "SilGel"; - mPMT_outer_material_d = 10*CLHEP::mm; - - // Radius of cone at z=reflectorHeight - id_reflector_height = 6.53*CLHEP::mm; // for a radius of 7.25mm, for hex: 5.4mm (radius of 6mm) - id_reflector_z_offset = 4.8*CLHEP::mm; //from KM3Net CAD drawings - id_reflector_angle = 48.*CLHEP::deg; // Need to be remeasured for different PMT curvature - mPMT_pmt_openingAngle = 8.7*CLHEP::deg; // for hex: 8.5deg - G4double mPMT_vessel_tot_height = mPMT_vessel_radius + mPMT_vessel_cyl_height; - - //Box&Line - //WCDetectorName2 = "HyperK_HybridmPMT"; - WCIDCollectionName2 = WCDetectorName +"-glassFaceWCPMT2"; - WCSimPMTObject * PMT2 = CreatePMTObject("BoxandLine20inchHQE", WCIDCollectionName2); - WCPMTName2 = PMT2->GetPMTName(); - WCPMTExposeHeight2 = PMT2->GetExposeHeight(); - WCPMTRadius2 = PMT2->GetRadius(); - nID_PMTs2 = 1; - //WCPMTVesselCycHeight = 0; - //WCPMTVesselRadiusCurv = 0; - //WCPMTVesselRadius = 0; - //WCPMTDistPMTVessel = 0; - - //WCDetectorName2 = "HyperK_HybridmPMT"; - //WCIDCollectionName2 = WCDetectorName +"-glassFaceWCPMT"; - //WCSimPMTObject * PMT2 = CreatePMTObject("BoxandLine20inchHQE", WCIDCollectionName2); - //WCPMTName2 = PMT2->GetPMTName(); - //WCPMTExposeHeight2 = PMT2->GetExposeHeight(); - //WCPMTRadius2 = PMT2->GetRadius(); - //nID_PMTs = 1; - - - WCIDDiameter = 70.8*m; // = 74m - 2*(60cm ID wall + 1m OD) - WCIDHeight = 54.8*m; // = 60m - 2*(60cm ID wall + 2m OD) - WCBarrelPMTOffset = std::max(WCPMTRadius,mPMT_vessel_tot_height); //offset from vertical - WCIDVerticalPosition = 0.; - - WCPMTPercentCoverage = 20.0;//20.0;//40.0;//40.0; - WCPMTPercentCoverage2 = 0;//5.0;//20.0; - WCPMTperCellHorizontal = round((WCPMTPercentCoverage+WCPMTPercentCoverage2) / (WCPMTPercentCoverage2==0?(WCPMTPercentCoverage+WCPMTPercentCoverage2):WCPMTPercentCoverage2)); - WCPMTperCellVertical = WCPMTperCellHorizontal; - //WCPMTperCellHorizontal= ((int) WCPMTPercentCoverage2/(WCPMTPercentCoverage+WCPMTPercentCoverage2));//Should be in agreement with coverage of PMT 1 & 2: here, 4/5 PMTs are B&L + 1/5 mPMT - //WCPMTperCellVertical = ((int) WCPMTPercentCoverage2/(WCPMTPercentCoverage+WCPMTPercentCoverage2));//Should be in agreement with coverage of PMT 1 & 2: here, 4/5 PMTs are B&L + 1/5 mPMT - - //WCBarrelNumPMTHorizontal = round(WCIDDiameter*sqrt(pi*(WCPMTPercentCoverage+WCPMTPercentCoverage2))/(10.0*std::max(WCPMTRadius,mPMT_vessel_tot_height))); - WCBarrelNumPMTHorizontal = round(WCIDDiameter*sqrt(pi*(WCPMTPercentCoverage+WCPMTPercentCoverage2))/(10.0*std::max(WCPMTRadius,mPMT_vessel_radius))); - WCBarrelNRings = round(((WCBarrelNumPMTHorizontal*((WCIDHeight-2*WCBarrelPMTOffset)/(pi*WCIDDiameter))) - /WCPMTperCellVertical)); - //G4cout << "## Number of Horizontal PMT along diameter = " << WCBarrelNumPMTHorizontal << ", diameter = "<< WCIDDiameter << ", coverage = "<< WCPMTPercentCoverage << ", PMT radius = " << WCPMTRadius << ", test = " << WCIDDiameter*sqrt(pi*WCPMTPercentCoverage)/(10.0*WCPMTRadius) << G4endl; - WCCapPMTSpacing = (pi*WCIDDiameter/WCBarrelNumPMTHorizontal); // distance between centers of top and bottom pmts - WCCapEdgeLimit = WCIDDiameter/2.0 - 5*std::max(WCPMTExposeHeight,mPMT_vessel_tot_height);//3.0*cm;//WCIDDiameter/2.0 - std::max(WCPMTRadius,mPMT_vessel_tot_height);//WCPMTRadius; - WCBlackSheetThickness = 2.0*cm; - WCAddGd = false; -} -void WCSimDetectorConstruction::SetEggShapedHyperKGeometry() -{ - WCDetectorName = "EggShapedHyperK"; - WCIDCollectionName = WCDetectorName +"-glassFaceWCPMT"; - WCODCollectionName = WCDetectorName + "-glassFaceWCPMT_OD"; - WCSimPMTObject * PMT = CreatePMTObject("PMT20inch", WCIDCollectionName); - WCSimPMTObject * outerPMT = CreatePMTObject("PMT8inch", WCODCollectionName); - WCPMTName = PMT->GetPMTName(); - innerPMT_Expose = PMT->GetExposeHeight(); - innerPMT_Radius = PMT->GetRadius(); - waterTank_TopR = 32000.*mm; - waterTank_BotR = 30000.*mm; - waterTank_Height = 48000.*mm; - waterTank_UpperA = 8000.*mm; - waterTank_LowerB = 6000.*mm; - waterTank_Length = 49500.*mm; - - innerPMT_TopR = 29095.*mm; - innerPMT_BotR = 27095.*mm; - innerPMT_TopW = 12038.*mm; - innerPMT_BotW = 11004.*mm; - innerPMT_Height = 21095.*mm; - innerPMT_Rpitch = 990.*mm; - innerPMT_Apitch = 990.*mm; - - outerPMT_Name = outerPMT->GetPMTName(); - outerPMT_Expose = outerPMT->GetExposeHeight(); - outerPMT_Radius = outerPMT->GetRadius(); - outerPMT_TopR = innerPMT_TopR + 900.*mm; - outerPMT_BotR = innerPMT_BotR + 900.*mm; - outerPMT_TopW = 12394.*mm; - outerPMT_BotW = 11319.*mm; - outerPMT_Height = innerPMT_Height + 900.*mm; - outerPMT_TopRpitch = 3. * innerPMT_Rpitch * (outerPMT_TopR/innerPMT_TopR); - outerPMT_BotRpitch = 3. * innerPMT_Rpitch * (outerPMT_BotR/innerPMT_BotR); - outerPMT_Apitch = 2. * innerPMT_Apitch; - - blackSheetThickness = 20.*mm; - - innerPMT_TopN = 0; - innerPMT_BotN = 0; - - isEggShapedHyperK = true; // Tell DetectorConstruction to build egg-shaped HK geometry - - MatchWCSimAndEggShapedHyperK(); - InitSinglePMT(); -} - -void WCSimDetectorConstruction::SetEggShapedHyperKGeometry_withHPD() -{ - WCDetectorName = "EggShapedHyperK_withHPD"; - WCIDCollectionName = WCDetectorName +"-glassFaceWCPMT"; - WCODCollectionName = WCDetectorName + "-glassFaceWCPMT_OD"; - WCSimPMTObject * PMT = CreatePMTObject("HPD20inchHQE", WCIDCollectionName); - WCSimPMTObject * outerPMT = CreatePMTObject("PMT8inch", WCODCollectionName); - WCPMTName = PMT->GetPMTName(); - innerPMT_Expose = PMT->GetExposeHeight(); - innerPMT_Radius = PMT->GetRadius(); - waterTank_TopR = 32000.*mm; - waterTank_BotR = 30000.*mm; - waterTank_Height = 48000.*mm; - waterTank_UpperA = 8000.*mm; - waterTank_LowerB = 6000.*mm; - waterTank_Length = 49500.*mm; - - - innerPMT_TopR = 29095.*mm; - innerPMT_BotR = 27095.*mm; - innerPMT_TopW = 12038.*mm; - innerPMT_BotW = 11004.*mm; - innerPMT_Height = 21095.*mm; - innerPMT_Rpitch = 990.*mm; - innerPMT_Apitch = 990.*mm; - - - outerPMT_Expose = outerPMT->GetExposeHeight(); - outerPMT_Radius = outerPMT->GetRadius(); - outerPMT_TopR = innerPMT_TopR + 900.*mm; - outerPMT_BotR = innerPMT_BotR + 900.*mm; - outerPMT_TopW = 12394.*mm; - outerPMT_BotW = 11319.*mm; - outerPMT_Height = innerPMT_Height + 900.*mm; - outerPMT_TopRpitch = 3. * innerPMT_Rpitch * (outerPMT_TopR/innerPMT_TopR); - outerPMT_BotRpitch = 3. * innerPMT_Rpitch * (outerPMT_BotR/innerPMT_BotR); - outerPMT_Apitch = 2. * innerPMT_Apitch; - - blackSheetThickness = 20.*mm; - - innerPMT_TopN = 0; - innerPMT_BotN = 0; - - isEggShapedHyperK = true; // Tell DetectorConstruction to build egg-shaped HK geometry - - MatchWCSimAndEggShapedHyperK(); - InitSinglePMT(); -} - - -/** - * Transfer egg-shaped HK variables needed elsewhere - * to their generic WC equivalents. - * This should be included in all egg-shaped HK configurations. - */ -void WCSimDetectorConstruction::MatchWCSimAndEggShapedHyperK() -{ - WCLength = waterTank_Length; - WCPosition = 0.; - WCPMTRadius = innerPMT_Radius; -} - - -void WCSimDetectorConstruction::SetNuPrismGeometry(G4String PMTType, G4double PMTCoverage, G4double detectorHeight, G4double detectorDiameter, G4double verticalPosition) -{ - WCDetectorName = "NuPRISM"; - WCIDCollectionName = WCDetectorName +"-glassFaceWCPMT"; - WCSimPMTObject * PMT = CreatePMTObject(PMTType, WCIDCollectionName); - WCPMTName = PMT->GetPMTName(); - WCPMTExposeHeight = PMT->GetExposeHeight(); - WCPMTRadius = PMT->GetRadius(); - - WCIDHeight = detectorHeight; - WCIDDiameter = detectorDiameter; - WCIDVerticalPosition = verticalPosition; - - WCBarrelPMTOffset = WCPMTRadius; - WCPMTperCellHorizontal = 1.0; - WCPMTperCellVertical = 1.0; - WCPMTPercentCoverage = PMTCoverage; - WCBarrelNumPMTHorizontal = round(WCIDDiameter*sqrt(pi*WCPMTPercentCoverage/100.0)/WCPMTRadius); - - WCBarrelNRings = round(((WCBarrelNumPMTHorizontal*((WCIDHeight-2*WCBarrelPMTOffset)/(pi*WCIDDiameter)))/WCPMTperCellVertical)); - WCCapPMTSpacing = (pi*WCIDDiameter/WCBarrelNumPMTHorizontal); - WCCapEdgeLimit = WCIDDiameter/2.0 - WCPMTRadius; - WCBlackSheetThickness = 2.0*cm; - WCAddGd = false; - - InitSinglePMT(); -} - -void WCSimDetectorConstruction::SetDefaultNuPrismGeometry() -{ - SetNuPrismGeometry("PMT8inch", 40.0, 10*m, 8*m, 0*m); -} - -// NuPRISM with mPMTs -// These are defaults that can be altered through the macros -void WCSimDetectorConstruction::SetNuPrism_mPMTGeometry() -{ - WCDetectorName = "NuPRISM_mPMT"; - WCIDCollectionName = WCDetectorName +"-glassFaceWCPMT"; - mPMT_ID_PMT = "PMT3inchR12199_02"; //can be changed in macro through mPMT settings. - mPMT_OD_PMT = "PMT3inchR12199_02"; - WCSimPMTObject * PMT = CreatePMTObject(mPMT_ID_PMT, WCIDCollectionName); - WCPMTName = PMT->GetPMTName(); - WCPMTExposeHeight = PMT->GetExposeHeight(); - WCPMTRadius = PMT->GetRadius(); - - //mPMT params go first because detector depends on it: - mPMT_vessel_cyl_height = 38.*CLHEP::mm; //option A, option B would be 277 mm - mPMT_vessel_radius_curv = 342.*CLHEP::mm; //needs to include the vessel thickness, as we construct from outside inwards. - mPMT_vessel_radius = 254.*CLHEP::mm; - dist_pmt_vessel = 2*CLHEP::mm; - orientation = PERPENDICULAR; - mPMT_outer_material = "G4_PLEXIGLASS"; - mPMT_inner_material = "Air"; // TODO: real air, hence update abs_length - mPMT_material_pmtAssembly = "SilGel"; - mPMT_outer_material_d = 10*CLHEP::mm; - - // Radius of cone at z=reflectorHeight - //id_reflector_height = 0.0*CLHEP::mm; // for a radius of 7.25mm, for hex: 5.4mm (radius of 6mm) - //B.Q - //id_reflector_height = mPMT_ID_reflector_height; - //id_reflector_angle = mPMT_ID_reflector_angle; - //id_reflector_height = 8.*CLHEP::mm; // for a radius of 7.25mm, for hex: 5.4mm (radius of 6mm) - id_reflector_height = 6.53*CLHEP::mm; // for a radius of 7.25mm, for hex: 5.4mm (radius of 6mm) - id_reflector_z_offset = 4.8*CLHEP::mm; //from KM3Net CAD drawings - id_reflector_angle = 48.*CLHEP::deg; // Need to be remeasured for different PMT curvature - //id_reflector_height = 3.*CLHEP::mm; // for a radius of 7.25mm, for hex: 5.4mm (radius of 6mm) - //id_reflector_angle = 0.*CLHEP::deg; // Need to be remeasured for different PMT curvature - //End B.Q - - mPMT_pmt_openingAngle = 8.7*CLHEP::deg; // for hex: 8.5deg - G4double mPMT_vessel_tot_height = mPMT_vessel_radius + mPMT_vessel_cyl_height; - - // parameters related to filling the ID mPMT - nID_PMTs = 19; - config_file = wcsimdir_path+"/mPMT-configfiles/mPMTconfig_19_nuPrism_3ring.txt"; // for smaller reflector, use: mPMTconfig_19_nuPrism.txt (hex) - - WCIDHeight = 10.42*CLHEP::m; - WCIDDiameter = 7.42*CLHEP::m; - WCIDVerticalPosition = 0.; - - WCBarrelPMTOffset = mPMT_vessel_tot_height; - WCPMTperCellHorizontal = 2.0; // 2 per phi - WCPMTperCellVertical = 1.0; - - // Numbers below are based on R.Henderson's 832 module tank design - WCBarrelNumPMTHorizontal = 40; - WCBarrelNRings = 16; - WCCapPMTSpacing = (pi*WCIDDiameter/WCBarrelNumPMTHorizontal); - // This is tuned to give a 6-5-5-4-3-1 config in one quarter of the cap - // And results in 832 mPMT modules as currently in Robert's Design - WCCapEdgeLimit = 3.3*m; - WCBlackSheetThickness = 2.0*cm; // deprecate soon. - WCAddGd = false; -} - -// Short version of NuPRISM with mPMTs: 6 m tall ID -// These are defaults that can be altered through the macros -void WCSimDetectorConstruction::SetNuPrismShort_mPMTGeometry() -{ - WCDetectorName = "NuPRISMShort_mPMT"; - WCIDCollectionName = WCDetectorName +"-glassFaceWCPMT"; - mPMT_ID_PMT = "PMT3inchR12199_02"; //can be changed in macro through mPMT settings. - mPMT_OD_PMT = "PMT3inchR12199_02"; - WCSimPMTObject * PMT = CreatePMTObject(mPMT_ID_PMT, WCIDCollectionName); - WCPMTName = PMT->GetPMTName(); - WCPMTExposeHeight = PMT->GetExposeHeight(); - WCPMTRadius = PMT->GetRadius(); - - //mPMT params go first because detector depends on it: - vessel_cyl_height = 38.*CLHEP::mm; //option A, option B would be 277 mm - vessel_radius_curv = 342.*CLHEP::mm; //needs to include the vessel thickness, as we construct from outside inwards. - vessel_radius = 254.*CLHEP::mm; - dist_pmt_vessel = 2*CLHEP::mm; - orientation = PERPENDICULAR; - mPMT_outer_material = "G4_PLEXIGLASS"; - mPMT_inner_material = "Air"; // TODO: real air, hence update abs_length - mPMT_material_pmtAssembly = "SilGel"; - mPMT_outer_material_d = 10*CLHEP::mm; - - // Radius of cone at z=reflectorHeight - id_reflector_height = 6.53*CLHEP::mm; // for a radius of 7.25mm, for hex: 5.4mm (radius of 6mm) - id_reflector_z_offset = 4.8*CLHEP::mm; //from KM3Net CAD drawings - id_reflector_angle = 48.*CLHEP::deg; // Need to be remeasured for different PMT curvature - mPMT_pmt_openingAngle = 8.7*CLHEP::deg; // for hex: 8.5deg - G4double vessel_tot_height = vessel_radius + vessel_cyl_height; - - // parameters related to filling the ID mPMT - nID_PMTs = 19; - config_file = wcsimdir_path+"/mPMT-configfiles/mPMTconfig_19_nuPrism_3ring.txt"; // for smaller reflector, use: mPMTconfig_19_nuPrism.txt (hex) - - WCIDHeight = 6.0*CLHEP::m; - WCIDDiameter = 8.0*CLHEP::m; - WCIDVerticalPosition = 0.; - - WCBarrelPMTOffset = vessel_tot_height; - WCPMTperCellHorizontal = 2.0; // 2 per phi - WCPMTperCellVertical = 1.0; - - // Numbers below are based on R.Henderson's 832 module tank design - WCBarrelNumPMTHorizontal = 40; - WCBarrelNRings = 9; // Scaled from 10.42 m tall detector. - WCCapPMTSpacing = (pi*WCIDDiameter/WCBarrelNumPMTHorizontal); - // This is tuned to give a 6-5-5-4-3-1 config in one quarter of the cap - // And results in 832 mPMT modules as currently in Robert's Design - WCCapEdgeLimit = 3.3*m; - WCBlackSheetThickness = 2.0*cm; // deprecate soon. - WCAddGd = false; -} - -void WCSimDetectorConstruction::SetTestSinglemPMTGeometry() -{ - WCDetectorName = "TestSinglemPMT"; - WCIDCollectionName = WCDetectorName +"-glassFaceWCPMT"; - - mPMT_ID_PMT = "PMT3inchR12199_02"; //"BoxandLine20inchHQE";// (combine with nPMT=1); - mPMT_OD_PMT = "PMT8inch"; // Only used for the unique string name of mPMT for now! - - WCSimPMTObject * PMT = CreatePMTObject(mPMT_ID_PMT, WCIDCollectionName); - WCPMTName = PMT->GetPMTName(); - WCPMTExposeHeight = PMT->GetExposeHeight(); - WCPMTRadius = PMT->GetRadius(); - - //mPMT params - vessel_cyl_height = 38.*CLHEP::mm; - vessel_radius_curv = 300.*CLHEP::mm; - vessel_radius = 254.*CLHEP::mm; - dist_pmt_vessel = 2*CLHEP::mm; - orientation = PERPENDICULAR; - mPMT_outer_material = "G4_PLEXIGLASS"; - mPMT_inner_material = "SilGel"; - mPMT_material_pmtAssembly = "SilGel"; - mPMT_outer_material_d = 10.*CLHEP::mm; - // Radius of cone at z=reflectorHeight - id_reflector_height = 10*CLHEP::mm; //10. > previous 7mm (deprecated number from JINST) - id_reflector_z_offset = 4.8*CLHEP::mm; //from KM3Net CAD drawings - id_reflector_angle = 48*CLHEP::pi/180.*CLHEP::rad; // Based on KM3Net reflector specs - mPMT_pmt_openingAngle = 8.7*CLHEP::deg; - - // BarrelPMTOffset/WCCapEdgeLimit needs PMT/mPMT height - G4double vessel_tot_height = vessel_radius + vessel_cyl_height; - // parameters related to filling the ID mPMT - nID_PMTs = 33; - config_file = wcsimdir_path+"/mPMT-configfiles/mPMTconfig_33_13_1.txt"; - - WCIDDiameter = 10.0*m; - WCIDHeight = 30.0*m; - WCBarrelPMTOffset = vessel_tot_height; - WCBarrelNumPMTHorizontal = 3; - WCBarrelNRings = 3; - WCPMTperCellHorizontal = 1; - WCPMTperCellVertical = 1; - WCPMTPercentCoverage = 10.; - WCCapEdgeLimit = WCIDDiameter/2.0 - vessel_tot_height; - WCCapPMTSpacing = WCIDDiameter*2.0; - WCBlackSheetThickness = 2.0*cm; - WCAddGd = false; -} - -// Note: using vessel_radius (mPMT radius) instead of PMT radius for detector construction. Important! -void WCSimDetectorConstruction::Cylinder_60x74_3inchmPMT_14perCent() -{ - WCDetectorName = "Cylinder_60x74_3inchmPMT_14perCent"; - WCIDCollectionName = WCDetectorName +"-glassFaceWCPMT"; - mPMT_ID_PMT = "PMT3inchR12199_02"; - mPMT_OD_PMT = "PMT8inch"; - WCSimPMTObject * PMT = CreatePMTObject(mPMT_ID_PMT, WCIDCollectionName); - WCPMTName = PMT->GetPMTName(); - WCPMTExposeHeight = PMT->GetExposeHeight(); - WCPMTRadius = 0.254*m;//outer_module_radius;//PMT-T>GetRadius(); //Actually, this name is very misleading, because it should be moduleRadius (eg. PMT + acrylic), this is used in two places in WCConstructCylinder - - - - //mPMT params go first because detector depends on it: - vessel_cyl_height = 0.*CLHEP::mm; // the 50mm should exist only for OD and extends behind the iD wall - vessel_radius_curv = 270.*CLHEP::mm; - vessel_radius = 270.*CLHEP::mm; - dist_pmt_vessel = 5*CLHEP::mm; - orientation = PERPENDICULAR; - mPMT_outer_material = "G4_PLEXIGLASS"; - mPMT_inner_material = "SilGel"; - mPMT_outer_material_d = 0.03*2* vessel_radius *CLHEP::mm; //using NEMO article safety margin of 0.03 for t/D - // Radius of cone at z=reflectorHeight - id_reflector_height = 7.5*CLHEP::mm; //7.5mm from KM3Net JINST - id_reflector_z_offset = 1.1*CLHEP::mm; //from KM3Net CAD drawings - id_reflector_angle = CLHEP::pi/4*CLHEP::rad; // Based on KM3Net JINST: 45 deg wrt normal, so 7.5mm xtra - G4double vessel_tot_height = vessel_radius + vessel_cyl_height; - - // parameters related to filling the ID mPMT - nID_PMTs = 33; - config_file = wcsimdir_path+"/mPMT-configfiles/mPMTconfig_33_13_1.txt"; - - // Note: in principal WCPMTRadius and WCCapEdgeLimit could also use outer_module_radius - // but then total n mPMT modules change slightly. This configuration wants to have NO overlaps - // and use the same number of mPMT modules as 20in PMTs, so use same settings. - // Most important one is WCBarrelNumPMTHorizontal - // WCBarrelPMTOffset does not change total No. of modules, so use actual outer_module_radius. - WCIDDiameter = 74.0*m; - WCIDHeight = 60.0*m; - WCBarrelPMTOffset = vessel_tot_height; //mPMT cylinder Radius //WCPMTRadius; //offset from vertical - WCPMTperCellHorizontal= 4; - WCPMTperCellVertical = 3; - WCPMTPercentCoverage = 13.51; - WCBarrelNumPMTHorizontal = round(WCIDDiameter*sqrt(pi*WCPMTPercentCoverage)/(10.0*0.254*m)); //Used same radius as 20in to have same granularity in mPMTs (28% difference otherwise - WCBarrelNRings = round(((WCBarrelNumPMTHorizontal*((WCIDHeight-2*WCBarrelPMTOffset)/(pi*WCIDDiameter))) - /WCPMTperCellVertical)); - WCCapPMTSpacing = (pi*WCIDDiameter/WCBarrelNumPMTHorizontal); // distance between centers of top and bottom pmts - WCCapEdgeLimit = WCIDDiameter/2.0 - 0.254*m;//outer_module_radius;//WCPMTRadius; - WCBlackSheetThickness = 2.0*cm; - WCAddGd = false; - - -} - -// Note: using vessel_radius (mPMT radius) instead of PMT radius for detector construction. Important! -void WCSimDetectorConstruction::Cylinder_60x74_3inchmPMT_40perCent() -{ - WCDetectorName = "Cylinder_60x74_3inchmPMT_40perCent"; - WCIDCollectionName = WCDetectorName +"-glassFaceWCPMT"; - mPMT_ID_PMT = "PMT3inchR12199_02"; - mPMT_OD_PMT = "PMT8inch"; - WCSimPMTObject * PMT = CreatePMTObject(mPMT_ID_PMT, WCIDCollectionName); - WCPMTName = PMT->GetPMTName(); - WCPMTExposeHeight = PMT->GetExposeHeight(); - WCPMTRadius = 0.254*m; - - //mPMT params: - vessel_cyl_height = 0.*CLHEP::mm; // the 50mm should exist only for OD and extends behind the iD wall - vessel_radius_curv = 280.*CLHEP::mm; - vessel_radius = 280.*CLHEP::mm; - dist_pmt_vessel = 5*CLHEP::mm; - orientation = PERPENDICULAR; - mPMT_outer_material = "G4_PLEXIGLASS"; - mPMT_inner_material = "SilGel"; - mPMT_outer_material_d = 0.03*2*vessel_radius*CLHEP::mm; //using NEMO article safety margin of 0.03 for t/D - // Radius of cone at z=reflectorHeight - id_reflector_height = 7.5*CLHEP::mm; //7.5mm from KM3Net JINST - id_reflector_z_offset = 1.1*CLHEP::mm; //from KM3Net CAD drawings - id_reflector_angle = CLHEP::pi/4*CLHEP::rad; // Based on KM3Net JINST: 45 deg wrt normal, so 7.5mm xtra - G4double vessel_tot_height = vessel_radius + vessel_cyl_height; - - // parameters related to filling the ID mPMT - nID_PMTs = 34; - config_file = wcsimdir_path+"/mPMT-configfiles/mPMTconfig_34_22.5_2.txt"; - - - WCIDDiameter = 74.0*m; - WCIDHeight = 60.0*m; - WCBarrelPMTOffset = vessel_tot_height; //mPMT cylinder Radius //WCPMTRadius; //offset from vertical - WCPMTperCellHorizontal= 4; - WCPMTperCellVertical = 3; - WCPMTPercentCoverage = 40.0; - WCBarrelNumPMTHorizontal = round(WCIDDiameter*sqrt(pi*WCPMTPercentCoverage)/(10.0*0.254*m));//WCPMTRadius)); - WCBarrelNRings = round(((WCBarrelNumPMTHorizontal*((WCIDHeight-2*WCBarrelPMTOffset)/(pi*WCIDDiameter))) - /WCPMTperCellVertical)); - WCCapPMTSpacing = (pi*WCIDDiameter/WCBarrelNumPMTHorizontal); // distance between centers of top and bottom pmts - WCCapEdgeLimit = WCIDDiameter/2.0 - 0.254*m;//WCPMTRadius; - WCBlackSheetThickness = 2.0*cm; - WCAddGd = false; - - -} - -// Uniform distribution of 3" PMTs -void WCSimDetectorConstruction::Cylinder_60x74_3inch_14perCent() -{ - WCDetectorName = "Cylinder_60x74_3inch_14perCent"; - WCIDCollectionName = WCDetectorName +"-glassFaceWCPMT"; - WCSimPMTObject * PMT = CreatePMTObject("PMT3inchR12199_02", WCIDCollectionName); - WCPMTName = PMT->GetPMTName(); - WCPMTExposeHeight = PMT->GetExposeHeight(); - WCPMTRadius = .04*m; //PMT->GetRadius(); - WCIDDiameter = 74.0*m; - WCIDHeight = 60.0*m; - WCBarrelPMTOffset = WCPMTRadius; //offset from vertical - WCPMTperCellHorizontal= 4; - WCPMTperCellVertical = 3; - WCPMTPercentCoverage = 13.51; - WCBarrelNumPMTHorizontal = round(WCIDDiameter*sqrt(pi*WCPMTPercentCoverage)/(10.0*WCPMTRadius)); - WCBarrelNRings = round(((WCBarrelNumPMTHorizontal*((WCIDHeight-2*WCBarrelPMTOffset)/(pi*WCIDDiameter))) - /WCPMTperCellVertical)); - WCCapPMTSpacing = (pi*WCIDDiameter/WCBarrelNumPMTHorizontal); // distance between centers of top and bottom pmts - WCCapEdgeLimit = WCIDDiameter/2.0 - WCPMTRadius; - WCBlackSheetThickness = 2.0*cm; - WCAddGd = false; - - InitSinglePMT(); -} - -void WCSimDetectorConstruction::Cylinder_60x74_3inch_40perCent() -{ - WCDetectorName = "Cylinder_60x74_3inch_40perCent"; - WCIDCollectionName = WCDetectorName +"-glassFaceWCPMT"; - WCSimPMTObject * PMT = CreatePMTObject("PMT3inchR12199_02", WCIDCollectionName); - WCPMTName = PMT->GetPMTName(); - WCPMTExposeHeight = PMT->GetExposeHeight(); - WCPMTRadius = .04*m; //PMT->GetRadius(); - WCIDDiameter = 74.0*m; - WCIDHeight = 60.0*m; - WCBarrelPMTOffset = WCPMTRadius; //offset from vertical - WCPMTperCellHorizontal= 4; - WCPMTperCellVertical = 3; - WCPMTPercentCoverage = 40.; - WCBarrelNumPMTHorizontal = round(WCIDDiameter*sqrt(pi*WCPMTPercentCoverage)/(10.0*WCPMTRadius)); - WCBarrelNRings = round(((WCBarrelNumPMTHorizontal*((WCIDHeight-2*WCBarrelPMTOffset)/(pi*WCIDDiameter))) - /WCPMTperCellVertical)); - WCCapPMTSpacing = (pi*WCIDDiameter/WCBarrelNumPMTHorizontal); // distance between centers of top and bottom pmts - WCCapEdgeLimit = WCIDDiameter/2.0 - WCPMTRadius; - WCBlackSheetThickness = 2.0*cm; - WCAddGd = false; - - InitSinglePMT(); -} - - - -void WCSimDetectorConstruction::InitSinglePMT(){ - - vessel_cyl_height = 0.*mm; - vessel_radius_curv = 0.1*mm; - vessel_radius = 0.1*mm; - dist_pmt_vessel = 0.*mm; - orientation = PERPENDICULAR; - mPMT_ID_PMT = ""; - mPMT_OD_PMT = ""; - mPMT_outer_material = ""; - mPMT_inner_material = ""; - mPMT_outer_material_d = 0.*CLHEP::mm; - id_reflector_height = 0.*CLHEP::mm; - id_reflector_z_offset = 0.*CLHEP::mm; - id_reflector_angle = 0.*CLHEP::rad; - nID_PMTs = 1; - config_file = ""; - -} diff --git a/libWCSIM/src/WCSimDetectorConstruction.cc b/libWCSIM/src/WCSimDetectorConstruction.cc deleted file mode 100644 index 55702dd..0000000 --- a/libWCSIM/src/WCSimDetectorConstruction.cc +++ /dev/null @@ -1,435 +0,0 @@ -#include "WCSimDetectorConstruction.hh" -#include "WCSimDetectorMessenger.hh" -#include "WCSimTuningParameters.hh" - -#include "G4Element.hh" -#include "G4Box.hh" -#include "G4LogicalVolume.hh" -#include "G4VPhysicalVolume.hh" -#include "G4PVPlacement.hh" -#include "G4ThreeVector.hh" -#include "globals.hh" -#include "G4VisAttributes.hh" - -#include "G4RunManager.hh" -#include "G4PhysicalVolumeStore.hh" -#include "G4LogicalVolumeStore.hh" -#include "G4SolidStore.hh" - -#include "G4PhysicalConstants.hh" -#include "G4SystemOfUnits.hh" - -std::map WCSimDetectorConstruction::tubeIDMap; -std::map > WCSimDetectorConstruction::mPMTIDMap; -std::map WCSimDetectorConstruction::tubeIDMap2; -std::map > WCSimDetectorConstruction::mPMTIDMap2; -//std::map WCSimDetectorConstruction::tubeCylLocation; -//hash_map > -//WCSimDetectorConstruction::tubeLocationMap_old; //deprecated !! - -// std::hash is default hash function actually (http://en.cppreference.com/w/cpp/utility/hash) -// with operator() already properly defined. -std::unordered_map > -WCSimDetectorConstruction::tubeLocationMap; -std::unordered_map > -WCSimDetectorConstruction::tubeLocationMap2; - -WCSimDetectorConstruction::WCSimDetectorConstruction(G4int DetConfig,WCSimTuningParameters* WCSimTuningPars):WCSimTuningParams(WCSimTuningPars) -{ - - // Decide if (only for the case of !1kT detector) should be upright or horizontal - isUpright = false; - isEggShapedHyperK = false; - isNuPrism = false; - - debugMode = false; - - myConfiguration = DetConfig; - - //----------------------------------------------------- - // Create Materials - //----------------------------------------------------- - - ConstructMaterials(); - - //----------------------------------------------------- - // Initialize things related to the tubeID - //----------------------------------------------------- - - WCSimDetectorConstruction::tubeIDMap.clear(); - WCSimDetectorConstruction::mPMTIDMap.clear(); - WCSimDetectorConstruction::tubeLocationMap.clear(); - - WCSimDetectorConstruction::tubeIDMap2.clear(); - WCSimDetectorConstruction::mPMTIDMap2.clear(); - WCSimDetectorConstruction::tubeLocationMap2.clear(); - - WCSimDetectorConstruction::PMTLogicalVolumes.clear(); - - totalNumPMTs = 0; - totalNumPMTs2 = 0; - WCPMTExposeHeight= 0.; - WCPMTExposeHeight2= 0.; - - //--------------------------------------------------- - // Need to define defaults for all mPMT parameters - // defaults are chosen that they are valid for a SK detector - //-------------------------------------------------- - vessel_cyl_height = 0.1*mm; // LATER: when tested, default WITH PMT cover! - vessel_radius_curv = 0.1*mm; - vessel_radius = 0.1*mm; - - mPMT_vessel_cyl_height = 0.1*mm; // LATER: when tested, default WITH PMT cover! - mPMT_vessel_radius_curv = 0.1*mm; - mPMT_vessel_radius = 0.1*mm; - dist_pmt_vessel = 0.*mm; - orientation = PERPENDICULAR; - mPMT_ID_PMT = "PMT3inchR12199_02"; - mPMT_OD_PMT = ""; - mPMT_outer_material = "Water"; - mPMT_inner_material = ""; - mPMT_outer_material_d = 0.*CLHEP::mm; - // Radius of cone at z=reflectorHeight - id_reflector_height = 0.*CLHEP::mm; - id_reflector_z_offset = 0.*CLHEP::mm; - id_reflector_angle = 0.*CLHEP::deg; - // parameters related to filling the ID mPMT - nID_PMTs = 1; //per mPMT - nID_PMTs2 = 1; //per mPMT - config_file = ""; - fix_nModules = false; - mPMT_material_pmtAssembly = "Water"; - mPMT_pmt_openingAngle = 0.*CLHEP::deg; - - - - //SetTestSinglemPMTGeometry(); - SetSuperKGeometry(); - //SetHyperKGeometry(); - - //----------------------------------------------------- - // Set whether or not Pi0-specific info is saved - //----------------------------------------------------- - - SavePi0Info(false); - - //----------------------------------------------------- - // Set whether or not neutron capture info is saved - //----------------------------------------------------- - - SaveCaptureInfo(false); - - //----------------------------------------------------- - // Set the default method for implementing the PMT QE - //----------------------------------------------------- - SetPMT_QE_Method(1); - - //default is to use collection efficiency - SetPMT_Coll_Eff(1); - // set default visualizer to OGLSX - SetVis_Choice("OGLSX"); - - - //----------------------------------------------------- - // Make the detector messenger to allow changing geometry - //----------------------------------------------------- - - messenger = new WCSimDetectorMessenger(this); - - - // Get WCSIMDIR - wcsimdir_path = std::getenv("WCSIMDIR"); -} - -#include "G4GeometryManager.hh" -#include "G4LogicalBorderSurface.hh" -#include "G4LogicalSkinSurface.hh" - -void WCSimDetectorConstruction::UpdateGeometry() -{ - - - G4bool geomChanged = true; - G4RunManager::GetRunManager()->DefineWorldVolume(Construct(), geomChanged); - // ToDo: need some error catching here for NULL Construct() cases - -} - - - -WCSimDetectorConstruction::~WCSimDetectorConstruction(){ - for (unsigned int i=0;iGet("Settings"); -// if (!fSettingsTree){ -// G4ThreeVector trans; -// return trans; -// } -// -// float NuBeamAng; -// float NuIdfdPos[3]; -// for(int i = 0; i < 3; ++i) NuIdfdPos[i] = 0; -// fSettingsTree->SetBranchAddress("NuIdfdPos",NuIdfdPos); -// fSettingsTree->SetBranchAddress("NuBeamAng",&NuBeamAng); -// -// fSettingsTree->GetEntry(0); -// -// G4ThreeVector trans(0, (NuIdfdPos[1] + TMath::Tan(NuBeamAng)*600.0), NuIdfdPos[2] + 600.0); -// -// inFile->Close(); -// fInputSettingsFilename = ""; -// fSettingsTree = NULL; -// -// return trans; -// -//} - -G4VPhysicalVolume* WCSimDetectorConstruction::Construct() -{ - G4GeometryManager::GetInstance()->OpenGeometry(); - - G4PhysicalVolumeStore::GetInstance()->Clean(); - G4LogicalVolumeStore::GetInstance()->Clean(); - G4SolidStore::GetInstance()->Clean(); - G4LogicalBorderSurface::CleanSurfaceTable(); - G4LogicalSkinSurface::CleanSurfaceTable(); - WCSimDetectorConstruction::PMTLogicalVolumes.clear(); - //TF: for new mPMT (or make this into a function?) - vNiC.clear(); - vAlpha.clear(); - vCircle.clear(); - vAzimOffset.clear(); - - totalNumPMTs = 0; - totalNumPMTs2 = 0; - - //----------------------------------------------------- - // Create Logical Volumes - //----------------------------------------------------- - - // First create the logical volumes of the sub detectors. After they are - // created their size will be used to make the world volume. - // Note the order is important because they rearrange themselves depending - // on their size and detector ordering. - - G4LogicalVolume* logicWCBox; - - // Select between HyperK and cylinder - if (isEggShapedHyperK) logicWCBox = ConstructEggShapedHyperK(); - else logicWCBox = ConstructCylinder(); - - if(!logicWCBox){ - G4cerr << "Something went wrong in ConstructCylinder" << G4endl; - return NULL; - } - G4cout << " WCLength = " << WCLength/m << " m"<< G4endl; - - //------------------------------- - - // Now make the detector Hall. The lengths of the subdectors - // were set above. - - G4ThreeVector position(0,0,0);// = GetTranslationFromSettings(); - - if(isNuPrism) position.setY(WCIDVerticalPosition); - - std::cout << "position Y = " << position.y() << std::endl; - - - G4double expHallLength = 3.*WCLength; //jl145 - extra space to simulate cosmic muons more easily - - G4cout << " expHallLength = " << expHallLength / m << G4endl; - G4double expHallHalfLength = 0.5*expHallLength; - - G4Box* solidExpHall = new G4Box("expHall", - expHallHalfLength + fabs(position.x()), - expHallHalfLength + fabs(position.y()), - expHallHalfLength + fabs(position.z())); - - G4LogicalVolume* logicExpHall = - new G4LogicalVolume(solidExpHall, - G4Material::GetMaterial("Vacuum"), - "expHall", - 0,0,0); - - // Now set the visualization attributes of the logical volumes. - - // logicWCBox->SetVisAttributes(G4VisAttributes::Invisible); - logicExpHall->SetVisAttributes(G4VisAttributes::Invisible); - - //----------------------------------------------------- - // Create and place the physical Volumes - //----------------------------------------------------- - - // Experimental Hall - G4VPhysicalVolume* physiExpHall = - new G4PVPlacement(0,G4ThreeVector(), - logicExpHall, - "expHall", - 0,false,0,true); - - // Water Cherenkov Detector (WC) mother volume - // WC Box, nice to turn on for x and y views to provide a frame: - - G4RotationMatrix* rotationMatrix = new G4RotationMatrix; - G4ThreeVector genPosition = G4ThreeVector(0., 0., WCPosition); - - if(isNuPrism){ - rotationMatrix->rotateX(90.*deg); - rotationMatrix->rotateY(0.*deg); - rotationMatrix->rotateZ(0.*deg); - genPosition.setX(position.x()); - genPosition.setY(position.y()); - genPosition.setZ(position.z()); - } - - G4Transform3D transform(*rotationMatrix, genPosition); - - G4VPhysicalVolume* physiWCBox = - new G4PVPlacement(transform, - logicWCBox, - "WCBox", - logicExpHall, - false, - 0); - - // Reset the tubeID and tubeLocation maps before refilling them - tubeIDMap.clear(); - mPMTIDMap.clear(); - tubeLocationMap.clear(); - - tubeIDMap2.clear(); - mPMTIDMap2.clear(); - tubeLocationMap2.clear(); - - - // Traverse and print the geometry Tree - - // TraverseReplicas(physiWCBox, 0, G4Transform3D(), - // &WCSimDetectorConstruction::PrintGeometryTree) ; - - TraverseReplicas(physiWCBox, 0, G4Transform3D(), - &WCSimDetectorConstruction::DescribeAndRegisterPMT) ; - - - TraverseReplicas(physiWCBox, 0, G4Transform3D(), - &WCSimDetectorConstruction::GetWCGeom) ; - - DumpGeometryTableToFile(); - - - - - // Return the pointer to the physical experimental hall - return physiExpHall; -} - -WCSimPMTObject *WCSimDetectorConstruction::CreatePMTObject(G4String PMTType, G4String CollectionName) -{ - if (PMTType == "PMT20inch"){ - WCSimPMTObject* PMT = new PMT20inch; - WCSimDetectorConstruction::SetPMTPointer(PMT, CollectionName); - return PMT; - } - else if (PMTType == "PMT8inch"){ - WCSimPMTObject* PMT = new PMT8inch; - WCSimDetectorConstruction::SetPMTPointer(PMT, CollectionName); - return PMT; - } - else if (PMTType == "PMT5inch"){ - WCSimPMTObject* PMT = new PMT5inch; - WCSimDetectorConstruction::SetPMTPointer(PMT, CollectionName); - return PMT; - } - else if (PMTType == "PMT3inch"){ - WCSimPMTObject* PMT = new PMT3inch; - WCSimDetectorConstruction::SetPMTPointer(PMT, CollectionName); - return PMT; - } - else if (PMTType == "PMT3inchGT"){ - WCSimPMTObject* PMT = new PMT3inchGT; - WCSimDetectorConstruction::SetPMTPointer(PMT, CollectionName); - return PMT; - } - else if (PMTType == "PMT3inchR12199_02"){ - WCSimPMTObject* PMT = new PMT3inchR12199_02; - WCSimDetectorConstruction::SetPMTPointer(PMT, CollectionName); - return PMT; - } - else if (PMTType == "PMT3inchR14374"){ - WCSimPMTObject* PMT = new PMT3inchR14374; - WCSimDetectorConstruction::SetPMTPointer(PMT, CollectionName); - return PMT; - } - else if (PMTType == "PMT10inch"){ - WCSimPMTObject* PMT = new PMT10inch; - WCSimDetectorConstruction::SetPMTPointer(PMT, CollectionName); - return PMT; - } - else if (PMTType == "PMT10inchHQE"){ - WCSimPMTObject* PMT = new PMT10inchHQE; - WCSimDetectorConstruction::SetPMTPointer(PMT, CollectionName); - return PMT; - } - else if (PMTType == "PMT12inchHQE"){ - WCSimPMTObject* PMT = new PMT12inchHQE; - WCSimDetectorConstruction::SetPMTPointer(PMT, CollectionName); - return PMT; - } - else if (PMTType == "HPD20inchHQE"){ - WCSimPMTObject* PMT = new HPD20inchHQE; - WCSimDetectorConstruction::SetPMTPointer(PMT, CollectionName); - return PMT; - } - else if (PMTType == "HPD12inchHQE"){ - WCSimPMTObject* PMT = new HPD12inchHQE; - WCSimDetectorConstruction::SetPMTPointer(PMT, CollectionName); - return PMT; - } - else if (PMTType == "BoxandLine20inchHQE"){ - WCSimPMTObject* PMT = new BoxandLine20inchHQE; - WCSimDetectorConstruction::SetPMTPointer(PMT, CollectionName); - return PMT; - } - else if (PMTType == "BoxandLine12inchHQE"){ - WCSimPMTObject* PMT = new BoxandLine12inchHQE; - WCSimDetectorConstruction::SetPMTPointer(PMT, CollectionName); - return PMT; - } - else if (PMTType == "PMT4inchR12199_02"){ - WCSimPMTObject* PMT = new PMT4inchR12199_02; - WCSimDetectorConstruction::SetPMTPointer(PMT, CollectionName); - return PMT; - } - else if (PMTType == "PMT5inchR12199_02"){ - WCSimPMTObject* PMT = new PMT5inchR12199_02; - WCSimDetectorConstruction::SetPMTPointer(PMT, CollectionName); - return PMT; - } - - else { G4cout << PMTType << " is not a recognized PMT Type. Exiting WCSim." << G4endl; exit(1);} -} - -void WCSimDetectorConstruction::SaveOptionsToOutput(WCSimRootOptions * wcopt) -{ - wcopt->SetDetectorName(WCDetectorName); - wcopt->SetSavePi0(pi0Info_isSaved); - wcopt->SetPMTQEMethod(PMT_QE_Method); - wcopt->SetPMTCollEff(PMT_Coll_Eff); -} diff --git a/libWCSIM/src/WCSimDetectorMessenger.cc b/libWCSIM/src/WCSimDetectorMessenger.cc deleted file mode 100644 index c4fbbb3..0000000 --- a/libWCSIM/src/WCSimDetectorMessenger.cc +++ /dev/null @@ -1,701 +0,0 @@ -#include "WCSimDetectorMessenger.hh" - -#include "WCSimDetectorConstruction.hh" -#include "G4UIdirectory.hh" -#include "G4UIcommand.hh" -#include "G4UIparameter.hh" - -WCSimDetectorMessenger::WCSimDetectorMessenger(WCSimDetectorConstruction* WCSimDet) -:WCSimDetector(WCSimDet) -{ - WCSimDir = new G4UIdirectory("/WCSim/"); - WCSimDir->SetGuidance("Commands to change the geometry of the simulation"); - - - PMTConfig = new G4UIcmdWithAString("/WCSim/WCgeom",this); - PMTConfig->SetGuidance("Set the geometry configuration for the WC."); - PMTConfig->SetGuidance("Available options are:\n" - "SuperK\n" - "SuperK_20inchPMT_20perCent\n" - "SuperK_20inchBandL_20perCent\n" - "SuperK_12inchBandL_15perCent\n" - "SuperK_20inchBandL_14perCent\n" - "Cylinder_60x74_20inchBandL_14perCent\n" - "Cylinder_60x74_20inchBandL_40perCent\n" - "Cylinder_12inchHPD_15perCent\n" - "HyperK\n" - "HyperK_3inch\n" - "HyperK_8inch\n" - "HyperK_10inch\n" - "HyperK_SKPMT\n" - "HyperK_mPMT\n" - "HyperK_HybridmPMT\n" - "HyperK_HybridmPMT10PC\n" - "HyperK_HybridFake\n" - "EggShapedHyperK\n" - "EggShapedHyperK_withHPD\n" - "nuPRISM\n" - "nuPRISM_mPMT\n" - "nuPRISMShort_mPMT\n" - "Cylinder_60x74_3inchmPMT_14perCent\n" - "Cylinder_60x74_3inchmPMT_40perCent\n" - "Cylinder_60x74_3inch_14perCent\n" - "Cylinder_60x74_3inch_40perCent\n" - "TestSinglemPMT\n" - ); - PMTConfig->SetParameterName("PMTConfig", false); - PMTConfig->SetCandidates("SuperK " - "SuperK_20inchPMT_20perCent " - "SuperK_20inchBandL_20perCent " - "SuperK_12inchBandL_15perCent " - "SuperK_20inchBandL_14perCent " - "Cylinder_60x74_20inchBandL_14perCent\n" - "Cylinder_60x74_20inchBandL_40perCent\n" - "Cylinder_12inchHPD_15perCent " - "HyperK " - "HyperK_3inch " - "HyperK_8inch " - "HyperK_10inch " - "HyperK_SKPMT " - "HyperK_mPMT " - "HyperK_HybridmPMT " - "HyperK_HybridmPMT10PC " - "HyperK_HybridFake " - "EggShapedHyperK " - "EggShapedHyperK_withHPD " - "nuPRISM " - "nuPRISM_mPMT " - "nuPRISMShort_mPMT " - "Cylinder_60x74_3inchmPMT_14perCent " - "Cylinder_60x74_3inchmPMT_40perCent " - "Cylinder_60x74_3inch_14perCent " - "Cylinder_60x74_3inch_40perCent " - "TestSinglemPMT\n" - ); - PMTConfig->AvailableForStates(G4State_PreInit, G4State_Idle); - - WCVisChoice = new G4UIcmdWithAString("/WCSim/WCVisChoice",this); - WCVisChoice->SetGuidance("Set the visualization style for the WC."); - WCVisChoice->SetGuidance("Available options are:\n" - "OGLSX\n" - "RayTracer\n" - ); - WCVisChoice->SetParameterName("WCVisChoice", false); - WCVisChoice->SetCandidates("OGLSX " - "RayTracer " - ); - WCVisChoice->AvailableForStates(G4State_PreInit, G4State_Idle); - - DopedWater = new G4UIcmdWithABool("/WCSim/DopedWater", this); - DopedWater->SetGuidance("Set whether water is doped with Gadolinium"); - DopedWater->SetParameterName("DopedWater", false); - DopedWater->AvailableForStates(G4State_PreInit, G4State_Idle); - - DopingConcentration = new G4UIcmdWithADouble("/WCSim/DopingConcentration", this); - DopingConcentration->SetGuidance("Set percentage concentration Gadolinium doping"); - DopingConcentration->SetParameterName("DopingConcentration", false); - DopingConcentration->AvailableForStates(G4State_PreInit, G4State_Idle); - - PMTSize = new G4UIcmdWithAString("/WCSim/WCPMTsize",this); - PMTSize->SetGuidance("Set alternate PMT size for the WC (Must be entered after geometry details are set)."); - PMTSize->SetGuidance("Available options 20inch 10inch"); - PMTSize->SetParameterName("PMTSize", false); - PMTSize->SetCandidates("20inch 10inch"); - PMTSize->AvailableForStates(G4State_PreInit, G4State_Idle); - - PMTSize2 = new G4UIcmdWithAString("/WCSim/WCPMTsize2",this);//B.Q, for the second PMT type - PMTSize2->SetGuidance("Set alternate PMT size for the WC (Must be entered after geometry details are set)."); - PMTSize2->SetGuidance("Available options 20inch 10inch"); - PMTSize2->SetParameterName("PMTSize2", false); - PMTSize2->SetCandidates("20inch 10inch"); - PMTSize2->AvailableForStates(G4State_PreInit, G4State_Idle); - - SavePi0 = new G4UIcmdWithAString("/WCSim/SavePi0", this); - SavePi0->SetGuidance("true or false"); - SavePi0->SetParameterName("SavePi0",false); - SavePi0->SetCandidates("true false"); - SavePi0->AvailableForStates(G4State_PreInit, G4State_Idle); - - SaveCapture = new G4UIcmdWithAString("/WCSim/SaveCapture", this); - SaveCapture->SetGuidance("true or false"); - SaveCapture->SetParameterName("SaveCapture",false); - SaveCapture->SetCandidates("true false"); - SaveCapture->AvailableForStates(G4State_PreInit, G4State_Idle); - - - PMTQEMethod = new G4UIcmdWithAString("/WCSim/PMTQEMethod", this); - PMTQEMethod->SetGuidance("Set the PMT configuration."); - PMTQEMethod->SetGuidance("Available options are:\n" - "Stacking_Only\n" - "Stacking_And_SensitiveDetector\n" - "SensitiveDetector_Only\n" - "DoNotApplyQE"); - - PMTQEMethod->SetParameterName("PMTQEMethod", false); - PMTQEMethod->SetCandidates("Stacking_Only " - "Stacking_And_SensitiveDetector " - "SensitiveDetector_Only " - "DoNotApplyQE "); - PMTQEMethod->AvailableForStates(G4State_PreInit, G4State_Idle); - - PMTCollEff = new G4UIcmdWithAString("/WCSim/PMTCollEff", this); - PMTCollEff->SetGuidance("Set the PMT configuration."); - PMTCollEff->SetGuidance("Available options are:\n" - "on\n" - "off\n"); - PMTCollEff->SetParameterName("PMTCollEff", false); - PMTCollEff->SetCandidates("on " - "off "); - PMTCollEff->AvailableForStates(G4State_PreInit, G4State_Idle); - - waterTank_Length = new G4UIcmdWithADoubleAndUnit("/WCSim/EggShapedHyperK/waterTank_Length", this); - waterTank_Length->SetGuidance("Set the Length of the egg-shaped HyperK detector (unit: mm cm m)."); - waterTank_Length->SetParameterName("waterTank_length", true); - waterTank_Length->SetDefaultValue(49500.); - waterTank_Length->SetUnitCategory("Length"); - waterTank_Length->SetDefaultUnit("mm"); - waterTank_Length->SetUnitCandidates("mm cm m"); - - WCConstruct = new G4UIcmdWithoutParameter("/WCSim/Construct", this); - WCConstruct->SetGuidance("Update detector construction with new settings."); - - // Params: - Cylinder height and radius of mPMT: DONE - // - Type of ID PMT (should be enum) and Type of OD PMT: Need to reorganize the PMTpart. - // - Params related to filling PMT: txt filename - // - Orientation of mPMT wrt wall : horizontal/vertical/perp - // - Reflector OFF/Winston/other - // - material of mPMT wall: water/glass/acrylic/ - // - acrylic cover ON/OFF - - - mPMTDir = new G4UIdirectory("/WCSim/mPMT/"); - mPMTDir->SetGuidance("Commands to change the properties of the multiPMT."); - - - mPMT_CylHeight = new G4UIcmdWithADoubleAndUnit("/WCSim/mPMT/VesselCylHeight",this); - mPMT_CylHeight->SetGuidance("Set height of cylinder of pressure vessel of multiPMT object."); - mPMT_CylHeight->SetParameterName("CylHeight", true); - mPMT_CylHeight->SetDefaultValue(50.); //mDOM (PINGU), 0 for KM3Net - mPMT_CylHeight->SetUnitCategory("Length"); - mPMT_CylHeight->SetDefaultUnit("mm"); - mPMT_CylHeight->SetUnitCandidates("mm cm m"); - - mPMT_CylRadius = new G4UIcmdWithADoubleAndUnit("/WCSim/mPMT/VesselRadius",this); - mPMT_CylRadius->SetGuidance("Set vessel radius of multiPMT object."); - mPMT_CylRadius->SetParameterName("CylRadius", true); - mPMT_CylRadius->SetDefaultValue(325.); - mPMT_CylRadius->SetUnitCategory("Length"); - mPMT_CylRadius->SetDefaultUnit("mm"); - mPMT_CylRadius->SetUnitCandidates("mm cm m"); - - mPMT_CylRadiusCurv = new G4UIcmdWithADoubleAndUnit("/WCSim/mPMT/VesselRadiusCurv",this); - mPMT_CylRadiusCurv->SetGuidance("Set vessel radius of curvature of multiPMT object."); - mPMT_CylRadiusCurv->SetParameterName("CylRadiusCurv", true); - mPMT_CylRadiusCurv->SetDefaultValue(325.); - mPMT_CylRadiusCurv->SetUnitCategory("Length"); - mPMT_CylRadiusCurv->SetDefaultUnit("mm"); - mPMT_CylRadiusCurv->SetUnitCandidates("mm cm m"); - - mPMT_orientation = new G4UIcmdWithAString("/WCSim/mPMT/orientation",this); - mPMT_orientation->SetGuidance("Set orientation of multiPMT cylinder wrt wall."); - mPMT_orientation->SetParameterName("orientation", true); - mPMT_orientation->SetCandidates("Horizontal " - "Vertical " - "Perpendicular " - ); - - // untested/unfinished - // This makes it possible to overwrite the DetectorConfigs - - mPMT_PMTtype_inner = new G4UIcmdWithAString("/WCSim/mPMT/PMTtype_inner",this); - mPMT_PMTtype_inner->SetGuidance("Set type of PMT for ID."); - mPMT_PMTtype_inner->SetParameterName("PMTtype_inner", true); - mPMT_PMTtype_inner->SetCandidates("PMT20inch " - "PMT8inch " - "PMT10inch " - "PMT10inchHQE " - "PMT12inchHQE " - "HPD20inchHQE " - "HPD12inchHQE " - "BoxandLine20inchHQE " - "BoxandLine12inchHQE " - "PMT3inchR12199_02 " - "PMT3inchR14374 " - "PMT4inchR12199_02 " - "PMT5inchR12199_02 " - ); - - mPMT_PMTtype_outer = new G4UIcmdWithAString("/WCSim/mPMT/PMTtype_outer",this); - mPMT_PMTtype_outer->SetGuidance("Set type of PMT for OD."); - mPMT_PMTtype_outer->SetParameterName("PMTtype_outer", true); - mPMT_PMTtype_outer->SetCandidates("PMT20inch " - "PMT8inch " - "PMT10inch " - "PMT10inchHQE " - "PMT12inchHQE " - "HPD20inchHQE " - "HPD12inchHQE " - "BoxandLine20inchHQE " - "BoxandLine12inchHQE " - "PMT3inchR12199_02 " - "PMT3inchR14374 " - "PMT4inchR12199_02 " - "PMT5inchR12199_02 " - ); - - - mPMT_material_outer = new G4UIcmdWithAString("/WCSim/mPMT/material_outer",this); - mPMT_material_outer->SetGuidance("Set material of outer capsule of multiPMT."); - mPMT_material_outer->SetParameterName("material_outer", true); - mPMT_material_outer->SetCandidates("Water " - "Glass " - "Acrylic "); - - mPMT_material_inner = new G4UIcmdWithAString("/WCSim/mPMT/material_inner",this); - mPMT_material_inner->SetGuidance("Set material of region in between PMTs."); - mPMT_material_inner->SetParameterName("material_inner", true); - mPMT_material_inner->SetCandidates("Water " - "SilGel " - "Air " ); - - // Thickness of outer and inner material - mPMT_material_outer_thickness = new G4UIcmdWithADoubleAndUnit("/WCSim/mPMT/material_outer_thickness",this); - mPMT_material_outer_thickness->SetGuidance("Set thickness of outer (pressure) vessel of multiPMT."); - mPMT_material_outer_thickness->SetParameterName("material_outer_thickness", true); - mPMT_material_outer_thickness->SetDefaultValue(20.); - mPMT_material_outer_thickness->SetUnitCategory("Length"); - mPMT_material_outer_thickness->SetDefaultUnit("mm"); - mPMT_material_outer_thickness->SetUnitCandidates("mm cm m"); - - - mPMT_ID_reflector_height = new G4UIcmdWithADoubleAndUnit("/WCSim/mPMT/reflectorHeightID",this); - mPMT_ID_reflector_height->SetGuidance("Set height of reflector cone for each ID PMT."); - mPMT_ID_reflector_height->SetParameterName("reflectorHeightID", true); - mPMT_ID_reflector_height->SetDefaultValue(7.5); - mPMT_ID_reflector_height->SetUnitCategory("Length"); - mPMT_ID_reflector_height->SetDefaultUnit("mm"); - mPMT_ID_reflector_height->SetUnitCandidates("mm cm m"); - - mPMT_ID_reflector_z_offset = new G4UIcmdWithADoubleAndUnit("/WCSim/mPMT/reflectorZoffsetID",this); - mPMT_ID_reflector_z_offset->SetGuidance("Set z position offset of reflector cone for each ID PMT."); - mPMT_ID_reflector_z_offset->SetParameterName("reflectorZoffsetID", true); - mPMT_ID_reflector_z_offset->SetDefaultValue(12); - mPMT_ID_reflector_z_offset->SetUnitCategory("Length"); - mPMT_ID_reflector_z_offset->SetDefaultUnit("mm"); - mPMT_ID_reflector_z_offset->SetUnitCandidates("mm cm m"); - - - mPMT_ID_reflector_angle = new G4UIcmdWithADoubleAndUnit("/WCSim/mPMT/reflectorAngleID",this); - mPMT_ID_reflector_angle->SetGuidance("Set angle of reflector cone wrt PMT axis for each ID PMT."); - mPMT_ID_reflector_angle->SetParameterName("reflectorAngleID", true); - mPMT_ID_reflector_angle->SetDefaultValue(45.); - mPMT_ID_reflector_angle->SetUnitCategory("Angle"); - mPMT_ID_reflector_angle->SetDefaultUnit("deg"); - mPMT_ID_reflector_angle->SetUnitCandidates("deg rad"); - - - // Options related to mPMT filling: - // Total number of ID PMTs: used to cross check with provided configfile - mPMT_nID_PMTs = new G4UIcmdWithAnInteger("/WCSim/mPMT/nID_PMTs",this); - mPMT_nID_PMTs->SetGuidance("Set number of ID mPMT PMTs."); - mPMT_nID_PMTs->SetParameterName("nID_PMTs", true); - mPMT_nID_PMTs->SetDefaultValue(20.); - - mPMT_config = new G4UIcmdWithAString("/WCSim/mPMT/configfile",this); - mPMT_config->SetGuidance("Set filename for config file with viewing angles and tilt angles."); - mPMT_config->SetParameterName("mPMTconfig", true); - - // NEW! - mPMT_numModulesFixed = new G4UIcmdWithABool("/WCSim/mPMT/keep_num_mPMTs_fixed",this); - mPMT_numModulesFixed->SetGuidance("Keep the number of mPMT modules in the detector fixed even though mPMT dimensions change."); - mPMT_numModulesFixed->SetParameterName("numModulesFixed",true); - mPMT_numModulesFixed->SetDefaultValue(false); - - mPMT_pmtOpeningAngle = new G4UIcmdWithADoubleAndUnit("/WCSim/mPMT/pmt_opening_angle",this); - mPMT_pmtOpeningAngle->SetGuidance("Set size of PMT sub-assembly (opening angle). Must be able to contain reflector if wanted."); - mPMT_pmtOpeningAngle->SetParameterName("pmtOpeningAngle", true); - mPMT_pmtOpeningAngle->SetDefaultValue(8.7); - mPMT_pmtOpeningAngle->SetUnitCategory("Angle"); - mPMT_pmtOpeningAngle->SetDefaultUnit("deg"); - mPMT_pmtOpeningAngle->SetUnitCandidates("deg rad"); - - mPMT_material_pmtAssembly = new G4UIcmdWithAString("/WCSim/mPMT/material_pmtAssembly",this); - mPMT_material_pmtAssembly->SetGuidance("Set material of region around the PMT itself."); - mPMT_material_pmtAssembly->SetParameterName("material_pmtAssembly", true); - mPMT_material_pmtAssembly->SetCandidates("Water " - "SilGel " - "Air " ); - - // B.Q: Add the hybrid configuration - SetHybridPMT = new G4UIcmdWithABool("/WCSim/mPMT/SetHybridPMT", this); - SetHybridPMT->SetGuidance("Set the possibility of having hybrid PMT types"); - SetHybridPMT->SetGuidance("Should be 1 or 0"); - SetHybridPMT->SetParameterName("HybridPMT", false); - //SetHybridPMT->SetCandidates(); - SetHybridPMT->SetDefaultValue(false); - - // First, the PMT type - SetPMTType = new G4UIcmdWithAString("/WCSim/nuPRISM/SetPMTType", this); - SetPMTType->SetGuidance("Set the type of PMT to be used for nuPRISM"); - SetPMTType->SetGuidance("Available options are:\n" - "PMT3inch\n" - "PMT3inchGT\n" - "PMT3inchR12199_02\n" - "PMT3inchR14374\n" - "PMT5inch\n" - "PMT8inch\n" - "PMT10inchHQE\n" - "PMT10inch\n" - "PMT12inchHQE\n" - "HPD20inchHQE\n" - "PMT20inch\n"); - SetPMTType->SetParameterName("PMTType", false); - SetPMTType->SetCandidates("PMT3inch PMT3inchGT PMT3inchR12199_02 PMT3inchR14374 PMT5inch PMT8inch PMT10inchHQE PMT10inch PMT12inchHQE HPD20inchHQE PMT20inch"); - SetPMTType->SetDefaultValue("PMT10inch"); - - // Next, the PMT coverage - SetPMTCoverage = new G4UIcmdWithAString("/WCSim/nuPRISM/SetPMTPercentCoverage", this); - SetPMTCoverage->SetGuidance("Set the PMT percentage coverage to be used for nuPRISM"); - SetPMTCoverage->SetGuidance("Any number is allowed (such as 40)"); - SetPMTCoverage->SetParameterName("PMTCoverage", false); - SetPMTCoverage->SetDefaultValue("40"); - - // Set the vertical position of the nuPRISM-lite detector - SetDetectorVerticalPosition = new G4UIcmdWithADoubleAndUnit("/WCSim/nuPRISM/SetDetectorVerticalPosition", this); - SetDetectorVerticalPosition->SetGuidance("Set the vertical position of the nuPRISM inner detector (unit mm cm m)."); - SetDetectorVerticalPosition->SetGuidance("The default will be 0m, so particle guns are easy to create."); - SetDetectorVerticalPosition->SetParameterName("DetectorVerticalPosition", false); - SetDetectorVerticalPosition->SetDefaultValue(0.0); - SetDetectorVerticalPosition->SetUnitCategory("Length"); - SetDetectorVerticalPosition->SetDefaultUnit("m"); - - // Set the height of the nuPRISM-lite detector - SetDetectorHeight = new G4UIcmdWithADoubleAndUnit("/WCSim/nuPRISM/SetDetectorHeight", this); - SetDetectorHeight->SetGuidance("Set the height of the nuPRISM inner detector (unit mm cm m)."); - SetDetectorHeight->SetGuidance("The default will be 52.4m, the full height of nuPRISM."); - SetDetectorHeight->SetParameterName("DetectorHeight", false); - SetDetectorHeight->SetDefaultValue(52.4); - SetDetectorHeight->SetUnitCategory("Length"); - SetDetectorHeight->SetDefaultUnit("m"); - - // Set the diameter of the nuPRISM-lite detector - SetDetectorDiameter = new G4UIcmdWithADoubleAndUnit("/WCSim/nuPRISM/SetDetectorDiameter", this); - SetDetectorDiameter->SetGuidance("Set the diameter of the nuPRISM inner detector (unit mm cm m)."); - SetDetectorDiameter->SetGuidance("The default will be 6m, the nominal diameter of nuPRISM."); - SetDetectorDiameter->SetParameterName("DetectorDiameter", false); - SetDetectorDiameter->SetDefaultValue(6.); - SetDetectorDiameter->SetUnitCategory("Length"); - SetDetectorDiameter->SetDefaultUnit("m"); -} - -WCSimDetectorMessenger::~WCSimDetectorMessenger() -{ - delete PMTConfig; - delete SavePi0; - delete SaveCapture; - delete PMTQEMethod; - delete PMTCollEff; - delete waterTank_Length; - delete WCVisChoice; - - delete SetDetectorDiameter; - delete SetDetectorHeight; - delete SetDetectorVerticalPosition; - delete SetPMTCoverage; - delete SetPMTType; - delete SetHybridPMT; - - delete tubeCmd; - delete distortionCmd; - - delete mPMT_CylHeight; - delete mPMT_CylRadius; - delete WCSimDir; - delete mPMTDir; -} - -void WCSimDetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) -{ - if( command == PMTConfig ) { - WCSimDetector->SetIsUpright(false); - WCSimDetector->SetIsEggShapedHyperK(false); - if ( newValue == "SuperK") { - WCSimDetector->SetSuperKGeometry(); - } else if ( newValue == "SuperK_20inchPMT_20perCent" ){ - WCSimDetector->SuperK_20inchPMT_20perCent(); - } else if ( newValue == "SuperK_20inchBandL_20perCent" ){ - WCSimDetector->SuperK_20inchBandL_20perCent(); - } else if ( newValue == "SuperK_12inchBandL_15perCent" ) { - WCSimDetector->SuperK_12inchBandL_15perCent(); - } else if ( newValue == "SuperK_20inchBandL_14perCent" ) { - WCSimDetector->SuperK_20inchBandL_14perCent(); - } else if ( newValue == "Cylinder_60x74_20inchBandL_14perCent" ) { - WCSimDetector->Cylinder_60x74_20inchBandL_14perCent(); - } else if ( newValue == "Cylinder_60x74_20inchBandL_40perCent" ) { - WCSimDetector->Cylinder_60x74_20inchBandL_40perCent(); - } else if ( newValue == "Cylinder_12inchHPD_15perCent" ){ - WCSimDetector->Cylinder_12inchHPD_15perCent(); - } else if ( newValue == "HyperK") { - WCSimDetector->SetHyperKGeometry(); - } else if ( newValue == "HyperK_3inch") { - WCSimDetector->SetHyperK_3inchGeometry(); - } else if ( newValue == "HyperK_8inch") { - WCSimDetector->SetHyperK_8inchGeometry(); - } else if ( newValue == "HyperK_10inch") { - WCSimDetector->SetHyperK_10inchGeometry(); - } else if ( newValue == "HyperK_SKPMT") { - WCSimDetector->SetHyperK_SKPMTGeometry(); - } else if ( newValue == "HyperK_mPMT") { - WCSimDetector->SetHyperK_mPMTGeometry(); - } else if ( newValue == "HyperK_HybridmPMT") { - WCSimDetector->SetHyperK_HybridmPMTGeometry(); - } else if ( newValue == "HyperK_HybridmPMT10PC") { - WCSimDetector->SetHyperK_HybridmPMT10PCGeometry(); - } else if ( newValue == "HyperK_HybridFake") { - WCSimDetector->SetHyperK_HybridFakeGeometry(); - } else if ( newValue == "EggShapedHyperK") { - WCSimDetector->SetIsEggShapedHyperK(true); - WCSimDetector->SetEggShapedHyperKGeometry(); - } else if ( newValue == "EggShapedHyperK_withHPD") { - WCSimDetector->SetIsEggShapedHyperK(true); - WCSimDetector->SetEggShapedHyperKGeometry_withHPD(); - } else if(newValue == "TestSinglemPMT") { - WCSimDetector->SetTestSinglemPMTGeometry(); - } else if(newValue == "Cylinder_60x74_3inchmPMT_14perCent" ) { - WCSimDetector->Cylinder_60x74_3inchmPMT_14perCent(); // MUST be Called after the mPMT settings, otherwise unknown - } else if(newValue == "Cylinder_60x74_3inchmPMT_40perCent" ) { - WCSimDetector->Cylinder_60x74_3inchmPMT_40perCent(); // MUST be Called after the mPMT settings, otherwise unknown - } else if(newValue == "Cylinder_60x74_3inch_14perCent" ) { - WCSimDetector->Cylinder_60x74_3inch_14perCent(); // MUST be Called after the mPMT settings, otherwise unknown - } else if(newValue == "Cylinder_60x74_3inch_40perCent" ) { - WCSimDetector->Cylinder_60x74_3inch_40perCent(); // MUST be Called after the mPMT settings, otherwise unknown - } else if ( newValue == "nuPRISM") { - WCSimDetector->SetIsNuPrism(true); - WCSimDetector->SetDefaultNuPrismGeometry(); - } else if ( newValue == "nuPRISM_mPMT") { - WCSimDetector->SetIsNuPrism(true); - WCSimDetector->SetNuPrism_mPMTGeometry(); - } else if ( newValue == "nuPRISMShort_mPMT") { - WCSimDetector->SetIsNuPrism(true); - WCSimDetector->SetNuPrismShort_mPMTGeometry(); - } else - G4cout << "That geometry choice is not defined!" << G4endl; - } - - if (command == SavePi0){ - G4cout << "Set the flag for saving pi0 info " << newValue << G4endl; - if (newValue=="true"){ - WCSimDetector->SavePi0Info(true); - }else if (newValue == "false"){ - WCSimDetector->SavePi0Info(false); - }else{ - - } - } - - if (command == SaveCapture){ - G4cout << "Set the flag for saving neutron capture info " << newValue << G4endl; - if (newValue=="true"){ - WCSimDetector->SaveCaptureInfo(true); - }else if (newValue == "false"){ - WCSimDetector->SaveCaptureInfo(false); - }else{ - - } - } - - if (command == PMTQEMethod){ - G4cout << "Set PMT QE Method " << newValue << " "; - if (newValue == "Stacking_Only"){ - WCSimDetector->SetPMT_QE_Method(1); - G4cout << "1"; - }else if (newValue == "Stacking_And_SensitiveDetector"){ - WCSimDetector->SetPMT_QE_Method(2); - G4cout << "2"; - }else if (newValue == "SensitiveDetector_Only"){ - WCSimDetector->SetPMT_QE_Method(3); - G4cout << "3"; - }else if (newValue == "DoNotApplyQE"){ - WCSimDetector->SetPMT_QE_Method(4); - G4cout << "4"; - }else{ - - } - G4cout << G4endl; - } - - if (command == PMTCollEff){ - G4cout << "Set PMT Collection Efficiency " << newValue << " "; - if (newValue == "on"){ - WCSimDetector->SetPMT_Coll_Eff(1); - G4cout << "1"; - }else if (newValue == "off"){ - WCSimDetector->SetPMT_Coll_Eff(0); - G4cout << "0"; - } - G4cout << G4endl; - } - - if (command == WCVisChoice){ - G4cout << "Set Vis Choice " << newValue << " "; - if (newValue == "OGLSX"){ - WCSimDetector->SetVis_Choice("OGLSX"); - }else if (newValue == "RayTracer"){ - WCSimDetector->SetVis_Choice("RayTracer"); - } - G4cout << G4endl; - } - - if (command == waterTank_Length){ - bool isEggShapedHyperK = WCSimDetector->GetIsEggShapedHyperK(); - if(isEggShapedHyperK == true){ - G4cout << "Set Partition Length in a cylinder " << newValue << " " << G4endl; - WCSimDetector->SetwaterTank_Length(waterTank_Length->GetNewDoubleValue(newValue)); - WCSimDetector->SetWaterTubeLength(waterTank_Length->GetNewDoubleValue(newValue)); - // WCSimDetector->SetIsEggShapedHyperK(true); - } - else { - G4cout << "Not egg-shaped HyperK Geometry. Detector length unchanged." << G4endl; - } - } - - if(command == DopedWater) { - G4cout << "Setting Gadolinium doping of water: " << newValue << G4endl; - WCSimDetector->SetDopedWater(DopedWater->GetNewBoolValue(newValue)); - } - - - if(command == DopingConcentration) { - G4cout << "Setting Gadolinium doping concentration: " << newValue << "percent" << G4endl; - WCSimDetector->AddDopedWater(DopingConcentration->GetNewDoubleValue(newValue)); - } - - if(command == PMTSize) { - G4cout << "SET PMT SIZE" << G4endl; - if ( newValue == "20inch"){ -// WCSimDetector->Set20inchPMTs(); - }else if (newValue == "10inch"){ -// WCSimDetector->Set10inchPMTs(); - }else - G4cout << "That PMT size is not defined!" << G4endl; - } - - if(command == PMTSize2) { - G4cout << "SET PMT of TYPE 2 SIZE" << G4endl; - if ( newValue == "20inch"){ - // WCSimDetector->Set20inchPMTs(); - }else if (newValue == "10inch"){ - // WCSimDetector->Set10inchPMTs(); - }else - G4cout << "That PMT size is not defined!" << G4endl; - } - - if (command == mPMT_CylHeight){ - G4cout << "Set Vessel Cylinder Height of MultiPMT to " << newValue << " " << G4endl; //doesn't work - //std::cout << "Set Cylinder Height of MultiPMT to " << newValue << " " << std::endl; - WCSimDetector->SetmPMT_VesselCylHeight(mPMT_CylHeight->GetNewDoubleValue(newValue)); - } - - - if (command == mPMT_CylRadiusCurv){ - G4cout << "Set Vessel Radius of Curvature of MultiPMT to " << newValue << " " << G4endl; //doesn't work - //std::cout << "Set Cylinder Radius of MultiPMT to " << newValue << " " << std::endl; - WCSimDetector->SetmPMT_VesselRadiusCurv(mPMT_CylRadiusCurv->GetNewDoubleValue(newValue)); - } - - if (command == mPMT_CylRadius){ - G4cout << "Set Vessel Radius of MultiPMT to " << newValue << " " << G4endl; //doesn't work - //std::cout << "Set Cylinder Radius of MultiPMT to " << newValue << " " << std::endl; - WCSimDetector->SetmPMT_VesselRadius(mPMT_CylRadius->GetNewDoubleValue(newValue)); - } - - - if (command == mPMT_orientation){ - if(newValue == "Horizontal") - WCSimDetector->SetmPMT_Orientation(HORIZONTAL); - else if(newValue == "Vertical") - WCSimDetector->SetmPMT_Orientation(VERTICAL); - else if(newValue == "Perpendicular") - WCSimDetector->SetmPMT_Orientation(PERPENDICULAR); - else - G4cout << "Undefined orientation wrt wall: reverting to default Perpendicular" << G4endl; - - } - if (command == mPMT_ID_reflector_height){ - G4cout << "Set Height of reflector cone to " << newValue << " " << G4endl; - WCSimDetector->SetmPMT_ReflectorHeight(mPMT_ID_reflector_height->GetNewDoubleValue(newValue)); - } - if (command == mPMT_ID_reflector_z_offset){ - G4cout << "Set Z position offset of reflector cone to " << newValue << " " << G4endl; - WCSimDetector->SetmPMT_ReflectorZoffset(mPMT_ID_reflector_z_offset->GetNewDoubleValue(newValue)); - } - if (command == mPMT_ID_reflector_angle){ - G4cout << "Set Angle of reflector cone to " << newValue << " " << G4endl; - WCSimDetector->SetmPMT_ReflectorAngle(mPMT_ID_reflector_angle->GetNewDoubleValue(newValue)); - } - if (command == mPMT_material_outer){ - WCSimDetector->SetmPMT_MaterialOuter(newValue); - } - if (command == mPMT_material_inner){ - WCSimDetector->SetmPMT_MaterialInner(newValue); - } - if(command == mPMT_material_outer_thickness){ - WCSimDetector->SetmPMT_MaterialOuterThickness(mPMT_material_outer_thickness->GetNewDoubleValue(newValue)); - } - if(command == mPMT_nID_PMTs){ - WCSimDetector->SetmPMT_nID(mPMT_nID_PMTs->GetNewIntValue(newValue)); - } - if(command == mPMT_config){ - WCSimDetector->SetmPMT_Config(newValue); - } - - if (command == mPMT_PMTtype_inner) - WCSimDetector->SetmPMT_PMTtype_inner(newValue); - if (command == mPMT_PMTtype_outer) - WCSimDetector->SetmPMT_PMTtype_outer(newValue); - - - if (command == mPMT_DistPMTVessel){ - G4cout << "Set Distance of PMT(s) to pressure vessel to " << newValue << " " << G4endl; //doesn't work - //std::cout << "Set Cylinder Radius of MultiPMT to " << newValue << " " << std::endl; - WCSimDetector->SetmPMT_DistPMTVessel(mPMT_DistPMTVessel->GetNewDoubleValue(newValue)); - } - - if (command == mPMT_numModulesFixed){ - G4cout << "Do you want fix the number of mPMT modules: " << newValue << G4endl; - WCSimDetector->SetmPMT_FixModules(mPMT_numModulesFixed->GetNewBoolValue(newValue)); - } - - if (command == mPMT_pmtOpeningAngle){ - WCSimDetector->SetmPMT_OpeningAngle(mPMT_pmtOpeningAngle->GetNewDoubleValue(newValue)); - } - - if (command == mPMT_material_pmtAssembly){ - WCSimDetector->SetmPMT_MaterialPMTassembly(newValue); - } - if (command == SetHybridPMT){ - G4cout << "Set hybrid config = " << newValue << G4endl; - WCSimDetector->SetHybridPMT(SetHybridPMT->GetNewBoolValue(newValue)); - } - - // Customize nuPRISM tank setup - if( WCSimDetector->GetIsNuPrism()){ - if (command == SetPMTType) WCSimDetector->SetPMTType(newValue); - else if (command == SetPMTCoverage) WCSimDetector->SetPMTCoverage(atof(newValue)); - else if (command == SetDetectorHeight) WCSimDetector->SetDetectorHeight(SetDetectorHeight->GetNewDoubleValue(newValue)); - else if (command == SetDetectorVerticalPosition) WCSimDetector->SetDetectorVerticalPosition(SetDetectorVerticalPosition->GetNewDoubleValue(newValue)); - else if (command == SetDetectorDiameter) WCSimDetector->SetDetectorDiameter(SetDetectorDiameter->GetNewDoubleValue(newValue)); - /* TF: deprecated. Don't remake geometry, just update variables in the setters. - else if (command == UpdateNuPrism){ - WCSimDetector->SetNuPrismGeometry(WCSimDetector->GetPMTType(), - WCSimDetector->GetPMTCoverage(), - WCSimDetector->GetWCIDHeight(), - WCSimDetector->GetWCIDDiameter(), - WCSimDetector->GetWCIDVerticalPosition()); - } */ - } - - if(command == WCConstruct) { - WCSimDetector->UpdateGeometry(); - } -} diff --git a/libWCSIM/src/WCSimEnumerations.cc b/libWCSIM/src/WCSimEnumerations.cc deleted file mode 100644 index 96d9cad..0000000 --- a/libWCSIM/src/WCSimEnumerations.cc +++ /dev/null @@ -1,66 +0,0 @@ -#include -#include - -#include "WCSimEnumerations.hh" - -std::string WCSimEnumerations::EnumAsString(DigitizerType_t d) -{ - switch(d) { - case (kDigitizerSKI) : - return "SKI"; - break; - default: - return ""; - break; - } - return ""; -} - -std::string WCSimEnumerations::EnumAsString(TriggerType_t t) -{ - switch(t) { - case (kTriggerNDigits) : - return "NDigits"; - break; - case (kTriggerNDigitsTest) : - return "NDigits_TEST"; - break; - case (kTriggerFailure) : - return "No_trigger_passed"; - break; - default: - return ""; - break; - } - return ""; -} - -std::string WCSimEnumerations::EnumAsString(WCSimRandomGenerator_t r) -{ - switch(r) { - case (RANDOM_E_RANLUX) : - return "RANLUX"; - break; - case (RANDOM_E_RANECU) : - return "RANECU"; - break; - case (RANDOM_E_HEPJAMES) : - return "HEPJAMES"; - break; - default: - return ""; - break; - } - return ""; -} - -TriggerType_t WCSimEnumerations::TriggerTypeFromString(std::string s) -{ - for(int i = int(kTriggerUndefined)+1; i <= kTriggerFailure; i++) { - if(s.compare(WCSimEnumerations::EnumAsString((TriggerType_t)i)) == 0) { - return (TriggerType_t)i; - } - } - std::cerr << "WCSimEnumerations::TriggerTypeFromString() Unknown string value " << s << std::endl; - return kTriggerUndefined; -} diff --git a/libWCSIM/src/WCSimEventAction.cc b/libWCSIM/src/WCSimEventAction.cc deleted file mode 100644 index cc05304..0000000 --- a/libWCSIM/src/WCSimEventAction.cc +++ /dev/null @@ -1,2122 +0,0 @@ -#include "WCSimEventAction.hh" -#include "WCSimTrajectory.hh" -#include "WCSimRunAction.hh" -#include "WCSimPrimaryGeneratorAction.hh" -#include "WCSimWCHit.hh" -#include "WCSimWCDigi.hh" -#include "WCSimWCDigitizer.hh" -#include "WCSimWCTrigger.hh" -#include "WCSimWCAddDarkNoise.hh" -#include "WCSimWCPMT.hh" -#include "WCSimDetectorConstruction.hh" - -#include "G4Event.hh" -#include "G4RunManager.hh" -#include "G4EventManager.hh" -#include "G4UImanager.hh" -#include "G4TrajectoryContainer.hh" -#include "G4VVisManager.hh" -#include "G4ios.hh" -#include "globals.hh" -#include "G4ThreeVector.hh" -#include "G4TransportationManager.hh" -#include "G4Navigator.hh" -#include "G4SDManager.hh" -#include "G4DigiManager.hh" -#include "G4UnitsTable.hh" -#include "G4UIcmdWith3VectorAndUnit.hh" - -#include "G4PhysicalConstants.hh" -#include "G4SystemOfUnits.hh" - -#include -#include -#include -#include - -#include "jhfNtuple.h" -#include "TTree.h" -#include "TFile.h" -#include "WCSimRootEvent.hh" -#include "TStopwatch.h" - -#ifndef _SAVE_RAW_HITS -#define _SAVE_RAW_HITS -#ifndef _SAVE_RAW_HITS_VERBOSE -//#define _SAVE_RAW_HITS_VERBOSE -#endif -#endif -#ifndef SAVE_DIGITS_VERBOSE -//#define SAVE_DIGITS_VERBOSE -#endif -#ifndef TIME_DAQ_STEPS -//#define TIME_DAQ_STEPS -#endif - -#ifndef NPMTS_VERBOSE -#define NPMTS_VERBOSE 10 -#endif -//#define DEBUG - -WCSimEventAction::WCSimEventAction(WCSimRunAction* myRun, - WCSimDetectorConstruction* myDetector, - WCSimPrimaryGeneratorAction* myGenerator) - :runAction(myRun), generatorAction(myGenerator), - detectorConstructor(myDetector), - ConstructedDAQClasses(false), - SavedOptions(false) -{ - DAQMessenger = new WCSimWCDAQMessenger(this); - - G4DigiManager* DMman = G4DigiManager::GetDMpointer(); - - //create PMT response module - WCSimWCPMT* WCDMPMT = new WCSimWCPMT( "WCReadoutPMT", myDetector,"tank"); - DMman->AddNewModule(WCDMPMT); - - randGen = new TRandom3(); - - //create dark noise module - WCSimWCAddDarkNoise* WCDNM = new WCSimWCAddDarkNoise("WCDarkNoise", detectorConstructor,"tank"); - DMman->AddNewModule(WCDNM); - - WCSimWCPMT* WCDMPMT2; - WCSimWCAddDarkNoise* WCDNM2; - //if(myDetector->GetHybridPMT()){ - WCDMPMT2 = new WCSimWCPMT( "WCReadoutPMT2", myDetector,"tankPMT2"); - DMman->AddNewModule(WCDMPMT2); - - WCDNM2 = new WCSimWCAddDarkNoise("WCDarkNoise2", detectorConstructor,"tankPMT2"); - DMman->AddNewModule(WCDNM2); - //} -} - -WCSimEventAction::~WCSimEventAction() -{ - delete DAQMessenger; -} - -void WCSimEventAction::CreateDAQInstances() -{ - if(ConstructedDAQClasses) { - G4cerr << "WCSimEventAction::CreateDAQInstances() has already been called. Exiting..." << G4endl; - exit(-1); - } - - G4cout << "Creating digitizer and trigger class instances in WCSimEventAction::CreateDAQInstances()" << G4endl; - - G4DigiManager* DMman = G4DigiManager::GetDMpointer(); - - //create your choice of digitizer module - if(DigitizerChoice == "SKI") { - WCSimWCDigitizerSKI* WCDM = new WCSimWCDigitizerSKI("WCReadoutDigits", detectorConstructor, DAQMessenger,"tank"); - DMman->AddNewModule(WCDM); - } - else { - G4cerr << "Unknown DigitizerChoice " << DigitizerChoice << G4endl; - exit(-1); - } - - //create your choice of trigger module - if(TriggerChoice == "NDigits") { - WCSimWCTriggerNDigits* WCTM = new WCSimWCTriggerNDigits("WCReadout", detectorConstructor, DAQMessenger,"tank"); - DMman->AddNewModule(WCTM); - } - else if(TriggerChoice == "NDigits2") { - WCSimWCTriggerNDigits2* WCTM = new WCSimWCTriggerNDigits2("WCReadout", detectorConstructor, DAQMessenger,"tank"); - DMman->AddNewModule(WCTM); - } - else { - G4cerr << "Unknown TriggerChoice " << TriggerChoice << G4endl; - exit(-1); - } - - //B.Q: For the second type of PMT in the hybrid configuration - //create your choice of digitizer module - if(DigitizerChoice == "SKI") { - WCSimWCDigitizerSKI* WCDM2; - if(detectorConstructor->GetHybridPMT()){ - WCDM2 = new WCSimWCDigitizerSKI("WCReadoutDigits2", detectorConstructor, DAQMessenger,"tankPMT2"); - DMman->AddNewModule(WCDM2); - } - } - else { - G4cerr << "Unknown DigitizerChoice " << DigitizerChoice << G4endl; - exit(-1); - } - - //create your choice of trigger module - if(TriggerChoice == "NDigits") { - WCSimWCTriggerNDigits* WCTM2; - if(detectorConstructor->GetHybridPMT()){ - WCTM2 = new WCSimWCTriggerNDigits("WCReadout2", detectorConstructor, DAQMessenger,"tankPMT2"); - DMman->AddNewModule(WCTM2); - } - } - else if(TriggerChoice == "NDigits2") { - WCSimWCTriggerNDigits2* WCTM2; - if(detectorConstructor->GetHybridPMT()){ - WCTM2 = new WCSimWCTriggerNDigits2("WCReadout2", detectorConstructor, DAQMessenger,"tankPMT2"); - DMman->AddNewModule(WCTM2); - } - } - else { - G4cerr << "Unknown TriggerChoice " << TriggerChoice << G4endl; - exit(-1); - } - - ConstructedDAQClasses = true; -} - - -void WCSimEventAction::BeginOfEventAction(const G4Event*) -{ - if(!ConstructedDAQClasses) { - CreateDAQInstances(); - - //and save options in output file - G4DigiManager* DMman = G4DigiManager::GetDMpointer(); - - } -} - -void WCSimEventAction::EndOfEventAction(const G4Event* evt) -{ - - // ---------------------------------------------------------------------- - // Get Particle Table - // ---------------------------------------------------------------------- - - G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); - - // ---------------------------------------------------------------------- - // Get Trajectory Container - // ---------------------------------------------------------------------- - - G4TrajectoryContainer* trajectoryContainer = evt->GetTrajectoryContainer(); - - G4int n_trajectories = 0; - if (trajectoryContainer) n_trajectories = trajectoryContainer->entries(); - - if(generatorAction->GetIsRooTrackerFileFinished()){ - const G4Run* run; - GetRunAction()->EndOfRunAction(run); - exit(0); - } - - // ---------------------------------------------------------------------- - // Get Event Information - // ---------------------------------------------------------------------- - - G4int event_id = evt->GetEventID(); - //G4int mode = generatorAction->GetMode(); - InteractionType_t mode = generatorAction->GetMode(); - G4ThreeVector vtx = generatorAction->GetVtx(); - G4int vtxvol = WCSimEventFindStartingVolume(vtx); - G4int vecRecNumber = generatorAction->GetVecRecNumber(); - - // ---------------------------------------------------------------------- - // Get WC Hit Collection - // ---------------------------------------------------------------------- - - G4SDManager* SDman = G4SDManager::GetSDMpointer(); - - // Get Hit collection of this event - G4HCofThisEvent* HCE = evt->GetHCofThisEvent(); - WCSimWCHitsCollection* WCHC = 0; - G4String WCIDCollectionName = detectorConstructor->GetIDCollectionName(); - if (HCE) - { - G4String name = WCIDCollectionName; - G4int collectionID = SDman->GetCollectionID(name); - WCHC = (WCSimWCHitsCollection*)HCE->GetHC(collectionID); - } - //B.Q for the hybrid version - WCSimWCHitsCollection* WCHC2 = 0; - G4String WCIDCollectionName2; - if(detectorConstructor->GetHybridPMT()) WCIDCollectionName2 = detectorConstructor->GetIDCollectionName2(); - if (HCE) - { - G4String name; - G4int collectionID; - if(detectorConstructor->GetHybridPMT()){ - name = WCIDCollectionName2; - collectionID = SDman->GetCollectionID(name); - WCHC2 = (WCSimWCHitsCollection*)HCE->GetHC(collectionID); - } - } - - // If this option is chosen - // pe's will be generated on the pmts. - if( generatorAction->IsUsingPoissonPMT() ){ - - // Loop through PMTs in detector - for ( - std::vector::iterator pmtIt = detectorConstructor->Get_Pmts()->begin(); - pmtIt != detectorConstructor->Get_Pmts()->end(); - pmtIt++ ){ - - // Generate number of PEs acording to Poisson with macro defined mean - int nPoisson = randGen->Poisson(generatorAction->GetPoissonPMTMean()); - - // Check if PMTs have existing hits - bool hitExists = false; - int hitIndex = -1; - for (int existingHit = 0; existingHit < WCHC->GetSize(); existingHit++){ - - if( (*WCHC)[existingHit]->GetTubeID() == (*pmtIt)->Get_tubeid() ){ - - hitExists = true; - hitIndex = existingHit; - - G4cout << "/mygen/pmtPoisson Error: Hits found when placing dummy PEs. Use lower energy primary particles or set '/mygen/pmtPoisson' to false for a real run." << G4endl; - - if ((*WCHC)[existingHit]->GetTotalPe() > nPoisson){ - G4cout << "/mygen/pmtPoisson Error: More PEs in original hit than in the Poisson throw. Poisson distribution will be distorted. Use lower energy primary particles or set '/mygen/pmtPoisson' to false for a real run." << G4endl; - - } else { - // Take into account already exising PEs... this is not ideal as they might not be in time. - nPoisson -= (*WCHC)[existingHit]->GetTotalPe(); - } - } - if (hitExists) break; - } - - if (! hitExists){ - WCHC->insert((WCSimWCHit*) new WCSimWCHit() ); - hitIndex = WCHC->GetSize()-1; - - } - - (*WCHC)[hitIndex]->SetTubeID((*pmtIt)->Get_tubeid()); - (*WCHC)[hitIndex]->SetTrackID(0); - (*WCHC)[hitIndex]->SetEdep(0.); - (*WCHC)[hitIndex]->SetPos(detectorConstructor->GetTubeTransform((*pmtIt)->Get_tubeid()).getTranslation()); - (*WCHC)[hitIndex]->SetRot(detectorConstructor->GetTubeTransform((*pmtIt)->Get_tubeid()).getRotation()); - - // Ignore logical volume for now... - for (int pe = 0; pe < nPoisson; pe++) { - (*WCHC)[hitIndex]->AddPe(G4RandGauss::shoot(0.0,10.)); - (*WCHC)[hitIndex]->AddParentID(0); // Make parent a geantino (whatever that is) - } - - G4cout << "The option using pmtPoisson is not implemented for the hybrid version yet." << G4endl; - } - } - - - - // To use Do like This: - // -------------------- - // if (WCHC) - // for (G4int i=0; i< WCHC->entries() ;i++) - // G4cout << (*WCHC)[i]->GetTotalPe() << G4endl; - - - // ---------------------------------------------------------------------- - // Get Digitized Hit Collection - // ---------------------------------------------------------------------- - G4cout<< "WCSimEventAction::EndOfEventAction() (WCSimWCHitsCollection*)" << WCIDCollectionName - << " has " << WCHC->entries() << " entries" << G4endl; - G4cout << G4endl; - - // Get a pointer to the Digitizing Module Manager - G4DigiManager* DMman = G4DigiManager::GetDMpointer(); - - // Get a pointer to the WC PMT module - WCSimWCPMT* WCDMPMT = - (WCSimWCPMT*)DMman->FindDigitizerModule("WCReadoutPMT"); - - // new MFechner, aug 2006 - // need to clear up the old info inside PMT - WCDMPMT->ReInitialize(); - - -#ifdef TIME_DAQ_STEPS - TStopwatch* ms = new TStopwatch(); - ms->Start(); -#endif - - //Convert the hits to PMT pulse - WCDMPMT->Digitize(); - - // - // Do the Dark Noise, then Digitization, then Trigger - // - - // - // First, add Dark noise hits before digitizing - - //Get a pointer to the WC Dark Noise Module - WCSimWCAddDarkNoise* WCDNM = - (WCSimWCAddDarkNoise*)DMman->FindDigitizerModule("WCDarkNoise"); - - //WCDNM->SetDarkMode(1); - - //Add the dark noise - WCDNM->AddDarkNoise(); - - // - // Next, do the digitization - - //Get a pointer to the WC Digitizer Module - WCSimWCDigitizerBase* WCDM = - (WCSimWCDigitizerBase*)DMman->FindDigitizerModule("WCReadoutDigits"); - - //Digitize the hits - WCDM->Digitize(); - - // - // Finally, apply the trigger - - //Get a pointer to the WC Trigger Module - WCSimWCTriggerBase* WCTM = - (WCSimWCTriggerBase*)DMman->FindDigitizerModule("WCReadout"); - - //tell it the dark noise rate (for calculating the average dark occupancy -> can adjust the NDigits threshold) - WCTM->SetDarkRate(WCDNM->GetDarkRate()); - - //Apply the trigger - // This takes the digits, and places them into trigger gates - // Also throws away digits not contained in an trigger gate - WCTM->Digitize(); - -#ifdef TIME_DAQ_STEPS - ms->Stop(); - G4cout << " Digtization : Real = " << ms->RealTime() - << " ; CPU = " << ms->CpuTime() << "\n"; -#endif - - // Get the post-noise hit collection for the WC - G4int WCDChitsID = DMman->GetDigiCollectionID("WCRawPMTSignalCollection"); - WCSimWCDigitsCollection * WCDC_hits = (WCSimWCDigitsCollection*) DMman->GetDigiCollection(WCDChitsID); - - // Get the digitized collection for the WC - G4int WCDCID = DMman->GetDigiCollectionID("WCDigitizedCollection"); - WCSimWCTriggeredDigitsCollection * WCDC = (WCSimWCTriggeredDigitsCollection*) DMman->GetDigiCollection(WCDCID); - /* - // To use Do like This: - // -------------------- - if(WCDC) - for (G4int i=0; i < WCDC->entries(); i++) - { - G4int tubeID = (*WCDC)[i]->GetTubeID(); - G4float photoElectrons = (*WCDC)[i]->GetPe(i); - G4float time = (*WCDC)[i]->GetTime(i); - // G4cout << "time " << i << " " <

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%0D96nA`T(1 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�B>GA=nt9D5`i!eN;{9rXV2iQJVtt&S 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∈h0mJpS#>gX8$H(N`kPxi+kZ6%|UY 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 N9*rF2&Xx@F{{Z8^*GB*V literal 0 HcmV?d00001 From 81c512682b8451db86caf93929ec9e7c898d9b9e Mon Sep 17 00:00:00 2001 From: lperisse Date: Sun, 22 Feb 2026 14:24:20 +0100 Subject: [PATCH 05/15] cleaning done --- .gitignore | 2 -- README.md | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index c4d3cce..bf3a7fc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,5 @@ -*.root *.o *.swp -*.root *.log .depend leaf/DataModelRootDict* diff --git a/README.md b/README.md index 512348d..b127b59 100644 --- a/README.md +++ b/README.md @@ -79,8 +79,8 @@ $ ./AnalyzeWSHierarchy -i wcrim.root -o plots.root -s 0 -e 1000 -v $ ./ProducePDF -i plots.root -o PDF.root ``` -Pathess to PDF files required as inputs for LEAF are hard-coded inside leaf/LeafSplines.cc, inside the LoadSplines() methods. +PathesREADME.md to PDF files required as inputs for LEAF are hard-coded inside leaf/LeafSplines.cc, inside the LoadSplines() methods. Make sure these pathes are consistant with the files you generate on your own. -wcsim1p12p16_UnifVtx_electron_HK_2MeV_1M \ No newline at end of file + From e1249b9d6fcf5557e0b5d10b57b99388ca563372 Mon Sep 17 00:00:00 2001 From: Lorenzo Perisse <125944885+LorenzoPerisse@users.noreply.github.com> Date: Wed, 11 Mar 2026 16:40:18 +0900 Subject: [PATCH 06/15] Update README.md --- README.md | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/README.md b/README.md index f5386b2..ca79416 100644 --- a/README.md +++ b/README.md @@ -79,14 +79,7 @@ $ ./AnalyzeWSHierarchy -i wcrim.root -o plots.root -s 0 -e 1000 -v $ ./ProducePDF -i plots.root -o PDF.root ``` -<<<<<<< HEAD -PathesREADME.md to PDF files required as inputs for LEAF are hard-coded inside leaf/LeafSplines.cc, inside the LoadSplines() methods. -Make sure these pathes are consistant with the files you generate on your own. - - - -======= Pathes to PDF files required as inputs for LEAF are hard-coded inside leaf/LeafSplines.cc, inside the LoadSplines() methods. Make sure these pathes are consistant with the files you generate on your own. ->>>>>>> 6c738c91a8be639f138e7765a9fe559a05cd35c3 + From bfdd2ff7df458a3e675bc16e964dbd6856dda6ae Mon Sep 17 00:00:00 2001 From: Guillaume Pronost Date: Thu, 12 Mar 2026 15:45:34 +0900 Subject: [PATCH 07/15] Change extension to match hk policies --- example/{analysis.h => analysis.hpp} | 15 +++++++++------ leaf/{HKManager.cc => HKManager.cpp} | 2 +- leaf/{HKManager.hh => HKManager.hpp} | 0 leaf/{LEAF.cc => LEAF.cpp} | 4 ++-- leaf/{LEAF.hh => LEAF.hpp} | 12 ++++++------ leaf/{LeafConfig.cc => LeafConfig.cpp} | 2 +- leaf/{LeafConfig.hh => LeafConfig.hpp} | 0 leaf/{LeafDefinitions.hh => LeafDefinitions.hpp} | 0 leaf/{LeafInputs.cc => LeafInputs.cpp} | 2 +- leaf/{LeafInputs.hh => LeafInputs.hpp} | 2 +- leaf/{LeafSplines.cc => LeafSplines.cpp} | 2 +- leaf/{LeafSplines.hh => LeafSplines.hpp} | 2 +- leaf/{LeafUtility.cc => LeafUtility.cpp} | 2 +- leaf/{LeafUtility.hh => LeafUtility.hpp} | 6 +++--- leaf/{Likelihoods.cc => Likelihoods.cpp} | 4 ++-- leaf/{Likelihoods.hh => Likelihoods.hpp} | 8 ++++---- 16 files changed, 33 insertions(+), 30 deletions(-) rename example/{analysis.h => analysis.hpp} (95%) rename leaf/{HKManager.cc => HKManager.cpp} (99%) rename leaf/{HKManager.hh => HKManager.hpp} (100%) rename leaf/{LEAF.cc => LEAF.cpp} (99%) rename leaf/{LEAF.hh => LEAF.hpp} (97%) rename leaf/{LeafConfig.cc => LeafConfig.cpp} (99%) rename leaf/{LeafConfig.hh => LeafConfig.hpp} (100%) rename leaf/{LeafDefinitions.hh => LeafDefinitions.hpp} (100%) rename leaf/{LeafInputs.cc => LeafInputs.cpp} (98%) rename leaf/{LeafInputs.hh => LeafInputs.hpp} (97%) rename leaf/{LeafSplines.cc => LeafSplines.cpp} (99%) rename leaf/{LeafSplines.hh => LeafSplines.hpp} (98%) rename leaf/{LeafUtility.cc => LeafUtility.cpp} (99%) rename leaf/{LeafUtility.hh => LeafUtility.hpp} (95%) rename leaf/{Likelihoods.cc => Likelihoods.cpp} (99%) rename leaf/{Likelihoods.hh => Likelihoods.hpp} (95%) diff --git a/example/analysis.h b/example/analysis.hpp similarity index 95% rename from example/analysis.h rename to example/analysis.hpp index 37c09c3..0749d7a 100644 --- a/example/analysis.h +++ b/example/analysis.hpp @@ -24,9 +24,9 @@ #include "WCSimRootGeom.hh" #include "WCSimEnumerations.hh" -#include "LEAF.hh" -#include "LeafDefinitions.hh" -#include "HKManager.hh" +#include "LEAF.hpp" +#include "LeafDefinitions.hpp" +#include "HKManager.hpp" #define OLD_WCSIM // To be used if WCSim version is older than 1.8 (i.e. without multi vertex) // #define mPMT // To be used if you are using mPMT @@ -56,6 +56,8 @@ std::vector true_origin_Z; // True origin vertex (cm) std::vector true_origin_T; // True origin vertex (ns) std::vector trueDir; std::vector trueVertex; +double trueEnergy; + double dWall =0; double toWall =0; int digithit_num; // Number of digit hit @@ -111,6 +113,7 @@ std::vector hit_residual; // List of residual times //* Computation Times FitterOutputProps fOutputProps; +FitterOutput fOutputFitter; double fLFTime; //* Other hits infos @@ -157,8 +160,8 @@ int bsnhit[1]; struct arguments { - char * inputFile = NULL; - char * outputFile = NULL; + std::string inputFile = ""; + std::string outputFile = ""; double darkNoise = 4.2; // Dark noise frequency in Hz double darkNoiseH = 0.; // Dark noise frequency in Hz when using the hybrid geometry double timeshift = 0.; // Shift hit time @@ -181,7 +184,7 @@ struct FitterAnalysis //-----------------------------------------------------------------------------------------// -void SetCustomBranch(TTree *fPrimaryTree, FitterOutput leaf_output); +void SetCustomBranch(TTree *fPrimaryTree); void SetCustomBranchInput(TTree *fPrimaryTree); void SetGeoBranch(TTree *fGeoTree); bool AnalyseEvent(WCSimRootEvent *tEvent, int iEventType); diff --git a/leaf/HKManager.cc b/leaf/HKManager.cpp similarity index 99% rename from leaf/HKManager.cc rename to leaf/HKManager.cpp index 1795c4c..cc6d770 100644 --- a/leaf/HKManager.cc +++ b/leaf/HKManager.cpp @@ -5,7 +5,7 @@ /** Desc: Manage fitter and PMT hits for HK analysis **/ /*********************************************************************************/ -#include "HKManager.hh" +#include "HKManager.hpp" HKManager* HKManager::myManager=NULL; diff --git a/leaf/HKManager.hh b/leaf/HKManager.hpp similarity index 100% rename from leaf/HKManager.hh rename to leaf/HKManager.hpp diff --git a/leaf/LEAF.cc b/leaf/LEAF.cpp similarity index 99% rename from leaf/LEAF.cc rename to leaf/LEAF.cpp index e1def24..60b0b7d 100644 --- a/leaf/LEAF.cc +++ b/leaf/LEAF.cpp @@ -6,8 +6,8 @@ /** Desc: Low-E Fitter for Hyper-K **/ /*****************************************************************************************************/ -#include "LEAF.hh" -#include "TStopwatch.h" +#include "LEAF.hpp" +#include LEAF *LEAF::myFitter = NULL; std::mutex mtx; diff --git a/leaf/LEAF.hh b/leaf/LEAF.hpp similarity index 97% rename from leaf/LEAF.hh rename to leaf/LEAF.hpp index 6d1f268..ea47c6a 100644 --- a/leaf/LEAF.hh +++ b/leaf/LEAF.hpp @@ -64,12 +64,12 @@ #include "HitCollection.h" //* LEAF Headers -#include "Likelihoods.hh" -#include "LeafInputs.hh" -#include "LeafConfig.hh" -#include "LeafSplines.hh" -#include "LeafUtility.hh" -#include "LeafDefinitions.hh" +#include "Likelihoods.hpp" +#include "LeafInputs.hpp" +#include "LeafConfig.hpp" +#include "LeafSplines.hpp" +#include "LeafUtility.hpp" +#include "LeafDefinitions.hpp" diff --git a/leaf/LeafConfig.cc b/leaf/LeafConfig.cpp similarity index 99% rename from leaf/LeafConfig.cc rename to leaf/LeafConfig.cpp index 8e1d58f..51eb973 100644 --- a/leaf/LeafConfig.cc +++ b/leaf/LeafConfig.cpp @@ -1,4 +1,4 @@ -#include "LeafConfig.hh" +#include "LeafConfig.hpp" //* Geometry & Constants double fTankRadius; diff --git a/leaf/LeafConfig.hh b/leaf/LeafConfig.hpp similarity index 100% rename from leaf/LeafConfig.hh rename to leaf/LeafConfig.hpp diff --git a/leaf/LeafDefinitions.hh b/leaf/LeafDefinitions.hpp similarity index 100% rename from leaf/LeafDefinitions.hh rename to leaf/LeafDefinitions.hpp diff --git a/leaf/LeafInputs.cc b/leaf/LeafInputs.cpp similarity index 98% rename from leaf/LeafInputs.cc rename to leaf/LeafInputs.cpp index 74b9beb..f233c7e 100644 --- a/leaf/LeafInputs.cc +++ b/leaf/LeafInputs.cpp @@ -1,4 +1,4 @@ -#include "LeafInputs.hh" +#include "LeafInputs.hpp" const Geometry* fGeometry; diff --git a/leaf/LeafInputs.hh b/leaf/LeafInputs.hpp similarity index 97% rename from leaf/LeafInputs.hh rename to leaf/LeafInputs.hpp index a9643fd..6b14ca1 100644 --- a/leaf/LeafInputs.hh +++ b/leaf/LeafInputs.hpp @@ -15,7 +15,7 @@ #include "WCSimRootGeom.hh" #include "Geometry.h" #include "HitCollection.h" -#include "LeafConfig.hh" +#include "LeafConfig.hpp" extern const Geometry* fGeometry; extern const HitCollection* fHitCollection; diff --git a/leaf/LeafSplines.cc b/leaf/LeafSplines.cpp similarity index 99% rename from leaf/LeafSplines.cc rename to leaf/LeafSplines.cpp index 01df1b5..aa7934b 100644 --- a/leaf/LeafSplines.cc +++ b/leaf/LeafSplines.cpp @@ -1,4 +1,4 @@ -#include "LeafSplines.hh" +#include "LeafSplines.hpp" TSpline3 * fSplineTimePDFConv[NPMT_CONFIGURATION]; TSpline3 * fSplineTimePDFQueue[NPMT_CONFIGURATION]; diff --git a/leaf/LeafSplines.hh b/leaf/LeafSplines.hpp similarity index 98% rename from leaf/LeafSplines.hh rename to leaf/LeafSplines.hpp index 8717e26..7a9bb30 100644 --- a/leaf/LeafSplines.hh +++ b/leaf/LeafSplines.hpp @@ -25,7 +25,7 @@ #include "WCSimRootGeom.hh" #include "Geometry.h" #include "HitCollection.h" -#include "LeafInputs.hh" +#include "LeafInputs.hpp" struct EventInfo diff --git a/leaf/LeafUtility.cc b/leaf/LeafUtility.cpp similarity index 99% rename from leaf/LeafUtility.cc rename to leaf/LeafUtility.cpp index cc2be55..572048a 100644 --- a/leaf/LeafUtility.cc +++ b/leaf/LeafUtility.cpp @@ -1,4 +1,4 @@ -#include "LeafUtility.hh" +#include "LeafUtility.hpp" bool ContainsTrueVtx(std::vector* candidates, std::vector fTrueVtxPos) { diff --git a/leaf/LeafUtility.hh b/leaf/LeafUtility.hpp similarity index 95% rename from leaf/LeafUtility.hh rename to leaf/LeafUtility.hpp index 444de27..2413d54 100644 --- a/leaf/LeafUtility.hh +++ b/leaf/LeafUtility.hpp @@ -10,9 +10,9 @@ //* DataModel informations #include "Geometry.h" #include "HitCollection.h" -#include "LeafConfig.hh" -#include "LeafInputs.hh" -#include "LeafDefinitions.hh" +#include "LeafConfig.hpp" +#include "LeafInputs.hpp" +#include "LeafDefinitions.hpp" inline bool SortOutputVector ( const std::vector& v1, const std::vector& v2 ) { diff --git a/leaf/Likelihoods.cc b/leaf/Likelihoods.cpp similarity index 99% rename from leaf/Likelihoods.cc rename to leaf/Likelihoods.cpp index 3a4e4e5..087e824 100644 --- a/leaf/Likelihoods.cc +++ b/leaf/Likelihoods.cpp @@ -1,5 +1,5 @@ -#include "Likelihoods.hh" -#include "LeafInputs.hh" +#include "Likelihoods.hpp" +#include "LeafInputs.hpp" //Function to optimize, for MIGRAD void MinuitLikelihood(int & /*nDim*/, double * /*gout*/, double &NLL, double par[], int /*flg*/) diff --git a/leaf/Likelihoods.hh b/leaf/Likelihoods.hpp similarity index 95% rename from leaf/Likelihoods.hh rename to leaf/Likelihoods.hpp index 5401596..30293a5 100644 --- a/leaf/Likelihoods.hh +++ b/leaf/Likelihoods.hpp @@ -15,10 +15,10 @@ #include "WCSimRootGeom.hh" #include "Geometry.h" #include "HitCollection.h" -#include "LeafInputs.hh" -#include "LeafSplines.hh" -#include "LeafUtility.hh" -#include "LeafDefinitions.hh" +#include "LeafInputs.hpp" +#include "LeafSplines.hpp" +#include "LeafUtility.hpp" +#include "LeafDefinitions.hpp" void MinuitDirNLL(int& nDim, double* gout, double& NLL, double* par, int flg); void MinuitLikelihood(int& nDim, double * gout, double & NLL, double par[], int flg); From 9d464847cd94ab306f2cd6e563b656880984c2d8 Mon Sep 17 00:00:00 2001 From: Guillaume Pronost Date: Thu, 12 Mar 2026 15:46:07 +0900 Subject: [PATCH 08/15] Update GNUmakefile and README --- README.md | 8 +++----- example/GNUmakefile | 13 ++++--------- leaf/GNUmakefile | 28 ++++++++++++---------------- 3 files changed, 19 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index ca79416..ecc3ae9 100644 --- a/README.md +++ b/README.md @@ -51,11 +51,9 @@ $ ln -s /path/to/your/WCSim/lib/libWCSimRoot.so.1.12.xx libWCSimRoot.so.1.12.xx $ cd /path/to/the/cloned/repository/LEAF $ source ./RunAtStart.sh ``` -3. Run the script ./SetupDataModel.sh to define the DataModel (if you have hk-AstroAnalysis, you should setup the global variable) -4. Enter the leaf/ repository and `make clean; make` -5. Enter the example/ repository and `make clean; make` -6. One example of how to run the code is set in example: test_example.sh - +3. Enter the leaf/ repository and `make clean; make` +4. Enter the example/ repository and `make clean; make` +5. One example of how to run the code is set in example: test_example.sh # TUNING FILES diff --git a/example/GNUmakefile b/example/GNUmakefile index ede518e..f811178 100644 --- a/example/GNUmakefile +++ b/example/GNUmakefile @@ -10,14 +10,14 @@ CXXFLAGS += $(shell root-config --cflags) CXXFLAGS += '-fPIC' -std=c++11 -Wall -Wpedantic -Wno-long-long INCFLAGS = -I. -I$(shell root-config --incdir) -INCFLAGS += -I$(WCSIM_BUILD_DIR)/include/WCSim +INCFLAGS += -I$(LEAFDIR)/libWCSIM/include # INCFLAGS += -I$(WCSIMDIR)/include # INCFLAGS += -I$(BONSAIDIR)/bonsai INCFLAGS += -I$(LEAFDIR)/leaf -INCFLAGS += -I$(LEAFDIR)/leaf/DataModel +INCFLAGS += -I$(LEAFDIR)/leaf/DataModel-lite # LIBS += -L${WCSIMDIR} -lWCSimRoot -LIBS += -L${WCSIM_BUILD_DIR}/lib -lWCSimRoot +LIBS += -L$(LEAFDIR)/libWCSIM -lWCSimRoot LIBS += $(shell root-config --libs) -lMinuit # LIBS_BONSAI += -L${BONSAIDIR} -lWCSimBonsai LIBS_LEAF += -L${LEAFDIR}/lib -lDataModelLite -lHKManager -lLEAF #-lHKAstroAnalysis @@ -39,15 +39,10 @@ analysis: analysis.o @echo '<< compiling' $< '>>' @$(CXX) $(CXXFLAGS) $(INCFLAGS) -c $< -%.o: %.cc %.hh +%.o: %.cpp %.hpp @echo '<< compiling' $< '>>' @$(CXX) $(CXXFLAGS) $(INCFLAGS) -c -o $@ $< -%.o: %.cpp - @echo '<< compiling' $< '>>' - @$(CXX) $(CXXFLAGS) $(INCFLAGS) -c -o $@ $< - - %.o: %.C %.h @echo '<< compiling' $< '>>' @$(CXX) $(CXXFLAGS) $(INCFLAGS) -c -o $@ $< diff --git a/leaf/GNUmakefile b/leaf/GNUmakefile index 9d72a20..f4a316e 100755 --- a/leaf/GNUmakefile +++ b/leaf/GNUmakefile @@ -3,8 +3,8 @@ OSNAME = $(shell uname -s) HOST = $(shell uname -n) OSNAMEMODE = $(OSNAME) -SOURCES = LEAF.cc -HEADERS = LEAF.hh +SOURCES = LEAF.cpp +HEADERS = LEAF.hpp include ../Makefile/Makefile.${OSNAME} @@ -14,23 +14,20 @@ include ../Makefile/Makefile.${OSNAME} CXXFLAGS_BASE += $(shell root-config --cflags) CXXFLAGS_BASE += '-fPIC' -Wall -Wpedantic -Wno-long-long -DDATAMODEL_LITE -CXXFLAGS = $(CXXFLAGS_BASE) +CXXFLAGS = $(CXXFLAGS_BASE) -std=c++17 ROOT_VERSION = $(shell root-config --version | cut -d'.' -f1,2) ifeq ($(shell echo "$(ROOT_VERSION) >= 6.0" | bc -l), 1) -MAKE_LEAF_WITH_ROOT6 = 1 -CXXFLAGS += -std=c++17 -DROOT6 # modifies to c++17 (Nicolas) -#CXXFLAGS_ROOT += -std=c++11 -DROOT6 -else -CXXFLAGS += -std=c++17 -DROOT5 + HK_USE_ROOT7 = 1 + CXXFLAGS += -DHK_USE_ROOT7 endif INCFLAGS = -I. -I$(shell root-config --incdir) -INCFLAGS += -I$(WCSIM_BUILD_DIR)/include/WCSim -INCFLAGS += -I./DataModel +INCFLAGS += -I../libWCSIM/include +INCFLAGS += -I./DataModel-lite -LIBS += -L${WCSIM_BUILD_DIR}/lib -lWCSimRoot +LIBS += -L../libWCSIM -lWCSimRoot LIBS += $(shell root-config --libs) -lMinuit LIB_DATAMODEL = ../lib/libDataModelLite.so @@ -50,10 +47,10 @@ DATAMODEL_OBJECTS = $(DATAMODEL_SRC_NOP:%.cpp=%.o) #DataModelRootDict.o all: .depend ROOT_CHECK $(LIBS_OBJECTS) ROOT_CHECK: -ifeq ($(MAKE_LEAF_WITH_ROOT6),1) - @echo '<< compile with ROOT6 >>' +ifeq ($(HK_USE_ROOT7),1) + @echo '<< compile with ROOT7 >>' else - @echo '<< compile with ROOT5 >>' + @echo '<< compile with old ROOT >>' @echo $(DATAMODEL_SOURCES) endif @@ -102,10 +99,9 @@ $(LIB_DATAMODEL): $(DATAMODEL_OBJECTS) @echo '<< compiling' $< '>>' @$(CXX) $(CXXFLAGS) $(INCFLAGS) -c -o $@ $< -%.o: %.cpp +%.o: %.cpp %.hpp @echo '<< compiling' $< '>>' @$(CXX) $(CXXFLAGS) $(INCFLAGS) -c -o $@ $< - %.o: %.C %.h @echo '<< compiling' $< '>>' From 7320ba8e897e0e3cb59b6a7b83308ab2024559ce Mon Sep 17 00:00:00 2001 From: Guillaume Pronost Date: Thu, 12 Mar 2026 15:46:30 +0900 Subject: [PATCH 09/15] Update define check in TimeDelta --- leaf/DataModel-lite/TimeDelta.cpp | 2 +- leaf/DataModel-lite/TimeDelta.h | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/leaf/DataModel-lite/TimeDelta.cpp b/leaf/DataModel-lite/TimeDelta.cpp index 88ba399..6a798d8 100644 --- a/leaf/DataModel-lite/TimeDelta.cpp +++ b/leaf/DataModel-lite/TimeDelta.cpp @@ -1,7 +1,7 @@ #include #include "TimeDelta.h" -#ifdef ROOT5 +#ifndef HK_USE_ROOT7 const double TimeDelta::s_long_time_unit = 1.; #endif diff --git a/leaf/DataModel-lite/TimeDelta.h b/leaf/DataModel-lite/TimeDelta.h index 0745ffd..9a3aa12 100644 --- a/leaf/DataModel-lite/TimeDelta.h +++ b/leaf/DataModel-lite/TimeDelta.h @@ -28,13 +28,13 @@ class TimeDelta { public: /// Default constructor (sets all times to 0) TimeDelta() : m_short_time(0), m_long_time(0){}; - #ifndef ROOT5 + #ifdef HK_USE_ROOT7 /// Copy constructor (just copies all member variables) TimeDelta(const TimeDelta&) = default; - #else + #else /// Copy constructor (just copies all member variables) TimeDelta(const TimeDelta& a) { m_short_time = a.m_short_time; m_long_time = a.m_long_time; } - #endif + #endif /// Constructor from naive floating point value (in ns) TimeDelta(double naive_ns); @@ -50,12 +50,12 @@ class TimeDelta { /// Member for long time delta long_time_t m_long_time; - #ifndef ROOT5 + #ifdef HK_USE_ROOT7 /// Relative unit of long time member, i.e. long_unit / short_unit, both ns so = 1. static constexpr double s_long_time_unit = 1.; - #else + #else static const double s_long_time_unit; - #endif + #endif /// Ensure that the time difference stored in m_short_time is small and positive. void Normalize(); From bfe126230bfaa5476082c3c5de9ccfacbfce84aa Mon Sep 17 00:00:00 2001 From: Guillaume Pronost Date: Thu, 12 Mar 2026 15:46:46 +0900 Subject: [PATCH 10/15] Update libWCSim ignore --- libWCSIM/.gitignore | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libWCSIM/.gitignore b/libWCSIM/.gitignore index 7c6ea7d..63f5566 100644 --- a/libWCSIM/.gitignore +++ b/libWCSIM/.gitignore @@ -1,4 +1,4 @@ */ -./include -./src -./libWCSim* +include +src +libWCSim* From 74926977faf309513e3d15dd4cb088ec6b416f12 Mon Sep 17 00:00:00 2001 From: Guillaume Pronost Date: Thu, 12 Mar 2026 15:47:04 +0900 Subject: [PATCH 11/15] Fix bug --- example/analysis.cpp | 50 ++++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/example/analysis.cpp b/example/analysis.cpp index ccf8916..4f6e8be 100644 --- a/example/analysis.cpp +++ b/example/analysis.cpp @@ -5,7 +5,7 @@ /** Desc: Example application code for Benjamin's Low-E Fitter for Hyper-K **/ /*********************************************************************************/ -#include "analysis.h" +#include "analysis.hpp" //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -28,7 +28,7 @@ double GetResidualTime(const std::vector& origin, double originTime, WCS return hitTime - tof - originTime; } -arguments FetchInput(int argc, char* argv[]) +arguments FetchInput(int argc, char** argv) { int c = -1; arguments arglist; @@ -49,7 +49,7 @@ arguments FetchInput(int argc, char* argv[]) //Output file name case 'o': arglist.outputFile = optarg; - if(arglist.outputFile == NULL){sprintf(arglist.outputFile,"out.txt");} + if(arglist.outputFile == ""){ arglist.outputFile = "out.txt";} std::cout << "Output root file: " << arglist.outputFile << std::endl; break; @@ -69,14 +69,14 @@ arguments FetchInput(int argc, char* argv[]) //Starting event case 's': arglist.startEvent = atoi(optarg); - if(arglist.startEvent == NULL || arglist.startEvent < 0){arglist.startEvent = 0;} + if(arglist.startEvent < 0){arglist.startEvent = 0;} std::cout << "Starting event #" << arglist.startEvent << std::endl; break; //Ending event case 'e': arglist.endEvent = atoi(optarg); - if(arglist.endEvent == NULL){arglist.endEvent = 0;} + if(arglist.endEvent < 0){arglist.endEvent = 0;} if(arglist.endEvent >= arglist.startEvent){std::cout << "Ending event #" << arglist.endEvent << std::endl;} if(arglist.endEvent < arglist.startEvent){std::cout << "Ending event = last WCSim event" << std::endl;} break; @@ -151,8 +151,7 @@ int main(int argc, char **argv) TTree *fGeoTree = new TTree("wcsimGeoT", "Geometry TTree"); TTree *fPrimaryTree = new TTree("Reduced", "Reduced TTree"); fGeoTree->Branch("wcsimrootgeom", fLeafGeometry); - FitterOutput leaf_output; - SetCustomBranch(fPrimaryTree, leaf_output); + SetCustomBranch(fPrimaryTree); fGeoTree->Fill(); // Get PMT Number: @@ -353,9 +352,9 @@ int main(int argc, char **argv) // To be replaced by meaningful TriggerTime TimeDelta fDummyTrigger(0.); - leaf_output = LEAF::GetME()->MakeSequentialFit(HKManager::GetME()->GetHitCollection(), fDummyTrigger); + fOutputFitter = LEAF::GetME()->MakeSequentialFit(HKManager::GetME()->GetHitCollection(), fDummyTrigger); // the fit method can be replaced by a joint fit (doesn't work better for now) - // leaf_output = LEAF::GetME()->MakeJointFit(HKManager::GetME()->GetHitCollection(), fDummyTrigger); + // fOutputFitter = LEAF::GetME()->MakeJointFit(HKManager::GetME()->GetHitCollection(), fDummyTrigger); fOutputProps = LEAF::fOutputProps; timerLF.Stop(); @@ -377,15 +376,15 @@ int main(int argc, char **argv) << " // direction: (" << trueDir[0] << ", " << trueDir[1] << ", " << trueDir[2] - << " // energy: " << true_energy << std::endl; - std::cout << " LEAF vertex: (" << fOutput.Vtx[0] - << ", " << fOutput.Vtx[1] - << ", " << fOutput.Vtx[2] - << ", " << fOutput.Vtx[3] << ") [cm/cm/cm/ns]" < - << " // direction: (" << fOutput.Dir[0] - << ", " << fOutput.Dir[1] - << ", " << fOutput.Dir[2] - << " // energy: " << fOutput.Energy << std::endl; + << " // energy: " << trueEnergy << std::endl; + std::cout << " LEAF vertex: (" << fOutputFitter.Vtx[0] + << ", " << fOutputFitter.Vtx[1] + << ", " << fOutputFitter.Vtx[2] + << ", " << fOutputFitter.Vtx[3] << ") [cm/cm/cm/ns]" + << " // direction: (" << fOutputFitter.Dir[0] + << ", " << fOutputFitter.Dir[1] + << ", " << fOutputFitter.Dir[2] + << " // energy: " << fOutputFitter.Energy << std::endl; } /****************************************************************************************/ @@ -410,7 +409,7 @@ int main(int argc, char **argv) //* All the variables that will be kept in the output Tree -void SetCustomBranch(TTree *fPrimaryTree, FitterOutput leaf_output) +void SetCustomBranch(TTree *fPrimaryTree) { fPrimaryTree->Branch("eventId", &eventId, "eventId/I"); fPrimaryTree->Branch("nTrigger", &nTrigger, "nTrigger/I"); @@ -438,14 +437,14 @@ void SetCustomBranch(TTree *fPrimaryTree, FitterOutput leaf_output) fPrimaryTree->Branch("mPMT_hits_400", &Hit_mPMT_400, "Hit_mPMT_400/I"); fPrimaryTree->Branch("lf_vertex", &leaf_Vertex); - fPrimaryTree->Branch("lf_NLL", &leaf_output.NLL, "lf_NLL/D"); - fPrimaryTree->Branch("lf_good", &leaf_output.NLLR, "lf_good/D"); + fPrimaryTree->Branch("lf_NLL", &fOutputFitter.NLL, "lf_NLL/D"); + fPrimaryTree->Branch("lf_good", &fOutputFitter.NLLR, "lf_good/D"); fPrimaryTree->Branch("lf_ctime", &fLFTime, "lf_ctime/D"); // Computation time - fPrimaryTree->Branch("lf_energy", &leaf_output.Energy, "lf_energy/D"); + fPrimaryTree->Branch("lf_energy", &fOutputFitter.Energy, "lf_energy/D"); fPrimaryTree->Branch("lf_Dir", &leaf_Dir); fPrimaryTree->Branch("lf_MyDir", &leaf_MyDir); fPrimaryTree->Branch("lf_Quick_Dir", &leaf_QuickDir); - fPrimaryTree->Branch("lf_Dir_NLL", &leaf_output.DNLL, "lf_Dir_NLL/D"); + fPrimaryTree->Branch("lf_Dir_NLL", &fOutputFitter.DNLL, "lf_Dir_NLL/D"); fPrimaryTree->Branch("lf_ComputeTime", &fOutputProps.Leaf_ComputeTime, "Leaf_ComputeTime/D"); fPrimaryTree->Branch("lf_Vtx_Search_ComputeTime", &fOutputProps.Vtx_Search_ComputeTime, "Vtx_Search_ComputeTime/D"); fPrimaryTree->Branch("lf_Vtx_Minimize_ComputeTime", &fOutputProps.Vtx_Minimize_ComputeTime, "Vtx_Minimize_ComputeTime/D"); @@ -455,7 +454,7 @@ void SetCustomBranch(TTree *fPrimaryTree, FitterOutput leaf_output) fPrimaryTree->Branch("lf_Energy_Fit_ComputeTime", &fOutputProps.Energy_Fit_ComputeTime, "Energy_Fit_ComputeTime/D"); fPrimaryTree->Branch("rawTriggerTime", &rawTriggerTime, "rawTriggerTime/D"); - fPrimaryTree->Branch("TotalCharge", &leaf_output.TotalCharge, "TotalCharge/D"); + fPrimaryTree->Branch("TotalCharge", &fOutputFitter.TotalCharge, "TotalCharge/D"); fPrimaryTree->Branch("DigiHitT", &digithit_T); fPrimaryTree->Branch("CorrectedDigiHitT", &correctedDigithit_T); @@ -552,7 +551,8 @@ bool AnalyseEvent(WCSimRootEvent *tEvent, int iEventType) for(int j=0; j<3; j++) trueDir[j] = wcTrack->GetPdir(j); Normalize(trueDir); } - + + trueEnergy = wcTrack->GetE(); true_particleId.push_back(wcTrack->GetIpnu()); true_energy.push_back(wcTrack->GetE()); true_origin_T.push_back(fRootTrigger->GetVtx(3)); From b6dd49b0bdc071c962020b7564ecafbff1f58f91 Mon Sep 17 00:00:00 2001 From: Guillaume Pronost Date: Thu, 12 Mar 2026 15:57:57 +0900 Subject: [PATCH 12/15] Cleanup (remove AstroAnalysis reference, remove binary) --- README.md | 2 -- SetupDataModel.sh | 16 ---------- example/GNUmakefile | 14 ++++----- example/GNUmakefile_nobonsai | 56 ----------------------------------- example/analysis | Bin 564896 -> 0 bytes leaf/GNUmakefile | 18 ++++------- 6 files changed, 10 insertions(+), 96 deletions(-) delete mode 100755 SetupDataModel.sh delete mode 100644 example/GNUmakefile_nobonsai delete mode 100755 example/analysis diff --git a/README.md b/README.md index ecc3ae9..7ccbdbf 100644 --- a/README.md +++ b/README.md @@ -24,8 +24,6 @@ Then make sure the following pre-requisites are installed. 1. ROOT v5r34 or superior (not tested for older versions, but might work). 2. WCSim version compatible with your ROOT version. 3. BONSAI installation (although LEAF can work without it). -4. HKAstroAnalysis class is private and can be downloaded by SK collaborators on sukap cluster (although LEAF can work without it). - # COMPATIBILITY diff --git a/SetupDataModel.sh b/SetupDataModel.sh deleted file mode 100755 index 55ccbe6..0000000 --- a/SetupDataModel.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash - -if [ ! -z ./leaf/DataModel ]; then - echo "Remove previous link" - rm ./leaf/DataModel -fi - -if [ "$HK_ASTROANALYSIS_DIR" == "" ] || [ -z $HK_ASTROANALYSIS_DIR ]; then - echo "HK_ASTROANALYSIS_DIR is not defined or doesn't exist ($HK_ASTROANALYSIS_DIR). Will use lite DataModel." - ln -s ${PWD}/leaf/DataModel-lite ./leaf/DataModel -else - echo "HK_ASTROANALYSIS_DIR was found to be: $HK_ASTROANALYSIS_DIR its DataModel will be used" - ln -s $HK_ASTROANALYSIS_DIR/DataModelRoot ./leaf/DataModel -fi - - diff --git a/example/GNUmakefile b/example/GNUmakefile index f811178..a94d71e 100644 --- a/example/GNUmakefile +++ b/example/GNUmakefile @@ -7,12 +7,11 @@ include ../Makefile/Makefile.${OSNAME} # set compiler options for ROOT CXXFLAGS += $(shell root-config --cflags) -CXXFLAGS += '-fPIC' -std=c++11 -Wall -Wpedantic -Wno-long-long +CXXFLAGS += -fPIC -std=c++17 -Wall -Wpedantic -Wno-long-long -INCFLAGS = -I. -I$(shell root-config --incdir) +INCFLAGS = -I. +#INCFLAGS += -I$(shell root-config --incdir) #included in --cflags INCFLAGS += -I$(LEAFDIR)/libWCSIM/include -# INCFLAGS += -I$(WCSIMDIR)/include -# INCFLAGS += -I$(BONSAIDIR)/bonsai INCFLAGS += -I$(LEAFDIR)/leaf INCFLAGS += -I$(LEAFDIR)/leaf/DataModel-lite @@ -25,15 +24,12 @@ LIBS_LEAF += -L${LEAFDIR}/lib -lDataModelLite -lHKManager -lLEAF #-lHKAstroAnaly OBJECT = analysis -CXXFLAGS += -std=c++17 - all: $(OBJECT) analysis: analysis.o @echo '<< compiling bin analysis >>' - @$(CXX) -g $(CXXFLAGS) -o $@ $^ $(LIBS) $(LIBS_BONSAI) $(LIBS_LEAF) - - + @$(CXX) -g $(CXXFLAGS) -o $@ $^ $(LIBS) $(LIBS_LEAF) + # default rules .cc.o: @echo '<< compiling' $< '>>' diff --git a/example/GNUmakefile_nobonsai b/example/GNUmakefile_nobonsai deleted file mode 100644 index 888ec1b..0000000 --- a/example/GNUmakefile_nobonsai +++ /dev/null @@ -1,56 +0,0 @@ -# Makefile by Guillaume Pronost for LEAF example @ 2020/02/09 - -OSNAME = $(shell uname -s) - -include ../Makefile/Makefile.${OSNAME} - - -# set compiler options for ROOT -CXXFLAGS += $(shell root-config --cflags) -CXXFLAGS += '-fPIC' -std=c++11 -Wall -Wpedantic -Wno-long-long - -INCFLAGS = -I. -I$(shell root-config --incdir) -INCFLAGS += -I$(WCSIMDIR)/include -INCFLAGS += -I$(LEAFDIR)/leaf -INCFLAGS += -I$(LEAFDIR)/leaf/DataModel - -LIBS += -L${WCSIMDIR} -lWCSimRoot -LIBS += $(shell root-config --libs) -lMinuit -LIBS_LEAF += -L${LEAFDIR}/lib -lDataModelLite -lHKManager -lLEAF #-lHKAstroAnalysis - - -OBJECT = analysis - -all: $(OBJECT) - -analysis: analysis.o - @echo '<< compiling bin analysis >>' - @$(CXX) -g $(CXXFLAGS) -o $@ $^ $(LIBS) $(LIBS_LEAF) - - -# default rules -.cc.o: - @echo '<< compiling' $< '>>' - @$(CXX) $(CXXFLAGS) $(INCFLAGS) -c $< - -%.o: %.cc %.hh - @echo '<< compiling' $< '>>' - @$(CXX) $(CXXFLAGS) $(INCFLAGS) -c -o $@ $< - -%.o: %.cpp - @echo '<< compiling' $< '>>' - @$(CXX) $(CXXFLAGS) $(INCFLAGS) -c -o $@ $< - - -%.o: %.C %.h - @echo '<< compiling' $< '>>' - @$(CXX) $(CXXFLAGS) $(INCFLAGS) -c -o $@ $< - -# cleaner -clean: - @echo '<< cleaning >>' - @rm -f ./*.o - @rm -f ./lib*.so - @rm -f ./bin/* - @rm -f $(OBJECT) - diff --git a/example/analysis b/example/analysis deleted file mode 100755 index df9c8d53341c7810349dab25cc04fc63ee74dbee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 564896 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 P{>IB?{s)~54$1x>J2cMz diff --git a/leaf/GNUmakefile b/leaf/GNUmakefile index f4a316e..4afc96d 100755 --- a/leaf/GNUmakefile +++ b/leaf/GNUmakefile @@ -33,12 +33,11 @@ LIBS += $(shell root-config --libs) -lMinuit LIB_DATAMODEL = ../lib/libDataModelLite.so LIB_MANAGER = ../lib/libHKManager.so LIB_FITTER = ../lib/libLEAF.so -LIB_ASTROANALYSIS = ../lib/libHKAstroAnalysis.so -LIBS_OBJECTS = $(LIB_DATAMODEL) $(LIB_MANAGER) $(LIB_FITTER) #$(LIB_ASTROANALYSIS) +LIBS_OBJECTS = $(LIB_DATAMODEL) $(LIB_MANAGER) $(LIB_FITTER) -DATAMODEL_SOURCES = $(filter-out DataModel/DataModelRootDict.cpp, $(wildcard DataModel/*.cpp)) -DATAMODEL_SRC_NOP = $(DATAMODEL_SOURCES:DataModel/%=./%) +DATAMODEL_SOURCES = $(filter-out DataModel-lite/DataModelRootDict.cpp, $(wildcard DataModel-lite/*.cpp)) +DATAMODEL_SRC_NOP = $(DATAMODEL_SOURCES:DataModel-lite/%=./%) DATAMODEL_HEADERS = $(DATAMODEL_SOURCES:%.cpp=%.h) DATAMODEL_OBJECTS = $(DATAMODEL_SRC_NOP:%.cpp=%.o) #DataModelRootDict.o @@ -69,14 +68,7 @@ $(LIB_MANAGER): HKManager.o mkdir ../lib; \ fi @$(SOMAKER) $(SOFLAGS) -o $@ $^ $(LIBS) - -$(LIB_ASTROANALYSIS): HKAstroAnalysis.o - @echo '<< generating ' $@ ' >>' - @if [ ! -d ../lib ]; then \ - mkdir ../lib; \ - fi - @$(SOMAKER) $(SOFLAGS) -o $@ $^ $(LIBS) - + #$(LIB_DATAMODEL): DataModelRootDict.cpp $(DATAMODEL_OBJECTS) $(LIB_DATAMODEL): $(DATAMODEL_OBJECTS) @echo '<< generating ' $@ ' >>' @@ -86,7 +78,7 @@ $(LIB_DATAMODEL): $(DATAMODEL_OBJECTS) @$(SOMAKER) $(SOFLAGS) -o $@ $(DATAMODEL_OBJECTS) $(LIBS) # DataModel objects -%.o: DataModel/%.cpp DataModel/%.h +%.o: DataModel-lite/%.cpp DataModel-lite/%.h @echo '<< compiling DataModel object: ' $@ ' >>' @$(CXX) $(CXXFLAGS) $(INCFLAGS) -c -o $@ $< From 27efedb3352b1736a719e2433065127e49f3876c Mon Sep 17 00:00:00 2001 From: Guillaume Pronost Date: Thu, 12 Mar 2026 15:58:40 +0900 Subject: [PATCH 13/15] Ignore binary --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index bf3a7fc..d922bb8 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ *.swp *.log .depend +example/analysis leaf/DataModelRootDict* leaf/HKAstroAnalysis.* leaf/DataModel From 047818fd019eeb6d66924f670e5e542699d3cfc0 Mon Sep 17 00:00:00 2001 From: lperisse Date: Sun, 15 Mar 2026 13:01:12 +0100 Subject: [PATCH 14/15] Modify macros: ProducePDF now standalone ; AnalyzeWSHierarchy reverse back to LEAF-master version --- README.md | 15 +- macros/AnalyzeWSHierarchy.cpp | 1841 +++++++++++++++++++++++++++------ macros/ProducePDF.cpp | 459 +++++++- 3 files changed, 1985 insertions(+), 330 deletions(-) diff --git a/README.md b/README.md index f5386b2..0235457 100644 --- a/README.md +++ b/README.md @@ -69,24 +69,17 @@ $ make AnalyzeWSHierarchy $ make ProducePDF ``` -2. Produce plots using AnalyzeWSHierarchy which reads out WCSim output. Optionally, you can index a range of events to read with -s (start index) and -e (end index). +2. Produce plots using AnalyzeWSHierarchy which reads out WCSim output. Optionally, you can index a range of events to read with -s (start index) and -e (end index). Use option -h if when using a hybrid HK geometry presenting both PMTs and mPMTs. ``` -$ ./AnalyzeWSHierarchy -i wcrim.root -o plots.root -s 0 -e 1000 -v +$ ./AnalyzeWSHierarchy -i wcsim.root -o plots.root -s 0 -e 1000 -h ``` 3. Produce time PDF and angular PDF using ProducePDF: uses plots made using AnalyzeWSHierarchy and generate PDFs for LEAF. ``` -$ ./ProducePDF -i plots.root -o PDF.root -``` - -<<<<<<< HEAD -PathesREADME.md to PDF files required as inputs for LEAF are hard-coded inside leaf/LeafSplines.cc, inside the LoadSplines() methods. -Make sure these pathes are consistant with the files you generate on your own. - +$ ./ProducePDF -i wcsim.root -o PDF.root -s 0 -e 1000 -v +``` -======= Pathes to PDF files required as inputs for LEAF are hard-coded inside leaf/LeafSplines.cc, inside the LoadSplines() methods. Make sure these pathes are consistant with the files you generate on your own. ->>>>>>> 6c738c91a8be639f138e7765a9fe559a05cd35c3 diff --git a/macros/AnalyzeWSHierarchy.cpp b/macros/AnalyzeWSHierarchy.cpp index fb8df2e..a8bb8ae 100644 --- a/macros/AnalyzeWSHierarchy.cpp +++ b/macros/AnalyzeWSHierarchy.cpp @@ -18,13 +18,12 @@ #include "WCSimRootEvent.hh" #include "WCSimRootGeom.hh" #include "WCSimRootOptions.hh" - -using namespace std; - - -bool separatedTriggers=false; //Assume two independent triggers, one for mPMT, one for B&L -bool produceDirectionPDF=true; -bool thetaOnly=false; +//#define REMOVEMOST +//#define NEUTRONCAPTURE +#define LEAFPDFONLY +bool separatedTriggers=false;//Assume two independent triggers, one for mPMT, one for B&L +bool produceDirectionPDF=true;//false;//true; +bool thetaOnly=false;//true; WCSimRootGeom *geo = 0; bool eventDisplay_closeWall = false; @@ -32,212 +31,787 @@ int stopCounterPlots=0; int nPlotsStopping = 50; int topPMT=19; int nPMTpermPMT=19; - +using namespace std; // Simple example of reading a generated Root file const int nPMTtypes = 2; double PMTradius[nPMTtypes]; -const int nGroupsPMTs = 3; //Different PMT config in an mPMT. I assumed here a rotational symetry of the mPMT, so PMT 1 to 12 are the same, 13 to 18 are the same and 19 is separated +const int nGroupsPMTs=3;//Different PMT config in an mPMT. I assumed here a rotational symetry of the mPMT, so PMT 1 to 12 are the same, 13 to 18 are the same and 19 is separated + +//2D plots +TH2D * ChargeProfile2D[nPMTtypes]; +TH2D * ChargeProfile2D_onlyFront[nPMTtypes]; +TH2D * ChargeProfile2DTop[nPMTtypes]; +TH2D * ChargeProfile2DCylindricCoordinate[nPMTtypes]; +TH2D * ChargeProfile2DRelativeAngle[nPMTtypes]; +TH2D * TimeTOFProfileXTOF[nPMTtypes]; +TH2D * ChargeProfile2D_event[nPMTtypes]; + +//1D plots of charge & hit +TH1D * ChargeProfile[nPMTtypes]; +TH1D * HitProfile[nPMTtypes]; -// TOF residuals +//1D time profiles TH1D * TimeProfile[nPMTtypes]; TH1D * TimeHitProfile[nPMTtypes]; TH1D * TimeTOFProfile[nPMTtypes]; -TH1D * HitTimeTOFProfile[nPMTtypes]; -// Cherenkov angle -TH1D * ChargeProfile[nPMTtypes]; -TH1D * HitProfile[nPMTtypes]; +//Charge per PMT +TH1D * ChargePerPMT[nPMTtypes]; -// Charge +//Total charge TH1D * TotalCharge[nPMTtypes]; TH1D * TotalHit[nPMTtypes]; +TH2D * TotalChargeXdWall[nPMTtypes]; -/*****************************************************************************************************/ -/* DEFINE STRUCT AND USEFUL FUNCTIONS */ -/*****************************************************************************************************/ +//new +TH1D * HitTimeTOFProfile[nPMTtypes]; +TH3D * angularResponseXPMT_hits[nPMTtypes][nGroupsPMTs]; +TH3D * angularResponseXPMT_allPMTs[nPMTtypes][nGroupsPMTs]; +TH2D * distanceXweight_hits[nPMTtypes]; +//Tests new +//TH3D * ChargeProfile2DXPMT[nPMTtypes]; +TH2D * HitTimeTOFProfileXTOF[nPMTtypes]; +//TH2D * ChargeProfile2D_onemPMT[nPMTtypes]; + + +double * crossProduct(double* v0, double* v1, double * v2){ + v2[0] = v0[1]*v1[2]-v0[2]*v1[1]; + v2[1] = v0[2]*v1[0]-v0[0]*v1[2]; + v2[2] = v0[0]*v1[1]-v0[1]*v1[0]; + return v2; +} +double scalarProduct(double* v0, double* v1){ + double total=0; + for(int j=0;j<3;j++){ + total+=v0[j]*v1[j]; + } + return total; +} -struct arguments -{ - char * inputFile = NULL; - char * outputFile = NULL; - int startEvent = 0; // First event to analyze - int endEvent = 0; // Last event to analyze - bool HK = false; - bool verbose = false; -}; +double groupPMTs(int pmtType, int pmt_number){ + if(pmtType==0) return 0; + else{ + if(pmt_number<=12) return 0; + else if(pmt_number<=18) return 1; + else return nGroupsPMTs-1; + } +} +/* +void vectorVertexPMT(double * vertex, int tubeNumber, int pmtType, double * vDirection,int pmt_number_in_mpmt,int verbose=0){ + clock_t timeStart=clock(); + const int limit_maxPMT_per_mPMT = 50; + double pmtCenter[3]={0.}; + double pmt_position_local[3]={0.}; + int nPMT_per_mPMT=0; + double PMTpos[3]; + double PMTdir[3]; + WCSimRootPMT pmt; + if(pmtType == 0) pmt = geo->GetPMT(tubeNumber-1,false); + else pmt = geo->GetPMT(tubeNumber-1,true); + for(int j=0;j<3;j++){ + PMTpos[j] = pmt.GetPosition(j); + PMTdir[j] = pmt.GetOrientation(j); + } -arguments FetchInput(int argc, char* argv[]) -{ - int c = -1; - arguments arglist; + int mPMT_number = pmt.GetmPMTNo(); + pmt_number_in_mpmt = pmt.GetmPMT_PMTNo(); + double particleRelativePMTpos[3]; + for(int j=0;j<3;j++) particleRelativePMTpos[j] = PMTpos[j] - vertex[j]; + if(verbose == 3){ + cout<<"Original PMT number = "<GetPMT(tubeNumber2-1,false); + else pmt2 = geo->GetPMT(tubeNumber2-1,true); + int mPMT_number2 = pmt2.GetmPMTNo(); + int pmt_number_in_mpmt2 = pmt2.GetmPMT_PMTNo(); + + if(mPMT_number2 == mPMT_number){ + nPMT_per_mPMT++; + if(verbose == 3) cout<<"PMT type = " <= arglist.startEvent){std::cout << "Ending event #" << arglist.endEvent << std::endl;} - if(arglist.endEvent < arglist.startEvent){std::cout << "Ending event = last WCSim event" << std::endl;} - break; - - //Using HK geometry - case 'h': - arglist.HK = true; - std::cout << "Using HK geoemtry" << std::endl; - break; - - //Warning - case 'v': - arglist.verbose = true; - std::cout << "VERBOSE option on" << std::endl; - break; - } + // + //Then, we should project the PMT to vertex in this new basis + double * vPMTvertex = new double[3]; + for(int x=0;x<3;x++){ + double ps=0;//scalar product + for(int j =0;j<3;j++){ + ps+=(-particleRelativePMTpos[j])*v[x][j]; + //ps+=(-PMTpos[j])*v[x][j]; + } + vPMTvertex[x]=ps; + } + + if(verbose == 3){ + cout<<"v dir:"<=0) Phi=TMath::ATan(tanPhi); + else Phi=-TMath::ATan(tanPhi); + //The phi angle is the angle of + //We can first construct the cosine + vDirection[0]=Phi*180/TMath::Pi(); + vDirection[1]=Theta*180/TMath::Pi(); + + if(verbose == 3){ + cout<<"Number of PMTs in mPMT="< Provides orgin and first axis of the referential (ez) + //We do not have the mPMT position, so we will take the position of the PMT on top of the mPMT: number: + double mPMTpos[3]; + double mPMTdir[3]; + + int tubeNumber2 = tubeNumber + ( topPMT - pmt_number_in_mpmt ); + WCSimRootPMT pmt2; + if(pmtType == 0) pmt2 = geo->GetPMT(tubeNumber2-1,false); + else pmt2 = geo->GetPMT(tubeNumber2-1,true); + int mPMT_number2 = pmt2.GetmPMTNo(); + int pmt_number_in_mpmt2 = pmt2.GetmPMT_PMTNo(); + for(int j=0;j<3;j++){ + mPMTpos[j]=pmt2.GetPosition(j); + mPMTdir[j]=pmt2.GetOrientation(j); + } + if(verbose == 3){ + cout<<"Top PMT position = "< Active PMT plane + //a. PMT position in the mPMT referencec plane + double PMTpos_mPMTref[3]; + for(int j=0;j<3;j++) PMTpos_mPMTref[j] = PMTpos[j] - mPMTpos[j]; + double totlen_PMTpos = TMath::Sqrt(pow(PMTpos_mPMTref[0],2)+pow(PMTpos_mPMTref[1],2)+pow(PMTpos_mPMTref[2],2)); + for(int j=0;j<3;j++) PMTpos_mPMTref[j]/=totlen_PMTpos; + if(verbose==3) cout<<"Vertex position in the mPMT referential = "< Active PMT vector + crossProduct(ez,PMTpos_mPMTref,ey); + double totlen_ey=TMath::Sqrt(pow(ey[0],2)+pow(ey[1],2)+pow(ey[2],2)); + for(int j=0;j<3;j++){ + ey[j]/=totlen_ey; + } + if(verbose==3) cout<<"Scal product test = "< TMath::Pi()) Phi = TMath::Pi() - (Phi - TMath::Pi()); + //Phi=TMath::Abs(Phi); + + if(pmt_number_in_mpmt==topPMT) Phi=0.;//Phi is not defined in that case... + angles[0]=Phi*180./TMath::Pi(); + angles[1]=Theta*180./TMath::Pi(); + angles[2]=totlen_particlepos; + angles[3]=1;//calculateWeight(totlen_particlepos,PMTradius[pmtType],Theta,verbose); + + if(verbose==3) cout<<"Angles phi = "<GetPMT(tubeNumber2-1,false); + else pmt2 = geo->GetPMT(tubeNumber2-1,true); + int mPMT_number2 = pmt2.GetmPMTNo(); + int pmt_number_in_mPMT2 = pmt2.GetmPMT_PMTNo(); + + if(mPMT_number2 == mPMT_number){ + nPMT_per_mPMT++; + if(verboseHigh) cout<<"PMT number = "<=0) Phi=TMath::ATan(tanPhi); + else Phi=-TMath::ATan(tanPhi); + //The phi angle is the angle of + //We can first construct the cosine + + if(verboseHigh){ + cout<<"Number of PMTs in mPMT="<Reset(); + /* + gStyle->SetOptStat(0); + gStyle->SetCanvasColor(0); + gStyle->SetTitleColor(1); + gStyle->SetStatColor(0); + gStyle->SetFrameFillColor(0); + gStyle->SetPadColor(0); + gStyle->SetPadTickX(1); + gStyle->SetPadTickY(1); + gStyle->SetTitleSize(0.04); + gStyle->SetCanvasBorderMode(0); + gStyle->SetFrameBorderMode(0); + gStyle->SetFrameLineWidth(2); + gStyle->SetPadBorderMode(0); + gStylern->SetPalette(1); + gStyle->SetTitleAlign(23); + gStyle->SetTitleX(.5); + gStyle->SetTitleY(0.99); + gStyle->SetTitleBorderSize(0); + gStyle->SetTitleFillColor(0); + gStyle->SetHatchesLineWidth(2); + gStyle->SetLineWidth(1.5); + gStyle->SetTitleFontSize(0.07); + gStyle->SetLabelSize(0.05,"X"); + gStyle->SetLabelSize(0.05,"Y"); + gStyle->SetTitleSize(0.04,"X"); + gStyle->SetTitleSize(0.04,"Y"); + gStyle->SetTitleBorderSize(0); + gStyle->SetCanvasBorderMode(0); + */ + // Load the library with class dictionary info + // (create with "gmake shared") + //char* wcsimdirenv; + //wcsimdirenv = getenv ("WCSIMDIR"); + //if(wcsimdirenv != NULL){ + //gSystem->Load("${WCSIMDIR}/libWCSimRoot.so"); + //}else{ + //gSystem->Load("../libWCSimRoot.so"); + //} + double TotalNHits = 1e4; double TankSize = 1100/2;//in cm, the maximal size of the plots for vertices etc... double TankRadius = 742/2;//in cm, the maximal size of the plots for vertices etc... double TankHalfHeight = 1042/2;//in cm, the maximal size of the plots for vertices etc... - if(HK) - { + + if(HK){ TotalNHits = 3e4; TankSize = 7100;//in cm, the maximal size of the plots for vertices etc... - TankRadius = 3242.766;//in cm, the maximal size of the plots for vertices etc... - TankHalfHeight = 3296.471;//in cm, the maximal size of the plots for vertices etc... + TankRadius = 7080/2;//in cm, the maximal size of the plots for vertices etc... + TankHalfHeight = 5480/2;//in cm, the maximal size of the plots for vertices etc... + //nevt = std::min( 1e3 , ((double) WSTreeHits->GetEntries()) ); } + //nevt = std::min( 1e3 , ((double) WSTreeHits->GetEntries()) ); - - - - // Open the input file + TFile *file; - if (filename==NULL) - { - cout << "Error, no input file" << endl; - return -1; - } - else - { + // Open the file + if (filename==NULL){ + //file = new TFile("/disk01/usr5/bquilain/WCSimData/wcsim_hk_e500_center_nominal.root","read"); + //file = new TFile("/disk01/usr5/bquilain/WCSimData/wcsim_hkmpmt_e500_center_nominal.root","read"); + //file = new TFile("/disk01/usr5/bquilain/wcsim_hkmpmt_e500_center_nominal.root","read"); + //file = new TFile("/disk01/usr5/bquilain/wcsim_hkhybridmpmt_trash.root","read"); + //file = new TFile("/disk01/usr5/bquilain/wcsim_hkhybridmpmt_e500_center_nominal_2muniformsphere.root","read"); + //file = new TFile("/disk01/usr5/bquilain/wcsim_hkhybridmpmt_e10_center_nominal_2muniformsphere.root","read"); + //file = new TFile("/disk01/usr5/bquilain/wcsim_hkhybridmpmt_e10_center_nominal_fulltank_1000events.root","read"); + //file = new TFile("/disk01/usr5/bquilain/wcsim_hkhybridmpmt_e10_center_nominal_fulltank.root","read"); + //file = new TFile("/disk01/usr5/bquilain/wcsim_hkhybridmpmt_e10_center_nominal_fulltank_10hitstrigger.root","read"); + //wcsim_hkhybridmpmt_e10_center_nominal_fulltank_0hitstrigger_1000events.root + //file = new TFile("/disk01/usr5/bquilain/wcsim_hkhybridmpmt_e10_center_nominal_fulltank_0hitstrigger_1000events.root","read"); + //file = new TFile("/disk01/usr5/bquilain/wcsim_hkhybridmpmt_e10_center_nominal_fulltank_0hitstrigger_nodn.root","read"); + + + //file = new TFile("/disk01/usr5/bquilain/wcsim_hkhybridmpmt14374_e10_center_nominal_fulltank_0hitstrigger_nodnno950.root","read"); + file = new TFile("/disk01/usr5/bquilain/wcsim_hkhybridmpmt14374100Hz_e10_center_nominal_fulltank_0hitstrigger_10000.root","read"); + //file = new TFile("/disk01/usr5/bquilain/wcsim_hkhybridmpmt_4.2kHzAnd50Hz_14374100Hz_e10_center_nominal_fulltank_0hitstrigger_10000.root","read"); + + //file = new TFile("/disk01/usr5/bquilain/wcsim_hkhybridmpmt14374100Hz_2.2MeVgamma_center_nominal_fulltank_0hitstrigger_100.root","read"); + //file = new TFile("/disk01/usr5/bquilain/wcsim_hkhybridmpmt10pc14374100Hz_2.2MeVgamma_center_nominal_fulltank_0hitstrigger_100.root","read"); + + //file = new TFile("/disk01/usr5/bquilain/wcsim_hkhybridmpmt14374100Hz_e3_center_nominal_fulltank_0hitstrigger.root","read"); + //file = new TFile("/disk01/usr5/bquilain/wcsim_hkhybridmpmt14374_e10_center_nominal_fulltank_0hitstrigger_noqe.root","read"); + //file = new TFile("/disk01/usr5/bquilain/wcsim_hkhybridmpmt14374_e10_trash.root","read"); + + //file = new TFile("/disk01/usr5/bquilain/wcsim_hkhybridmpmt_e500_center_nominal_2muniformsphere_100events.root","read"); + //file = new TFile("/disk01/usr5/bquilain/trash.root","read"); + + + //file = new TFile("/disk01/usr5/bquilain/wcsim_hkhybridmpmt_e500_center_nominal.root","read"); + //file = new TFile("/disk01/usr5/bquilain/wcsim_hkhybridmpmt_e500_center_nominal_onlybal.root","read"); + //file = new TFile("/disk01/usr5/bquilain/wcsim_hkhybridmpmt_e500_center_nominal_2.root","read"); + //file = new TFile("/disk01/usr5/bquilain/WCSimData/wcsim_hkmpmt_mu500_center_nominal_fulltank.root","read"); + //file = new TFile("/disk01/usr5/bquilain/fiTQun/HK_704cmx548cmID_mPMT_40perCent/timepdf/11_100_0_0_0/11_100_0_0_0.root","read"); + //file = new TFile("/disk01/usr5/bquilain/fiTQun/HK_704cmx548cmID_mPMT_40perCent/timepdf/11_900_0_6_0/11_900_0_6_0.root","read"); + //file = new TFile("/disk01/usr5/bquilain/wcsim_hkmpmt100HzDN_e4_center_nominal_fulltank.root","read"); + //file = new TFile("/disk01/usr5/bquilain/wcsim_hkmpmt_e4_center_nominal_fulltank.root","read"); + //file = new TFile("/disk01/usr5/bquilain/WCSimData/wcsim_hk_e3_center_nominal_fulltank.root","read"); + //file = new TFile("../test.root","read"); + //file = new TFile("/disk01/usr5/bquilain/fiTQun/HK_704cmx548cmID_mPMT_40perCent/timepdf/11_900_0_3_0/11_900_0_3_0.root","read"); + //file = new TFile("/disk01/usr5/bquilain/fiTQun/HK_704cmx548cmID_mPMT_40perCent/timepdf/11_900_0_3_0/11_900_0_3_0.root","read"); + + + + }else{ file = new TFile(filename,"read"); } - - if (!file->IsOpen()) - { + if (!file->IsOpen()){ cout << "Error, could not open input file: " << filename << endl; return -1; } - // Get the a pointer to the tree from the file TTree *tree = (TTree*)file->Get("wcsimT"); // Get the number of events - int nevent = ((int)tree->GetEntries()); - if(endEvent>startEvent && endEvent!=0 && endEvent<=nevent) nevent = endEvent; + int nevent = ((int)tree->GetEntries());//std::min(((int)tree->GetEntries()),100000); + if(endEvent!=0 && endEvent<=nevent) nevent = endEvent; if(verbose) printf("nevent %d\n",nevent); // Create a WCSimRootEvent to put stuff from the tree in - WCSimRootEvent* wcsimrootsuperevent = new WCSimRootEvent(); + WCSimRootEvent* wcsimrootsuperevent = new WCSimRootEvent(); WCSimRootEvent* wcsimrootsuperevent2 = new WCSimRootEvent(); // Set the branch address for reading from the tree TBranch *branch = tree->GetBranch("wcsimrootevent"); branch->SetAddress(&wcsimrootsuperevent); - tree->GetBranch("wcsimrootevent")->SetAutoDelete(kTRUE); // Force deletion to prevent memory leak + // Force deletion to prevent memory leak + tree->GetBranch("wcsimrootevent")->SetAutoDelete(kTRUE); TBranch *branch2; - if(hybrid) - { + if(hybrid){ branch2 = tree->GetBranch("wcsimrootevent2"); branch2->SetAddress(&wcsimrootsuperevent2); - tree->GetBranch("wcsimrootevent2")->SetAutoDelete(kTRUE); // Force deletion to prevent memory leak + // Force deletion to prevent memory leak + tree->GetBranch("wcsimrootevent2")->SetAutoDelete(kTRUE); } // Geometry tree - only need 1 "event" TTree *geotree = (TTree*)file->Get("wcsimGeoT"); geotree->SetBranchAddress("wcsimrootgeom", &geo); if(verbose) std::cout << "Geotree has " << geotree->GetEntries() << " entries" << std::endl; - if (geotree->GetEntries() == 0) {exit(9);} + if (geotree->GetEntries() == 0) { + exit(9); + } geotree->GetEntry(0); PMTradius[0]=geo->GetWCPMTRadius(); PMTradius[1]=geo->GetWCPMTRadius(true); - cout << "Number of PMTs of 1st type = " << geo->GetWCNumPMT() << ", radius = " << PMTradius[0] << endl; - cout << "Number of PMTs of 2nd type = " << geo->GetWCNumPMT(true) << ", radius = " << PMTradius[1] << endl; + cout << "Number of PMTs of 1st type = " << geo->GetWCNumPMT() << ", radius = " << PMTradius[0] << endl; + cout << "Number of PMTs of 2nd type = " << geo->GetWCNumPMT(true) << ", radius = " << PMTradius[1] <Get("wcsimRootOptionsT"); WCSimRootOptions *opt = 0; opttree->SetBranchAddress("wcsimrootoptions", &opt); if(verbose) std::cout << "Optree has " << opttree->GetEntries() << " entries" << std::endl; - if (opttree->GetEntries() == 0) - { + if (opttree->GetEntries() == 0) { exit(9); } opttree->GetEntry(0); opt->Print(); - // Start with the main "subevent", as it contains most of the info and always exists. + // start with the main "subevent", as it contains most of the info + // and always exists. WCSimRootTrigger* wcsimrootevent; WCSimRootTrigger* wcsimrootevent2; - TH1F *hvtx0 = new TH1F("Event VTX0", "Event VTX0", 200, -TankRadius, TankRadius); - TH1F *hvtx1 = new TH1F("Event VTX1", "Event VTX1", 200, -TankRadius, TankRadius); - TH1F *hvtx2 = new TH1F("Event VTX2", "Event VTX2", 200, -TankHalfHeight, TankHalfHeight); + TH1F *h1 = new TH1F("PMT Hits", "PMT Hits", 8000, 0, 8000); + TH1F *hvtx0 = new TH1F("Event VTX0", "Event VTX0", 200, -1500, 1500); + TH1F *hvtx1 = new TH1F("Event VTX1", "Event VTX1", 200, -1500, 1500); + TH1F *hvtx2 = new TH1F("Event VTX2", "Event VTX2", 200, -1500, 1500); int num_trig=0; + + //TFile * fOutput = new TFile(OutputFile,"recreate"); +#ifdef LEAFPDFONLY + int nbins_position = 1; + int nbins_angle = 1; + int nbins_time = 1e4; + int nbins_TOF = 1e3; + int nbins_pe = 1; + int nbins_totalcharge = 1; + int nbins_distancePMT = 700; + int nbins_phi = 18; + int nbins_theta = 18; + int nbins_weight = 1; +#else int nbins_position = TankSize/2; int nbins_angle = 720; int nbins_time = 1e4; @@ -248,249 +822,898 @@ int main(int argc, char **argv) int nbins_phi = 18; int nbins_theta = 18; int nbins_weight = 200; +#endif + for(int i=0;iSumw2(); + TimeProfile[i] = new TH1D(Form("TimeProfile_pmtType%d",i),"",nbins_time,0,5e5); + TimeHitProfile[i] = new TH1D(Form("TimeHitProfile_pmtType%d",i),"",nbins_time,0,5e5); + TimeTOFProfile[i] = new TH1D(Form("TimeTOFProfile_pmtType%d",i),"",nbins_time,-1.5e3,5e5);TimeTOFProfile[i]->Sumw2(); + HitTimeTOFProfile[i] = new TH1D(Form("HitTimeTOFProfile_pmtType%d",i),"",nbins_time,-1.5e3,5e5);HitTimeTOFProfile[i]->Sumw2(); + HitTimeTOFProfileXTOF[i] = new TH2D(Form("HitTimeTOFProfileXTOF_pmtType%d",i),"",nbins_time,-1.5e3,5e5,nbins_TOF,0,1e3);HitTimeTOFProfileXTOF[i]->Sumw2(); +#else + TimeTOFProfileXTOF[i] = new TH2D(Form("TimeTOFProfileXTOF_pmtType%d",i),"",nbins_time,-1.5e3,1.5e3,nbins_TOF,0,5e2);TimeTOFProfileXTOF[i]->Sumw2(); + TimeProfile[i] = new TH1D(Form("TimeProfile_pmtType%d",i),"",nbins_time,0,5e3); + TimeHitProfile[i] = new TH1D(Form("TimeHitProfile_pmtType%d",i),"",nbins_time,0,5e3); + TimeTOFProfile[i] = new TH1D(Form("TimeTOFProfile_pmtType%d",i),"",nbins_time,-1.5e3,1.5e3);TimeTOFProfile[i]->Sumw2(); + HitTimeTOFProfile[i] = new TH1D(Form("HitTimeTOFProfile_pmtType%d",i),"",nbins_time,-1.5e3,1.5e3);HitTimeTOFProfile[i]->Sumw2(); + HitTimeTOFProfileXTOF[i] = new TH2D(Form("HitTimeTOFProfileXTOF_pmtType%d",i),"",nbins_time,-1.5e3,1.5e3,nbins_TOF,0,1e3);HitTimeTOFProfileXTOF[i]->Sumw2(); +#endif + + ChargePerPMT[i] = new TH1D(Form("ChargePerPMT_pmtType%d",i),"",nbins_pe,0,500); + + TotalCharge[i] = new TH1D(Form("TotalCharge_pmtType%d",i),"",nbins_totalcharge,0,3e4); + TotalHit[i] = new TH1D(Form("TotalHit_pmtType%d",i),"",nbins_totalcharge,0,TotalNHits); + + TotalChargeXdWall[i] = new TH2D(Form("TotalChargeXdWall_pmtType%d",i),"",nbins_position,0,TankSize/2.,nbins_time,0,3e4); + + ChargeProfile2D[i]->Sumw2(); + ChargeProfile2D_onlyFront[i]->Sumw2(); + ChargeProfile2DTop[i]->Sumw2(); + ChargeProfile2DCylindricCoordinate[i]->Sumw2(); + ChargeProfile2DRelativeAngle[i]->Sumw2(); + ChargeProfile[i]->Sumw2(); HitProfile[i]->Sumw2();TimeProfile[i]->Sumw2();TimeHitProfile[i]->Sumw2();ChargePerPMT[i]->Sumw2(); + TotalCharge[i]->Sumw2();TotalHit[i]->Sumw2(); + TotalChargeXdWall[i]->Sumw2(); + ChargeProfile2D_event[i]->Sumw2(); + + //new + for(int p=0;pSumw2(); - TimeHitProfile[i] = new TH1D(Form("TimeHitProfile_pmtType%d",i),"", nbins_time, 0, 5e3); TimeHitProfile[i]->Sumw2(); - TimeTOFProfile[i] = new TH1D(Form("TimeTOFProfile_pmtType%d",i),"", nbins_time, -1.5e3, 1.5e3); TimeTOFProfile[i]->Sumw2(); - HitTimeTOFProfile[i]= new TH1D(Form("HitTimeTOFProfile_pmtType%d",i),"",nbins_time, -1.5e3, 1.5e3); HitTimeTOFProfile[i]->Sumw2(); - - // Cherenkov angle - ChargeProfile[i] = new TH1D(Form("ChargeProfile_pmtType%d",i),"",nbins_angle, 0, 180); ChargeProfile[i]->Sumw2(); - HitProfile[i] = new TH1D(Form("HitProfile_pmtType%d",i),"", nbins_angle, 0, 180); HitProfile[i]->Sumw2(); - - // Charge - TotalCharge[i] = new TH1D(Form("TotalCharge_pmtType%d",i),"", nbins_totalcharge, 0, 3e4); TotalCharge[i]->Sumw2(); - TotalHit[i] = new TH1D(Form("TotalHit_pmtType%d",i),"", nbins_totalcharge, 0, TotalNHits); TotalHit[i]->Sumw2(); } + /* + + TH2D * HitProfile2D = new TH2D("HitProfile2D","",TankSize/2,-TankSize,TankSize,TankSize/2,-TankSize,TankSize); + TH2D * TimeProfile2D = new TH2D("TimeProfile2D","",TankSize/2,-TankSize,TankSize,TankSize/2,-TankSize,TankSize); + TH2D * ChargeXPositionXTime = new TH2D("ChargeXPositionXTime","",36,0,180,TankSize,0,TankSize); + TH2D * ChargeProfileXdWall = new TH2D("ChargeProfileXdWall","",nbins_angle,0,180,100,0,TankSize); + TH2D * TotalChargeXdWall = new TH2D("TotalChargeXdWall","",100,0,TankSize,1e3,0,1e5); + + TH2D * TimeAngleProfile = new TH2D("TimeAngleHitProfile","",nbins_angle,0,180,1e4,0,5e3);TimeAngleProfile->Sumw2(); + TH2D * HitTimeAngleProfile = new TH2D("HitTimeAngleHitProfile","",nbins_angle,0,180,1e4,0,5e3);HitTimeAngleProfile->Sumw2(); + TH2D * TimeTOFAngleProfile = new TH2D("TimeTOFAngleProfile","",nbins_angle,0,180,1e4,-1e2,5e3);TimeTOFAngleProfile->Sumw2(); + TH2D * HitTimeTOFAngleProfile = new TH2D("HitTimeTOFAngleProfile","",nbins_angle,0,180,1e4,-1e2,5e3);HitTimeTOFAngleProfile->Sumw2(); + TH2D * TimeTOFTOF = new TH2D("TimeTOFTOF","",1e4,-1e2,5e3,1e2,0,5e2);TimeTOFTOF->Sumw2(); + TH2D * HitTimeTOFTOF = new TH2D("HitTimeTOFTOF","",1e4,-1e2,5e3,1e2,0,5e2);HitTimeTOFTOF->Sumw2(); + + + TH3D * VertexPosition = new TH3D("VertexPosition","",100,-TankSize,TankSize,100,-TankSize,TankSize,100,-TankSize,TankSize); + TH3D * VertexDirection = new TH3D("VertexDirection","",100,-1.1,1.1,100,-1.1,1.1,100,-1.1,1.1); + TH1D * VertexXdWall = new TH1D("VertexXdWall","",100,0,TankSize); + TH1D * ParentFlyingDistance = new TH1D("ParentFlyingDistance","",10000,0,TankSize); + + TH2D * EGammaSeparationXdWall = new TH2D("EGammaSeparationxdWall","",100,0,TankSize,1000,0.,5.); + TH1D * EGammaSeparation = new TH1D("EGammaSeparation","",1000,0.,5.); + + //Set the 2D histogram to 0 to increase lisibility of plots + for(int ibinx=1;ibinx<=ChargeProfile2D->GetNbinsX();ibinx++){ + for(int ibiny=1;ibiny<=ChargeProfile2D->GetNbinsY();ibiny++){ + HitProfile2D->SetBinContent(ibinx,ibiny,0); + ChargeProfile2D->SetBinContent(ibinx,ibiny,0); + ChargeProfile2DXZ->SetBinContent(ibinx,ibiny,0); + } + } + // + double ConversionLength = 36;//cm + TH2D * ChargeProfile2D_PerEvent[nevt]; + */ + + //TH2D * ChargeProfile2D = new TH2D("ChargeProfile2D","",TankSize/2,-TankSize,TankSize,TankSize/2,-TankSize,TankSize); - - - /**************/ - /* LOOP EVENT */ - /**************/ - - for (int ev=startEvent ; evGetEntry(ev); + //New: Step 0 -> Create a map of the position of one PMT inside the mPMT + /* + //a. Determine the number of PMT per mPMT + const int limit_maxPMT_per_mPMT = 100; + int maxPMT_per_mPMT[nPMTtypes]; + + //b. At the same time, for mPMT=0, fill the PMT position container. + double position_PMT_local[nPMTtypes][limit_maxPMT_per_mPMT][3]; + double center_mPMT[nPMTtypes][3];//Position of the center of the mPMT + + for(int pmtType=0;pmtType> max_mPMT, we should loop over the PMTs of several mPMT. + //For the first mPMT, we do not know at which PMT we will start. It may be at #3, and not #1. + //To avoid that, we will only fill the table for PMT belonging to the second mPMT we will probe. + //This is the purpose of this mPMT_counter, same_PMT etc. + bool same_mPMT=true; + int mPMT_counter=0; + int previous_PMT_mPMT=-999; + + for(int p=0;pGetPMT(p,false); + else pmt_temp = geo->GetPMT(p,true); + int mPMT_number2 = pmt_temp.GetmPMTNo(); + int pmt_number_in_mPMT2 = pmt_temp.GetmPMT_PMTNo(); + cout << "Debug:, mPMT number = "<GetTrigger(0); if(hybrid) wcsimrootevent2 = wcsimrootsuperevent2->GetTrigger(0); - - std::vector triggerInfo; triggerInfo = wcsimrootevent->GetTriggerInfo(); - std::vector triggerInfo2; if(hybrid) triggerInfo2 = wcsimrootevent2->GetTriggerInfo(); - - // Verbose print - if(verbose) - { + //wcsimrootevent2 = wcsimrootsuperevent2->GetTrigger(0); + if(verbose){ printf("********************************************************"); - printf("Evt, date %d %d\n", wcsimrootevent->GetHeader()->GetEvtNum(), wcsimrootevent->GetHeader()->GetDate()); + printf("Evt, date %d %d\n", wcsimrootevent->GetHeader()->GetEvtNum(), + wcsimrootevent->GetHeader()->GetDate()); printf("Mode %d\n", wcsimrootevent->GetMode()); - printf("Number of subevents %d\n", wcsimrootsuperevent->GetNumberOfSubEvents()); + printf("Number of subevents %d\n", + wcsimrootsuperevent->GetNumberOfSubEvents()); + printf("Vtxvol %d\n", wcsimrootevent->GetVtxvol()); - printf("Vtx %f %f %f\n", wcsimrootevent->GetVtx(0), wcsimrootevent->GetVtx(1), wcsimrootevent->GetVtx(2)); + printf("Vtx %f %f %f\n", wcsimrootevent->GetVtx(0), + wcsimrootevent->GetVtx(1),wcsimrootevent->GetVtx(2)); + } + hvtx0->Fill(wcsimrootevent->GetVtx(0)); + hvtx1->Fill(wcsimrootevent->GetVtx(1)); + hvtx2->Fill(wcsimrootevent->GetVtx(2)); + + if(verbose){ printf("Jmu %d\n", wcsimrootevent->GetJmu()); printf("Npar %d\n", wcsimrootevent->GetNpar()); printf("Ntrack %d\n", wcsimrootevent->GetNtrack()); + + } + + std::vector triggerInfo; + triggerInfo.clear(); + triggerInfo = wcsimrootevent->GetTriggerInfo(); + + std::vector triggerInfo2; + triggerInfo2.clear(); + if(hybrid) triggerInfo2 = wcsimrootevent2->GetTriggerInfo(); - for(int v=0 ; vGetNtrack(); // Get the number of tracks double particleStart[3]; double particleStop[3]; double particleDir[3]; + int i; // Loop through elements in the TClonesArray of WCSimTracks - for (int i=0 ; iGetTracks())->At(i); + + //WCSimRootTrack *wcsimroottrack = dynamic_cast(element); WCSimRootTrack *wcsimroottrack = (WCSimRootTrack*) (element); - // Mother particle - if(i == (ntrack-1)) - { - for(int j=0; j<3; j++) - { - particleStart[j] = wcsimroottrack->GetStart(j); - particleStop[j] = wcsimroottrack->GetStop(j); - particleDir[j] = wcsimroottrack->GetDir(j); - } + if(i==(ntrack-1)){//Mother particle + for(int j=0; j<3; j++){ + particleStart[j] = wcsimroottrack->GetStart(j); + particleStop[j] = wcsimroottrack->GetStop(j); + particleDir[j] = wcsimroottrack->GetDir(j); + } + //if(particleDir[0] != 1 || particleDir[1] != 0 || particleDir[2] != 0) cout << endl << endl << endl << "###############################################" << endl << "Particle direction has an issue" << endl << "###############################################" << endl; + //if(particleStart[0] != 0 || particleStart[1] != 0 || particleStart[2] != 0) cout << endl << endl << endl << "###############################################" << endl << "Particle position has an issue" << endl << "###############################################" << endl; } - } + if(verbose){ + printf("Track ipnu: %d\n",wcsimroottrack->GetIpnu()); + printf("Track parent ID: %d\n",wcsimroottrack->GetParenttype()); + printf("Track energy: %f\n", wcsimroottrack->GetE()); + printf("Track momentum: %f\n", wcsimroottrack->GetP()); + printf("Track mass: %f\n", wcsimroottrack->GetM()); + + for (int j=0; j<3; j++){ + printf("Track start: %d %f\n",j, wcsimroottrack->GetStart(j)); + printf("Track dir: %d %f\n",j, wcsimroottrack->GetDir(j)); + } + } - - /*************/ - /* LOOP HITS */ - /*************/ - + + } // End of loop over tracks + + double dwall, dwallBarrel, dwallCap; + double StartRadius,StartHeight; + if(Gamma){ + StartRadius = TMath::Sqrt(particleStop[0]*particleStop[0]+particleStop[1]*particleStop[1]); + StartHeight = TMath::Abs(particleStop[2]); + } + else{ + StartRadius = TMath::Sqrt(particleStart[0]*particleStart[0]+particleStart[1]*particleStart[1]); + StartHeight = TMath::Abs(particleStart[2]); + } + dwallBarrel = TankRadius - StartRadius; + dwallCap = TankHalfHeight - StartHeight; + dwall = min(dwallBarrel,dwallCap); + //if(dwallCap>200) continue; + if(ev%1 == 0){ + cout<<"Evt #"<GetNcherenkovhits(); - int ncherenkovhits2 = 0; - if(hybrid) ncherenkovhits2 = wcsimrootevent2->GetNcherenkovhits(); - int ncherenkovdigihits = wcsimrootevent->GetNcherenkovdigihits(); - int ncherenkovdigihits2 = 0; - if(hybrid) ncherenkovdigihits2 = wcsimrootevent2->GetNcherenkovdigihits(); - - // Verbose print - if(verbose) - { - cout << "LOOP OVER DIGITIZED HITS:" << endl; + int ncherenkovhits2 = 0; if(hybrid) ncherenkovhits2 = wcsimrootevent2->GetNcherenkovhits(); + int ncherenkovdigihits2 = 0;if(hybrid) ncherenkovdigihits2 = wcsimrootevent2->GetNcherenkovdigihits(); + + h1->Fill(ncherenkovdigihits); + if(verbose){ printf("node id: %i\n", ev); + printf("Ncherenkovhits %d\n", ncherenkovhits); printf("Ncherenkovdigihits %d\n", ncherenkovdigihits); + printf("Ncherenkovhits2 %d\n", ncherenkovhits2); printf("Ncherenkovdigihits2 %d\n", ncherenkovdigihits2); + cout << "RAW HITS:" << endl; } - // Loop over PMT type - for(int pmtType=0 ; pmtTypeGetCherenkovHits())->At(i); + else wcsimrootcherenkovhit = (wcsimrootevent2->GetCherenkovHits())->At(i); + + int tubeNumber = wcsimrootcherenkovhit->GetTubeID(); + int timeArrayIndex = wcsimrootcherenkovhit->GetTotalPe(0); + int peForTube = wcsimrootcherenkovhit->GetTotalPe(1); + + WCSimRootPMT pmt; + if(pmtType == 0) pmt = geo->GetPMT(tubeNumber-1,false); + else pmt = geo->GetPMT(tubeNumber-1,true); + + double PMTpos[3]; + double PMTdir[3]; + for(int j=0;j<3;j++){ + PMTpos[j] = pmt.GetPosition(j); + PMTdir[j] = pmt.GetOrientation(j); + } + + if ( i < 10 ) // Only print first XX=10 tubes + { + if(verbose){ + cout << "Number of entries in the array = " << timeArray->GetEntries() << endl; + cout << "time array index = " << timeArrayIndex << endl; + printf("Total pe: %d times( ",peForTube); + } + for (int j = timeArrayIndex; j < timeArrayIndex + peForTube; j++) + { + //cout << j << endl; + //WCSimRootCherenkovHitTime HitTime = (WCSimRootCherenkovHitTime) timeArray->At(j); + WCSimRootCherenkovHitTime* HitTime = (WCSimRootCherenkovHitTime*) timeArray->At(j);//Take the element j of an array of pointer on CherenkovHitTimes, so should be a pointer on a CherenkovHitsTimes + // dynamic_cast(timeArray->At(j)); + if(verbose) printf("%6.2f ", HitTime->GetTruetime() ); + } + if(verbose) cout << ")" << endl; + if(verbose) std::cout << "Position of PMT = " << PMTpos[0] << ", " << PMTpos[1] << ", " << PMTpos[2] << endl; + } + + //////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////// + double radius = TMath::Sqrt(PMTpos[0]*PMTpos[0] + PMTpos[1]*PMTpos[1]); + double phiAngle; + if(PMTpos[1] >= 0) phiAngle = TMath::ACos(PMTpos[0]/radius); + else phiAngle = TMath::Pi() + (TMath::Pi() - TMath::ACos(PMTpos[0]/radius)); + + if(Gamma){//ProduceDirectionPDF the profile at the gamma conversion point, since it takes ~36 cm to convert/be visible + for(int j=0;j<3;j++) particleRelativePMTpos[j] = PMTpos[j] - particleStop[j]; + } + else{ + for(int j=0;j<3;j++) particleRelativePMTpos[j] = PMTpos[j] - particleStart[j]; + } + + double vDir[3];double vOrientation[3]; + double vDir2D[3];double vOrientation2D[3]; + for(int j=0;j<3;j++){ + vDir[j] = particleRelativePMTpos[j]; + vOrientation[j] = PMTdir[j]; + if(j<2){ + vDir2D[j] = particleRelativePMTpos[j]; + vOrientation2D[j] = PMTdir[j]; + } + } + double Norm = TMath::Sqrt(vDir[0]*vDir[0]+vDir[1]*vDir[1]+vDir[2]*vDir[2]); + double tof = Norm*1e-2/(cvacuum/nindex); + //if(verbose) cout << "Time of flight = " << tof << endl; + double NormOrientation = TMath::Sqrt(vOrientation[0]*vOrientation[0]+vOrientation[1]*vOrientation[1]+vOrientation[2]*vOrientation[2]); + for(int j=0;j<3;j++){ + vDir[j] /= Norm; + vOrientation[j] /= NormOrientation; + } + double Norm2D = TMath::Sqrt(vDir2D[0]*vDir2D[0]+vDir2D[1]*vDir2D[1]); + double NormOrientation2D = TMath::Sqrt(vOrientation2D[0]*vOrientation2D[0]+vOrientation2D[1]*vOrientation2D[1]); + for(int j=0;j<2;j++){ + vDir2D[j] /= Norm2D; + vOrientation2D[j] /= NormOrientation2D; + } + double HorizontalScalarProduct = TMath::ACos(vDir2D[0]*vOrientation2D[0] + vDir2D[1]*vOrientation2D[1])*180./TMath::Pi(); + double relativeAngle = TMath::ACos(vDir[0]*particleDir[0]+vDir[1]*particleDir[1]+vDir[2]*particleDir[2])*180./TMath::Pi(); + //WCSimRootCherenkovHitTime * HitTime = dynamic_cast(timeArray->At(timeArrayIndex));//Assumes that the earliest time the PMT is hit is in the first element -> Everything is ordered. + + double Theta = 0; + double Phi = 0; + double weight = 1; + double distance_pmt_vertex=0; + int mPMT_number = pmt.GetmPMTNo(); + int pmt_number_in_mPMT = pmt.GetmPMT_PMTNo(); + + //TMP + double dist_tmp =0; + for(int i=0;i<3;i++) dist_tmp+=pow(particleStart[i]-pmt.GetPosition(i),2); + dist_tmp=TMath::Sqrt(dist_tmp); + ////if(dist_tmp>1000) continue; + //if(dist_tmp>500) continue; + // + + if(produceDirectionPDF){ + //double * vPMTvertex = new double[3];vectorVertexPMT(geo,particleStart,pmt,tubeNumber,pmtType,vPMTvertex); + if(thetaOnly){ + Theta=findDirectionTheta(particleStart,tubeNumber,pmtType,pmt_number_in_mPMT); + } + else{ + if(pmtType==1){ + double vPMTvertex[4]; + vectorVertexPMT(particleStart,tubeNumber,pmtType,vPMTvertex,pmt_number_in_mPMT); + //cout<=0) Phi=TMath::ATan(tanPhi); + //else Phi=-TMath::ATan(tanPhi); + //cout<<"Phi angle = "<Fill(totalPe); + TotalHit[pmtType]->Fill(totalHit); + TotalChargeXdWall[pmtType]->Fill(dwall,totalPe); } } - // Vertex - hvtx0->Fill(wcsimrootevent->GetVtx(0)); - hvtx1->Fill(wcsimrootevent->GetVtx(1)); - hvtx2->Fill(wcsimrootevent->GetVtx(2)); - - - - /****************/ - /* REINITIALIZE */ - /****************/ + // Get the number of digitized hits + // Loop over sub events + + + + if(verbose) cout << "DIGITIZED HITS:" << endl; + //for (int index = 0 ; index < wcsimrootsuperevent->GetNumberOfEvents(); index++) + //{ + //wcsimrootevent = wcsimrootsuperevent->GetTrigger(index); + //if(verbose) cout << "Sub event number = " << index << "\n"; + + //int ncherenkovdigihits = wcsimrootevent->GetNcherenkovdigihits(); + //if(verbose) printf("Ncherenkovdigihits %d\n", ncherenkovdigihits); + + for(int pmtType=0;pmtType(timeArray->At(j)); + + if(verbose) printf("%6.2f ", HitTime.GetTruetime() ); + }*/ + if(verbose) cout << ")" << endl; + if(verbose) std::cout << "Position of PMT = " << PMTpos[0] << ", " << PMTpos[1] << ", " << PMTpos[2] << endl; + } + + //////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////// + double radius = TMath::Sqrt(PMTpos[0]*PMTpos[0] + PMTpos[1]*PMTpos[1]); + double phiAngle; + if(PMTpos[1] >= 0) phiAngle = TMath::ACos(PMTpos[0]/radius); + else phiAngle = TMath::Pi() + (TMath::Pi() - TMath::ACos(PMTpos[0]/radius)); + + if(Gamma){//ProduceDirectionPDF the profile at the gamma conversion point, since it takes ~36 cm to convert/be visible + for(int j=0;j<3;j++) particleRelativePMTpos[j] = PMTpos[j] - particleStop[j]; + } + else{ + for(int j=0;j<3;j++) particleRelativePMTpos[j] = PMTpos[j] - particleStart[j]; + } + + double vDir[3];double vOrientation[3]; + double vDir2D[3];double vOrientation2D[3]; + for(int j=0;j<3;j++){ + vDir[j] = particleRelativePMTpos[j]; + vOrientation[j] = PMTdir[j]; + if(j<2){ + vDir2D[j] = particleRelativePMTpos[j]; + vOrientation2D[j] = PMTdir[j]; + } + } + double Norm = TMath::Sqrt(vDir[0]*vDir[0]+vDir[1]*vDir[1]+vDir[2]*vDir[2]); + double tof = Norm*1e-2/(cvacuum/nindex); + double NormOrientation = TMath::Sqrt(vOrientation[0]*vOrientation[0]+vOrientation[1]*vOrientation[1]+vOrientation[2]*vOrientation[2]); + for(int j=0;j<3;j++){ + vDir[j] /= Norm; + vOrientation[j] /= NormOrientation; + } + double Norm2D = TMath::Sqrt(vDir2D[0]*vDir2D[0]+vDir2D[1]*vDir2D[1]); + double NormOrientation2D = TMath::Sqrt(vOrientation2D[0]*vOrientation2D[0]+vOrientation2D[1]*vOrientation2D[1]); + for(int j=0;j<2;j++){ + vDir2D[j] /= Norm2D; + vOrientation2D[j] /= NormOrientation2D; + } + double HorizontalScalarProduct = TMath::ACos(vDir2D[0]*vOrientation2D[0] + vDir2D[1]*vOrientation2D[1])*180./TMath::Pi(); + double relativeAngle = TMath::ACos(vDir[0]*particleDir[0]+vDir[1]*particleDir[1]+vDir[2]*particleDir[2])*180./TMath::Pi(); + //WCSimRootCherenkovHitTime HitTime = dynamic_cast(timeArray->At(timeArrayIndex));//Assumes that the earliest time the PMT is hit is in the first element -> Everything is ordered. + //double time = HitTime.GetTruetime(); + double time = wcsimrootcherenkovdigihit->GetT(); + + //////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////// + + double Theta = 0; + double Phi = 0; + double weight = 1; + double distance_pmt_vertex=0; + int mPMT_number = pmt.GetmPMTNo(); + int pmt_number_in_mPMT = pmt.GetmPMT_PMTNo(); + + //TMP + double dist_tmp =0; + for(int i=0;i<3;i++) dist_tmp+=pow(particleStart[i]-pmt.GetPosition(i),2); + dist_tmp=TMath::Sqrt(dist_tmp); + //if(dist_tmp>500) continue; + //if(dist_tmp>1000) continue; + // + + if(produceDirectionPDF){ + //double * vPMTvertex = new double[3];vectorVertexPMT(geo,particleStart,pmt,tubeNumber,pmtType,vPMTvertex); + if(thetaOnly){ + Theta=findDirectionTheta(particleStart,tubeNumber,pmtType,pmt_number_in_mPMT); + } + else{ + if(pmtType==1){ + double vPMTvertex[4]; + vectorVertexPMT(particleStart,tubeNumber,pmtType,vPMTvertex,pmt_number_in_mPMT); + Phi=vPMTvertex[0]; + Theta=vPMTvertex[1]; + distance_pmt_vertex=vPMTvertex[2]; + weight=vPMTvertex[3]; + } + } + } + //std::cout << "Relative angle = " << relativeAngle << ", time = " << time << endl; + + if(plotDigitized){ + //plotBQ(PMTpos[3], PMTdir[3],phiAngle,relativeAngle,peForTube,pmtType); + if(TMath::Abs(PMTpos[2]) < 4500){//Temp + if(phiAngle < TMath::Pi()/2 || phiAngle > 3*TMath::Pi()/2) ChargeProfile2D_onlyFront[pmtType]->Fill(PMTpos[1],PMTpos[2],peForTube); + ChargeProfile2D[pmtType]->Fill(PMTpos[1],PMTpos[2],peForTube); + ChargeProfile2DTop[pmtType]->Fill(PMTpos[0],PMTpos[1],peForTube); + ChargeProfile2DCylindricCoordinate[pmtType]->Fill(phiAngle*180/TMath::Pi(),PMTpos[2],peForTube); + ChargeProfile2DRelativeAngle[pmtType]->Fill(relativeAngle,PMTpos[2],peForTube); + ChargeProfile2D_event[pmtType]->Fill(PMTpos[1],PMTpos[2],peForTube); + + ChargeProfile[pmtType]->Fill(relativeAngle,peForTube); + HitProfile[pmtType]->Fill(relativeAngle,1); +#ifdef NEUTRONCAPTURE + //In that case, we do not care about the trigger. We just want to check in the whole time window. + time+=triggerTime[pmtType]; +#endif + if(verbose&&i<10){ + cout<<"PMT type = "<Fill(time-tof+triggerTime[pmtType]-triggerShift[pmtType],1); + HitTimeTOFProfileXTOF[pmtType]->Fill(time-tof+triggerTime[pmtType]-triggerShift[pmtType],tof,1); + + //if(verbose && i<10){ + //cout<<"Hit time="<Fill(peForTube); + + totalPe += peForTube; + totalHit ++; + } + //if(i%50 == 0) cout << "Hit angle wrt particle direction = " << relativeAngle << ", Phi = " << phiAngle*180/TMath::Pi() << " Z position = " << PMTpos[2] << endl; + } + } // End of loop over Cherenkov hits + if(plotDigitized){ + if(verbose) cout << "Total Pe : " << totalPe << ", total hit : " << totalHit << endl; + TotalCharge[pmtType]->Fill(totalPe); + TotalHit[pmtType]->Fill(totalHit); + TotalChargeXdWall[pmtType]->Fill(dwall,totalPe); + } + } + // Get the number of digitized hits + // Loop over sub events + for(int pmtType=0;pmtType100){ + ChargeProfile2D_event[pmtType]->SaveAs(Form("trashPlots/ChargeProfile2D_closewall_evt%d_pmtType%d.root",stopCounterPlots,pmtType)); + stopCounterPlots++; + if(stopCounterPlots >= nPlotsStopping) return 0; + } + ChargeProfile2D_event[pmtType]->Reset(); + } + // reinitialize super event between loops. wcsimrootsuperevent->ReInitialize(); if(hybrid) wcsimrootsuperevent2->ReInitialize(); - } - - - - // Write to file - cout << "num_trig " << num_trig << "\n"; + + } // End of loop over events + // TCanvas c1("c1"); + /* + float win_scale = 0.75; + int n_wide(2); + int n_high(2); + TCanvas* c1 = new TCanvas("c1", "First canvas", 500*n_wide*win_scale, 500*n_high*win_scale); + c1->Draw(); + c1->Divide(2,2); + c1->cd(1); hvtx0->Draw(); + c1->cd(2); hvtx1->Draw(); + c1->cd(3); hvtx2->Draw(); + c1->cd(4); h1->Draw(); + */ + std::cout<<"num_trig "<Write(); + hvtx1->Write(); + hvtx2->Write(); + for(int i=0;iWrite(); + + ChargeProfile2D[i]->Write(); + + ChargeProfile2DTop[i]->Write(); + + ChargeProfile2DCylindricCoordinate[i]->Write(); + + ChargeProfile2DRelativeAngle[i]->Write(); + + ChargeProfile[i]->Write(); + + HitProfile[i]->Write(); + TimeProfile[i]->Write(); - TimeHitProfile[i]->Write(); + TimeTOFProfile[i]->Write(); + + TimeTOFProfileXTOF[i]->Write(); + HitTimeTOFProfile[i]->Write(); - - // Cherenkov angle - ChargeProfile[i]->Write(); - HitProfile[i]->Write(); - - // Charge + + HitTimeTOFProfileXTOF[i]->Write(); + + ChargePerPMT[i]->Write(); + TotalCharge[i]->Write(); + TotalHit[i]->Write(); + + TotalChargeXdWall[i]->Write();//Fill(dWall,totalPe); + + //ChargeProfile2DXPMT[i]->Write(); + + for(int p=0;pWrite(); + angularResponseXPMT_allPMTs[i][p]->Write(); + } + distanceXweight_hits[i]->Write(); + } - - // Vertex - hvtx0->Write(); - hvtx1->Write(); - hvtx2->Write(); outfile->Close(); return 0; -} \ No newline at end of file + } \ No newline at end of file diff --git a/macros/ProducePDF.cpp b/macros/ProducePDF.cpp index 5351d20..a0be5b3 100755 --- a/macros/ProducePDF.cpp +++ b/macros/ProducePDF.cpp @@ -21,16 +21,60 @@ #include #include +#include "WCSimRootEvent.hh" +#include "WCSimRootGeom.hh" +#include "WCSimRootOptions.hh" using namespace std; +bool separatedTriggers=false; //Assume two independent triggers, one for mPMT, one for B&L +bool produceDirectionPDF=true; +bool thetaOnly=false; +WCSimRootGeom *geo = 0; + +bool eventDisplay_closeWall = false; +int stopCounterPlots=0; +int nPlotsStopping = 50; +int topPMT=19; +int nPMTpermPMT=19; + +// Simple example of reading a generated Root file +const int nPMTtypes = 2; +double PMTradius[nPMTtypes]; +const int nGroupsPMTs = 3; //Different PMT config in an mPMT. I assumed here a rotational symetry of the mPMT, so PMT 1 to 12 are the same, 13 to 18 are the same and 19 is separated + +// TOF residuals +TH1D * TimeProfile[nPMTtypes]; +TH1D * TimeHitProfile[nPMTtypes]; +TH1D * TimeTOFProfile[nPMTtypes]; +TH1D * HitTimeTOFProfile[nPMTtypes]; + +// Cherenkov angle +TH1D * ChargeProfile[nPMTtypes]; +TH1D * HitProfile[nPMTtypes]; + +// Charge +TH1D * TotalCharge[nPMTtypes]; +TH1D * TotalHit[nPMTtypes]; + + + + +/*****************************************************************************************************/ +/* DEFINE STRUCT AND USEFUL FUNCTIONS */ +/*****************************************************************************************************/ + + struct arguments { char * inputFile = NULL; char * outputFile = NULL; + int startEvent = 0; // First event to analyze + int endEvent = 0; // Last event to analyze + bool HK = false; bool verbose = false; }; @@ -42,7 +86,7 @@ arguments FetchInput(int argc, char* argv[]) //Input in c the argument (-f etc...) and in optarg the next argument //When the above test becomes -1, it means it fails to find a new argument std::cout << std::endl; - while( (c = getopt(argc, argv, "i:o:v")) != -1 ) + while( (c = getopt(argc, argv, "i:o:s:e:h:v")) != -1 ) { switch(c) { @@ -55,10 +99,31 @@ arguments FetchInput(int argc, char* argv[]) //Output file name case 'o': arglist.outputFile = optarg; - if(arglist.outputFile == NULL){sprintf(arglist.outputFile,"PDF.root");} + if(arglist.outputFile == NULL){sprintf(arglist.outputFile,"out.txt");} std::cout << "Output root file: " << arglist.outputFile << std::endl; break; + //Starting event + case 's': + arglist.startEvent = atoi(optarg); + if(arglist.startEvent == NULL || arglist.startEvent < 0){arglist.startEvent = 0;} + std::cout << "Starting event #" << arglist.startEvent << std::endl; + break; + + //Ending event + case 'e': + arglist.endEvent = atoi(optarg); + if(arglist.endEvent == NULL){arglist.endEvent = 0;} + if(arglist.endEvent >= arglist.startEvent){std::cout << "Ending event #" << arglist.endEvent << std::endl;} + if(arglist.endEvent < arglist.startEvent){std::cout << "Ending event = last WCSim event" << std::endl;} + break; + + //Using HK geometry + case 'h': + arglist.HK = true; + std::cout << "Using HK geoemtry" << std::endl; + break; + //Warning case 'v': arglist.verbose = true; @@ -73,29 +138,403 @@ arguments FetchInput(int argc, char* argv[]) +/*****************************************************************************************************/ +/* MAKE PLOTS */ +/*****************************************************************************************************/ + +int ProducePlots(arguments arglist) +{ + string outfilename = "plots_for_PDFs.root"; + + //Get arguments + char * filename = arglist.inputFile; + int startEvent = arglist.startEvent; //We start counting at 0 + int endEvent = arglist.endEvent; + bool HK = arglist.HK; + bool verbose = arglist.verbose; + bool hybrid = true; + + float cvacuum = 0.299792458;//speed of light, in meter per ns. + float nindex = 1.373;//refraction index of water + double TotalNHits = 1e4; + double TankSize = 1100/2;//in cm, the maximal size of the plots for vertices etc... + double TankRadius = 742/2;//in cm, the maximal size of the plots for vertices etc... + double TankHalfHeight = 1042/2;//in cm, the maximal size of the plots for vertices etc... + if(HK) + { + TotalNHits = 3e4; + TankSize = 7100;//in cm, the maximal size of the plots for vertices etc... + TankRadius = 3242.766;//in cm, the maximal size of the plots for vertices etc... + TankHalfHeight = 3296.471;//in cm, the maximal size of the plots for vertices etc... + } + + + + + // Open the input file + TFile *file; + if (filename==NULL) + { + cout << "Error, no input file" << endl; + return -1; + } + else + { + file = new TFile(filename,"read"); + } + + if (!file->IsOpen()) + { + cout << "Error, could not open input file: " << filename << endl; + return -1; + } + + + // Get the a pointer to the tree from the file + TTree *tree = (TTree*)file->Get("wcsimT"); + + // Get the number of events + int nevent = ((int)tree->GetEntries()); + if(endEvent>startEvent && endEvent!=0 && endEvent<=nevent) nevent = endEvent; + if(verbose) printf("nevent %d\n",nevent); + + // Create a WCSimRootEvent to put stuff from the tree in + + WCSimRootEvent* wcsimrootsuperevent = new WCSimRootEvent(); + WCSimRootEvent* wcsimrootsuperevent2 = new WCSimRootEvent(); + + // Set the branch address for reading from the tree + TBranch *branch = tree->GetBranch("wcsimrootevent"); + branch->SetAddress(&wcsimrootsuperevent); + tree->GetBranch("wcsimrootevent")->SetAutoDelete(kTRUE); // Force deletion to prevent memory leak + + TBranch *branch2; + if(hybrid) + { + branch2 = tree->GetBranch("wcsimrootevent2"); + branch2->SetAddress(&wcsimrootsuperevent2); + tree->GetBranch("wcsimrootevent2")->SetAutoDelete(kTRUE); // Force deletion to prevent memory leak + } + + // Geometry tree - only need 1 "event" + TTree *geotree = (TTree*)file->Get("wcsimGeoT"); + geotree->SetBranchAddress("wcsimrootgeom", &geo); + if(verbose) std::cout << "Geotree has " << geotree->GetEntries() << " entries" << std::endl; + if (geotree->GetEntries() == 0) {exit(9);} + geotree->GetEntry(0); + PMTradius[0]=geo->GetWCPMTRadius(); + PMTradius[1]=geo->GetWCPMTRadius(true); + cout << "Number of PMTs of 1st type = " << geo->GetWCNumPMT() << ", radius = " << PMTradius[0] << endl; + cout << "Number of PMTs of 2nd type = " << geo->GetWCNumPMT(true) << ", radius = " << PMTradius[1] << endl; + + // Options tree - only need 1 "event" + TTree *opttree = (TTree*)file->Get("wcsimRootOptionsT"); + WCSimRootOptions *opt = 0; + opttree->SetBranchAddress("wcsimrootoptions", &opt); + if(verbose) std::cout << "Optree has " << opttree->GetEntries() << " entries" << std::endl; + if (opttree->GetEntries() == 0) + { + exit(9); + } + opttree->GetEntry(0); + opt->Print(); + + // Start with the main "subevent", as it contains most of the info and always exists. + WCSimRootTrigger* wcsimrootevent; + WCSimRootTrigger* wcsimrootevent2; + + TH1F *hvtx0 = new TH1F("Event VTX0", "Event VTX0", 200, -TankRadius, TankRadius); + TH1F *hvtx1 = new TH1F("Event VTX1", "Event VTX1", 200, -TankRadius, TankRadius); + TH1F *hvtx2 = new TH1F("Event VTX2", "Event VTX2", 200, -TankHalfHeight, TankHalfHeight); + + int num_trig=0; + int nbins_position = TankSize/2; + int nbins_angle = 720; + int nbins_time = 1e4; + int nbins_TOF = 1e3; + int nbins_pe = 500; + int nbins_totalcharge = 3e4; + int nbins_distancePMT = 700; + int nbins_phi = 18; + int nbins_theta = 18; + int nbins_weight = 200; + + for(int i=0 ; iSumw2(); + TimeHitProfile[i] = new TH1D(Form("TimeHitProfile_pmtType%d",i),"", nbins_time, 0, 5e3); TimeHitProfile[i]->Sumw2(); + TimeTOFProfile[i] = new TH1D(Form("TimeTOFProfile_pmtType%d",i),"", nbins_time, -1.5e3, 1.5e3); TimeTOFProfile[i]->Sumw2(); + HitTimeTOFProfile[i]= new TH1D(Form("HitTimeTOFProfile_pmtType%d",i),"",nbins_time, -1.5e3, 1.5e3); HitTimeTOFProfile[i]->Sumw2(); + + // Cherenkov angle + ChargeProfile[i] = new TH1D(Form("ChargeProfile_pmtType%d",i),"",nbins_angle, 0, 180); ChargeProfile[i]->Sumw2(); + HitProfile[i] = new TH1D(Form("HitProfile_pmtType%d",i),"", nbins_angle, 0, 180); HitProfile[i]->Sumw2(); + + // Charge + TotalCharge[i] = new TH1D(Form("TotalCharge_pmtType%d",i),"", nbins_totalcharge, 0, 3e4); TotalCharge[i]->Sumw2(); + TotalHit[i] = new TH1D(Form("TotalHit_pmtType%d",i),"", nbins_totalcharge, 0, TotalNHits); TotalHit[i]->Sumw2(); + } + + + + /**************/ + /* LOOP EVENT */ + /**************/ + + for (int ev=startEvent ; evGetEntry(ev); + + wcsimrootevent = wcsimrootsuperevent->GetTrigger(0); + if(hybrid) wcsimrootevent2 = wcsimrootsuperevent2->GetTrigger(0); + + std::vector triggerInfo; triggerInfo = wcsimrootevent->GetTriggerInfo(); + std::vector triggerInfo2; if(hybrid) triggerInfo2 = wcsimrootevent2->GetTriggerInfo(); + + // Verbose print + if(verbose) + { + printf("********************************************************"); + printf("Evt, date %d %d\n", wcsimrootevent->GetHeader()->GetEvtNum(), wcsimrootevent->GetHeader()->GetDate()); + printf("Mode %d\n", wcsimrootevent->GetMode()); + printf("Number of subevents %d\n", wcsimrootsuperevent->GetNumberOfSubEvents()); + printf("Vtxvol %d\n", wcsimrootevent->GetVtxvol()); + printf("Vtx %f %f %f\n", wcsimrootevent->GetVtx(0), wcsimrootevent->GetVtx(1), wcsimrootevent->GetVtx(2)); + printf("Jmu %d\n", wcsimrootevent->GetJmu()); + printf("Npar %d\n", wcsimrootevent->GetNpar()); + printf("Ntrack %d\n", wcsimrootevent->GetNtrack()); + + for(int v=0 ; vGetNcherenkovhits(); + int ncherenkovhits2 = 0; + if(hybrid) ncherenkovhits2 = wcsimrootevent2->GetNcherenkovhits(); + + int ncherenkovdigihits = wcsimrootevent->GetNcherenkovdigihits(); + int ncherenkovdigihits2 = 0; + if(hybrid) ncherenkovdigihits2 = wcsimrootevent2->GetNcherenkovdigihits(); + + // Verbose print + if(verbose) + { + cout << "LOOP OVER DIGITIZED HITS:" << endl; + printf("node id: %i\n", ev); + printf("Ncherenkovdigihits %d\n", ncherenkovdigihits); + printf("Ncherenkovdigihits2 %d\n", ncherenkovdigihits2); + } + + // Loop over PMT type + for(int pmtType=0 ; pmtTypeGetCherenkovDigiHits())->At(i); + else Hit = (wcsimrootevent2->GetCherenkovDigiHits())->At(i); + + WCSimRootCherenkovDigiHit *wcsimrootcherenkovdigihit = dynamic_cast(Hit); + int tubeNumber = wcsimrootcherenkovdigihit->GetTubeId(); + double peForTube = wcsimrootcherenkovdigihit->GetQ(); + + WCSimRootPMT pmt; + if(pmtType == 0) pmt = geo->GetPMT(tubeNumber-1, false); + else pmt = geo->GetPMT(tubeNumber-1, true); + + double PMTpos[3]; + for(int j=0 ; j<3 ; j++){PMTpos[j] = pmt.GetPosition(j);} + + + // Compute variables + double vDir[3]; + for(int j=0 ; j<3 ; j++){vDir[j] = PMTpos[j] - particleStart[j];} + + double Norm = TMath::Sqrt(vDir[0]*vDir[0] + vDir[1]*vDir[1] + vDir[2]*vDir[2]); + for(int j=0 ; j<3 ; j++){vDir[j] /= Norm;} + + double time = wcsimrootcherenkovdigihit->GetT(); + double tof = Norm*1e-2/(cvacuum/nindex); + double tof_residuals = time-tof+triggerTime[pmtType]-triggerShift[pmtType]; + double relativeAngle = TMath::ACos(vDir[0]*particleDir[0] + vDir[1]*particleDir[1] + vDir[2]*particleDir[2])*180./TMath::Pi(); + + + // Fill histograms + // TOF residuals + TimeProfile[pmtType]->Fill(time, peForTube); + TimeHitProfile[pmtType]->Fill(time, 1.); + TimeTOFProfile[pmtType]->Fill(tof_residuals, peForTube); + HitTimeTOFProfile[pmtType]->Fill(tof_residuals, 1.); + + // Cherenkov angle + ChargeProfile[pmtType]->Fill(relativeAngle, peForTube); + HitProfile[pmtType]->Fill(relativeAngle, 1); + + // Charge + TotalCharge[pmtType]->Fill(peForTube); + TotalHit[pmtType]->Fill(1.); + } + } + // Vertex + hvtx0->Fill(wcsimrootevent->GetVtx(0)); + hvtx1->Fill(wcsimrootevent->GetVtx(1)); + hvtx2->Fill(wcsimrootevent->GetVtx(2)); + + + + /****************/ + /* REINITIALIZE */ + /****************/ + + wcsimrootsuperevent->ReInitialize(); + if(hybrid) wcsimrootsuperevent2->ReInitialize(); + } + + + + // Write to file + cout << "num_trig " << num_trig << "\n"; + TFile * outfile = new TFile(outfilename.c_str(),"RECREATE"); + cout << "File " << outfilename << " is open for writing" << endl; + for(int i=0 ; iWrite(); + TimeHitProfile[i]->Write(); + TimeTOFProfile[i]->Write(); + HitTimeTOFProfile[i]->Write(); + + // Cherenkov angle + ChargeProfile[i]->Write(); + HitProfile[i]->Write(); + + // Charge + TotalCharge[i]->Write(); + TotalHit[i]->Write(); + } + + // Vertex + hvtx0->Write(); + hvtx1->Write(); + hvtx2->Write(); + + outfile->Close(); + + return 0; +} + + /*****************************************************************************************************/ /* MAKE PDFs */ /*****************************************************************************************************/ int main(int argc, char **argv) { - const int nFiles=1; TFile * _f; - //Get arguments + //Get arguments arguments arglist = FetchInput(argc, argv); - char * ifname = arglist.inputFile; - char * ofname = arglist.outputFile; - bool verbose = arglist.verbose; - - if (ifname==NULL) + char * filename= arglist.inputFile; + char * ofname = arglist.outputFile; + int startEvent = arglist.startEvent; //We start counting at 0 + int endEvent = arglist.endEvent; + bool HK = arglist.HK; + bool verbose = arglist.verbose; + bool hybrid = true; + + int plot_check = ProducePlots(arglist); + string ifname = "plots_for_PDFs.root"; + + if (plot_check != 0) { cout << "Error, no input file" << endl; return -1; } else { - _f = new TFile(ifname,"read"); + _f = new TFile(ifname.c_str(),"read"); } if (!_f->IsOpen()) From af218e5dd491f3567fca30d56adc8d863027162c Mon Sep 17 00:00:00 2001 From: lperisse Date: Sun, 15 Mar 2026 13:16:10 +0100 Subject: [PATCH 15/15] correct README --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0235457..38660a3 100644 --- a/README.md +++ b/README.md @@ -71,15 +71,15 @@ $ make ProducePDF 2. Produce plots using AnalyzeWSHierarchy which reads out WCSim output. Optionally, you can index a range of events to read with -s (start index) and -e (end index). Use option -h if when using a hybrid HK geometry presenting both PMTs and mPMTs. ``` -$ ./AnalyzeWSHierarchy -i wcsim.root -o plots.root -s 0 -e 1000 -h +$ ./AnalyzeWSHierarchy -i wcrim.root -o plots.root -s 0 -e 1000 -h ``` 3. Produce time PDF and angular PDF using ProducePDF: uses plots made using AnalyzeWSHierarchy and generate PDFs for LEAF. ``` $ ./ProducePDF -i wcsim.root -o PDF.root -s 0 -e 1000 -v - ``` Pathes to PDF files required as inputs for LEAF are hard-coded inside leaf/LeafSplines.cc, inside the LoadSplines() methods. Make sure these pathes are consistant with the files you generate on your own. +

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 diff --git a/leaf/DataModel-lite/HitCollection.h b/leaf/DataModel-lite/HitCollection.h index 53673a7..f824247 100644 --- a/leaf/DataModel-lite/HitCollection.h +++ b/leaf/DataModel-lite/HitCollection.h @@ -18,8 +18,8 @@ * */ -template class HitCollection { - +template class HitCollection +{ public: HitCollection(); virtual ~HitCollection(); diff --git a/leaf/GNUmakefile b/leaf/GNUmakefile index e8194e0..9d72a20 100755 --- a/leaf/GNUmakefile +++ b/leaf/GNUmakefile @@ -15,26 +15,6 @@ CXXFLAGS_BASE += $(shell root-config --cflags) CXXFLAGS_BASE += '-fPIC' -Wall -Wpedantic -Wno-long-long -DDATAMODEL_LITE CXXFLAGS = $(CXXFLAGS_BASE) -#CXXFLAGS_ROOT = $(CXXFLAGS_BASE) - -# #ifeq ($(shell echo "$(ROOT_VERSION) >= 6.0" | bc -l ), 1) -# ROOT_VERSION = $(shell root-config --version | tr -d '/' ) -# ifeq ($(shell [ $(ROOT_VERSION) -ge 6.0 ] && echo 1 || echo 0), 1) -# MAKE_LEAF_WITH_ROOT6 = 1 -# CXXFLAGS += -std=c++17 -DROOT6 # modifies to c++17 (Nicolas) -# #CXXFLAGS_ROOT += -std=c++11 -DROOT6 -# else -# CXXFLAGS += -std=c++11 -DROOT5 -# endif - -# ROOT_VERSION = $(shell root-config --version | tr -d '/') -# ifeq ($(shell echo "$(ROOT_VERSION) >= 6.0" | bc -l), 1) -# MAKE_LEAF_WITH_ROOT6 = 1 -# CXXFLAGS += -std=c++17 -DROOT6 # modifies to c++17 (Nicolas) -# #CXXFLAGS_ROOT += -std=c++11 -DROOT6 -# else -# CXXFLAGS += -std=c++11 -DROOT5 -# endif ROOT_VERSION = $(shell root-config --version | cut -d'.' -f1,2) @@ -108,15 +88,6 @@ $(LIB_DATAMODEL): $(DATAMODEL_OBJECTS) fi @$(SOMAKER) $(SOFLAGS) -o $@ $(DATAMODEL_OBJECTS) $(LIBS) -# Not needed anymore -#DataModelRootDict.cpp: -# @echo '<< generating ' $@ ' >>' -# @rootcint -f DataModelRootDict.cpp -c $(CXXFLAGS_ROOT) -p $(DATAMODEL_HEADERS) $(PWD)/DataModel/LinkDef.h -#ifeq ($(MAKE_LEAF_WITH_ROOT6),1) -# @echo '<< install DataModelRootDict_rdict.pcm >>' -# @cp DataModelRootDict_rdict.pcm ../lib/. -#endif - # DataModel objects %.o: DataModel/%.cpp DataModel/%.h @echo '<< compiling DataModel object: ' $@ ' >>' diff --git a/leaf/LEAF.cc b/leaf/LEAF.cc index 9a86454..e1def24 100644 --- a/leaf/LEAF.cc +++ b/leaf/LEAF.cc @@ -11,7 +11,12 @@ LEAF *LEAF::myFitter = NULL; std::mutex mtx; +FitterOutput LEAF::fOutput; +FitterOutputProps LEAF::fOutputProps; + +/*****************************************************************************************************/ +/* GENERAL LEAF METHODS AND STRUCTURES FOR FITS */ /*****************************************************************************************************/ LEAF::LEAF() @@ -38,10 +43,6 @@ void LEAF::DeleteME() if (myFitter) delete myFitter; } -FitterOutput LEAF::fOutput; -FitterOutputProps LEAF::fOutputProps; - -/*****************************************************************************************************/ void LEAF::Initialize(const Geometry *lGeometry) { InitConfig(lGeometry); @@ -50,6 +51,104 @@ void LEAF::Initialize(const Geometry *lGeometry) fOutput = NewOutuput(); } +void LEAF::LoadHitCollection(const HitCollection *lHitCol, const TimeDelta lTriggerTime, bool bMultiPMT) +{ + fHitCollection = lHitCol; + fTriggerTime = lTriggerTime; + fTimeCorrection = fHitCollection->timestamp - fTriggerTime; + if (fPositionList.size() == 0) MakePositionList(); + fUseDirectionality = bMultiPMT ? fUseDirectionality : false; +} + +struct FitterOutput LEAF::NewOutuput() +{ + struct FitterOutput fOutput; + fOutput.Vtx = std::vector(4); + fOutput.Dir = std::vector(3); + fOutput.NLL = 0.; + fOutput.DNLL = 0.; + fOutput.Energy = 0.; + fOutput.TotalCharge = 0.; + + return fOutput; +} + +struct FitterOutput LEAF::MakeSequentialFit(const HitCollection *lHitCol, const TimeDelta lTriggerTime, bool bMultiPMT) +{ + TStopwatch timer; + timer.Reset(); + timer.Start(); + + LoadHitCollection(lHitCol, lTriggerTime, bMultiPMT); + + if(fHitCollection->Size() <= 0) return NewOutuput(); + + //* Vertex + FitVertex(); + + //* Goodness of fit + fOutput.NLLR = Likelihoods::GoodnessOfFit(fHitCollection, fOutput.Vtx, fHitCollection->Size(), fMinimizeLimitsNegative, fMinimizeLimitsPositive, true, false, fUseDirectionality); //* Goodness of Fit + + //* Direction + + //? three direction methods are stored, one can use only the Fit Direction method + // FitDirectionQuick(fOutput.Vtx); // prefit + + // // the prefit is stored in fOutput.Dir + // FitDirection(fOutput.Vtx, fHitCollection->Size(), true); // optimization with one candidate that is the prefit + // fOutput.MyDir = fOutput.Dir; + // FitDirection(fOutput.Vtx, fHitCollection->Size(), false); // optimization without prefit, 30 candidates used + + FitDirectionQuick(fTrueVtxPos); // prefit + + // the prefit is stored in fOutput.Dir + FitDirection(fTrueVtxPos, fHitCollection->Size(), true); // optimization with one candidate that is the prefit + fOutput.MyDir = fOutput.Dir; + FitDirection(fTrueVtxPos, fHitCollection->Size(), false); // optimization without prefit, 30 candidates used + + + //* Energy + FitEnergy(); + + timer.Stop(); + fOutputProps.Leaf_ComputeTime = timer.RealTime(); + + return fOutput; +} + +struct FitterOutput LEAF::MakeJointFit(const HitCollection *lHitCol, const TimeDelta lTriggerTime, bool bMultiPMT) +{ + LoadHitCollection(lHitCol, lTriggerTime, bMultiPMT); + + TStopwatch timer; + timer.Reset(); + timer.Start(); + + if(fHitCollection->Size() <= 0) return NewOutuput(); + + std::vector Candidates = SearchVertexAndDir(); + JointFitCandidate finalCandidate = MinimizeVertexAndDir(Candidates); + + fOutput.Vtx = {finalCandidate.VtxPart.X, finalCandidate.VtxPart.Y, finalCandidate.VtxPart.Z, finalCandidate.VtxPart.T}; + fOutput.Dir = PolarToCartesianNorm({finalCandidate.DirPart.theta, finalCandidate.DirPart.phi}); + fOutput.NLL = finalCandidate.NLL; + fOutput.DNLL = Likelihoods::Dir_NLL(fHitCollection, fOutput.Vtx, finalCandidate.DirPart.theta, finalCandidate.DirPart.phi , fHitCollection->Size()); + fOutput.NLLR = Likelihoods::GoodnessOfFit(fHitCollection, fOutput.Vtx, fHitCollection->Size(), fMinimizeLimitsNegative, fMinimizeLimitsPositive, true, false, fUseDirectionality); //* Goodness of Fit + + //* Energy, alone + FitEnergy(); + + timer.Stop(); + fOutputProps.Leaf_ComputeTime = timer.RealTime(); + + return fOutput; +} + + +/*****************************************************************************************************/ +/* DIRECTION FIT */ +/*****************************************************************************************************/ + //Creates the candidates list after Coarse grid search, refines the fit, then outputs the best candidate std::vector LEAF::FitDirection(const std::vector& fixedVertexPosition, int nhits, bool searchPrior) { @@ -238,88 +337,58 @@ DirectionCandidate LEAF::MinimizeDirection(const std::vector& fixedVerte return candidates[0]; // Returns [theta, phi] } -/*****************************************************************************************************/ -// Coarse search of the vertex. It will search in a cylinder having the radius = tankRadius and a height tankHeight. -// The step between each grid points is given by stepSize (in centimeters). -// We give the list of hit information through the 2D array fHitInfo to make the code faster, instead of using the whole code information -// The code provide as an output not only one vertex, but a list of vertices whose likelihood is higher (Negative Log Likelihood is lower). -// The number of output vertices can be chosen using "tolerance". -std::vector> LEAF::SearchVertex(int nhits, int tolerance, bool likelihood, double lowerLimit, double upperLimit, int directionality) -{ - // 2. How to set the search? - // double stepSize = 0.5;//in m +/*****************************************************************************************************/ +/* VERTEX FIT */ +/*****************************************************************************************************/ - std::vector tBestReconstructedVertexPosition; - // double ** reconstructedVertexPosition = new double[4]; +void LEAF::FitVertex(std::vector* fDirection_Filter, float FilterThreshold) +{ + double *tLimits = new double[4]; + int iHitsTotal = fHitCollection->Size(); + std::vector< std::vector > fRecoVtxPosFinal; - std::vector tVtxContainer; + TStopwatch timer; + timer.Reset(); + timer.Start(); - clock_t timeStart = clock(); + std::vector tRecoVtxPosCand = this->SearchVertex_Main(iHitsTotal,fSearchVtxTolerance,false,fSTimePDFLimitsQueueNegative,fSTimePDFLimitsQueuePositive,false); + std::vector> tRecoVtxPos; - if (fPositionList.size() == 0) - std::cout << " Position list not filled " << std::endl; - if (VERBOSE >= 3) - std::cout << "Number of hits for coarse grid search = " << nhits << std::endl; - for (unsigned int iPos = 0; iPos < fPositionList.size(); iPos++) + // Extract only the vertex positions from the VtxCandidate structure + for (const auto& cand : tRecoVtxPosCand) { - struct FitPosition hPos; - hPos.Vtx = fPositionList[iPos]; - hPos.NLL = 0; - - if (likelihood) - hPos.NLL = Likelihoods::Vertex_Time_NLL(fHitCollection, hPos.Vtx, nhits, lowerLimit, upperLimit, false, false, directionality); - else - hPos.NLL = Likelihoods::Vertex_Score(fHitCollection, hPos.Vtx, nhits, lowerLimit, upperLimit, false, false, directionality); - - hPos.NLL += fRand->Uniform(0, 1e-5); // Here only not to have exactly the same value for 2NLL, and be removed from map - - tVtxContainer.push_back(hPos); - - if (VERBOSE >= 3) - std::cout << "Test Pos: " << hPos.Vtx[3] << " " << hPos.Vtx[0] << " " << hPos.Vtx[1] << " " << hPos.Vtx[2] << " NLL = " << hPos.NLL << " " << likelihood << std::endl; - -#ifdef VERBOSE_VTX - // if(verbose && distanceToTrue < 2) std::cout << "Distance to true vertex = " << distanceToTrue << ", Probability = " << NLL < tolerance) + if (VERBOSE >= 2) { -#ifdef VERBOSE_VTX - std::cout << " Remove end: " << tVtxContainer.back().NLL << " (first " << tVtxContainer[0].NLL << ") " << tVtxContainer.size() << std::endl; -#endif - tVtxContainer.pop_back(); + for (unsigned int a = 0; a < tRecoVtxPos.size(); a++) + std::cout << "Candidate vertex [ " << a << " ] = " << tRecoVtxPos[a][0] << " , " << tRecoVtxPos[a][1] << " , " << tRecoVtxPos[a][2] << " , " << tRecoVtxPos[a][3] << ", NLL = " << tRecoVtxPos[a][4] << std::endl; } - clock_t timeEndLoop = clock(); - - std::vector> tReconstructedVertexPosition; - for (int iPos = 0; iPos < tolerance; iPos++) - { - std::vector vPos(5, 0.); - struct FitPosition hPos = tVtxContainer[iPos]; - - vPos[0] = hPos.Vtx[0]; - vPos[1] = hPos.Vtx[1]; - vPos[2] = hPos.Vtx[2]; - vPos[3] = hPos.Vtx[3]; - vPos[4] = hPos.NLL; - - tReconstructedVertexPosition.push_back(vPos); + timer.Stop(); + fOutputProps.Vtx_Search_ComputeTime = timer.RealTime(); + // std::cout << "SearchVertex took: " << timer.RealTime() << std::endl; -#ifdef VERBOSE_VTX - std::cout << "NLL = " << hPos.NLL << ", vertex = " << vPos[0] << ", " << vPos[1] << ", " << vPos[2] << ", " << vPos[3] << std::endl; -#endif - } + double dStepSizeFinal = 10; + int iToleranceFinal = 1; - clock_t timeEnd = clock(); + timer.Reset(); + timer.Start(); + + for (int i = 0; i < 4; i++) tLimits[i] = 2 * fSearchVtxStep; + fRecoVtxPosFinal = this->MinimizeVertex_Main(tRecoVtxPos, tLimits, dStepSizeFinal, iHitsTotal, fSearchVtxTolerance, iToleranceFinal, VERBOSE, true, false, fMinimizeLimitsNegative, fMinimizeLimitsPositive, fUseDirectionality, fDirection_Filter, FilterThreshold); - std::cout << "SearchVertex: Time it took for the loop = " << (timeEndLoop - timeStart) / 1e6 << ", time total = " << (timeEnd - timeStart) / 1e6 << " " << fPositionList.size() << std::endl; + timer.Stop(); + fOutputProps.Vtx_Minimize_ComputeTime = timer.RealTime(); - return tReconstructedVertexPosition; + fOutput.Vtx[0] = fRecoVtxPosFinal[0][0]; + fOutput.Vtx[1] = fRecoVtxPosFinal[0][1]; + fOutput.Vtx[2] = fRecoVtxPosFinal[0][2]; + fOutput.Vtx[3] = fRecoVtxPosFinal[0][3]; + fOutput.NLL = fRecoVtxPosFinal[0][4]; } std::vector LEAF::SearchVertex_Main(int nhits, int tolerance, bool likelihood, double lowerLimit, double upperLimit, int directionality) @@ -429,272 +498,6 @@ void LEAF::SearchVertex_thread(int iStart, int iIte, int nhits, int tolerance, b mtx.unlock(); } -// Fine grid search of the vertex. It will search in a box this time, and not a cylinder as searchVertex is doing. It is useful when we have one or several first candidate vertices. Therefore, this code is generally run after serachVertex. -// The box is centered around the initial vertex provided. -// The box size is 2 x limits in each direction, centered on the initial vertex provided. -// nCandidate provide the size of the list of inital vertices, while tolerance provide the size of the output list. -// Other informations are the same as searchVertex. -std::vector> LEAF::SearchVertexFine(std::vector> initialVertex, double *limits, double stepSize, int nhits, int nCandidates, int tolerance, int verbose, bool likelihood, bool average, double lowerLimit, double upperLimit, int directionality) -{ - if (verbose) std::cout << "Start fine search, use directionality? " << directionality << std::endl; - std::vector tBestReconstructedVertexPosition; - double minNLL = 1e15; - clock_t timeStart = clock(); - - std::map> vertexContainer; - - for (int icand = 0; icand < nCandidates; icand++) - { - if (verbose) - std::cout << "Candidate #" << icand << std::endl; - for (double time = initialVertex[icand][VTX_T] - limits[0] / fLightSpeed; time <= initialVertex[icand][VTX_T] + limits[0] / fLightSpeed; time += (stepSize / fLightSpeed)) - { - if (VERBOSE >= 2) - std::cout << "Time = " << time << "ns" << std::endl; - for (double x = initialVertex[icand][VTX_X] - limits[1]; x <= initialVertex[icand][VTX_X] + limits[1]; x += stepSize) - { - if (VERBOSE >= 2) - std::cout << "x = " << x << "m" << std::endl; - for (double y = initialVertex[icand][VTX_Y] - limits[2]; y <= initialVertex[icand][VTX_Y] + limits[2]; y += stepSize) - { - if (VERBOSE >= 2) - std::cout << "y = " << y << "m" << std::endl; - for (double z = initialVertex[icand][VTX_Z] - limits[3]; z <= initialVertex[icand][VTX_Z] + limits[3]; z += stepSize) - { - if (VERBOSE >= 2) - std::cout << "z = " << z << "m" << std::endl; - - std::vector tVtxPosition(4, 0.); // In centimeters - tVtxPosition[0] = x; // radius*TMath::Cos(angle); - tVtxPosition[1] = y; // radius*TMath::Sin(angle); - tVtxPosition[2] = z; // height; - tVtxPosition[3] = time; - - double NLL = 0; - if (average) - { - // double vNLL[fAveraging]; - for (int irand = 0; irand < fAveraging; irand++) - { - // Determine the position around the vertex - double radius = 1.5 * fRand->Uniform(0, stepSize); - double phi = fRand->Uniform(0, 2 * TMath::Pi()); - double theta = fRand->Uniform(0, TMath::Pi()); - double timeRand = 1.5 * fRand->Uniform(-stepSize / fLightSpeed, stepSize / fLightSpeed); - std::vector randVertexPosition(4, 0.); // In centimeters - randVertexPosition[0] = tVtxPosition[0] + radius * TMath::Sin(theta) * TMath::Cos(phi); - randVertexPosition[1] = tVtxPosition[1] + radius * TMath::Sin(theta) * TMath::Sin(phi); - randVertexPosition[2] = tVtxPosition[2] + radius * TMath::Cos(theta); - randVertexPosition[3] = tVtxPosition[3] + timeRand; // rand->Uniform(-stepSize/fLightSpeed/2,stepSize/fLightSpeed/2); - // Evaluate its NLL - double nll = Likelihoods::FindNLL(fHitCollection, randVertexPosition, nhits, likelihood, verbose, lowerLimit, upperLimit, false, false, directionality); - NLL += nll; - // vNLL[irand]=nll; - } - - if (fAveraging != 0) - NLL /= fAveraging; - } - else - NLL = Likelihoods::FindNLL(fHitCollection, tVtxPosition, nhits, likelihood, verbose, lowerLimit, upperLimit, false, false, directionality); - - std::vector candidateReconstructedVertexPosition(4, 0.); - for (int i = 0; i < 4; i++) - candidateReconstructedVertexPosition[i] = tVtxPosition[i]; - - vertexContainer[NLL] = candidateReconstructedVertexPosition; - if ((int)vertexContainer.size() > tolerance) - { - vertexContainer.erase(--vertexContainer.rbegin().base()); - } - - if (NLL < minNLL) - { - minNLL = NLL; - // std::cout << "minNLL = "<> tReconstructedVertexPosition; - for (int count = 0; count < tolerance; count++) - { - std::vector vTmp(5, 0.); - tReconstructedVertexPosition.push_back(vTmp); - } - int counter = 0; - for (std::map>::iterator it = vertexContainer.begin(); it != vertexContainer.end(); it++) - { - // for(std::map< double, std::vector >::iterator it = vertexContainer.begin();it!=vertexContainer.end();it++){ - if (counter < tolerance) - { - // tReconstructedVertexPosition[counter] = new double[4]; - for (int i = 0; i < 4; i++) - tReconstructedVertexPosition[counter][i] = (it->second)[i]; - tReconstructedVertexPosition[counter][4] = it->first; - } - counter++; - } - - clock_t timeEnd = clock(); - if (verbose) std::cout << "SearchVertexFine: Time it took for the loop = " << (timeEndLoop - timeStart) / 1e6 << ", time total = " << (timeEnd - timeStart) / 1e6 << std::endl << std::endl; - - return tReconstructedVertexPosition; - // return tBestReconstructedVertexPosition; -} - -// here is the function where minimization gonna take place. The loop is inside this function -std::vector> LEAF::MinimizeVertex(std::vector> initialVertex, double *limits, double stepSize, int nhits, int nCandidates, int tolerance, int verbose, bool /*likelihood*/, bool /*average*/, double lowerLimit, double upperLimit, int directionality) -{ - if (VERBOSE >= 2) std::cout << "Minimizer" << std::endl; - // 2. How to set the search? - // double stepSize = 0.5;//in m - // double * reconstructedVertexPosition = new double[4]; - std::vector tBestReconstructedVertexPosition; - clock_t timeStart = clock(); - - std::vector tVtxContainer; - - if (VERBOSE >= 2) - std::cout << "Minimizer" << std::endl; - TFitter *minimizer = new TFitter(8); // 4=nb de params? - TMinuit *minuit = minimizer->GetMinuit(); - - double arglist[20]; - int err = 0; - double p1 = verbose - 1; - minimizer->ExecuteCommand("SET PRINTOUT", &p1, 1); // quiet mode - minuit->SetErrorDef(1); - // minuit->SetPrintLevel(-1); // quiet mode - if (VERBOSE < 2) minuit->mnexcm("SET NOWarnings", 0, 0, err); - arglist[0] = 2; - minuit->mnexcm("SET STR", arglist, 1, err); // set strategy sets the number of derivative estimated. in the present case (2), this is the highest number of it with a counter-balance: very slow! - minimizer->SetFCN(MinuitLikelihood); // here is function to minimize - - double Mig[2] = {1e6, 1e0}; // maxcalls and tolerance - - minimizer->SetParameter(0, "vertex0", 0, stepSize, -limits[0], limits[0]); - minimizer->SetParameter(1, "vertex1", 0, stepSize, -limits[1], limits[1]); - minimizer->SetParameter(2, "vertex2", 0, stepSize, -limits[2], limits[2]); - minimizer->SetParameter(3, "vertex3", 0, stepSize / fLightSpeed, -limits[3] / fLightSpeed, limits[3] / fLightSpeed); - - minimizer->SetParameter(4, "PMTConfiguration", 0, 0, 0, 0); // Useless now - minimizer->SetParameter(5, "nhits", nhits, nhits, nhits - 1, nhits + 1); - minimizer->SetParameter(6, "lowerLimit", lowerLimit, 5e-1, -7, -2); - minimizer->SetParameter(7, "upperLimit", upperLimit, 5e-1, 2, 10); - minimizer->SetParameter(8, "expoSigma", 100, 5, 0, 1e3); - minimizer->SetParameter(9, "directionality", directionality, 1, 0, 2); - minimizer->SetParameter(10, "thread", 0, 0, 0, 0); - minimizer->FixParameter(4); - minimizer->FixParameter(5); - minimizer->FixParameter(6); - minimizer->FixParameter(7); - minimizer->FixParameter(8); - minimizer->FixParameter(9); - minimizer->FixParameter(10); - - for (int icand = 0; icand < nCandidates; icand++) - { -#ifdef VERBOSE_MIN - if (verbose >= 1) - { - std::cout << "Candidate #" << icand << std::endl; - std::cout << "Initial (x,y,z,t): " << initialVertex[icand][0] - << ", " << initialVertex[icand][1] - << ", " << initialVertex[icand][2] - << ", " << initialVertex[icand][3] << std::endl; - } -#endif - - minimizer->SetParameter(0, "vertex0", initialVertex[icand][0], stepSize, initialVertex[icand][0] - limits[0], initialVertex[icand][0] + limits[0]); - minimizer->SetParameter(1, "vertex1", initialVertex[icand][1], stepSize, initialVertex[icand][1] - limits[1], initialVertex[icand][1] + limits[1]); - minimizer->SetParameter(2, "vertex2", initialVertex[icand][2], stepSize, initialVertex[icand][2] - limits[2], initialVertex[icand][2] + limits[2]); - minimizer->SetParameter(3, "vertex3", initialVertex[icand][3], stepSize / fLightSpeed, initialVertex[icand][3] - limits[3] / fLightSpeed, initialVertex[icand][3] + limits[3] / fLightSpeed); - - minimizer->SetParameter(4, "PMTConfiguration", 0, 0, 0, 0); // Useless now - minimizer->SetParameter(5, "nhits", nhits, nhits, nhits - 1, nhits + 1); - minimizer->SetParameter(6, "lowerLimit", lowerLimit, 5e-1, -7, -2); - minimizer->SetParameter(7, "upperLimit", upperLimit, 5e-1, 2, 10); - minimizer->SetParameter(8, "expoSigma", 100, 5, 0, 1e3); - // minimizer->SetParameter(8,"scaling factor",1,1,0,1e3); - // minimizer->SetParameter(8,"signal pe",1,1,0,1e3); - minimizer->SetParameter(9, "directionality", directionality, 1, 0, 2); - minimizer->SetParameter(10, "thread", 0, 0, 0, 0); - minimizer->FixParameter(4); - minimizer->FixParameter(5); - minimizer->FixParameter(6); - minimizer->FixParameter(7); - minimizer->FixParameter(8); - minimizer->FixParameter(9); - minimizer->FixParameter(10); - - minimizer->ExecuteCommand("MIGRAD", Mig, 2); - - std::vector tCandRecoVtxPos(4, 0.); - - tCandRecoVtxPos[0] = minimizer->GetParameter(0); - tCandRecoVtxPos[1] = minimizer->GetParameter(1); - tCandRecoVtxPos[2] = minimizer->GetParameter(2); - tCandRecoVtxPos[3] = minimizer->GetParameter(3); - - struct FitPosition hPos; - hPos.Vtx = tCandRecoVtxPos; - hPos.NLL = 0; - - // Get minuit - minuit = minimizer->GetMinuit(); - double fmin, fedm, errdef; - int npar, nparx, istat; - minuit->mnstat(fmin, fedm, errdef, npar, nparx, istat); - - hPos.NLL = fmin; - -#ifdef VERBOSE_MIN - if (verbose >= 1) - std::cout << "NLL=" << hPos.NLL << std::endl; -#endif - tVtxContainer.push_back(hPos); - - if (VERBOSE >= 2) - std::cout << "Initial vertex position = " << initialVertex[icand][0] << "," << initialVertex[icand][1] << "," << initialVertex[icand][2] << "," << initialVertex[icand][3] << ", Candidate vertex position = (" << tCandRecoVtxPos[0] << "," << tCandRecoVtxPos[1] << "," << tCandRecoVtxPos[2] << "," << tCandRecoVtxPos[3] << ", NLL = " << fmin << std::endl; - } - - std::sort(tVtxContainer.begin(), tVtxContainer.end(), Likelihoods::SortingNLL()); - while ((int)tVtxContainer.size() > tolerance) tVtxContainer.pop_back(); - - clock_t timeEndLoop = clock(); - - std::vector> tReconstructedVertexPosition; - for (int iPos = 0; iPos < tolerance; iPos++) - { - std::vector vPos(5, 0.); - struct FitPosition hPos = tVtxContainer[iPos]; - - vPos[0] = hPos.Vtx[0]; - vPos[1] = hPos.Vtx[1]; - vPos[2] = hPos.Vtx[2]; - vPos[3] = hPos.Vtx[3]; - vPos[4] = hPos.NLL; - - tReconstructedVertexPosition.push_back(vPos); - } - - delete minimizer; - - tBestReconstructedVertexPosition = tReconstructedVertexPosition[0]; - - clock_t timeEnd = clock(); - - if (verbose) std::cout << "MinimizeVertex: Time it took for the loop = " << (timeEndLoop - timeStart) / 1e6 << ", time total = " << (timeEnd - timeStart) / 1e6 << std::endl << std::endl; - - return tReconstructedVertexPosition; - // return tBestReconstructedVertexPosition; -} - std::vector> LEAF::MinimizeVertex_Main(std::vector> initialVertex, double *limits, double stepSize, int nhits, int nCandidates, int tolerance, int verbose, bool likelihood, bool average, double lowerLimit, double upperLimit, int directionality, std::vector* fDirection_Filter, float FilterThreshold) { std::vector lThreadList; @@ -866,92 +669,10 @@ void LEAF::MinimizeVertex_thread( mtx.unlock(); } -void LEAF::FitVertex(std::vector* fDirection_Filter, float FilterThreshold) -{ - double *tLimits = new double[4]; - int iHitsTotal = fHitCollection->Size(); - std::vector< std::vector > fRecoVtxPosFinal; - - TStopwatch timer; - timer.Reset(); - timer.Start(); - - std::vector tRecoVtxPosCand = this->SearchVertex_Main(iHitsTotal,fSearchVtxTolerance,false,fSTimePDFLimitsQueueNegative,fSTimePDFLimitsQueuePositive,false); - std::vector> tRecoVtxPos; - - // Extract only the vertex positions from the VtxCandidate structure - for (const auto& cand : tRecoVtxPosCand) - { - tRecoVtxPos.push_back({cand.X, cand.Y, cand.Z, cand.T, cand.NLL}); - } - - if (VERBOSE >= 2) - { - for (unsigned int a = 0; a < tRecoVtxPos.size(); a++) - std::cout << "Candidate vertex [ " << a << " ] = " << tRecoVtxPos[a][0] << " , " << tRecoVtxPos[a][1] << " , " << tRecoVtxPos[a][2] << " , " << tRecoVtxPos[a][3] << ", NLL = " << tRecoVtxPos[a][4] << std::endl; - } - - timer.Stop(); - fOutputProps.Vtx_Search_ComputeTime = timer.RealTime(); - // std::cout << "SearchVertex took: " << timer.RealTime() << std::endl; - - double dStepSizeFinal = 10; - int iToleranceFinal = 1; - if (fStepByStep) //* Not used and not tested - { - // 2.b. Refined vertex search around candidate found previously - // -> Commented since ages, removed on 2020/11/20 - - // 2.c. More refined vertex search around candidate found previously - double dStepSizeFine2 = 100; - int iToleranceFine2 = 20; - for (int i = 0; i < 4; i++) tLimits[i] = fSearchVtxStep; // particleStart[i]*1e-2;//onversion to meter - std::vector> tRecoVtxPosFine2 = this->SearchVertexFine(tRecoVtxPos, tLimits, dStepSizeFine2, iHitsTotal, fSearchVtxTolerance, iToleranceFine2, VERBOSE, true, false, fSTimePDFLimitsQueueNegative, fSTimePDFLimitsQueuePositive, fUseDirectionality); - ////////////////////////////////////////// - - // 2.d. Final refined vertex search around candidate found previously - double dStepSizeFine3 = 20; - int iToleranceFine3 = 1; - for (int i = 0; i < 4; i++) - tLimits[i] = dStepSizeFine2; // particleStart[i]*1e-2;//onversion to meter - std::vector> tRecoVtxPosFine3 = this->SearchVertexFine(tRecoVtxPosFine2, tLimits, dStepSizeFine3, iHitsTotal, iToleranceFine2, iToleranceFine3, VERBOSE, true, false, fSTimePDFLimitsQueueNegative, fSTimePDFLimitsQueuePositive, fUseDirectionality); - if (VERBOSE == 1) - { - for (int a = 0; a < iToleranceFine3; a++) - std::cout << "Final candidate vertex time = " << tRecoVtxPosFine3[a][0] << ", x = " << tRecoVtxPosFine3[a][1] << ", y = " << tRecoVtxPosFine3[a][2] << ", z=" << tRecoVtxPosFine3[a][3] << std::endl; - } - ////////////////////////////////////////// - for (int i = 0; i < 4; i++) - tLimits[i] = 100; // dStepSizeFine2;//particleStart[i]*1e-2;//onversion to meter - fRecoVtxPosFinal = this->MinimizeVertex(tRecoVtxPosFine3, tLimits, dStepSizeFinal, iHitsTotal, iToleranceFine3, iToleranceFinal, VERBOSE, true, false, fMinimizeLimitsNegative, fMinimizeLimitsPositive, fUseDirectionality); - if (VERBOSE >= 1) - { - for (int a = 0; a < iToleranceFinal; a++) - { - std::cout << "Final candidate vertex time = " << fRecoVtxPosFinal[a][0] << ", x = " << fRecoVtxPosFinal[a][1] << ", y = " << fRecoVtxPosFinal[a][2] << ", z=" << fRecoVtxPosFinal[a][3] << std::endl; - } - } - } - else - { - timer.Reset(); - timer.Start(); - - for (int i = 0; i < 4; i++) tLimits[i] = 2 * fSearchVtxStep; - - fRecoVtxPosFinal = this->MinimizeVertex_Main(tRecoVtxPos, tLimits, dStepSizeFinal, iHitsTotal, fSearchVtxTolerance, iToleranceFinal, VERBOSE, true, false, fMinimizeLimitsNegative, fMinimizeLimitsPositive, fUseDirectionality, fDirection_Filter, FilterThreshold); - - timer.Stop(); - fOutputProps.Vtx_Minimize_ComputeTime = timer.RealTime(); - } - - fOutput.Vtx[0] = fRecoVtxPosFinal[0][0]; - fOutput.Vtx[1] = fRecoVtxPosFinal[0][1]; - fOutput.Vtx[2] = fRecoVtxPosFinal[0][2]; - fOutput.Vtx[3] = fRecoVtxPosFinal[0][3]; - fOutput.NLL = fRecoVtxPosFinal[0][4]; -} +/*****************************************************************************************************/ +/* ENERGY FIT */ +/*****************************************************************************************************/ void LEAF::FitEnergy() { @@ -995,6 +716,11 @@ void LEAF::FitEnergy() fOutputProps.Energy_Fit_ComputeTime = timer.RealTime(); } + +/*****************************************************************************************************/ +/* DIRECTION AND VERTEX FIT */ +/*****************************************************************************************************/ + std::vector LEAF::SearchVertexAndDir() { TStopwatch timer; @@ -1120,96 +846,4 @@ JointFitCandidate LEAF::MinimizeVertexAndDir(std::vector init return tContainer[0]; } -void LEAF::LoadHitCollection(const HitCollection *lHitCol, const TimeDelta lTriggerTime, bool bMultiPMT) -{ - fHitCollection = lHitCol; - fTriggerTime = lTriggerTime; - fTimeCorrection = fHitCollection->timestamp - fTriggerTime; - if (fPositionList.size() == 0) MakePositionList(); - fUseDirectionality = bMultiPMT ? fUseDirectionality : false; -} - -struct FitterOutput LEAF::NewOutuput() -{ - struct FitterOutput fOutput; - fOutput.Vtx = std::vector(4); - fOutput.Dir = std::vector(3); - fOutput.NLL = 0.; - fOutput.DNLL = 0.; - fOutput.Energy = 0.; - fOutput.TotalCharge = 0.; - - return fOutput; -} - -struct FitterOutput LEAF::MakeSequentialFit(const HitCollection *lHitCol, const TimeDelta lTriggerTime, bool bMultiPMT) -{ - TStopwatch timer; - timer.Reset(); - timer.Start(); - - LoadHitCollection(lHitCol, lTriggerTime, bMultiPMT); - - if(fHitCollection->Size() <= 0) return NewOutuput(); - - //* Vertex - FitVertex(); - - //* Goodness of fit - fOutput.NLLR = Likelihoods::GoodnessOfFit(fHitCollection, fOutput.Vtx, fHitCollection->Size(), fMinimizeLimitsNegative, fMinimizeLimitsPositive, true, false, fUseDirectionality); //* Goodness of Fit - - //* Direction - - //? three direction methods are stored, one can use only the Fit Direction method - // FitDirectionQuick(fOutput.Vtx); // prefit - - // // the prefit is stored in fOutput.Dir - // FitDirection(fOutput.Vtx, fHitCollection->Size(), true); // optimization with one candidate that is the prefit - // fOutput.MyDir = fOutput.Dir; - // FitDirection(fOutput.Vtx, fHitCollection->Size(), false); // optimization without prefit, 30 candidates used - - FitDirectionQuick(fTrueVtxPos); // prefit - - // the prefit is stored in fOutput.Dir - FitDirection(fTrueVtxPos, fHitCollection->Size(), true); // optimization with one candidate that is the prefit - fOutput.MyDir = fOutput.Dir; - FitDirection(fTrueVtxPos, fHitCollection->Size(), false); // optimization without prefit, 30 candidates used - - - //* Energy - FitEnergy(); - - timer.Stop(); - fOutputProps.Leaf_ComputeTime = timer.RealTime(); - - return fOutput; -} - -struct FitterOutput LEAF::MakeJointFit(const HitCollection *lHitCol, const TimeDelta lTriggerTime, bool bMultiPMT) -{ - LoadHitCollection(lHitCol, lTriggerTime, bMultiPMT); - - TStopwatch timer; - timer.Reset(); - timer.Start(); - if(fHitCollection->Size() <= 0) return NewOutuput(); - - std::vector Candidates = SearchVertexAndDir(); - JointFitCandidate finalCandidate = MinimizeVertexAndDir(Candidates); - - fOutput.Vtx = {finalCandidate.VtxPart.X, finalCandidate.VtxPart.Y, finalCandidate.VtxPart.Z, finalCandidate.VtxPart.T}; - fOutput.Dir = PolarToCartesianNorm({finalCandidate.DirPart.theta, finalCandidate.DirPart.phi}); - fOutput.NLL = finalCandidate.NLL; - fOutput.DNLL = Likelihoods::Dir_NLL(fHitCollection, fOutput.Vtx, finalCandidate.DirPart.theta, finalCandidate.DirPart.phi , fHitCollection->Size()); - - fOutput.NLLR = Likelihoods::GoodnessOfFit(fHitCollection, fOutput.Vtx, fHitCollection->Size(), fMinimizeLimitsNegative, fMinimizeLimitsPositive, true, false, fUseDirectionality); //* Goodness of Fit - - //* Energy, alone - FitEnergy(); - - timer.Stop(); - fOutputProps.Leaf_ComputeTime = timer.RealTime(); - - return fOutput; -} diff --git a/leaf/LEAF.hh b/leaf/LEAF.hh index 5c64fb9..6d1f268 100644 --- a/leaf/LEAF.hh +++ b/leaf/LEAF.hh @@ -13,6 +13,7 @@ // Time residuals are defined as: // time - time-of-flight-assuming-straight-line-from-vertex-to PMT - time-of-vertex /*****************************************************************************************************/ + /*****************************************************************************************************/ // The standard method relies on two parts which are runned successively: // @@ -70,6 +71,8 @@ #include "LeafUtility.hh" #include "LeafDefinitions.hh" + + class LEAF { public: @@ -86,40 +89,41 @@ class LEAF //* slower and less performant for now struct FitterOutput MakeJointFit(const HitCollection* lHitCol, const TimeDelta lTriggerTime, bool bMultiPMT=true); - + + + /*****************/ + /* VERTEX FITTER */ + /*****************/ + void SearchVertex_thread(int iStart, int iIte, int nhits, int tolerance=1, bool likelihood=false, double lowerLimit=fSTimePDFLimitsQueueNegative, double upperLimit=fSTimePDFLimitsQueuePositive, int directionality=false); - void MinimizeVertex_thread(int iStart, int iIte, std::vector< std::vector > initialVertex, double * limits, double stepSize, int nhits, int nCandidates = 1, int tolerance = 1, int verbose=0, bool likelihood=false, bool average=false, double lowerLimit=fSTimePDFLimitsQueueNegative, double upperLimit=fSTimePDFLimitsQueuePositive, int directionality = true, std::vector* fDirection_Filter = nullptr, float FilterThreshold = 180); - + + private: LEAF(); ~LEAF(); - struct FitterOutput NewOutuput(); - void LoadHitCollection(const HitCollection *lHitCol, const TimeDelta lTriggerTime, bool bMultiPMT); + static LEAF* myFitter; + std::vector< std::vector > fThreadOutput; - //##### VERTEX FITTER ##### + /*****************/ + /* VERTEX FITTER */ + /*****************/ void FitVertex(std::vector* fDirection_Filter = nullptr, float FilterThreshold = 180); - //? Coarse GRID Search Raw version, not parallelized, slow - std::vector< std::vector > SearchVertex(int nhits, int tolerance=1, bool likelihood=false, double lowerLimit=fSTimePDFLimitsQueueNegative, double upperLimit=fSTimePDFLimitsQueuePositive, int directionality=false); - //? Coarse GRID Search Parallelized version std::vector SearchVertex_Main(int nhits, int tolerance, bool likelihood, double lowerLimit, double upperLimit, int directionality); - //? Coarse GRID Search used for step by step vertex fit, written in 2023, not used and not tested - std::vector< std::vector > SearchVertexFine(std::vector< std::vector > initialVertex, double * limits, double stepSize, int nhits, int nCandidates = 1, int tolerance = 1, int verbose=0, bool likelihood=false, bool average=false, double lowerLimit=fSTimePDFLimitsQueueNegative, double upperLimit=fSTimePDFLimitsQueuePositive, int directionality=false); - - //? LLH Minimization Raw version, not parallelized, slow - std::vector< std::vector > MinimizeVertex(std::vector< std::vector > initialVertex, double * limits, double stepSize, int nhits, int nCandidates = 1, int tolerance = 1, int verbose=0, bool likelihood=false, bool average=false, double lowerLimit=fSTimePDFLimitsQueueNegative, double upperLimit=fSTimePDFLimitsQueuePositive, int directionality = true); - //? Second Step Parallelized version std::vector< std::vector > MinimizeVertex_Main(std::vector< std::vector > initialVertex, double * limits, double stepSize, int nhits, int nCandidates = 1, int tolerance = 1, int verbose=0, bool likelihood=false, bool average=false, double lowerLimit=fSTimePDFLimitsQueueNegative, double upperLimit=fSTimePDFLimitsQueuePositive, int directionality = true, std::vector* fDirection_Filter = nullptr, float FilterThreshold = 180); - - //##### Direction FITTER ##### + + + /********************/ + /* DIRECTION FITTER */ + /********************/ // Global fitter function that selects canidates and call the minimize method std::vector FitDirection(const std::vector& fixedVertexPosition, int nhits, bool searchPrior = false); @@ -133,21 +137,23 @@ class LEAF // LLH Minimization Search DirectionCandidate MinimizeDirection(const std::vector& fixedVertexPosition, std::vector& candidates, int nhits, double *limits, int verbose); - //##### ENERGY FITTER ##### + + /*****************/ + /* ENERGY FITTER */ + /*****************/ void FitEnergy(); - //##### JOINT FITTER ##### + + /****************/ + /* JOINT FITTER */ + /****************/ // Search combined candidates std::vector SearchVertexAndDir(); // Minimize these candidates JointFitCandidate MinimizeVertexAndDir(std::vector initialCandidates); - - static LEAF* myFitter; - - std::vector< std::vector > fThreadOutput; }; #endif diff --git a/leaf/LeafConfig.cc b/leaf/LeafConfig.cc index d749b07..8e1d58f 100644 --- a/leaf/LeafConfig.cc +++ b/leaf/LeafConfig.cc @@ -21,7 +21,7 @@ double fTimeWindowSizeFull = 1500.; double fIntegrationTimeWindow = 50.; bool fStepByStep = false; bool fUseDirectionality = false; -bool DoubleNLL = false; +bool DoubleNLL = false; bool fLimit_mPMT = true; int fAveraging = 20; bool fHighEnergy = false; diff --git a/leaf/LeafSplines.cc b/leaf/LeafSplines.cc index 1abb100..01df1b5 100644 --- a/leaf/LeafSplines.cc +++ b/leaf/LeafSplines.cc @@ -1,9 +1,9 @@ #include "LeafSplines.hh" +TSpline3 * fSplineTimePDFConv[NPMT_CONFIGURATION]; TSpline3 * fSplineTimePDFQueue[NPMT_CONFIGURATION]; TSpline3 * fSplineTimePDFDarkRate[NPMT_CONFIGURATION]; -TSpline3* fDirectionPDF; -TSpline3* fHitAnglePDF; +TSpline3 * fDirectionPDF[NPMT_CONFIGURATION]; TGraph2D * gPMTDirectionality_2D[NPMT_CONFIGURATION][HKAA::kmPMT_Groups]; TF1 * fDistResponsePMT[NPMT_CONFIGURATION]; @@ -43,32 +43,17 @@ double SplineIntegralExpo(TSpline3 *s, double start, double end, double sigma, d void LoadSplines() { std::cout << "Loading splines..." << std::endl; - TFile *fSplines, *fSplines2, *fSplines1, *fSplineAngleFile; + TFile *fSplines; if (fHighEnergy) { - fSplines = new TFile("${LEAFDIR}/inputs/timePDF_HE.root", "read"); // To generate with my code ProduceWSPlots.c - fSplines2 = fSplines; + fSplines = new TFile("${LEAFDIR}/inputs/PDF_electron_upto100MeV_uniform_isotropic_10k_withDN.root", "read"); } else { - std::cout << "spline 1" << std::endl; - fSplines1 = new TFile("${LEAFDIR}/inputs/timePDFNoDR_50000_e10MeV_Hit_720.root","read");//To generate with my code ProduceWSPlots.c - // fSplines = new TFile("${LEAFDIR}/inputs/timePDF_DRnew_Large.root", "read"); // To generate with my code ProduceWSPlots.c - std::cout << "spline 2" << std::endl; - fSplines = new TFile("${LEAFDIR}/inputs/timePDFDR_5000_e10MeV_Hit_fiducial.root","read"); //*TAHA - // fSplines = new TFile("${LEAFDIR}/inputs/timePDF_3M_10T_500000.root","read"); //*NICOLAS - // fSplines = new TFile("${LEAFDIR}/inputs/timePDF_3M_10T.root","read"); - std::cout << "spline 3" << std::endl; - fSplines2 = new TFile("${LEAFDIR}/inputs/timePDF_Directionality_DRnew.root", "read"); // To generate with my code ProduceWSPlots.c - // fSplines2 = new TFile("${LEAFDIR}/inputs/timePDF_Directionality_DRnew.root","read");//To generate with my code ProduceWSPlots.c - std::cout<< "angle spline" << std::endl; - fSplineAngleFile = new TFile("${LEAFDIR}/inputs/Hit_Angle_PDF.root", "read"); + fSplines = new TFile("${LEAFDIR}/inputs/PDF_electron_upto100MeV_uniform_isotropic_10k_withDN.root","read"); } - std::cout << "spline file read" << std::endl; - // Prevent TGraph2D to be append to TFile (this is needed as we are doing multiple copy of TGraph2D) - // For a strange reason sometimes the TGraph2D is see as a TH1 and stored in an open TFile TH1::AddDirectory(false); //Check if the files are opened @@ -77,43 +62,18 @@ void LoadSplines() std::cerr << "Error: Splines file is not opened." << std::endl; exit(1); } - if (!fSplines2 || !fSplines2->IsOpen()) - { - std::cerr << "Error: Splines file is not opened." << std::endl; - exit(1); - } - if (!fSplines1 || !fSplines1->IsOpen()) - { - std::cerr << "Error: Splines file is not opened." << std::endl; - exit(1); - } - if (!fSplineAngleFile || !fSplineAngleFile->IsOpen()) - { - std::cerr << "Error: Angle spline file is not opened." << std::endl; - exit(1); - } - - // std::cout << "splines files loaded" << std::endl; int configs = NPMT_CONFIGURATION; - - for(int pmtType=0;pmtTypeGet(Form("splineExpoQueue%d_%d",0,pmtType)); - fSplineTimePDFDarkRate[pmtType] = (TSpline3*) fSplines->Get(Form("splineDR%d_%d",0,pmtType)); - fDirectionPDF = (TSpline3*) fSplines1->Get(Form("ChargeProfileCos_PDF_spline_pmtType0")); - // fDirectionPDF = (TSpline3*) fSplineAngleFile->Get("Hit_Angle_Spline"); - if (!fDirectionPDF) - { - std::cerr << "Error: fDirectionPDF is not loaded properly." << std::endl; - exit(1); - } - fHitAnglePDF = (TSpline3*) fSplineAngleFile->Get("Hit_Angle_Spline"); - // fHitAnglePDF = (TSpline3*) fSplines1->Get(Form("ChargeProfileCos_PDF_spline_pmtType0")); + std::cout << "Process spline" << std::endl; + + //Load TOF residuals splines + fSplineTimePDFConv[pmtType] = (TSpline3*) fSplines->Get(Form("splineExpoConv_%d", pmtType)); + fSplineTimePDFQueue[pmtType] = (TSpline3*) fSplines->Get(Form("splineExpoQueue_%d", pmtType)); + fSplineTimePDFDarkRate[pmtType] = (TSpline3*) fSplines->Get(Form("splineDR_%d", pmtType)); + fDirectionPDF[pmtType] = (TSpline3*) fSplines->Get(Form("splineChargeProfile_%d", pmtType)); - std::cout << "process spline" << std::endl; // std::cout << "ok ?" << std::endl; fSTimePDFLimitsQueueNegative_fullTimeWindow = fSplineTimePDFQueue[pmtType]->GetXmin(); fSTimePDFLimitsQueuePositive_fullTimeWindow = fSplineTimePDFQueue[pmtType]->GetXmax(); @@ -124,36 +84,15 @@ void LoadSplines() // std::cout << "okay ?" << std::endl; //Load 3D directionality histograms. std::cout << "directionality" << std::endl; - // Ensure HKAA::kmPMT_Groups is defined and initialized - if (!fSplines2 || !fSplines2->IsOpen()) { - std::cerr << "Error: fSplines2 is not opened or is null." << std::endl; - exit(1); - } int grpNB = 0; - if (HKAA::kmPMT_Groups > 0) { + if (HKAA::kmPMT_Groups > 0) + { grpNB = HKAA::kmPMT_Groups; - } else { - std::cerr << "Error: HKAA::kmPMT_Groups is not properly defined or initialized." << std::endl; - exit(1); } - - std::cout << "got grnNB" << std::endl; - - for (int pmtGroup = 0; pmtGroup < grpNB; pmtGroup++) { - gPMTDirectionality_2D[pmtType][pmtGroup] = (TGraph2D*) fSplines2->Get(Form("gPMTDirectionality_2D_%d_%d_%d", 0, pmtType, pmtGroup)); - if (!gPMTDirectionality_2D[pmtType][pmtGroup]) { - std::cerr << "Error: Failed to load gPMTDirectionality_2D for pmtType " << pmtType << " and pmtGroup " << pmtGroup << std::endl; - exit(1); - } - } - - std::cout << "dist response" << std::endl; - - fDistResponsePMT[pmtType] = (TF1*) fSplines2->Get(Form("fDistResponsePMT_pmtType%d", pmtType)); - if (!fDistResponsePMT[pmtType]) + else { - std::cerr << "Error: Failed to load fDistResponsePMT for pmtType " << pmtType << std::endl; + std::cerr << "Error: HKAA::kmPMT_Groups is not properly defined or initialized." << std::endl; exit(1); } } diff --git a/leaf/LeafSplines.hh b/leaf/LeafSplines.hh index 6d2b783..8717e26 100644 --- a/leaf/LeafSplines.hh +++ b/leaf/LeafSplines.hh @@ -38,10 +38,10 @@ struct EventInfo // extern bool fHighEnergySplines; -extern TSpline3 * fSplineTimePDFQueue[NPMT_CONFIGURATION]; -extern TSpline3 * fSplineTimePDFDarkRate[NPMT_CONFIGURATION]; -extern TSpline3* fDirectionPDF; -extern TSpline3* fHitAnglePDF; +extern TSpline3 * fSplineTimePDFConv[NPMT_CONFIGURATION]; +extern TSpline3 * fSplineTimePDFQueue[NPMT_CONFIGURATION]; +extern TSpline3 * fSplineTimePDFDarkRate[NPMT_CONFIGURATION]; +extern TSpline3 * fDirectionPDF[NPMT_CONFIGURATION]; // Histo extern TGraph2D * gPMTDirectionality_2D[NPMT_CONFIGURATION][HKAA::kmPMT_Groups]; diff --git a/leaf/Likelihoods.cc b/leaf/Likelihoods.cc index 5cc79a2..3a4e4e5 100644 --- a/leaf/Likelihoods.cc +++ b/leaf/Likelihoods.cc @@ -446,7 +446,8 @@ double Likelihoods::ComputeDirNLL_NoPDF(const HitCollection* lHitCol, const } //Uses the PDF to find the DirNLL, used mainly for the MIGRAD optimization -double Likelihoods::Dir_NLL(const HitCollection* lHitCol, const std::vector& vertexPosition, double theta_track, double phi_track, int nhits) { +double Likelihoods::Dir_NLL(const HitCollection* lHitCol, const std::vector& vertexPosition, double theta_track, double phi_track, int nhits) +{ double DNLL = 0; // Ensure theta and phi are within valid ranges @@ -485,7 +486,8 @@ double Likelihoods::Dir_NLL(const HitCollection* lHitCol, const std::vector // vertexDirNormalized[1] = sin_theta_track * sin_phi_track; // vertexDirNormalized[2] = cos_theta_track; - for (int ihit = 0; ihit < nhits; ihit++) { + for (int ihit = 0; ihit < nhits; ihit++) + { int trueNHits = lHitCol->Size(); if(ihit >= trueNHits) { @@ -518,6 +520,7 @@ double Likelihoods::Dir_NLL(const HitCollection* lHitCol, const std::vector if(DirCondition || DirTakeAll) { int iPMT = lHit.PMT; + int pmtType = Astro_GetPMTType(iPMT); PMTInfo lPMTInfo = (*fPMTList)[iPMT]; // Ensure lPMTInfo.Position and lPMTInfo.Orientation have the correct size @@ -566,11 +569,7 @@ double Likelihoods::Dir_NLL(const HitCollection* lHitCol, const std::vector double theta = relative_angle * 180.0 / TMath::Pi(); // Evaluate your PDF at theta - // std::cout << "before pdf : " << ihit << std::endl; - // double proba = fDirectionPDF->Eval(cos_relative_angle)/*sin(theta)*/; //* if cos spline - // double proba = fDirectionPDF->Eval(cos_relative_angle); //* Taha - double proba = fHitAnglePDF->Eval(theta); //* Nicolas - // std::cout << "after pdf : " << ihit << std::endl; + double proba = fDirectionPDF[pmtType]->Eval(theta); //* Nicolas // Correct for PMT orientation if necessary double PMTOrientation[3]; @@ -626,6 +625,7 @@ double Likelihoods::AngleNLL(const HitCollection* lHitCol, std::vectorAt(ihit); int iPMT = lHit.PMT; + int pmtType = Astro_GetPMTType(iPMT); PMTInfo lPMTInfo = (*fPMTList)[iPMT]; std::vector toPMT = std::vector(3); for(int j = 0; j < 3; j++) toPMT[j] = lPMTInfo.Position[j] - vertexPosition[j]; @@ -634,9 +634,7 @@ double Likelihoods::AngleNLL(const HitCollection* lHitCol, std::vectorEval(angle) << std::endl; - // NLL += -TMath::Log(std::max(1e-20, fDirectionPDF->Eval(dotP))); //? Taha - NLL += -TMath::Log(std::max(1e-20, fHitAnglePDF->Eval(angle))); //? Nicolas + NLL += -TMath::Log(std::max(1e-20, fDirectionPDF[pmtType]->Eval(angle))); //? Nicolas } return NLL; @@ -647,73 +645,10 @@ double Likelihoods::FindNLLDirectionality(const HitCollection* lHitCol, std { double NLL = 0; - // std::vector vDirection(2, 0.); // Return phi and theta. - - // // Interpolate isn't compatible with multi-thread, need to use mutex which lead to long deadtime. - // // Copy TGraph2D - // mtx.lock(); - // static thread_local TGraph2D gPMTDirectionality_2D_local_0 = TGraph2D(*gPMTDirectionality_2D[MiniPMT][0]); - // static thread_local TGraph2D gPMTDirectionality_2D_local_1 = TGraph2D(*gPMTDirectionality_2D[MiniPMT][1]); - // static thread_local TGraph2D gPMTDirectionality_2D_local_2 = TGraph2D(*gPMTDirectionality_2D[MiniPMT][2]); - // mtx.unlock(); - - // TGraph2D *tDirectionality[3]; - // tDirectionality[0] = &gPMTDirectionality_2D_local_0; - // tDirectionality[1] = &gPMTDirectionality_2D_local_1; - // tDirectionality[2] = &gPMTDirectionality_2D_local_2; - - // for (int ihit = 0; ihit < nhits; ihit++) - // { - // // Hit lHit = fHitInfo[ihit]; - // Hit lHit = LeafInputs::fHitCollection->At(ihit); - - // int iPMT = lHit.PMT; - - // PMTInfo lPMTInfo = (*fPMTList)[iPMT]; - // int pmtType = Astro_GetPMTType(iPMT); - - // if (pmtType == 0) - // continue; - // bool condition = true; - - // if (condition) - // { - // double vPMTVtx[4]; - // this->VectorVertexPMT(vVtxPos, iPMT, vPMTVtx); - - // double dPhi = vPMTVtx[0]; - // double dTheta = vPMTVtx[1]; - // double dDist = vPMTVtx[2]; - - // int pmtGroup = lPMTInfo.mPMT_Group; - - // double proba = 0; - // proba = tDirectionality[pmtGroup]->Interpolate(dPhi, dTheta); - - // double dDistCorr = fDistResponsePMT[pmtType]->Eval(dDist); - - // proba *= dDistCorr; - - // if (proba == 0) - // { - // proba = 1e-20; - // if (verbose) - // std::cout << "We are at proba = 0, theta = " << dTheta << ", proba used = " << proba << std::endl; - // } - // NLL += -TMath::Log(proba); - - // if (VERBOSE >= 3) - // { - // // std::cout<<"PMT type="< - -using namespace std; - -class GdCaptureGammas -{ - public: - - GdCaptureGammas(); - ~GdCaptureGammas(); - G4ReactionProductVector *GetGammas(G4int isotopeA); - vector Initialize(G4int isotopeA); - vector CapGad155(); - vector CapGad157(); - vector casca1Gd155(); - vector casca2Gd155(); - vector casca1Gd157(); - vector casca2Gd157(); - vector casca3Gd157(); - vector continuum(); - double cumule(int ); - void intc(); - - - public: - double Elevel; - double xint[4][750]; - -}; -#endif diff --git a/libWCSIM/include/GdNeutronHPCapture.hh b/libWCSIM/include/GdNeutronHPCapture.hh deleted file mode 100755 index 8d3d3ba..0000000 --- a/libWCSIM/include/GdNeutronHPCapture.hh +++ /dev/null @@ -1,48 +0,0 @@ - - -/////////////////////////////////////////////////////////////////////////////// -// Spectrum of radiative neutron capture by Gadolinium -// version 1.0.0 -// (Sep.09.2005) - -//Modified class from original G4NeutronHPCapture class to include -//the gammas spectrum of radiative neutron capture by Gadolinium. - -// Karim Zbiri, April, 2005 -/////////////////////////////////////////////////////////////////////////////// - - - -#ifndef GdNeutronHPCapture_h -#define GdNeutronHPCapture_h 1 - -#include "globals.hh" -#include "G4NeutronHPChannel.hh" -#include "G4HadronicInteraction.hh" - -class GdNeutronHPCapture : public G4HadronicInteraction -{ - public: - - GdNeutronHPCapture(); - - ~GdNeutronHPCapture(); - - G4HadFinalState * ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& aTargetNucleus); - - void BuildPhysicsTable(const G4ParticleDefinition&); - - private: - - G4double * xSec; - //G4NeutronHPChannel * theCapture; - std::vector* theCapture; - G4String dirName; - G4int numEle; - G4int it; - // G4String nomel; - - G4HadFinalState theResult; -}; - -#endif diff --git a/libWCSIM/include/GdNeutronHPCaptureFS.hh b/libWCSIM/include/GdNeutronHPCaptureFS.hh deleted file mode 100644 index 8efc03d..0000000 --- a/libWCSIM/include/GdNeutronHPCaptureFS.hh +++ /dev/null @@ -1,74 +0,0 @@ - - -/////////////////////////////////////////////////////////////////////////////// -// Spectrum of radiative neutron capture by Gadolinium -// version 1.0.0 -// (Sep.09.2005) - -// Author : karim.zbiri@subatech.in2p3.fr - -//Modified class from original G4NeutronHPCaptureFS class to deexcite and -//add correctly the secondary to the hadronic final state - -// Karim Zbiri, Aug, 2005 -/////////////////////////////////////////////////////////////////////////////// - - - -#ifndef GdNeutronHPCaptureFS_h -#define GdNeutronHPCaptureFS_h 1 - -#include "globals.hh" -#include "G4HadProjectile.hh" -#include "G4HadFinalState.hh" -#include "G4NeutronHPFinalState.hh" -#include "G4ReactionProductVector.hh" -#include "G4NeutronHPNames.hh" -#include "G4NeutronHPPhotonDist.hh" -#include "G4Nucleus.hh" -#include "G4Fragment.hh" - -#include "GdCaptureGammas.hh" - -class GdNeutronHPCaptureFS : public G4NeutronHPFinalState -{ - public: - - GdNeutronHPCaptureFS() - { - hasXsec = false; - targetMass = 0; - } - - ~GdNeutronHPCaptureFS() - { - } - - void UpdateNucleus( const G4Fragment* , G4double ); - void Init (G4double A, G4double Z, G4int M, G4String & dirName, G4String & aFSType); - G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); - G4NeutronHPFinalState * New() - { - GdNeutronHPCaptureFS * theNew = new GdNeutronHPCaptureFS; - return theNew; - } - - private: - - G4Fragment * nucleus; - - G4DynamicParticle * theTwo ; - G4ReactionProduct theTarget; - G4Nucleus aNucleus; - G4ReactionProduct theNeutron; - - G4double targetMass; - - G4NeutronHPPhotonDist theFinalStatePhotons; - GdCaptureGammas theFinalgammas; - G4NeutronHPNames theNames; - - G4double theCurrentA; - G4double theCurrentZ; -}; -#endif diff --git a/libWCSIM/include/TJNuBeamFlux.hh b/libWCSIM/include/TJNuBeamFlux.hh deleted file mode 100644 index 15996de..0000000 --- a/libWCSIM/include/TJNuBeamFlux.hh +++ /dev/null @@ -1,107 +0,0 @@ -#ifndef JNuBeamFlux_hh_seen -#define JNuBeamFlux_hh_seen - -#include - -#include "TObject.h" -#include "TObjString.h" - -/// -/// JNuBeam flux pass-through info. Both GRooTracker and NRooTracker inherit -/// from this so as to avoid duplication of code. Currently up to date with -/// 11a version of pass-through info. -/// - -const int kNgmax = 12; - -// This is the base class for all RooTracker type objects. For now -// it is empty and just so that an pass round pointers to -// all derived classes (will be usefull for reweighting applications etc...) -class RooTrackerVtxBase : public TObject { - public: - RooTrackerVtxBase(); - virtual ~RooTrackerVtxBase(){} - ClassDef(RooTrackerVtxBase, 1); -}; - -class JNuBeamFlux : public RooTrackerVtxBase { - - public: - JNuBeamFlux(); - virtual ~JNuBeamFlux(); - - void Reset (void); - // Using methods from TObject to remove 'hidden' compiler warnings - using TObject::Copy; - void Copy (const JNuBeamFlux * flux); - - // - // Meta information - // - long NuFluxEntry; ///< corresponding entry in orig flux file - TObjString* NuFileName; ///< orig flux file name - // - // neutrino parent info - // - int NuParentPdg; ///< parent hadron pdg code - int NuParentDecMode; ///< parent hadron decay mode - double NuParentDecP4 [4]; ///< parent hadron 4-momentum at decay - double NuParentDecX4 [4]; ///< parent hadron 4-position at decay - float NuCospibm; ///< parent hadron cos(theta) relative to beam at decay - float NuNorm; ///< Normalization weight - double NuParentProP4 [4]; ///< parent hadron 4-momentum at production - double NuParentProX4 [4]; ///< parent hadron 4-position at production - float NuCospi0bm; ///< parent hadron cos(theta) relative to beam at production - float NuRnu; ///< neutrino r position at ND5/6 plane - float NuXnu [2]; ///< neutrino (x,y) position at ND5/6 plane - int NuIdfd; ///< Detector ID - // - // primary particle information - // - int NuGipart; ///< primary particle ID - float NuGpos0[3]; ///< primary particle starting point - float NuGvec0[3]; ///< primary particle direction at starting point - float NuGamom0; ///< momentum of the primary particle at the starting point - // - // Interation History Information - // - int NuNg; ///< Number of interaction steps - float NuGp[kNgmax][3]; ///< Momentum of ancestor particle - float NuGcosbm[kNgmax]; ///< Ancestor particle cos(theta) relative to beam - float NuGv[kNgmax][3]; ///< Position of ancestor particle - int NuGpid[kNgmax]; ///< PDG ancestor particle ID - int NuGmec[kNgmax]; ///< particle production mechanism of ancestor particle - // - // Normalization and Transfer Matrix Information - // - float NuEnusk; ///< Neutrino Energy at SK - float NuNormsk; ///< Normalization weight at SK - float NuAnorm; ///< ND Acceptance Weight - // - // Out-of-target Secondary Interactions - // - int NuGmat[kNgmax]; ///< material in which the particle originates - float NuGdistc[kNgmax]; ///< distance traveled through carbon - float NuGdistal[kNgmax]; ///< distance traveled through aluminum - float NuGdistti[kNgmax]; ///< distance traveled through titanium - float NuGdistfe[kNgmax]; ///< distance traveled through iron - // - // Beam parameter information - // - float NuVersion; ///< jnubeam flux version - int NuTuneid; ///< beam tune ID # - int NuNtrig; ///< Number of triggers - int NuPint; ///< Interaction model ID - float NuBpos[2]; ///< Beam center position - float NuBtilt[2]; ///< Beam angle - float NuBrms[2]; ///< Beam RMS width - float NuEmit[2]; ///< Beam Emittance - float NuAlpha[2]; ///< Beam Alpha - float NuHcur[3]; ///< Horn currents - int NuRand; ///< Random seed - // int NuRseed[2]; // Random seed - - ClassDef(JNuBeamFlux, 1); -}; - -#endif diff --git a/libWCSIM/include/TNRooTrackerVtx.hh b/libWCSIM/include/TNRooTrackerVtx.hh deleted file mode 100644 index 245d7e0..0000000 --- a/libWCSIM/include/TNRooTrackerVtx.hh +++ /dev/null @@ -1,195 +0,0 @@ -// -// -#ifndef NRooTrackerVtx_hh_seen -#define NRooTrackerVtx_hh_seen - -#include -#include - -#include "TObject.h" -#include "TBits.h" -#include "TObjString.h" - -#include "TJNuBeamFlux.hh" - -using std::ostream; - -/// -/// This is a simple event class which is essentially an objectified version -/// of the NEUT nRooTracker output format. Because the nRooTracker is forcing -/// NEUT event into a GENIE defined storage care needs to be taken when -/// interpreting the meaning of various data members. For example the StdHepStatus -/// does not have a one to one mapping to GENIE StdHep status. Using this class -/// with GENIE based utils or the GENIE ReWeighting tools can (and most likely -/// will result in false results! -/// -/// Therefore, the native NEUT particle information common blocks (VCWORK, FSIHIST) -/// are included. Analysis tools under development... - -/// DBrailsford 10-2013: All 1D arrays are now in a dynamic format (rather than fixed length). -/// Due to the class structure of the oaAnalysis NRooTracker object being used to extract the -/// information from the numc file, two versions of the 1D arrays are initialised. -/// Each array has a dynamic version, and a 'Temp' fixed length version. The 'Temp' version -/// extracts the info from the numc object and feeds the information in the dynamic version. -/// The 'Temp' version of each data member is NOT saved to the rooTracker tree, only the dynamic version is. -/// Note that for each new event, only the 'Temp' version of the data member is reset to a default value. -/// This current implementation reduces the NRooTracker tree by ~10Mb. - -const int kNStdHepNPmax = 100; -const int kNStdHepIdxPx = 0; -const int kNStdHepIdxPy = 1; -const int kNStdHepIdxPz = 2; -const int kNStdHepIdxE = 3; -const int kNStdHepIdxX = 0; -const int kNStdHepIdxY = 1; -const int kNStdHepIdxZ = 2; -const int kNStdHepIdxT = 3; - -const int kNEmaxvc = 100; -const int kNEmaxvert = 100; -const int kNEmaxvertp = 300; - -class NRooTrackerVtx : public JNuBeamFlux { - - public: - NRooTrackerVtx(); - ~NRooTrackerVtx(); - - void Reset (void); - void Init (void); - - // Using methods from TObject to remove 'hidden' compiler warnings - using TObject::Copy; - using TObject::Print; - - void Copy (const NRooTrackerVtx * event); - void Print (const Option_t* = "") const; - - // Define the output rootracker tree branches - TObjString* EvtCode; ///< generator-specific string with 'event code' - int EvtNum; ///< event num. - double EvtXSec; ///< cross section for selected event (1E-38 cm2) CORRECT - double EvtDXSec; ///< cross section for selected event kinematics (1E-38 cm2 /{K^n}) CORRECT - double EvtWght; ///< weight for that event CORRECT - double EvtProb; ///< probability for that event (given cross section, path lengths, etc) CORRECT - double EvtVtx[4]; ///< event vertex position in detector coord syst (SI) CORRECT - int StdHepN; ///< number of particles in particle array - // - // stdhep-like particle array - // - int* StdHepPdg; //[StdHepN] ///< pdg codes (& generator specific codes for pseudoparticles) - int StdHepPdgTemp [kNStdHepNPmax]; //! - - int* StdHepStatus; //[StdHepN] ///< generator-specific status code - int StdHepStatusTemp[kNStdHepNPmax]; //! - - double StdHepX4 [kNStdHepNPmax][4]; ///< 4-x (x, y, z, t) of particle in hit nucleus frame (fm) CORRECT - - double StdHepP4 [kNStdHepNPmax][4]; ///< 4-p (px,py,pz,E) of particle in LAB frame (GeV) CORRECT - - double StdHepPolz [kNStdHepNPmax][3]; ///< polarization vector CORRECT - - int StdHepFdTemp [kNStdHepNPmax]; //! - int StdHepLdTemp [kNStdHepNPmax]; //! - int StdHepFmTemp [kNStdHepNPmax]; //! - int StdHepLmTemp [kNStdHepNPmax]; //! - int* StdHepFd; //[StdHepN] ///< first daughter - int* StdHepLd; //[StdHepN] ///< last daughter - int* StdHepFm; //[StdHepN] ///< first mother - int* StdHepLm; //[StdHepN] ///< last mother - - // NEUT native VCWORK information - int NEnvc; ///< Number of particles - - int NEipvcTemp[kNEmaxvc]; //! PDG particle code - int* NEipvc; //[NEnvc] ///< PDG particle code - - float NEpvc[kNEmaxvc][3]; ///< 3-momentum (MeV/c) CORRECT - - int NEiorgvcTemp[kNEmaxvc]; //! - int* NEiorgvc; //[NEnvc] ///< Index of parent (Fortran convention: starting at 1) - - - /// Flag of final state: - /// 0 : DETERMINED LATER PROCEDURE - /// 1 : DECAY TO OTHER PARTICLE - /// 2 : ESCAPE FROM DETECTOR - /// 3 : ABSORPTION - /// 4 : CHARGE EXCHANGE - /// 5 : STOP A NOT CONSIDER IN M.C. - /// 6 : E.M. SHOWER - /// 7 : HADRON PRODUCTION - /// 8 : QUASI-ELASTIC SCATTER - /// 9 : FORWARD (ELASTIC-LIKE) SCATTER - - int NEiflgvcTemp[kNEmaxvc]; //! - int NEicrnvcTemp[kNEmaxvc]; //! - int* NEiflgvc; //[NEnvc] ///< Flag of final state - int* NEicrnvc; //[NEnvc] ///< Escaped nucleus (1) or not (0) - - - // Rest of the NEUT variables below are mainly for internal reweighting routines - - float NEcrsx; ///< Cross section calculation variables (currently used for coherent interactions) CORRECT - - float NEcrsy; ///< Cross section calculation variables (currently used for coherent interactions) CORRECT - - float NEcrsz; ///< Cross section calculation variables (currently used for coherent interactions) CORRECT - - float NEcrsphi; ///< Cross section calculation variables (currently used for coherent interactions) CORRECT - - - // NEUT FSIHIST pion interaction history - int NEnvert; ///< Number of vertices (including production and exit points) - float NEposvert[kNEmaxvert][3]; ///< Position of vertex within nucleus (fm) CORRECT - - ///< Interaction type - ///< (*10 FOR HI-NRG interaction, >~400 MeV/c) - ///< -1 : ESCAPE - ///< 0 : INITIAL (or unmatched parent vertex if I>1) - ///< 3 : ABSORPTION - ///< 4 : CHARGE EXCHANGE - ///< 7 : HADRON PRODUCTION (hi-nrg only, i.e. 70) - ///< 8 : QUASI-ELASTIC SCATTER - ///< 9 : FORWARD (ELASTIC-LIKE) SCATTER - - int NEiflgvertTemp[kNEmaxvert]; //! - int* NEiflgvert; //[NEnvert] ///< Interaction type - - - - int NEnvcvert; ///< Number of intermediate particles (including initial and final) - float NEdirvert[kNEmaxvertp][3]; ///< Direction of particle CORRECT - - float NEabspvertTemp[kNEmaxvertp]; //! - float NEabstpvertTemp[kNEmaxvertp]; //! - int NEipvertTemp[kNEmaxvertp]; //! - int NEivertiTemp[kNEmaxvertp]; //! - int NEivertfTemp[kNEmaxvertp]; //! - - float* NEabspvert; //[NEnvcvert] ///< Absolute momentum in the lab frame (MeV/c) CORRECT - float* NEabstpvert; //[NEnvcvert] ///< Absolute momentum in the nucleon rest frame (MeV/c) CORRECT - int* NEipvert; //[NEnvcvert] ///< PDG particle code - int* NEiverti; //[NEnvcvert] ///< Index of initial vertex (pointing to nvert array above) - int* NEivertf; //[NEnvcvert] ///< Index of final vertex (pointing to nvert array above) - - // - // etc - // - TObjString* GeomPath; // - - // Some pass through info - TObjString* GeneratorName; // - TObjString* OrigFileName; // - TObjString* OrigTreeName; // - int OrigEvtNum; - int OrigTreeEntries; - double OrigTreePOT; - double TimeInSpill; - - int TruthVertexID; - - ClassDef(NRooTrackerVtx, 1); -}; - -#endif diff --git a/libWCSIM/include/WCSimDarkRateMessenger.hh b/libWCSIM/include/WCSimDarkRateMessenger.hh deleted file mode 100644 index 928ca3d..0000000 --- a/libWCSIM/include/WCSimDarkRateMessenger.hh +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef WCSimDarkRateMessenger_h -#define WCSimDarkRateMessenger_h 1 - - -#include "G4UImessenger.hh" -#include -#include "G4UIcmdWithAString.hh" - -class G4UIcommand; -class G4UIdirectory; -class G4UIcmdWithADoubleAndUnit; -class G4UIcmdWithADouble; -class G4UIcmdWithAnInteger; -class WCSimWCAddDarkNoise; - -class WCSimDarkRateMessenger: public G4UImessenger -{ -public: - static WCSimDarkRateMessenger* iInstance; - void Initialize(); - - static WCSimDarkRateMessenger* GetInstance(); - void AddDarkRateInstance(WCSimWCAddDarkNoise* darkratepoint, G4String detectorElement); - void RemoveDarkRateInstance(G4String detectorElement); - ~WCSimDarkRateMessenger(); - - void SetNewValue(G4UIcommand* command, G4String newValue); - -private: - WCSimDarkRateMessenger(WCSimWCAddDarkNoise*); - WCSimWCAddDarkNoise* WCSimAddDarkNoise; - std::map darknoiseptrs; - - G4UIdirectory* WCSimDir; - G4UIcmdWithADoubleAndUnit* SetFrequency; - G4UIcmdWithADouble* SetConversionRate; - G4UIcmdWithAnInteger* SetDarkMode; - G4UIcmdWithADoubleAndUnit* SetDarkLow; - G4UIcmdWithADoubleAndUnit* SetDarkHigh; - G4UIcmdWithADoubleAndUnit* SetDarkWindow; - G4UIcmdWithAString* SetDetectorElement; - - G4String initaliseString; - G4String detectorElement; - -}; - -#endif diff --git a/libWCSIM/include/WCSimDetectorConstruction.hh b/libWCSIM/include/WCSimDetectorConstruction.hh deleted file mode 100644 index 22c854e..0000000 --- a/libWCSIM/include/WCSimDetectorConstruction.hh +++ /dev/null @@ -1,699 +0,0 @@ -#ifndef WCSimDetectorConstruction_H -#define WCSimDetectorConstruction_H 1 - -#include "WCSimPmtInfo.hh" -#include "WCSimPMTObject.hh" -#include "WCSimRootOptions.hh" - -#include "G4Transform3D.hh" -#include "G4VUserDetectorConstruction.hh" -#include "G4LogicalVolume.hh" -#include "G4VPhysicalVolume.hh" -#include "G4OpticalSurface.hh" -#include "globals.hh" - -#include -#include -#include -//#include -// warning : hash_map is not part of the standard -//#include //TF: deprecated, but need new C++ features, probably from gcc4.2 onwards -#include //--> need to fix the "using" and namespace statements - -//instead of using forward declaration, just include: -#include "G4Material.hh" -// TF: ToDo: Are these required? -#include "TFile.h" -#include "TTree.h" -#include "TMath.h" - - - -//using __gnu_cxx::hash; //deprecated -//using __gnu_cxx::hash_map; - -// (JF) We don't need this distinction for DUSEL -//enum cyl_location {endcap1,wall,endcap2}; - -class G4Box; -class G4Tubs; -class G4Material; -class G4LogicalVolume; -class G4AssemblyVolume; -class G4VPhysicalVolume; -class WCSimTuningParameters; -class WCSimDetectorMessenger; -class WCSimWCSD; - -/* Deprecated -namespace __gnu_cxx { - template<> struct std::hash< std::string > - { - size_t operator()( const std::string& x ) const - { - return std::hash< const char* >()( x.c_str() ); - } - }; - }*/ - -//Move to G4Enumerations -enum mPMT_orientation{ - VERTICAL, - HORIZONTAL, - PERPENDICULAR}; - -class WCSimDetectorConstruction : public G4VUserDetectorConstruction -{ -public: - - WCSimDetectorConstruction(G4int DetConfig,WCSimTuningParameters* WCSimTuningPars); - ~WCSimDetectorConstruction(); - - void SaveOptionsToOutput(WCSimRootOptions * wcopt); - - G4VPhysicalVolume* Construct(); - - // Related to the WC geometry - void SetSuperKGeometry(); - void InitSinglePMT(); - void SetTestSinglemPMTGeometry(); - void Cylinder_60x74_3inchmPMT_14perCent(); - void Cylinder_60x74_3inchmPMT_40perCent(); - void Cylinder_60x74_3inch_14perCent(); - void Cylinder_60x74_3inch_40perCent(); - void SuperK_20inchPMT_20perCent(); - void SuperK_20inchBandL_20perCent(); - void SuperK_12inchBandL_15perCent(); - void SuperK_20inchBandL_14perCent(); - void Cylinder_60x74_20inchBandL_14perCent(); - void Cylinder_60x74_20inchBandL_40perCent(); - void Cylinder_12inchHPD_15perCent(); - void SetHyperKGeometry(); - void SetHyperK_3inchGeometry();//B.Q, 2018/05/03 - void SetHyperK_8inchGeometry();//B.Q, 2018/05/03 - void SetHyperK_10inchGeometry();//B.Q, 2018/05/09 - void SetHyperK_SKPMTGeometry();//B.Q, 2018/05/09 - void SetHyperK_mPMTGeometry();//B.Q, 2017/12/08 - void SetHyperK_HybridmPMTGeometry();//B.Q, 2018/12/10 - void SetHyperK_HybridmPMT10PCGeometry();//B.Q, 2019/01/26 - void SetHyperK_HybridFakeGeometry();//B.Q, 2019/01/26 - void SetNuPrismGeometry(G4String PMTType, G4double PMTCoverage, G4double detectorHeight, G4double detectorDiameter, G4double verticalPosition); - void SetNuPrism_mPMTGeometry(); - void SetNuPrismShort_mPMTGeometry(); - void SetDefaultNuPrismGeometry(); - void UpdateGeometry(); - - G4String GetDetectorName() {return WCDetectorName;} - G4double GetWaterTubeLength() {return WCLength;} - G4double GetWaterTubePosition() {return WCPosition;} - G4double GetPMTSize() {return WCPMTRadius;} - G4String GetPMTName() {return WCPMTName;} - G4int GetMyConfiguration() {return myConfiguration;} - G4double GetGeo_Dm(G4int); - G4int GetTotalNumPmts() {return totalNumPMTs;} - G4int GetTotalNum_mPmts() {return totalNum_mPMTs;} - G4int GetTotalNumPmts2() {return totalNumPMTs2;}//For the hybrid config - G4int GetTotalNum_mPmts2() {return totalNum_mPMTs2;}//For the hybrid config - - G4int GetPMT_QE_Method(){return PMT_QE_Method;} - G4double GetwaterTank_Length() {return waterTank_Length;} - G4int UsePMT_Coll_Eff(){return PMT_Coll_Eff;} - - G4double GetPMTSize1() {return WCPMTSize;} - - G4float GetPMTQE(G4String,G4float, G4int, G4float, G4float, G4float); - G4float GetPMTCollectionEfficiency(G4float theta_angle, G4String CollectionName) { return GetPMTPointer(CollectionName)->GetCollectionEfficiency(theta_angle); }; - - WCSimPMTObject *CreatePMTObject(G4String, G4String); - - std::map CollectionNameMap; - WCSimPMTObject * PMTptr; - - void SetPMTPointer(WCSimPMTObject* PMT, G4String CollectionName){ - CollectionNameMap[CollectionName] = PMT; - } - - WCSimPMTObject* GetPMTPointer(G4String CollectionName){ - PMTptr = CollectionNameMap[CollectionName]; - if (PMTptr == NULL) {G4cout << CollectionName << " is not a recognized hit collection. Exiting WCSim." << G4endl; exit(1);} - return PMTptr; - } - - G4ThreeVector GetWCOffset(){return WCOffset;} - G4ThreeVector GetWCXRotation(){return WCXRotation;} - G4ThreeVector GetWCYRotation(){return WCYRotation;} - G4ThreeVector GetWCZRotation(){return WCZRotation;} - G4ThreeVector GetWCDetCentre(){return WCDetCentre;} - - void SetWCDetCentre(double x, double y, double z){ - WCDetCentre[0] = x; - WCDetCentre[1] = y; - WCDetCentre[2] = z; - } - - // Related to the WC tube IDs - static G4int GetTubeID(std::string tubeTag){return tubeLocationMap[tubeTag];} - static G4Transform3D GetTubeTransform(int tubeNo){return tubeIDMap[tubeNo];} - //For the hybrid configuration - static G4int GetTubeID2(std::string tubeTag){return tubeLocationMap2[tubeTag];} - static G4Transform3D GetTubeTransform2(int tubeNo){return tubeIDMap2[tubeNo];} - - // Related to Pi0 analysis - G4bool SavePi0Info() {return pi0Info_isSaved;} - void SavePi0Info(G4bool choice) {pi0Info_isSaved=choice;} - - // Related to neutron capture analysis - G4bool SaveCaptureInfo() {return captureInfo_isSaved;} - void SaveCaptureInfo(G4bool choice) {captureInfo_isSaved=choice;} - - void SetPMT_QE_Method(G4int choice){PMT_QE_Method = choice;} - void SetPMT_Coll_Eff(G4int choice){PMT_Coll_Eff = choice;} - void SetVis_Choice(G4String choice){Vis_Choice = choice;} - G4String GetVis_Choice() {return Vis_Choice;} - - //Partition Length - void SetwaterTank_Length(G4double length){waterTank_Length = length;} - void SetWaterTubeLength(G4double length){WCLength = length;} - // Geometry options - void SetIsUpright(G4bool choice) {isUpright = choice;} - - // *** Begin Egg-Shaped HyperK Geometry *** - - void SetIsEggShapedHyperK(G4bool choice) {isEggShapedHyperK = choice;} - G4bool GetIsEggShapedHyperK() {return isEggShapedHyperK;} - - void SetEggShapedHyperKGeometry(); - void SetEggShapedHyperKGeometry_withHPD(); - - - // *** End Egg-Shaped HyperK Geometry *** - - // Getters and Setters for MultiPMT details from macro. - void SetmPMT_VesselRadius(G4double radius){ - mPMT_vessel_radius = radius; - - // WCBarrelPMTOffset is affected, so need to be updated!! - G4double mPMT_vessel_tot_height = mPMT_vessel_radius + mPMT_vessel_cyl_height; - // If no acrylic cover/pressure vessel - if(mPMT_vessel_tot_height < WCPMTRadius) - mPMT_vessel_tot_height = WCPMTRadius; - WCBarrelPMTOffset = mPMT_vessel_tot_height; // BarrelPMTOffset needs PMT/mPMT height - if(!fix_nModules){ - WCBarrelNumPMTHorizontal = round(WCIDDiameter*sqrt(CLHEP::pi*WCPMTPercentCoverage)/(10.0*mPMT_vessel_radius)); - if(WCBarrelNumPMTHorizontal < 1) - G4cerr << "Bug in dimensions as less than 1 BarrelPMT specified" << G4endl; - WCBarrelNRings = round(((WCBarrelNumPMTHorizontal*((WCIDHeight-2*WCBarrelPMTOffset)/(CLHEP::pi*WCIDDiameter))) - /WCPMTperCellVertical)); - WCCapPMTSpacing = (CLHEP::pi*WCIDDiameter/WCBarrelNumPMTHorizontal); - WCCapEdgeLimit = WCIDDiameter/2.0 - mPMT_vessel_tot_height; // CapEdgeLimit needs PMT/mPMT height - } - } - - void SetmPMT_VesselRadiusCurv(G4double radius){ - mPMT_vessel_radius_curv = radius; - } - - void SetmPMT_VesselCylHeight(G4double height){ - mPMT_vessel_cyl_height = height; - - G4double mPMT_vessel_tot_height = mPMT_vessel_radius + mPMT_vessel_cyl_height; - // If no acrylic cover/pressure mPMT_vessel - if(mPMT_vessel_tot_height < WCPMTRadius) - mPMT_vessel_tot_height = WCPMTRadius; - WCBarrelPMTOffset = mPMT_vessel_tot_height; - if(!fix_nModules) - WCCapEdgeLimit = WCIDDiameter/2.0 - mPMT_vessel_tot_height; - - } - void SetmPMT_DistPMTVessel(G4double dist){dist_pmt_vessel = dist;} - void SetmPMT_Orientation(mPMT_orientation orient){orientation = orient;} - void SetmPMT_ReflectorHeight(G4double ref_height){id_reflector_height = ref_height;} - void SetmPMT_ReflectorZoffset(G4double ref_zoffset){id_reflector_z_offset = ref_zoffset;} - void SetmPMT_ReflectorAngle(G4double ref_angle){id_reflector_angle = ref_angle;} - void SetmPMT_MaterialOuter(G4String outer_material){ - mPMT_outer_material = outer_material; - if(outer_material == "Acrylic") - mPMT_outer_material = "G4_PLEXIGLASS"; - } - void SetmPMT_MaterialInner(G4String inner_material){mPMT_inner_material = inner_material;} - void SetmPMT_PMTtype_inner(G4String type){ - mPMT_ID_PMT = type; - - //ToDo: replace by common function - WCSimPMTObject * PMT = CreatePMTObject(mPMT_ID_PMT, WCIDCollectionName); - WCPMTName = PMT->GetPMTName(); - WCPMTExposeHeight = PMT->GetExposeHeight(); - WCPMTRadius = PMT->GetRadius(); - } - void SetmPMT_PMTtype_outer(G4String type){mPMT_OD_PMT = type;} - void SetmPMT_MaterialOuterThickness(G4double thickness){ - mPMT_outer_material_d = thickness; - } - void SetmPMT_nID(G4int nPMTs){nID_PMTs = nPMTs;} - void SetmPMT_nID2(G4int nPMTs){nID_PMTs2 = nPMTs;}//Added by B.Quilain for the second type of photosensor in the hybrid version - void SetmPMT_Config(G4String inputfile){config_file = inputfile;} - - int GetmPMT_nID(void){return nID_PMTs;}; - int GetmPMT_nID2(void){return nID_PMTs2;};//Added by B.Quilain for the second type of photosensor in the hybrid version - G4String GetPMTtype_ID(void){return mPMT_ID_PMT;}; - G4String GetPMTtype_OD(void){return mPMT_OD_PMT;}; //might want to replace the name mPMT by general var name - - void SetmPMT_MaterialPMTassembly(G4String material){mPMT_material_pmtAssembly = material;} - void SetmPMT_FixModules(G4bool fix){fix_nModules = fix;} - void SetmPMT_OpeningAngle(G4double angle){mPMT_pmt_openingAngle = angle;} - - //Filling mPMT - G4int FillCircles(void); - // DEPRECATED: - G4int CountPMT(G4int NoPmt); - G4double ComputeEta (G4int NoPmt); - G4double ComputeAlpha (G4double alphaOfPrevC, G4double Eta); - G4int ComputeNiC (G4double alphaOfCircle, G4double Eta); - - - - - // Set if nuPRISM - void SetIsNuPrism(G4bool choice) {isNuPrism = choice;} - G4bool GetIsNuPrism() {return isNuPrism;} - void SetHybridPMT(G4bool choice) {hybrid = choice;} - - void SetPMTType(G4String type) { - WCPMTType = type; - //And update everything that is affected by a new PMT - WCSimPMTObject * PMT = CreatePMTObject(WCPMTType, WCIDCollectionName); - WCPMTName = PMT->GetPMTName(); - WCPMTExposeHeight = PMT->GetExposeHeight(); - WCPMTRadius = PMT->GetRadius(); - - WCBarrelPMTOffset = WCPMTRadius; - WCBarrelNumPMTHorizontal = round(WCIDDiameter*sqrt(CLHEP::pi*WCPMTPercentCoverage/100.0)/WCPMTRadius); - WCBarrelNRings = round(((WCBarrelNumPMTHorizontal*((WCIDHeight-2*WCBarrelPMTOffset)/(CLHEP::pi*WCIDDiameter)))/WCPMTperCellVertical)); - WCCapEdgeLimit = WCIDDiameter/2.0 - WCPMTRadius; - - } - bool GetHybridPMT() {return hybrid;} - G4String GetPMTType() {return WCPMTType;} - - void SetPMTCoverage(G4double cover) { - // TF: do the same as for mPMTs to make "Update" deprecated: - // change the variables from WCDetectorConstruction that - // are affected. - WCPMTPercentCoverage = cover; - if(WCDetectorName == "NuPRISM_mPMT" || WCDetectorName == "HyperK_mPMT"){ - WCBarrelNumPMTHorizontal = round(WCIDDiameter*sqrt(CLHEP::pi*WCPMTPercentCoverage/100.0)/mPMT_vessel_radius); - } else - WCBarrelNumPMTHorizontal = round(WCIDDiameter*sqrt(CLHEP::pi*WCPMTPercentCoverage/100.0)/WCPMTRadius); - WCBarrelNRings = round(((WCBarrelNumPMTHorizontal*((WCIDHeight-2*WCBarrelPMTOffset)/(CLHEP::pi*WCIDDiameter)))/WCPMTperCellVertical)); - WCCapPMTSpacing = (CLHEP::pi*WCIDDiameter/WCBarrelNumPMTHorizontal); - } - G4double GetPMTCoverage() {return WCPMTPercentCoverage;} - - void SetDopedWater(G4bool dopedWater){WCAddGd = dopedWater; } - void AddDopedWater(G4double percentGd = 0.1); - - std::vector* Get_Pmts() {return &fpmts;} - std::vector* Get_Pmts2() {return &fpmts2;}//For the hybrid config - - void SetDetectorHeight(G4double height) { - WCIDHeight = height; - // Affects Number of Barrel rings: - WCBarrelNRings = round(((WCBarrelNumPMTHorizontal*((WCIDHeight-2*WCBarrelPMTOffset)/(CLHEP::pi*WCIDDiameter)))/WCPMTperCellVertical)); - } - G4double GetWCIDHeight(){ return WCIDHeight; } - - void SetDetectorVerticalPosition(G4double position) {WCIDVerticalPosition = position;} - G4double GetWCIDVerticalPosition(){ return WCIDVerticalPosition; } - - void SetDetectorDiameter(G4double diameter) { - WCIDDiameter = diameter; - // Affects several cylinder parameters: - if(WCDetectorName == "NuPRISM_mPMT"){ - WCBarrelNumPMTHorizontal = round(WCIDDiameter*sqrt(CLHEP::pi*WCPMTPercentCoverage/100.0)/mPMT_vessel_radius); - WCCapEdgeLimit = WCIDDiameter/2.0 - mPMT_vessel_radius; - } else{ - WCBarrelNumPMTHorizontal = round(WCIDDiameter*sqrt(CLHEP::pi*WCPMTPercentCoverage/100.0)/WCPMTRadius); - WCCapEdgeLimit = WCIDDiameter/2.0 - WCPMTRadius; - } - - WCBarrelNRings = round(((WCBarrelNumPMTHorizontal*((WCIDHeight-2*WCBarrelPMTOffset)/(CLHEP::pi*WCIDDiameter)))/WCPMTperCellVertical)); - WCCapPMTSpacing = (CLHEP::pi*WCIDDiameter/WCBarrelNumPMTHorizontal); - - -} - G4double GetWCIDDiameter(){ return WCIDDiameter; } - - G4String GetIDCollectionName(){return WCIDCollectionName;} - G4String GetIDCollectionName2(){return WCIDCollectionName2;}//Added by B.Quilain for hybrid PMT configuration - WCSimTuningParameters* GetParameters(){return WCSimTuningParams;}//Added by TD to set up a parameter on PMT TTS uncertainty and use it in WCSimWCPMT -private: - - - // Tuning parameters - - WCSimTuningParameters* WCSimTuningParams; - - // Sensitive Detectors. We declare the pointers here because we need - // to check their state if we change the geometry, otherwise will segfault - // between events! - WCSimWCSD* aWCPMT; - - //Water, Blacksheet surface - G4OpticalSurface * OpWaterBSSurface; - - //Glass, Cathode surface in PMTs - - G4OpticalSurface * OpGlassCathodeSurface; - - //Tyvek surface - jl145 - G4OpticalSurface * OpWaterTySurface; - - //Reflector skin surface -tf - G4OpticalSurface * ReflectorSkinSurface; - - //Foam for mPMT: Gel - absorbing support structure -tf - G4OpticalSurface * OpGelFoamSurface; - - //TF fix for blacksheet errors "missing refractive index" - // or "photon travelling faster than c_light" when trying to refract - // through blacksheet due to undefined border crossing (after setting n_BS) - G4OpticalSurface * BSSkinSurface; - - - // The messenger we use to change the geometry. - - WCSimDetectorMessenger* messenger; - - // The Construction routines - G4LogicalVolume* ConstructCylinder(); - - G4LogicalVolume* ConstructPMT(G4String,G4String,G4String detectorElement="tank",G4int nIDPMTs=1);//Modified by B.Quilain 2018/12 to implement hybrid detector - G4LogicalVolume* ConstructMultiPMT(G4String,G4String, G4String detectorElement="tank",G4int nIDPMTs=1); - - - G4LogicalVolume* ConstructCaps(G4int zflip); - - void ConstructMaterials(); - - G4LogicalVolume* logicWCBarrelCellBlackSheet; - G4LogicalVolume* logicWCTowerBlackSheet; - G4double capAssemblyHeight; - - G4bool WCAddGd; - - // Code for traversing the geometry and assigning tubeIDs. - - // First make a typedef for the pointer to the member fcn. The - // syntax is too wacked out to be using all over. - - typedef void (WCSimDetectorConstruction::*DescriptionFcnPtr) - (G4VPhysicalVolume*, int, int, const G4Transform3D&); - - // Now Funcs for traversing the geometry - void TraverseReplicas(G4VPhysicalVolume*, int, const G4Transform3D&, - DescriptionFcnPtr); - - void DescribeAndDescendGeometry(G4VPhysicalVolume*, int, int, - const G4Transform3D&, DescriptionFcnPtr); - - // Functions that the traversal routines call or we use to manipulate the - // data we accumulate. - void DumpGeometryTableToFile(); - - void PrintGeometryTree(G4VPhysicalVolume*, int, int, const G4Transform3D&); - void DescribeAndRegisterPMT(G4VPhysicalVolume*, int, int, - const G4Transform3D&); - void DescribeAndRegisterPMT_1KT(G4VPhysicalVolume*, int, int, - const G4Transform3D&); - void GetWCGeom(G4VPhysicalVolume*, int, int, - const G4Transform3D&); - - //---Volume lengths - - // These are shared between the different member functions - // constructWC, constructFGD, constructlArD, constuctMRD - // toggle between FGD(0) and lArD(1) - // toggle between lArD readout types - // toggle between MRDScint and MRDk2k - - G4bool pi0Info_isSaved; - G4bool captureInfo_isSaved; - - - // XQ 08/17/10 - // PMT_QE_Method == 1 - // Only use it in the stacking function (no WLS) - // PMT_QE_Method == 2 - // Use Part of it in the stacking function (MAX QE) - // Put the rest of it in the sensitive detector according to QE/Max_QE - // PMT_QE_Method == 3 - // Put all of it in the sensitive detector according to QE - // Good for low energy photons - G4int PMT_QE_Method; - - //XQ 03/31/11 - // 0 to not use collection efficiency - // 1 to use - G4int PMT_Coll_Eff; - - //NP 06/17/15 - // "OGLSX" for classic visualization - // "RayTracer" for RayTracer visualization - G4String Vis_Choice; - - - G4double WCLength; - - G4double WCPosition; - - // Hit collection name parameters - G4String WCDetectorName; - G4String WCIDCollectionName; - G4String WCIDCollectionName2; - G4String WCODCollectionName; - G4bool hybrid = false; - - - // WC PMT parameters - G4String WCPMTName; - G4String WCPMTName2;//B. Quilain: for Hybrid configuration - typedef std::pair PMTKey_t; - typedef std::map PMTMap_t; - - static PMTMap_t PMTLogicalVolumes; - - // WC geometry parameters - G4double WCPMTRadius; - G4double WCPMTExposeHeight; - G4double WCBarrelPMTOffset; - - G4double WCPMTRadius2;//B. Quilain: for Hybrid configuration - G4double WCPMTExposeHeight2;//B. Quilain: for Hybrid configuration - G4double WCBarrelPMTOffset2;//B. Quilain: for Hybrid configuration - - G4double WCIDDiameter; - - G4double WCCapLength; - G4double WCBackODLength; - G4double WCFrontODLength; - G4double WCIDHeight; - G4double WCIDVerticalPosition; - - G4double WCBarrelRingRadius; - - G4double WCBarrelRingNPhi; - G4double WCBarrelNRings; - G4double WCPMTperCellHorizontal; - G4double WCPMTperCellVertical; - - G4double WCPMTPercentCoverage; - G4double WCPMTPercentCoverage2;//Added by B.Q for hybrid - - G4double WCBarrelNumPMTHorizontal; - G4double WCCapPMTSpacing; - G4double WCCapEdgeWidth;//jh ToDo: not used - - G4double WCCapEdgeLimit; - G4double WCBlackSheetThickness; - -// raise scope of derived parameters - G4double WCIDRadius; - G4double totalAngle; - G4double dPhi; - G4double barrelCellHeight; - G4double mainAnnulusHeight; - G4double innerAnnulusRadius; - G4double outerAnnulusRadius; - G4String water; - - - //for 1kt - G4double WCDiameter; - G4double WCRadius; - G4double WCBarrelPMTRadius; - G4double WCBarrelRingdPhi; - G4double WCBarrelCellLength; - G4double WCCapNCell; - G4double WCBarrelLength; - - // amb79: to universally make changes in structure and geometry - bool isUpright; - - - // Add bool to indicate whether we load nuPRISM geometry - G4bool isNuPrism; - G4String WCPMTType; - // G4double WCPMTCoverage; //TF: already using this variable "WCPMTPercentCoverage - - // *** Begin egg-shaped HyperK Geometry *** - - void MatchWCSimAndEggShapedHyperK(); - G4LogicalVolume* ConstructEggShapedHyperK(); - - G4Material* FindMaterial(G4String); - - G4VSolid* ConstructHalf(G4double, G4double); - - G4LogicalVolume* ConstructRadialPMT(G4bool, - G4double, G4double, - G4double, G4double, - G4double, G4double); - - G4LogicalVolume* ConstructEndWallPMT(); - - G4LogicalVolume* ConstructCeilingPMT(G4bool, - G4double, G4double, - G4double, G4double); - - G4bool isEggShapedHyperK; - - G4double waterTank_TopR; - G4double waterTank_BotR; - G4double waterTank_Height; - G4double waterTank_UpperA; - G4double waterTank_LowerB; - G4double waterTank_Length; - - G4double innerPMT_TopR; - G4double innerPMT_BotR; - G4double innerPMT_TopW; - G4double innerPMT_BotW; - G4double innerPMT_Height; - G4double innerPMT_Radius; - G4double innerPMT_Expose; - G4double innerPMT_Rpitch; - G4double innerPMT_Apitch; - - G4double outerPMT_TopR; - G4double outerPMT_BotR; - G4double outerPMT_TopW; - G4double outerPMT_BotW; - G4double outerPMT_Height; - G4double outerPMT_Radius; - G4double outerPMT_Expose; - G4String outerPMT_Name; - G4double outerPMT_TopRpitch; - G4double outerPMT_BotRpitch; - G4double outerPMT_Apitch; - - G4double blackSheetThickness; - - G4int innerPMT_TopN; - G4int innerPMT_BotN; - - G4bool checkOverlaps; - G4bool checkOverlapsPMT; - - G4bool placeBarrelPMTs; - G4bool placeCapPMTs; - G4bool placeBorderPMTs; - G4LogicalVolume* waterTankLV; - - G4int PMTCopyNo; - G4int wallSlabCopyNo; - - // *** End egg-shaped HyperK Geometry *** - - // amb79: debug to display all parts - bool debugMode; - - // Variables related to the geometry - - std::ofstream geoFile; // File for text output - - G4int totalNumPMTs=0; // The number of PMTs for this configuration - G4int totalNum_mPMTs=0; // The number of mPMTs (+1 for single PMT, +1 for mPMT) - G4int totalNumPMTs2=0; // The number of PMTs for this configuration, hybrid config - G4int totalNum_mPMTs2=0; // The number of mPMTs (+1 for single PMT, +1 for mPMT), hybrid config - G4double WCCylInfo[3]; // Info for the geometry tree: radius & length or mail box, length, width and depth - G4double WCPMTSize; // Info for the geometry tree: pmt size - G4double WCPMTSize2; // Info for the geometry tree: pmt size - G4ThreeVector WCOffset; // Info for the geometry tree: WC center offset - G4ThreeVector WCXRotation; // Info for the geometry tree: WC detector local X axis in the global coordinate system - G4ThreeVector WCYRotation; // Info for the geometry tree: WC detector local Y axis in the global coordinate system - G4ThreeVector WCZRotation; // Info for the geometry tree: WC detector local Z axis in the global coordinate system - G4ThreeVector WCDetCentre; - - // Tube map information - - //static std::map tubeIDMap; - //nding mPMT and mPMT_pmt ID -// static std::map tubeCylLocation; - //static hash_map > tubeLocationMap_old; //Deprecated - - static std::map tubeIDMap; - // static std::map tubeCylLocation; - static std::unordered_map > tubeLocationMap; - static std::map > mPMTIDMap; //maps tubeID to correspo - - // ID PMTs hybrid version - static std::map tubeIDMap2; - static std::unordered_map > tubeLocationMap2; - static std::map > mPMTIDMap2; //maps tubeID to correspo - //static std::unordered_map > tubeLocationMap; - - // Variables related to configuration - - G4int myConfiguration; // Detector Config Parameter - G4double innerradius; - - // Variables related to MultiPMTs - G4double vessel_cyl_height; - G4double vessel_radius_curv; // radius of the sphere to determine curvature of cap of pressure vessel - G4double vessel_radius; // radius of the pressure vessel (spherical cap) - - G4double mPMT_vessel_cyl_height; - G4double mPMT_vessel_radius_curv; // radius of the sphere to determine curvature of cap of pressure vessel - G4double mPMT_vessel_radius; // radius of the pressure vessel (spherical cap) - G4double dist_pmt_vessel; // distance between glass of pmt and inner radius of pressure vessel (region where water/gel lives) - mPMT_orientation orientation; - G4String mPMT_outer_material; - G4String mPMT_inner_material; - G4double mPMT_outer_material_d; - G4double id_reflector_height; - G4double id_reflector_z_offset; - G4double id_reflector_angle; - G4int nID_PMTs; - G4int nID_PMTs2; - G4String wcsimdir_path; - G4String config_file; - G4String mPMT_ID_PMT; //or ToDo: ideally ENUM - G4String mPMT_OD_PMT; - G4bool fix_nModules; - G4double mPMT_pmt_openingAngle; - G4String mPMT_material_pmtAssembly; - - //Filling mPMT - std::vector vNiC; // Nb of Chambers in each circle - std::vector vAlpha; // Tilt angle for each circle - std::vector vCircle; // Circle numbers - std::vector vAzimOffset; // Azimuthal offset of first PMT in each circle. - - - std::vector fpmts; - std::vector fpmts2;//For the hybrid config - -}; - -#endif - diff --git a/libWCSIM/include/WCSimDetectorMessenger.hh b/libWCSIM/include/WCSimDetectorMessenger.hh deleted file mode 100644 index f30a6bc..0000000 --- a/libWCSIM/include/WCSimDetectorMessenger.hh +++ /dev/null @@ -1,88 +0,0 @@ -#ifndef WCSimDetectorMessenger_h -#define WCSimDetectorMessenger_h 1 - -class WCSimDetectorConstruction; -class G4UIdirectory; -class G4UIcmdWithAString; - -#include "G4UImessenger.hh" -#include "globals.hh" -#include "G4ios.hh" -#include "G4UImessenger.hh" -#include "G4UIdirectory.hh" -#include "G4UIcmdWithADouble.hh" -#include "G4UIcmdWithADoubleAndUnit.hh" -#include "G4UIcmdWithoutParameter.hh" -#include "G4UIcmdWithABool.hh" -#include "G4UIcmdWithAString.hh" -#include "G4UIcmdWithAnInteger.hh" - - -class WCSimDetectorMessenger: public G4UImessenger -{ - public: - WCSimDetectorMessenger(WCSimDetectorConstruction* mpga); - ~WCSimDetectorMessenger(); - - public: - void SetNewValue(G4UIcommand* command, G4String newValues); - - private: - WCSimDetectorConstruction* WCSimDetector; - - private: //commands - - G4UIdirectory* WCSimDir; - G4UIcmdWithAString* PMTConfig; - G4UIcmdWithAString* WCVisChoice; - G4UIcmdWithAString* PMTGeomDetails; - G4UIcmdWithAString* PMTSize; - G4UIcmdWithAString* PMTSize2; - G4UIcmdWithAString* SavePi0; - G4UIcmdWithAString* SaveCapture; - G4UIcmdWithAString* PMTQEMethod; - G4UIcmdWithAString* PMTCollEff; - G4UIcmdWithABool* DopedWater; - G4UIcmdWithADouble* DopingConcentration; - G4UIcmdWithADoubleAndUnit* waterTank_Length; - - G4UIdirectory* mPMTDir; - G4UIcmdWithADoubleAndUnit* mPMT_CylHeight; - G4UIcmdWithADoubleAndUnit* mPMT_CylRadius; - G4UIcmdWithADoubleAndUnit* mPMT_CylRadiusCurv; - G4UIcmdWithADoubleAndUnit* mPMT_DistPMTVessel; - G4UIcmdWithAString* mPMT_orientation; - G4UIcmdWithAString* mPMT_material_inner; - G4UIcmdWithAString* mPMT_material_outer; - G4UIcmdWithAString* mPMT_PMTtype_inner; - G4UIcmdWithAString* mPMT_PMTtype_outer; - G4UIcmdWithADoubleAndUnit* mPMT_material_outer_thickness; - G4UIcmdWithADoubleAndUnit* mPMT_ID_reflector_height; - G4UIcmdWithADoubleAndUnit* mPMT_ID_reflector_z_offset; - G4UIcmdWithADoubleAndUnit* mPMT_ID_reflector_angle; - G4UIcmdWithAnInteger* mPMT_nID_PMTs; - G4UIcmdWithAString* mPMT_config; - G4UIcmdWithABool* mPMT_numModulesFixed; - G4UIcmdWithADoubleAndUnit* mPMT_pmtOpeningAngle; - G4UIcmdWithAString* mPMT_material_pmtAssembly; - //G4UIcmdWithAString* mPMT_PMTtype_inner; //enums internally - //G4UIcmdWithAString* mPMT_PMTtype_outer; - - G4UIcmdWithAString* tubeCmd; - G4UIcmdWithAString* distortionCmd; - G4UIcmdWithoutParameter* WCConstruct; - - //nuPRISM commands - G4UIcmdWithoutParameter* UpdateNuPrism; - G4UIcmdWithAString* SetPMTType; - G4UIcmdWithABool* SetHybridPMT; - G4UIcmdWithAString* SetPMTCoverage; - G4UIcmdWithADoubleAndUnit* SetDetectorHeight; - G4UIcmdWithADoubleAndUnit* SetDetectorVerticalPosition; - G4UIcmdWithADoubleAndUnit* SetDetectorDiameter; - -}; - -#endif - - diff --git a/libWCSIM/include/WCSimEnumerations.hh b/libWCSIM/include/WCSimEnumerations.hh deleted file mode 100644 index 4f25abf..0000000 --- a/libWCSIM/include/WCSimEnumerations.hh +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef WCSimEnumerations_h -#define WCSimEnumerations_h 1 - -#include - -typedef enum ETriggerType { - kTriggerUndefined = -1, - kTriggerNDigits, - kTriggerNDigitsTest, - kTriggerFailure // this should always be the last entry (for looping) -} TriggerType_t; - -typedef enum EDigitizerType { - kDigitizerUndefined = -1, - kDigitizerSKI -} DigitizerType_t; - -typedef enum EInteractionMode { - UNKNOWN = -1, - BEAM = 0, - COSMICS = 10, - PARTICLEGUN = 20, - LASER = 30 -} InteractionType_t; - -typedef enum ERandomGeneratorType { - RANDOM_E_RANLUX=1, - RANDOM_E_RANECU=2, - RANDOM_E_HEPJAMES=3 -} WCSimRandomGenerator_t; - -class WCSimEnumerations -{ -public: - - static std::string EnumAsString(DigitizerType_t d); - static std::string EnumAsString(TriggerType_t t); - static std::string EnumAsString(WCSimRandomGenerator_t r); - static TriggerType_t TriggerTypeFromString(std::string s); - -}; - -#endif diff --git a/libWCSIM/include/WCSimEventAction.hh b/libWCSIM/include/WCSimEventAction.hh deleted file mode 100644 index e74a855..0000000 --- a/libWCSIM/include/WCSimEventAction.hh +++ /dev/null @@ -1,86 +0,0 @@ -#ifndef WCSimEventAction_h -#define WCSimEventAction_h 1 - - -#include "G4UserEventAction.hh" -#include "G4ThreeVector.hh" -#include "G4Types.hh" -#include "G4ios.hh" - -#include "WCSimDetectorConstruction.hh" -#include "G4TrajectoryContainer.hh" -#include "WCSimWCHit.hh" -#include "WCSimWCDigi.hh" -#include "WCSimWCTrigger.hh" -#include "WCSimWCDAQMessenger.hh" -#include "WCSimRootEvent.hh" -#include "WCSimRootGeom.hh" - -#include "TRandom3.h" - -class WCSimRunAction; -class WCSimPrimaryGeneratorAction; -class G4Event; - -class WCSimEventAction : public G4UserEventAction -{ -private: - WCSimRunAction* runAction; - WCSimPrimaryGeneratorAction* generatorAction; - WCSimDetectorConstruction* detectorConstructor; - - TRandom3 * randGen; - WCSimWCDAQMessenger* DAQMessenger; - -public: - WCSimEventAction(WCSimRunAction*, WCSimDetectorConstruction*, - WCSimPrimaryGeneratorAction*); - ~WCSimEventAction(); - -public: - void BeginOfEventAction(const G4Event*); - void EndOfEventAction(const G4Event*); - void FillRootEvent(G4int, - const struct ntupleStruct&, - G4TrajectoryContainer*, - WCSimWCDigitsCollection*, - WCSimWCTriggeredDigitsCollection*, - G4String detectorElement="tank"); - void FillRootEventHybrid(G4int, - const struct ntupleStruct&, - G4TrajectoryContainer*, - WCSimWCDigitsCollection*, - WCSimWCTriggeredDigitsCollection*, - G4String, - WCSimRootEvent*, - WCSimRootTrigger*); - WCSimRunAction* GetRunAction(){return runAction;} - void SetDigitizerChoice(G4String digitizer) { DigitizerChoice = digitizer; } - void SetTriggerChoice (G4String trigger) { TriggerChoice = trigger; } - - void FillFlatTree(G4int, - const struct ntupleStruct&, - G4TrajectoryContainer*, - WCSimWCDigitsCollection*, - WCSimWCTriggeredDigitsCollection*, - G4String detectorElement); - - -private: - G4int WCSimEventFindStartingVolume( G4ThreeVector vtx); - G4int WCSimEventFindStoppingVolume( G4String stopVolumeName); - - G4String vtxVolumeName; //TF new - - ///Create instances of the user-chosen digitizer and trigger classes - void CreateDAQInstances(); - - G4String DigitizerChoice; - G4String TriggerChoice; - bool ConstructedDAQClasses; - bool SavedOptions; -}; - - -#endif - diff --git a/libWCSIM/include/WCSimMultiPMTParameterisation.hh b/libWCSIM/include/WCSimMultiPMTParameterisation.hh deleted file mode 100644 index 6a81231..0000000 --- a/libWCSIM/include/WCSimMultiPMTParameterisation.hh +++ /dev/null @@ -1,75 +0,0 @@ -#ifndef WCSimMultiPMTParameterisation_h -#define WCSimMultiPMTParameterisation_h 1 - -#include "globals.hh" -#include "G4VPVParameterisation.hh" -#include -#include "G4RotationMatrix.hh" -#include "G4ThreeVector.hh" - - -class G4VPhysicalVolume; -class G4Tubs; - -// Dummy declarations to get rid of warnings ... -class G4Trd; -class G4Trap; -class G4Cons; -class G4Orb; -class G4Sphere; -class G4Ellipsoid; -class G4Torus; -class G4Para; -class G4Hype; -class G4Box; -class G4Polycone; -class G4Polyhedra; - -/// A parameterisation that describes a series of boxes along Z. -/// -/// The boxes have equal width, & their lengths are a linear equation. -/// They are spaced an equal distance apart, starting from given location. - -class WCSimMultiPMTParameterisation : public G4VPVParameterisation -{ - public: - - WCSimMultiPMTParameterisation(G4int noPmt, - G4double apoth, - std::vector& vNiC, - std::vector& vAlpha, - std::vector& vCircle, - std::vector& vAzimOffset, - G4double height); - - virtual ~WCSimMultiPMTParameterisation(); - void ComputeTransformation (const G4int copyNo, - G4VPhysicalVolume* physVol) const; - - -private: - - unsigned int fNoPmt; - G4double fApothema; // The distance from the Z axis - - // Local NiC, Alpha and Circle vectors - std::vector vNiCLocal; - std::vector vAlphaLocal; - std::vector vCircleLocal; - std::vector vAzimOffsetLocal; - - G4double fHeight; - std::vector vPMTpos; - std::vector vPMTorient; - - //preCalc position and rotation once to reduce CPU time and mem allocation in ComputeTransformation. - // The latter is called a lot throughout G4 execution (ie. during tracking for each event). - void PreCalculateTransform(); - - - -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#endif diff --git a/libWCSIM/include/WCSimPMTObject.hh b/libWCSIM/include/WCSimPMTObject.hh deleted file mode 100644 index 41838aa..0000000 --- a/libWCSIM/include/WCSimPMTObject.hh +++ /dev/null @@ -1,427 +0,0 @@ -#ifndef WCSimWCPMTObject_h -#define WCSimWCPMTObject_h 1 - -#include "WCSimTuningParameters.hh" -#include "WCSimDetectorConstruction.hh" -#include "globals.hh" -#include "Randomize.hh" -#include -#include - - -class WCSimPMTObject -{ - -public: - virtual G4String GetPMTName()=0; - virtual G4double GetExposeHeight()=0; - virtual G4double GetRadius()=0; - virtual G4float* Getqpe()=0; - virtual G4double* GetQE()=0; - virtual G4float* GetQEWavelength()=0; - virtual G4float GetmaxQE()=0; - virtual G4float GetCollectionEfficiency(float); - virtual float HitTimeSmearing(float, float /*, float*/)=0; - virtual float SaturFactor(float, float)=0; //TD 2019.07.16 - virtual G4double GetPMTGlassThickness()=0; - virtual G4float GetDarkRate()=0; - virtual G4float GetDarkRateConversionFactor()=0; -protected: - virtual G4float* GetCollectionEfficiencyArray(); - virtual G4float* GetCollectionEfficiencyAngle(); - G4float Interpolate_func(G4float, G4int, G4float*, G4float*); -}; - -class PMT20inch : public WCSimPMTObject -{ - -public: - - PMT20inch(); - ~PMT20inch(); - -public: - G4String GetPMTName() ; - G4double GetExposeHeight(); - G4double GetRadius(); - G4float* Getqpe(); - G4double* GetQE(); - G4float* GetQEWavelength(); - G4float GetmaxQE(); - float HitTimeSmearing(float, float); - float SaturFactor(float, float); //TD 2019.07.16 - G4double GetPMTGlassThickness(); - G4float GetDarkRate(); - G4float GetDarkRateConversionFactor(); - - -}; - -class PMT8inch : public WCSimPMTObject -{ - -public: - - PMT8inch(); - ~PMT8inch(); - -public: - G4String GetPMTName(); - G4double GetExposeHeight(); - G4double GetRadius(); - G4float* Getqpe(); - G4double* GetQE(); - G4float* GetQEWavelength(); - G4float GetmaxQE(); - float HitTimeSmearing(float, float); - float SaturFactor(float, float); //TD 2019.07.16 - G4double GetPMTGlassThickness(); - G4float GetDarkRate(); - G4float GetDarkRateConversionFactor(); -}; - -class PMT5inch : public WCSimPMTObject -{ - -public: - - PMT5inch(); - ~PMT5inch(); - -public: - G4String GetPMTName(); - G4double GetExposeHeight(); - G4double GetRadius(); - G4float* Getqpe(); - G4double* GetQE(); - G4float* GetQEWavelength(); - G4float GetmaxQE(); - float HitTimeSmearing(float, float); - float SaturFactor(float, float); //TD 2019.07.16 - G4double GetPMTGlassThickness(); - G4float GetDarkRate(); - G4float GetDarkRateConversionFactor(); -}; - -class PMT3inch : public WCSimPMTObject -{ - -public: - - PMT3inch(); - ~PMT3inch(); - -public: - G4String GetPMTName(); - G4double GetExposeHeight(); - G4double GetRadius(); - G4float* Getqpe(); - G4double* GetQE(); - G4float* GetQEWavelength(); - G4float GetmaxQE(); - float HitTimeSmearing(float, float); - float SaturFactor(float, float); //TD 2019.07.16 - G4double GetPMTGlassThickness(); - G4float GetDarkRate(); - G4float GetDarkRateConversionFactor(); -}; - -class PMT3inchGT : public WCSimPMTObject -{ - -public: - - PMT3inchGT(); - ~PMT3inchGT(); - -public: - G4String GetPMTName(); - G4double GetExposeHeight(); - G4double GetRadius(); - G4float* Getqpe(); - G4double* GetQE(); - G4float* GetQEWavelength(); - G4float GetmaxQE(); - float HitTimeSmearing(float, float); - float SaturFactor(float, float); //TD 2019.07.16 - G4double GetPMTGlassThickness(); - G4float GetDarkRate(); - G4float GetDarkRateConversionFactor(); -}; - - - class PMT10inch : public WCSimPMTObject -{ - -public: - PMT10inch(); - ~PMT10inch(); - -public: - G4String GetPMTName(); - G4double GetExposeHeight(); - G4double GetRadius(); - G4float* Getqpe(); - G4double* GetQE(); - G4float* GetQEWavelength(); - G4float GetmaxQE(); - float HitTimeSmearing(float, float); - float SaturFactor(float, float); //TD 2019.07.16 - G4double GetPMTGlassThickness(); - G4float GetDarkRate(); - G4float GetDarkRateConversionFactor(); - }; - - class PMT10inchHQE : public WCSimPMTObject -{ - -public: - PMT10inchHQE(); - ~PMT10inchHQE(); - -public: - G4String GetPMTName(); - G4double GetExposeHeight(); - G4double GetRadius(); - G4float* Getqpe(); - G4double* GetQE(); - G4float* GetQEWavelength(); - G4float GetmaxQE(); - float HitTimeSmearing(float, float); - float SaturFactor(float, float); //TD 2019.07.16 - G4double GetPMTGlassThickness(); - G4float GetDarkRate(); - G4float GetDarkRateConversionFactor(); - }; - - class PMT12inchHQE : public WCSimPMTObject -{ - -public: - PMT12inchHQE(); - ~PMT12inchHQE(); - -public: - G4String GetPMTName(); - G4double GetExposeHeight(); - G4double GetRadius(); - G4float* Getqpe(); - G4double* GetQE(); - G4float* GetQEWavelength(); - G4float GetmaxQE(); - float HitTimeSmearing(float, float); - float SaturFactor(float, float); //TD 2019.07.16 - G4double GetPMTGlassThickness(); - G4float GetDarkRate(); - G4float GetDarkRateConversionFactor(); - }; - -class HPD20inchHQE : public WCSimPMTObject -{ - -public: - - HPD20inchHQE(); - ~HPD20inchHQE(); - -public: - G4String GetPMTName() ; - G4double GetExposeHeight(); - G4double GetRadius(); - G4float* Getqpe(); - G4double* GetQE(); - G4float* GetQEWavelength(); - G4float GetmaxQE(); - float HitTimeSmearing(float, float); - float SaturFactor(float, float); //TD 2019.07.16 - G4double GetPMTGlassThickness(); - G4float GetDarkRate(); - G4float GetDarkRateConversionFactor(); -protected: - G4float* GetCollectionEfficiencyArray(); -}; - -class HPD12inchHQE : public WCSimPMTObject -{ - -public: - - HPD12inchHQE(); - ~HPD12inchHQE(); - -public: - G4String GetPMTName() ; - G4double GetExposeHeight(); - G4double GetRadius(); - G4float* Getqpe(); - G4double* GetQE(); - G4float* GetQEWavelength(); - G4float GetmaxQE(); - float HitTimeSmearing(float, float); - float SaturFactor(float, float); //TD 2019.07.16 - G4double GetPMTGlassThickness(); - G4float GetDarkRate(); - G4float GetDarkRateConversionFactor(); -protected: - G4float* GetCollectionEfficiencyArray(); -}; - -class BoxandLine20inchHQE : public WCSimPMTObject -{ - -public: - - BoxandLine20inchHQE(); - ~BoxandLine20inchHQE(); - -public: - G4String GetPMTName() ; - G4double GetExposeHeight(); - G4double GetRadius(); - G4float* Getqpe(); - G4double* GetQE(); //has to be double due to double math inside array ("narrowing conversion" error in C++11) - G4float* GetQEWavelength(); - G4float GetmaxQE(); - float HitTimeSmearing(float, float); - float SaturFactor(float, float); //TD 2019.07.16 - G4double GetPMTGlassThickness(); - G4float GetDarkRate(); - G4float GetDarkRateConversionFactor(); -protected: - G4float* GetCollectionEfficiencyArray(); -}; - -class BoxandLine12inchHQE : public WCSimPMTObject -{ - -public: - - BoxandLine12inchHQE(); - ~BoxandLine12inchHQE(); - -public: - G4String GetPMTName() ; - G4double GetExposeHeight(); - G4double GetRadius(); - G4float* Getqpe(); - G4double* GetQE(); - G4float* GetQEWavelength(); - G4float GetmaxQE(); - float HitTimeSmearing(float, float); - float SaturFactor(float, float); //TD 2019.07.16 - G4double GetPMTGlassThickness(); - G4float GetDarkRate(); - G4float GetDarkRateConversionFactor(); - -protected: - G4float* GetCollectionEfficiencyArray(); -}; - - -// ToDo: make object of classes instead of infinite cp-pastes -class PMT3inchR12199_02 : public WCSimPMTObject -{ - -public: - - PMT3inchR12199_02(); - ~PMT3inchR12199_02(); - -public: - G4String GetPMTName() ; - G4double GetExposeHeight(); - G4double GetRadius(); - G4float* Getqpe(); - G4double* GetQE(); - G4float* GetQEWavelength(); - G4float GetmaxQE(); - float HitTimeSmearing(float, float); - float SaturFactor(float, float); //TD 2019.07.16 - G4double GetPMTGlassThickness(); - G4float GetDarkRate(); - G4float GetDarkRateConversionFactor(); -protected: - G4float* GetCollectionEfficiencyArray(); -}; - -//B.Q, 2019/01/18 -// ToDo: make object of classes instead of infinite cp-pastes -class PMT3inchR14374 : public WCSimPMTObject -{ - -public: - - PMT3inchR14374(); - ~PMT3inchR14374(); - -public: - G4String GetPMTName() ; - G4double GetExposeHeight(); - G4double GetRadius(); - G4float* Getqpe(); - G4double* GetQE(); - G4float* GetQEWavelength(); - G4float GetmaxQE(); - float HitTimeSmearing(float, float); - float SaturFactor(float, float); //TD 2019.07.16 - G4double GetPMTGlassThickness(); - G4float GetDarkRate(); - G4float GetDarkRateConversionFactor(); -protected: - G4float* GetCollectionEfficiencyArray(); -}; - -// ToDo: make object of classes instead of infinite cp-pastes -class PMT4inchR12199_02 : public WCSimPMTObject -{ - -public: - - PMT4inchR12199_02(); - ~PMT4inchR12199_02(); - -public: - G4String GetPMTName() ; - G4double GetExposeHeight(); - G4double GetRadius(); - G4float* Getqpe(); - G4double* GetQE(); - G4float* GetQEWavelength(); - G4float GetmaxQE(); - float HitTimeSmearing(float, float); - float SaturFactor(float, float); //TD 2019.07.16 - G4double GetPMTGlassThickness(); - G4float GetDarkRate(); - G4float GetDarkRateConversionFactor(); -protected: - G4float* GetCollectionEfficiencyArray(); -}; - -// ToDo: make object of classes instead of infinite cp-pastes -class PMT5inchR12199_02 : public WCSimPMTObject -{ - -public: - - PMT5inchR12199_02(); - ~PMT5inchR12199_02(); - -public: - G4String GetPMTName() ; - G4double GetExposeHeight(); - G4double GetRadius(); - G4float* Getqpe(); - G4double* GetQE(); - G4float* GetQEWavelength(); - G4float GetmaxQE(); - float HitTimeSmearing(float, float); - float SaturFactor(float, float); //TD 2019.07.16 - G4double GetPMTGlassThickness(); - G4float GetDarkRate(); - G4float GetDarkRateConversionFactor(); -protected: - G4float* GetCollectionEfficiencyArray(); -}; - - -#endif diff --git a/libWCSIM/include/WCSimPhysicsListFactory.hh b/libWCSIM/include/WCSimPhysicsListFactory.hh deleted file mode 100644 index bce7397..0000000 --- a/libWCSIM/include/WCSimPhysicsListFactory.hh +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef WCSimPhysicsListFactory_h -#define WCSimPhysicsListFactory_h 1 - -#include "globals.hh" -#include "G4VModularPhysicsList.hh" -#include "G4PhysListFactory.hh" -#include "G4UnitsTable.hh" -#include "G4OpticalPhysics.hh" - -#include "WCSimPhysicsListFactoryMessenger.hh" -#include "WCSimRootOptions.hh" - -//class WCSimPhysicsList; - -class WCSimPhysicsListFactory : public G4VModularPhysicsList -{ - public: - WCSimPhysicsListFactory(); - ~WCSimPhysicsListFactory(); - - void SetList(G4String newvalue); // called by messenger - void SetnCaptModel(G4String newvalue); // called by messenger - void InitializeList(); - - //G4String GetPhysicsListName() {return PhysicsListName;} - - void ConstructParticle(); - void ConstructProcess(); - void SetCuts(); - - void SaveOptionsToOutput(WCSimRootOptions * wcopt); - - private: - - G4String PhysicsListName; - G4String ValidListsString; - - G4String nCaptModelChoice; - - WCSimPhysicsListFactoryMessenger* PhysicsMessenger; - G4PhysListFactory* factory; - -}; - -#endif diff --git a/libWCSIM/include/WCSimPhysicsListFactoryMessenger.hh b/libWCSIM/include/WCSimPhysicsListFactoryMessenger.hh deleted file mode 100644 index 83de751..0000000 --- a/libWCSIM/include/WCSimPhysicsListFactoryMessenger.hh +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef WCSimPhysicsListFactoryMessenger_h -#define WCSimPhysicsListFactoryMessenger_h 1 - -#include "globals.hh" -#include "G4UImessenger.hh" - -class WCSimPhysicsListFactory; -class G4UIdirectory; -class G4UIcommand; -class G4UIcmdWithAString; - -class WCSimPhysicsListFactoryMessenger: public G4UImessenger -{ -public: - WCSimPhysicsListFactoryMessenger(WCSimPhysicsListFactory*, G4String); - ~WCSimPhysicsListFactoryMessenger(); - - void SetNewValue(G4UIcommand* command, G4String newValue); - -private: - WCSimPhysicsListFactory* thisWCSimPhysicsListFactory; - G4String ValidListsString; - - G4UIdirectory* WCSimDir; - G4UIcmdWithAString* physListCmd; - G4UIcmdWithAString* nCaptureModelCmd; - -}; - -#endif diff --git a/libWCSIM/include/WCSimPmtInfo.hh b/libWCSIM/include/WCSimPmtInfo.hh deleted file mode 100644 index 7347094..0000000 --- a/libWCSIM/include/WCSimPmtInfo.hh +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef WCSim_PmtInfo -#define WCSim_PmtInfo - -///////////////////////////////////////////////////////////////// -// -// Save the Pmt info -// -///////////////////////////////////////////////////////////////// - -#include "TObject.h" - -class TDirectory; - -class WCSimPmtInfo : public TObject { -private: - Int_t cylocation; - Double_t trans_x; - Double_t trans_y; - Double_t trans_z; - Double_t orien_x; - Double_t orien_y; - Double_t orien_z; - Int_t tube; - Int_t mPMT; - Int_t mPMT_pmt; - -public: - WCSimPmtInfo(); - - WCSimPmtInfo(Int_t i, Double_t t1, Double_t t2, Double_t t3, Double_t o1, Double_t o2, Double_t o3, Int_t tubeid); - - WCSimPmtInfo(Int_t i, Double_t t1, Double_t t2, Double_t t3, Double_t o1, Double_t o2, Double_t o3, Int_t tubeid, Int_t mPMTid, Int_t mPMT_pmtid); - - virtual ~WCSimPmtInfo(); - - Int_t Get_cylocation(){return cylocation;} - Double_t Get_transx() {return trans_x;} - Double_t Get_transy() {return trans_y;} - Double_t Get_transz() {return trans_z;} - Double_t Get_orienx() {return orien_x;} - Double_t Get_orieny() {return orien_y;} - Double_t Get_orienz() {return orien_z;} - Int_t Get_tubeid(){return tube;} - Int_t Get_mPMTid(){return mPMT;} - Int_t Get_mPMT_pmtid(){return mPMT_pmt;} - - ClassDef(WCSimPmtInfo,2); -}; - -#endif diff --git a/libWCSIM/include/WCSimPrimaryGeneratorAction.hh b/libWCSIM/include/WCSimPrimaryGeneratorAction.hh deleted file mode 100644 index 8f49b1b..0000000 --- a/libWCSIM/include/WCSimPrimaryGeneratorAction.hh +++ /dev/null @@ -1,167 +0,0 @@ -#ifndef WCSimPrimaryGeneratorAction_h -#define WCSimPrimaryGeneratorAction_h - -#include "G4VUserPrimaryGeneratorAction.hh" -#include "G4ThreeVector.hh" -#include "globals.hh" - -#include "WCSimEnumerations.hh" - -#include - -#include "WCSimRootOptions.hh" -#include "TFile.h" -#include "TTree.h" -#include "TNRooTrackerVtx.hh" -#include "TClonesArray.h" - -class WCSimDetectorConstruction; -class G4ParticleGun; -class G4GeneralParticleSource; -class G4Event; -class WCSimPrimaryGeneratorMessenger; - -class WCSimPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction -{ - public: - WCSimPrimaryGeneratorAction(WCSimDetectorConstruction*); - ~WCSimPrimaryGeneratorAction(); - - public: - void GeneratePrimaries(G4Event* anEvent); - void SetupBranchAddresses(NRooTrackerVtx* nrootrackervtx); - void OpenRootrackerFile(G4String fileName); - void CopyRootrackerVertex(NRooTrackerVtx* nrootrackervtx); - bool GetIsRooTrackerFileFinished(){return (fEvNum==fNEntries);} - - // Gun, laser & gps setting calls these functions to fill jhfNtuple and Root tree - void SetVtx(G4ThreeVector i) { vtx = i; }; - void SetBeamEnergy(G4double i) { beamenergy = i; }; - void SetBeamDir(G4ThreeVector i) { beamdir = i; }; - void SetBeamPDG(G4int i) { beampdg = i; }; - - // These go with jhfNtuple - G4int GetVecRecNumber(){return vecRecNumber;} - //G4int GetMode() {return mode;}; - InteractionType_t GetMode() {return mode;}; - G4int GetVtxVol() {return vtxvol;}; - G4ThreeVector GetVtx() {return vtx;} - G4int GetNpar() {return npar;}; - G4int GetBeamPDG() {return beampdg;}; - G4double GetBeamEnergy() {return beamenergy;}; - G4ThreeVector GetBeamDir() {return beamdir;}; - G4int GetTargetPDG() {return targetpdg;}; - G4double GetTargetEnergy() {return targetenergy;}; - G4ThreeVector GetTargetDir() {return targetdir;}; - - // older ... - G4double GetNuEnergy() {return nuEnergy;}; - G4double GetEnergy() {return energy;}; - G4double GetXPos() {return xPos;}; - G4double GetYPos() {return yPos;}; - G4double GetZPos() {return zPos;}; - G4double GetXDir() {return xDir;}; - G4double GetYDir() {return yDir;}; - G4double GetZDir() {return zDir;}; - - G4String GetGeneratorTypeString(); - - void SaveOptionsToOutput(WCSimRootOptions * wcopt); - - private: - WCSimDetectorConstruction* myDetector; - G4ParticleGun* particleGun; - G4GeneralParticleSource* MyGPS; //T. Akiri: GPS to run Laser - WCSimPrimaryGeneratorMessenger* messenger; - - // Variables set by the messenger - G4bool useMulineEvt; - G4bool useRootrackerEvt; - G4bool useGunEvt; - G4bool useLaserEvt; //T. Akiri: Laser flag - G4bool useGPSEvt; - std::fstream inputFile; - G4String vectorFileName; - G4bool GenerateVertexInRock; - G4bool usePoissonPMT; - G4double poissonPMTMean; - - // These go with jhfNtuple - //G4int mode; - InteractionType_t mode; - G4int vtxvol; - G4ThreeVector vtx; - G4int npar; - G4int beampdg, targetpdg; - G4ThreeVector beamdir, targetdir; - G4double beamenergy, targetenergy; - G4int vecRecNumber; - - G4double nuEnergy; - G4double energy; - G4double xPos, yPos, zPos; - G4double xDir, yDir, zDir; - - G4int _counterRock; - G4int _counterCublic; - - // Counters to read Rootracker event file - int fEvNum; - int fNEntries; - TFile* fInputRootrackerFile; - - // Pointers to Rootracker vertex objects - // Temporary vertex that is saved if desired, according to WCSimIO macro option - TTree* fRooTrackerTree; - TTree* fSettingsTree; - NRooTrackerVtx* fTmpRootrackerVtx; - float fNuPrismRadius; - float fNuBeamAng; - float fNuPlanePos[3]; - - public: - - inline TFile* GetInputRootrackerFile(){ return fInputRootrackerFile;} - - inline void SetMulineEvtGenerator(G4bool choice) { useMulineEvt = choice; } - inline G4bool IsUsingMulineEvtGenerator() { return useMulineEvt; } - - inline void SetRootrackerEvtGenerator(G4bool choice) { useRootrackerEvt = choice; } - inline G4bool IsUsingRootrackerEvtGenerator() { return useRootrackerEvt; } - - inline void SetGunEvtGenerator(G4bool choice) { useGunEvt = choice; } - inline G4bool IsUsingGunEvtGenerator() { return useGunEvt; } - - //T. Akiri: Addition of function for the laser flag - inline void SetLaserEvtGenerator(G4bool choice) { useLaserEvt = choice; } - inline G4bool IsUsingLaserEvtGenerator() { return useLaserEvt; } - - inline void SetGPSEvtGenerator(G4bool choice) { useGPSEvt = choice; } - inline G4bool IsUsingGPSEvtGenerator() { return useGPSEvt; } - - inline void OpenVectorFile(G4String fileName) - { - if ( inputFile.is_open() ) - inputFile.close(); - - vectorFileName = fileName; - inputFile.open(vectorFileName, std::fstream::in); - if ( !inputFile.is_open() ) { - G4cout << "Vector file " << vectorFileName << " not found" << G4endl; - exit(-1); - } - - } - inline G4bool IsGeneratingVertexInRock() { return GenerateVertexInRock; } - inline void SetGenerateVertexInRock(G4bool choice) { GenerateVertexInRock = choice; } - - inline void SetPoissonPMT(G4bool choice) { usePoissonPMT = choice; } - inline G4bool IsUsingPoissonPMT(){ return usePoissonPMT; } - - inline void SetPoissonPMTMean(G4double val){ poissonPMTMean = val; } - inline G4double GetPoissonPMTMean(){ return poissonPMTMean; } -}; - -#endif - - diff --git a/libWCSIM/include/WCSimPrimaryGeneratorMessenger.hh b/libWCSIM/include/WCSimPrimaryGeneratorMessenger.hh deleted file mode 100644 index 1c38bba..0000000 --- a/libWCSIM/include/WCSimPrimaryGeneratorMessenger.hh +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef WCSimPrimaryGeneratorMessenger_h -#define WCSimPrimaryGeneratorMessenger_h 1 - -class WCSimPrimaryGeneratorAction; -class G4UIdirectory; -class G4UIcmdWithAString; -class G4UIcmdWithABool; -class G4UIcmdWithADouble; - -#include "G4UImessenger.hh" -#include "globals.hh" - -class WCSimPrimaryGeneratorMessenger: public G4UImessenger -{ - public: - WCSimPrimaryGeneratorMessenger(WCSimPrimaryGeneratorAction* mpga); - ~WCSimPrimaryGeneratorMessenger(); - - public: - void SetNewValue(G4UIcommand* command, G4String newValues); - G4String GetCurrentValue(G4UIcommand* command); - - private: - WCSimPrimaryGeneratorAction* myAction; - // Boolean to determine whether the neutrino generator has been set yet - // Need to know whether we expect to open a ROOT file or a text file - bool genSet; - - private: //commands - G4UIdirectory* mydetDirectory; - G4UIcmdWithAString* genCmd; - G4UIcmdWithAString* fileNameCmd; - G4UIcmdWithABool* poisCmd; - G4UIcmdWithADouble* poisMeanCmd; - -}; - -#endif - - diff --git a/libWCSIM/include/WCSimRandomMessenger.hh b/libWCSIM/include/WCSimRandomMessenger.hh deleted file mode 100644 index 804c0a2..0000000 --- a/libWCSIM/include/WCSimRandomMessenger.hh +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef WCSimRandomMessenger_h -#define WCSimRandomMessenger_h 1 - -#include "G4UImessenger.hh" -class WCSimRandomParameters; -class G4UIdirectory; -class G4UIcommand; -class G4UIcmdWithAString; -class G4UIcmdWithAnInteger; - -class WCSimRandomMessenger: public G4UImessenger -{ -public: - WCSimRandomMessenger(WCSimRandomParameters*); - ~WCSimRandomMessenger(); - - void SetNewValue(G4UIcommand* command, G4String newValue); - -private: - - WCSimRandomParameters* WCSimRandomParams; - - G4UIdirectory* WCSimDir; - G4UIcmdWithAString* Rangen; - G4UIcmdWithAnInteger* Ranseed; -}; - -#endif diff --git a/libWCSIM/include/WCSimRandomParameters.hh b/libWCSIM/include/WCSimRandomParameters.hh deleted file mode 100644 index 8d0ed62..0000000 --- a/libWCSIM/include/WCSimRandomParameters.hh +++ /dev/null @@ -1,76 +0,0 @@ -#ifndef WCSimRandomParameters_h -#define WCSimRandomParameters_h 1 -#include "WCSimRandomMessenger.hh" -#include "WCSimRootOptions.hh" -#include "CLHEP/Random/Random.h" -#include "CLHEP/Random/RanluxEngine.h" -#include "CLHEP/Random/JamesRandom.h" -#include "CLHEP/Random/RanecuEngine.h" - -class WCSimRandomParameters -{ - -public: - WCSimRandomParameters() - { - seed=31415; - generator=RANDOM_E_HEPJAMES; - RandomMessenger = new WCSimRandomMessenger(this); - } - ~WCSimRandomParameters() {delete RandomMessenger;} - - WCSimRandomGenerator_t GetGenerator() {return generator; } - void SetGenerator(WCSimRandomGenerator_t rng) - { - switch (rng) - { - case RANDOM_E_RANLUX: - { - printf("Setting the random number generator to RANLUX\n"); - CLHEP::RanluxEngine *newluxengine = new CLHEP::RanluxEngine(31415,4); // highest luxury level - CLHEP::HepRandom::setTheEngine(newluxengine); - } - break; - case RANDOM_E_RANECU: - { - printf("Setting the random number generator to RANECU\n"); - CLHEP::RanecuEngine *newecuengine = new CLHEP::RanecuEngine(); - CLHEP::HepRandom::setTheEngine(newecuengine); - } - break; - - case RANDOM_E_HEPJAMES: - { - printf("Setting the random number generator to HEPJAMES\n"); - CLHEP::HepJamesRandom *newjamesengine = new CLHEP::HepJamesRandom(); - CLHEP::HepRandom::setTheEngine(newjamesengine); - } - break; - default: - { - printf("Random number generator type not understood: %d\n",rng); - exit(0); - } - } - }; - int GetSeed() {return CLHEP::HepRandom::getTheSeed();} - void SetSeed(int iseed) - { - CLHEP::HepRandom::setTheSeed(iseed); - printf("Setting the Random Seed to: %d\n",iseed); - seed = iseed; - } - - void SaveOptionsToOutput(WCSimRootOptions * wcopt) - { - wcopt->SetRandomSeed(seed); - wcopt->SetRandomGenerator(generator); - } - -private: - WCSimRandomGenerator_t generator; - int seed; - WCSimRandomMessenger *RandomMessenger; -}; - -#endif diff --git a/libWCSIM/include/WCSimRootEvent.hh b/libWCSIM/include/WCSimRootEvent.hh deleted file mode 100644 index b7df904..0000000 --- a/libWCSIM/include/WCSimRootEvent.hh +++ /dev/null @@ -1,485 +0,0 @@ -#ifndef WCSim_RootEvent -#define WCSim_RootEvent - -////////////////////////////////////////////////////////////////////////// -// // -// WCSim_RootEvent // -// // -////////////////////////////////////////////////////////////////////////// - -#include "TObject.h" -#include "TClonesArray.h" -#include -#include -//#include -//#include "G4Transform3D.hh" - -// #include "WCSimDetectorConstruction.hh" -#include "WCSimEnumerations.hh" - -class TDirectory; - - -class WCSimRootTrack : public TObject { - -private: - - // See jhfNtuple.h for the meaning of these data members: - Int_t fIpnu; - Int_t fFlag; - Float_t fM; - Float_t fP; - Float_t fE; - Int_t fStartvol; - Int_t fStopvol; - Float_t fDir[3]; - Float_t fPdir[3]; - Float_t fStop[3]; - Float_t fStart[3]; - Int_t fParenttype; - Float_t fTime; - Int_t fId; - -public: - WCSimRootTrack() {} - WCSimRootTrack(Int_t ipnu, - Int_t flag, - Float_t m, - Float_t p, - Float_t E, - Int_t startvol, - Int_t stopvol, - Float_t dir[3], - Float_t pdir[3], - Float_t stop[3], - Float_t start[3], - Int_t parenttype, - Float_t time,Int_t id); - - virtual ~WCSimRootTrack() { } - - Int_t GetIpnu() const { return fIpnu;} - Int_t GetFlag() const { return fFlag;} - Float_t GetM() const { return fM;} - Float_t GetP() const { return fP;} - Float_t GetE() const { return fE;} - Int_t GetStartvol() { return fStartvol;} - Int_t GetStopvol() { return fStopvol;} - Float_t GetDir(Int_t i=0) {return (i<3) ? fDir[i] : 0;} - Float_t GetPdir(Int_t i=0) {return (i<3) ? fPdir[i] : 0;} - Float_t GetStop(Int_t i=0) {return (i<3) ? fStop[i] : 0;} - Float_t GetStart(Int_t i=0) {return (i<3) ? fStart[i] : 0;} - Int_t GetParenttype(/*Int_t i=0*/) {return fParenttype;} - Float_t GetTime() { return fTime;} - Int_t GetId(){return fId;} - - ClassDef(WCSimRootTrack,1) -}; - - -////////////////////////////////////////////////////////////////////////// - - -class WCSimRootCherenkovHit : public TObject { - -private: - Int_t fTubeID; - Int_t fmPMTID; - Int_t fmPMT_PMTID; - Int_t fTotalPe[2]; - -public: - WCSimRootCherenkovHit() {} - WCSimRootCherenkovHit(Int_t tubeID, - Int_t totalPe[2]); - - WCSimRootCherenkovHit(Int_t tubeID, - Int_t mPMTID, - Int_t mPMT_PMTID, - Int_t totalPe[2]); - - virtual ~WCSimRootCherenkovHit() { } - - Int_t GetTubeID() const { return fTubeID;} - Int_t GetmPMTID() const { return fmPMTID;} - Int_t GetmPMT_PMTID() const { return fmPMT_PMTID;} - Int_t GetTotalPe(int i) const { return (i<2) ? fTotalPe[i]: 0;} - - ClassDef(WCSimRootCherenkovHit,2) -}; - -class WCSimRootCherenkovHitTime : public TObject { - -private: - // See jhfNtuple.h for the meaning of these data members: - Float_t fTruetime; - Int_t fPrimaryParentID; - -public: - WCSimRootCherenkovHitTime() {} - WCSimRootCherenkovHitTime(Float_t truetime, - Int_t primaryParentID); - virtual ~WCSimRootCherenkovHitTime() { } - - Float_t GetTruetime() { return fTruetime;} - Int_t GetParentID() { return fPrimaryParentID;} - - ClassDef(WCSimRootCherenkovHitTime,1) -}; - - -////////////////////////////////////////////////////////////////////////// - - -class WCSimRootCherenkovDigiHit : public TObject { - -private: - // See jhfNtuple.h for the meaning of these data members: - Float_t fQ; - Float_t fT; - Int_t fTubeId; - Int_t fmPMTId; - Int_t fmPMT_PMTId; - std::vector fPhotonIds; - -public: - WCSimRootCherenkovDigiHit() {} - WCSimRootCherenkovDigiHit(Float_t q, Float_t t, Int_t tubeid, std::vector photon_ids); - WCSimRootCherenkovDigiHit(Float_t q, Float_t t, Int_t tubeid, Int_t mpmtid, Int_t mpmt_pmtid, std::vector photon_ids); - - virtual ~WCSimRootCherenkovDigiHit() { } - - Float_t GetQ() const { return fQ;} - Float_t GetT() const { return fT;} - Int_t GetTubeId() const { return fTubeId;} - Int_t GetmPMTId() const { return fmPMTId;} - Int_t GetmPMT_PMTId() const { return fmPMT_PMTId;} - std::vector GetPhotonIds() const { return fPhotonIds; } - - ClassDef(WCSimRootCherenkovDigiHit,3) -}; - - -////////////////////////////////////////////////////////////////////////// - -class WCSimRootEventHeader { - -private: - Int_t fEvtNum; - Int_t fRun; - Int_t fDate; - Int_t fSubEvtNumber; - -public: - WCSimRootEventHeader() : fEvtNum(0), fRun(0), fDate(0), fSubEvtNumber(1) { } - virtual ~WCSimRootEventHeader() { } - void Set(Int_t i, Int_t r, Int_t d, Int_t s=1) { fEvtNum = i; fRun = r; fDate = d; fSubEvtNumber = s;} - void SetDate(Int_t d) { fDate=d; } - Int_t GetEvtNum() const { return fEvtNum; } - Int_t GetRun() const { return fRun; } - Int_t GetDate() const { return fDate; } - Int_t GetSubEvtNumber() const { return fSubEvtNumber;} - - - ClassDef(WCSimRootEventHeader,2) //WCSimRootEvent Header -}; - -////////////////////////////////////////////////////////////////////////// - -class WCSimRootPi0 : public TObject { - // this is a class used specifically for Pi0 events - -private: - Float_t fPi0Vtx[3]; - Int_t fGammaID[2]; - Float_t fGammaE[2]; - Float_t fGammaVtx[2][3]; - -public: - WCSimRootPi0() {} - - virtual ~WCSimRootPi0() {} - - void Set(Float_t pi0Vtx[3], - Int_t gammaID[2], - Float_t gammaE[2], - Float_t gammaVtx[2][3]); - - Float_t GetPi0Vtx(int i) const { return (i<3) ? fPi0Vtx[i]: 0;} - Int_t GetGammaID(int i) const { return (i<2) ? fGammaID[i]: 0;} - Float_t GetGammaE(int i) const { return (i<2) ? fGammaE[i]: 0;} - Float_t GetGammaVtx(int i, int j) const { return fGammaVtx[i][j];} - -ClassDef(WCSimRootPi0,1) -}; - -////////////////////////////////////////////////////////////////////////// - -class WCSimRootCaptureGamma : public TObject { - -private: - Int_t fID; - Float_t fEnergy; - Float_t fDir[3]; - -public: - WCSimRootCaptureGamma() {} - WCSimRootCaptureGamma(Int_t id, - Float_t energy, - Float_t dir[3] - ); - - virtual ~WCSimRootCaptureGamma() {} - - Int_t GetID() const { return fID;} - Float_t GetE() const { return fEnergy;} - Float_t GetDir(int i) const { return (i<3) ? fDir[i]: 0;} - -ClassDef(WCSimRootCaptureGamma,1) -}; - -////////////////////////////////////////////////////////////////////////// - -class WCSimRootCapture : public TObject { - // this is a class used specifically for neutron capture events - -private: - Int_t fCaptureParent; - Float_t fCaptureVtx[3]; - Int_t fNGamma; - Float_t fTotalGammaE; - Float_t fCaptureT; - Int_t fCaptureNucleus; - TClonesArray * fGammas; - bool IsZombie; - -public: - WCSimRootCapture() { - fGammas = 0; - IsZombie = true; - } - WCSimRootCapture(Int_t captureParent); - - virtual ~WCSimRootCapture(); - - void SetInfo(Float_t captureVtx[3], - Float_t captureT, - Int_t captureNucleus - ); - - void AddGamma(Int_t gammaID, - Float_t gammaE, - Float_t gammaDir[3] - ); - - Int_t GetCaptureParent() const { return fCaptureParent;} - Float_t GetCaptureVtx(int i) const { return (i<3) ? fCaptureVtx[i]: 0;} - Int_t GetNGamma() const { return fNGamma;} - Float_t GetTotalGammaE() const { return fTotalGammaE;} - Float_t GetCaptureT() const { return fCaptureT;} - Int_t GetCaptureNucleus() const { return fCaptureNucleus;} - TClonesArray *GetGammas() const { return fGammas;} - -ClassDef(WCSimRootCapture,1) -}; - -////////////////////////////////////////////////////////////////////////// - -class WCSimRootTrigger : public TObject { - -private: - WCSimRootEventHeader fEvtHdr; // The header - // See jhfNtuple.h for the meaning of these data members: - Int_t fMode; - Int_t fVtxvol; - Float_t fVtx[3]; - Int_t fVecRecNumber; // "info event" number in inputvectorfile - Int_t fJmu; - Int_t fJp; - - WCSimRootPi0 fPi0; // Pi0 info (default = not used) - - TClonesArray *fCaptures; // Neutron capture info (default = not used) - Int_t fNcaptures; // Number of tracks in the array - - Int_t fNpar; // Number of particles - Int_t fNtrack; // Number of tracks in the array - TClonesArray *fTracks; //-> Array of WCSimRootTracks - - Int_t fNumTubesHit; // Number of tubes hit - Int_t fNcherenkovhits; // Number of hits in the array - TClonesArray *fCherenkovHits; //-> Array of WCSimRootCherenkovHits - - Int_t fCherenkovHitCounter; - Int_t fNcherenkovhittimes; // Number of hits in the array - TClonesArray *fCherenkovHitTimes; //-> Array of WCSimRootCherenkovHits - - Int_t fNumDigitizedTubes; // Number of digitized tubes - Int_t fNcherenkovdigihits; // Number of digihits in the array - Float_t fSumQ; - TClonesArray *fCherenkovDigiHits; //-> Array of WCSimRootCherenkovDigiHit's - - TriggerType_t fTriggerType; // Trigger algorithm that created this trigger - std::vector fTriggerInfo; // Information about how it passed the trigger (e.g. how many hits in the NDigits window) - - bool IsZombie; - -public: - WCSimRootTrigger(); - WCSimRootTrigger(int, int); - virtual ~WCSimRootTrigger(); - - void Initialize(); - - void Clear(Option_t *option =""); - static void Reset(Option_t *option =""); - - void SetHeader(Int_t i, Int_t run, Int_t date,Int_t subevtn=1); - void SetTriggerInfo(TriggerType_t trigger_type, std::vector trigger_info); - bool IsASubEvent() { return (fEvtHdr.GetSubEvtNumber()>=1); } - void SetMode(Int_t i) {fMode = i;} - void SetVtxvol(Int_t i) {fVtxvol = i;} - void SetVtx(Int_t i, Float_t f) {fVtx[i]= ( (i<3) ? f : 0);} - void SetVecRecNumber(Int_t i) {fVecRecNumber = i;} - void SetJmu(Int_t i) {fJmu = i;} - void SetJp(Int_t i) {fJp = i;} - void SetNpar(Int_t i) {fNpar = i;} - void SetNumTubesHit(Int_t i) {fNumTubesHit = i;} - void SetSumQ(Float_t x){fSumQ = x;} - void SetNumDigitizedTubes(Int_t i) {fNumDigitizedTubes = i;} - void SetPi0Info(Float_t pi0Vtx[3], - Int_t gammaID[2], - Float_t gammaE[2], - Float_t gammaVtx[2][3]); - void SetCaptureParticle(Int_t parent, - Int_t ipnu, - Float_t time, - Float_t vtx[3], - Float_t dir[3], - Float_t energy, - Int_t id); - - - WCSimRootEventHeader *GetHeader() {return &fEvtHdr; } - WCSimRootPi0 *GetPi0Info() {return &fPi0; } - Int_t GetMode() const {return fMode;} - Int_t GetVtxvol() const {return fVtxvol;} - Float_t GetVtx(Int_t i=0) {return (i<3) ? fVtx[i]: 0;} - Int_t GetVecRecNumber() const {return fVecRecNumber;} - Int_t GetJmu() const {return fJmu;} - Int_t GetJp() const {return fJp;} - Int_t GetNpar() const {return fNpar;} - Int_t GetNumTubesHit() const {return fNumTubesHit;} - Int_t GetNumDigiTubesHit() const {return fNumDigitizedTubes;} - Int_t GetNtrack() const {return fNtrack; } - Int_t GetNcaptures() const {return fNcaptures; } - Int_t GetNcherenkovhits() const {return fNcherenkovhits; } - Int_t GetNcherenkovhittimes() const {return fNcherenkovhittimes;} - Int_t GetNcherenkovdigihits() const {return fNcherenkovdigihits;} - Float_t GetSumQ() const { return fSumQ;} - TriggerType_t GetTriggerType() const { return fTriggerType;} - std::vector GetTriggerInfo() const { return fTriggerInfo;} - - WCSimRootTrack *AddTrack(Int_t ipnu, - Int_t flag, - Float_t m, - Float_t p, - Float_t E, - Int_t startvol, - Int_t stopvol, - Float_t dir[3], - Float_t pdir[3], - Float_t stop[3], - Float_t start[3], - Int_t parenttype, - Float_t time, - Int_t id); - - TClonesArray *GetTracks() const {return fTracks;} - - WCSimRootCherenkovHit *AddCherenkovHit(Int_t tubeID, - Int_t mPMTID, - Int_t mPMT_PMTID, - std::vector truetime, - std::vector primParID); - TClonesArray *GetCherenkovHits() const {return fCherenkovHits;} - TClonesArray *GetCherenkovHitTimes() const {return fCherenkovHitTimes;} - - WCSimRootCherenkovDigiHit *AddCherenkovDigiHit(Float_t q, - Float_t t, - Int_t tubeid, - Int_t mpmtid, - Int_t mpmt_pmtid, - std::vector photon_ids); -// WCSimRootCherenkovDigiHit *AddCherenkovDigiHit(Float_t q, -// Float_t t, -// Int_t tubeid, - // Float_t sumq); - - TClonesArray *GetCherenkovDigiHits() const {return fCherenkovDigiHits;} - - TClonesArray *GetCaptures() const {return fCaptures;} - - -ClassDef(WCSimRootTrigger,2) //WCSimRootEvent structure -}; - - -class WCSimRootEvent : public TObject { -public: - WCSimRootEvent(); - virtual ~WCSimRootEvent(); - - void Clear(Option_t *option =""); - static void Reset(Option_t *option =""); - Int_t GetCurrentIndex() { return Current;} - - // WCSimRootTrigger* GetTrigger(int number) { return fEventList[number];} - WCSimRootTrigger* GetTrigger(int number) { return (WCSimRootTrigger*) (*fEventList)[number];} - - Int_t GetNumberOfEvents() const { return fEventList->GetEntriesFast();} - Int_t GetNumberOfSubEvents() const { return (fEventList->GetEntriesFast()-1);} - bool HasSubEvents() { return (fEventList->GetEntriesFast() > 1); } - - //Int_t GetNumberOfEvents() const { return fEventList.size();} - //Int_t GetNumberOfSubEvents() const { return (fEventList.size()-1);} - - //void AddSubEvent() { fEventList.push_back(new WCSimRootTrigger()); } - void AddSubEvent() { - // be sure not to call the default constructor BUT the actual one - WCSimRootTrigger* tmp = dynamic_cast( (*fEventList)[0] ); - int num = tmp->GetHeader()->GetEvtNum(); - ++Current; - if ( Current > 9 ) fEventList->Expand(150); - fEventList->AddAt(new WCSimRootTrigger(num,Current),Current); - } - - /* void ReInitialize() { // need to remove all subevents at the end, or they just get added anyway... - std::vector::iterator iter = fEventList.begin(); - ++iter; // do not delete the first event --> regular beaviour for this program ? - */ - void Initialize(); - - void ReInitialize() { // need to remove all subevents at the end, or they just get added anyway... - for ( int i = fEventList->GetLast() ; i>=1 ; i--) { - // G4cout << "removing element # " << i << "..."; - WCSimRootTrigger* tmp = - dynamic_cast(fEventList->RemoveAt(i)); - delete tmp; - //G4cout <<"done !\n"; - } - Current = 0; - WCSimRootTrigger* tmp = dynamic_cast( (*fEventList)[0]); - tmp->Clear(); - } - -private: - //std::vector fEventList; - TObjArray* fEventList; - Int_t Current; //! means transient, not writable to file - ClassDef(WCSimRootEvent,2) - -}; - - -#endif diff --git a/libWCSIM/include/WCSimRootGeom.hh b/libWCSIM/include/WCSimRootGeom.hh deleted file mode 100644 index 3a9902a..0000000 --- a/libWCSIM/include/WCSimRootGeom.hh +++ /dev/null @@ -1,132 +0,0 @@ -#ifndef WCSim_RootGeom -#define WCSim_RootGeom - -////////////////////////////////////////////////////////////////////////// -// -// WCSim_RootGeom -// -// This class contains information needed to be passed to reconstruction -// routines. It's just simple right now-- only the bare-bones -// WC info -////////////////////////////////////////////////////////////////////////// - -#include "TObject.h" -#include "TClonesArray.h" - -class TDirectory; - -////////////////////////////////////////////////////////////////////////// - -class WCSimRootPMT : public TObject { - -private: - Int_t fTubeNo; - Int_t fmPMTNo; - Int_t fmPMT_PMTNo; - Int_t fCylLoc; // endcap1, wall, endcap2 - Float_t fOrientation[3]; - Float_t fPosition[3]; - -public: - WCSimRootPMT(); - WCSimRootPMT(Int_t tubeNo, Int_t cylLoc, Float_t orientation[3], Float_t position[3]); - WCSimRootPMT(Int_t tubeNo, Int_t mPMTNo, Int_t mPMT_PMTno, Int_t cylLoc, Float_t orientation[3], Float_t position[3]); - virtual ~WCSimRootPMT(); - - void SetTubeNo(Int_t i) {fTubeNo=i;} - void SetmPMTNo(Int_t i) {fmPMTNo=i;} - void SetmPMT_PMTNo(Int_t i) {fmPMT_PMTNo=i;} - void SetCylLoc(Int_t i) {fCylLoc=i;} - void SetOrientation(Int_t i, Float_t f) {fOrientation[i]= ( (i<3) ? f : 0);} - void SetPosition(Int_t i, Float_t f) {fPosition[i]= ( (i<3) ? f : 0);} - - Int_t GetTubeNo() const {return fTubeNo;} - Int_t GetmPMTNo() const {return fmPMTNo;} - Int_t GetmPMT_PMTNo() const {return fmPMT_PMTNo;} - Int_t GetCylLoc() const {return fCylLoc;} - Float_t GetOrientation(Int_t i=0) {return (i<3) ? fOrientation[i] : 0;} - Float_t GetPosition(Int_t i=0) {return (i<3) ? fPosition[i] : 0;} - - ClassDef(WCSimRootPMT,2) //WCSimPMT structure -}; - - -////////////////////////////////////////////////////////////////////////// - -class WCSimRootGeom : public TObject { - -private: - - static const Int_t maxNumPMT = 1000000; - //B.Qstatic const Int_t maxNumPMT = 40000; - Float_t fWCCylRadius; // Radius of WC tank - Float_t fWCCylLength; // Length of WC tank - - Int_t fgeo_type; // mailbox or cylinder? - - Float_t fWCPMTRadius; // Radius of PMT - Float_t fWCPMTRadius2; // Radius of PMT, hybrid case - Int_t fWCNumPMT; // Number of PMTs - Int_t fWCNumPMT2; // Number of PMTs, hybrid case - Float_t fWCOffset[3]; // Offset of barrel center in global coords - - Int_t fOrientation; //Orientation o detector, 0 is 2km horizontal, 1 is Upright - - // Could make a TClonesArray of PMTs but let's keep it simple - // since the arrays just won't be that large - //WCSimRootPMT fPMTArray[maxNumPMT]; // Array of PMTs - TClonesArray *fPMTArray; - TClonesArray *fPMTArray2; - -public: - - WCSimRootGeom(); - virtual ~WCSimRootGeom(); - - // Sets and gets - - void SetWCCylRadius(Float_t f) {fWCCylRadius=f;} - void SetWCCylLength(Float_t f) {fWCCylLength=f;} - - void SetGeo_Type(Int_t f){fgeo_type = f;} - - void SetWCNumPMT(Int_t i,bool hybridsecondtype=false){ - if(hybridsecondtype) fWCNumPMT2 = i; - else fWCNumPMT= i; - } - void SetWCPMTRadius(Float_t f,int hybridsecondtype=false) {(hybridsecondtype?fWCPMTRadius2=f:fWCPMTRadius=f);} - void SetWCOffset(Float_t x, Float_t y, Float_t z) - {fWCOffset[0]=x; fWCOffset[1]=y; fWCOffset[2] = z;} - - void SetPMT(Int_t i, Int_t tubeno, Int_t cyl_loc, Float_t rot[3], Float_t pos[3], bool expand=true, bool hybridsecondtype=false); - void SetPMT(Int_t i, Int_t tubeno, Int_t mPMTNo, Int_t mPMT_PMTno, Int_t cyl_loc, Float_t rot[3], Float_t pos[3], bool expand=true, bool hybridsecondtype=false); - void SetOrientation(Int_t o) {fOrientation = o;} - - Float_t GetWCCylRadius() const {return fWCCylRadius;} - Float_t GetWCCylLength() const {return fWCCylLength;} - - Int_t GetGeo_Type() const {return fgeo_type;} - - - Int_t GetWCNumPMT(bool hybridsecondtype=false){ - if(hybridsecondtype) return fWCNumPMT2; - else return fWCNumPMT; - } - Float_t GetWCPMTRadius(bool hybridsecondtype=false) const { - if(hybridsecondtype) return fWCPMTRadius2; - else return fWCPMTRadius; - } - Float_t GetWCOffset(Int_t i) const {return (i<3) ? fWCOffset[i] : 0.;} - - Int_t GetOrientation() { return fOrientation; } - //WCSimRootPMT GetPMT(Int_t i){return *(new WCSimRootPMT());} - WCSimRootPMT GetPMT(Int_t i,bool hybridsecondtype=false){ - if(hybridsecondtype) return *(WCSimRootPMT*)(*fPMTArray2)[i]; - else return *(WCSimRootPMT*)(*fPMTArray)[i]; - } - - ClassDef(WCSimRootGeom,1) //WCSimRootEvent structure -}; - - -#endif diff --git a/libWCSIM/include/WCSimRootLinkDef.hh b/libWCSIM/include/WCSimRootLinkDef.hh deleted file mode 100644 index 0e4f774..0000000 --- a/libWCSIM/include/WCSimRootLinkDef.hh +++ /dev/null @@ -1,29 +0,0 @@ -#ifdef __CINT__ - -#pragma link off all globals; -#pragma link off all classes; -#pragma link off all functions; - -#pragma link C++ enum TriggerType_t; -#pragma link C++ enum DigitizerType_t; - -#pragma link C++ class WCSimRootCherenkovDigiHit+; -#pragma link C++ class WCSimRootCherenkovHit+; -#pragma link C++ class WCSimRootCherenkovHitTime+; -#pragma link C++ class WCSimRootTrack+; -#pragma link C++ class WCSimRootEventHeader+; -#pragma link C++ class WCSimRootTrigger+; -#pragma link C++ class WCSimRootEvent+; -#pragma link C++ class WCSimRootPi0+; -#pragma link C++ class WCSimRootCapture+; -#pragma link C++ class WCSimRootCaptureGamma+; -#pragma link C++ class WCSimRootGeom+; -#pragma link C++ class WCSimRootPMT+; -#pragma link C++ class WCSimPmtInfo+; -#pragma link C++ class WCSimEnumerations+; -#pragma link C++ class WCSimRootOptions+; -#pragma link C++ class RooTrackerVtxBase+; -#pragma link C++ class JNuBeamFlux+; -#pragma link C++ class NRooTrackerVtx+; - -#endif diff --git a/libWCSIM/include/WCSimRootOptions.hh b/libWCSIM/include/WCSimRootOptions.hh deleted file mode 100644 index ff0e9e1..0000000 --- a/libWCSIM/include/WCSimRootOptions.hh +++ /dev/null @@ -1,219 +0,0 @@ -#ifndef WCSim_RootOptions -#define WCSim_RootOptions - -////////////////////////////////////////////////////////////////////////// -// -// WCSim_RootOptions -// -// This class contains run option information -////////////////////////////////////////////////////////////////////////// - -#include "TObject.h" -#include "TClonesArray.h" -#include -#include -#include - -#include "WCSimEnumerations.hh" - -class TDirectory; -using std::string; -using std::map; - -////////////////////////////////////////////////////////////////////////// - -struct WCSimDarkNoiseOptions { - double PMTDarkRate; // kHz - double ConvRate; // kHz - double DarkHigh; // ns - double DarkLow; // ns - double DarkWindow; // ns - int DarkMode; - WCSimDarkNoiseOptions() : - PMTDarkRate(-999), ConvRate(-999), DarkHigh(-999), DarkLow(-999), - DarkWindow(-999), DarkMode(-999) - {} -}; - -////////////////////////////////////////////////////////////////////////// - -class WCSimRootOptions : public TObject { - -public: - - WCSimRootOptions(); - virtual ~WCSimRootOptions(); - void Print(Option_t *option = "") const; - - //WCSimDetector* gets - void SetDetectorName(string iDetectorName) {DetectorName = iDetectorName;} - void SetGeomHasOD(bool iGeomHasOD) {GeomHasOD = iGeomHasOD;} - void SetSavePi0(bool iSavePi0) {SavePi0 = iSavePi0;} - void SetPMTQEMethod(bool iPMTQEMethod) {PMTQEMethod = iPMTQEMethod;} - void SetPMTCollEff(bool iPMTCollEff) {PMTCollEff = iPMTCollEff;} - //WCSimDetector* sets - string GetDetectorName() {return DetectorName;} - bool GetGeomHasOD() {return GeomHasOD;} - bool GetSavePi0() {return SavePi0;} - int GetPMTQEMethod() {return PMTQEMethod;} - int GetPMTCollEff() {return PMTCollEff;} - //WCSimWCAddDarkNoise sets - void SetPMTDarkRate(string tag, double iPMTDarkRate) {DarkOptMap[tag].PMTDarkRate = iPMTDarkRate;} - void SetConvRate(string tag, double iConvRate) {DarkOptMap[tag].ConvRate = iConvRate;} - void SetDarkHigh(string tag, double iDarkHigh) {DarkOptMap[tag].DarkHigh = iDarkHigh;} - void SetDarkLow(string tag, double iDarkLow) {DarkOptMap[tag].DarkLow = iDarkLow;} - void SetDarkWindow(string tag, double iDarkWindow) {DarkOptMap[tag].DarkWindow = iDarkWindow;} - void SetDarkMode(string tag, int iDarkMode) {DarkOptMap[tag].DarkMode = iDarkMode;} - //WCSimWCAddDarkNoise gets - bool IsValidDarkTag(string tag) const; - double GetPMTDarkRate(string tag); - double GetConvRate(string tag); - double GetDarkHigh(string tag); - double GetDarkLow(string tag); - double GetDarkWindow(string tag); - int GetDarkMode(string tag); - //WCSimWCDigitizer* sets - void SetDigitizerClassName(string iDigitizerClassName) {DigitizerClassName = iDigitizerClassName;} - void SetDigitizerDeadTime(int iDigitizerDeadTime) {DigitizerDeadTime = iDigitizerDeadTime;} - void SetDigitizerIntegrationWindow(int iDigitizerIntegrationWindow) {DigitizerIntegrationWindow = iDigitizerIntegrationWindow;} - void SetDigitizerTimingPrecision(double iDigitizerTimingPrecision) {DigitizerTimingPrecision = iDigitizerTimingPrecision;} - void SetDigitizerPEPrecision(double iDigitizerPEPrecision) {DigitizerPEPrecision = iDigitizerPEPrecision;} - //WCSimWCDigitizer* gets - string GetDigitizerClassName() {return DigitizerClassName;} - int GetDigitizerDeadTime() {return DigitizerDeadTime;} - int GetDigitizerIntegrationWindow() {return DigitizerIntegrationWindow;} - int GetDigitizerTimingPrecision() {return DigitizerTimingPrecision;} - int GetDigitizerPEPrecision() {return DigitizerPEPrecision;} - //WCSimWCTrigger* sets - void SetTriggerClassName(string itriggerClassName) {TriggerClassName = itriggerClassName;}; - void SetMultiDigitsPerTrigger(bool imultiDigitsPerTrigger) {MultiDigitsPerTrigger = imultiDigitsPerTrigger;}; - //ndigits - void SetNDigitsThreshold(int indigitsThreshold) {NDigitsThreshold = indigitsThreshold;}; - void SetNDigitsWindow(int indigitsWindow) {NDigitsWindow = indigitsWindow;}; - void SetNDigitsAdjustForNoise(bool indigitsAdjustForNoise) {NDigitsAdjustForNoise = indigitsAdjustForNoise;}; - void SetNDigitsPreTriggerWindow(int indigitsPreTriggerWindow) {NDigitsPreTriggerWindow = indigitsPreTriggerWindow;}; - void SetNDigitsPostTriggerWindow(int indigitsPostTriggerWindow) {NDigitsPostTriggerWindow = indigitsPostTriggerWindow;}; - //savefailures - void SetSaveFailuresMode(int isaveFailuresMode) {SaveFailuresMode = isaveFailuresMode;}; - void SetSaveFailuresTime(double isaveFailuresTime) {SaveFailuresTime = isaveFailuresTime;}; - void SetSaveFailuresPreTriggerWindow(int isaveFailuresPreTriggerWindow) {SaveFailuresPreTriggerWindow = isaveFailuresPreTriggerWindow;}; - void SetSaveFailuresPostTriggerWindow(int isaveFailuresPostTriggerWindow) {SaveFailuresPostTriggerWindow = isaveFailuresPostTriggerWindow;}; - //WCSimWCTrigger* gets - string GetTriggerClassName() {return TriggerClassName;} - bool GetMultiDigitsPerTrigger() {return MultiDigitsPerTrigger;} - //ndigits - int GetNDigitsThreshold() {return NDigitsThreshold;} - int GetNDigitsWindow() {return NDigitsWindow;} - bool GetNDigitsAdjustForNoise() {return NDigitsAdjustForNoise;} - int GetNDigitsPreTriggerWindow() {return NDigitsPreTriggerWindow;} - int GetNDigitsPostTriggerWindow() {return NDigitsPostTriggerWindow;} - //savefailures - int GetSaveFailuresMode() {return SaveFailuresMode;} - double GetSaveFailuresTime() {return SaveFailuresTime;} - int GetSaveFailuresPreTriggerWindow() {return SaveFailuresPreTriggerWindow;} - int GetSaveFailuresPostTriggerWindow() {return SaveFailuresPostTriggerWindow;} - //WCSimTuningParameters sets - void SetRayff(double iRayff) {Rayff = iRayff;} - void SetBsrff(double iBsrff) {Bsrff = iBsrff;} - void SetAbwff(double iAbwff) {Abwff = iAbwff;} - void SetRgcff(double iRgcff) {Rgcff = iRgcff;} - void SetMieff(double iMieff) {Mieff = iMieff;} - void SetQeff(double iQeff) {Qeff = iQeff;}//B.Q 2018/07/25 - void SetTtsff(double iTtsff) {Ttsff = iTtsff;}//TD 2019.06.22 - void SetPMTSatur(double iPmtSatur) {PmtSatur = iPmtSatur;}//TD 2019.07.16 - // void SetQoiff(double iQoiff) {Qoiff = iQoiff;}//TD 2019.06.26 - void SetTvspacing(double iTvspacing) {Tvspacing = iTvspacing;} - void SetTopveto(bool iTopveto) {Topveto = iTopveto;} - //WCSimTuningParameters gets - double GetRayff() {return Rayff;} - double GetBsrff() {return Bsrff;} - double GetAbwff() {return Abwff;} - double GetRgcff() {return Rgcff;} - double GetMieff() {return Mieff;} - double GetQeff() {return Qeff;} - double GetTtsff() {return Ttsff;} - double GetPMTSatur() {return PmtSatur;}//TD 2019.07.16 - // double GetQoiff() {return Qoiff;}//TD 2019.06.26 - double GetTvspacing() {return Tvspacing;} - bool GetTopveto() {return Topveto;} - //WCSimPhysicsListFactory sets - void SetPhysicsListName(string iPhysicsListName) {PhysicsListName = iPhysicsListName;} - //WCSimPhysicsListFactory gets - string GetPhysicsListName() {return PhysicsListName;} - //WCSimPrimaryGeneratorAction sets - void SetVectorFileName(string iVectorFileName) {VectorFileName = iVectorFileName;} - void SetGeneratorType(string iGeneratorType) {GeneratorType = iGeneratorType;} - //WCSimPrimaryGeneratorAction gets - string GetVectorFileName() {return VectorFileName;} - string GetGeneratorType() {return GeneratorType;} - //WCSimRandomParameters sets - void SetRandomSeed(int iRandomSeed) {RandomSeed = iRandomSeed;} - void SetRandomGenerator(WCSimRandomGenerator_t iRandomGenerator) {RandomGenerator = iRandomGenerator;} - //WCSimRandomParameters gets - int GetRandomSeed() {return RandomSeed;} - WCSimRandomGenerator_t GetRandomGenerator() {return RandomGenerator;} - -private: - //WCSimDetector* - string DetectorName; - bool GeomHasOD; - bool SavePi0; - int PMTQEMethod; - int PMTCollEff; - - //WCSimWCAddDarkNoise - map DarkOptMap; - - //WCSimWCDigitizer* - string DigitizerClassName; - int DigitizerDeadTime; // ns - int DigitizerIntegrationWindow; // ns - int DigitizerTimingPrecision; // - int DigitizerPEPrecision; // - - //WCSimWCTrigger* - string TriggerClassName; - bool MultiDigitsPerTrigger; - //ndigits - int NDigitsThreshold; // digitized hits - int NDigitsWindow; // ns - bool NDigitsAdjustForNoise; - int NDigitsPreTriggerWindow; // ns - int NDigitsPostTriggerWindow; // ns - //savefailures - int SaveFailuresMode; - double SaveFailuresTime; // ns - int SaveFailuresPreTriggerWindow; // ns - int SaveFailuresPostTriggerWindow; // ns - - //WCSimTuningParameters - double Rayff; - double Bsrff; - double Abwff; - double Rgcff; - double Qeff; - double Mieff; - double Ttsff; - // double Qoiff; //TD 2019.6.26 - double PmtSatur; //TD 2019.07.16 - double Tvspacing; - bool Topveto; - - //WCSimPhysicsListFactory - string PhysicsListName; - - //WCSimPrimaryGeneratorAction - string VectorFileName; - string GeneratorType; - - //WCSimRandomParameters - int RandomSeed; - WCSimRandomGenerator_t RandomGenerator; - - ClassDef(WCSimRootOptions,4) -}; - - -////////////////////////////////////////////////////////////////////////// - -#endif //WCSim_RootOptions diff --git a/libWCSIM/include/WCSimRunAction.hh b/libWCSIM/include/WCSimRunAction.hh deleted file mode 100644 index 3b8362d..0000000 --- a/libWCSIM/include/WCSimRunAction.hh +++ /dev/null @@ -1,232 +0,0 @@ -#ifndef WCSimRunAction_h -#define WCSimRunAction_h 1 - -#include "G4UserRunAction.hh" -#include "globals.hh" -#include "G4String.hh" - -#include "TFile.h" -#include "TTree.h" -#include "TClonesArray.h" -#include "WCSimRootEvent.hh" -#include "WCSimRootGeom.hh" -#include "WCSimRootOptions.hh" -#include "WCSimDetectorConstruction.hh" -#include "WCSimEnumerations.hh" //ToDo: move more Enums over there! -#include "evNtuple.h" -#include "WCSimRandomParameters.hh" - - -#include "TNRooTrackerVtx.hh" - -class G4Run; -class WCSimRunActionMessenger; - -class WCSimRunAction : public G4UserRunAction -{ -public: - WCSimRunAction(WCSimDetectorConstruction*, WCSimRandomParameters*); - ~WCSimRunAction(); - -public: - void BeginOfRunAction(const G4Run*); - void EndOfRunAction(const G4Run*); - void SetRootFileName(G4String fname) { RootFileName = fname; } - void SetSaveRooTracker(G4bool fsave) { SaveRooTracker = fsave; } - G4String GetRootFileName() { return RootFileName; } - void SetOptionalRootFile(G4bool choice) { useDefaultROOTout = choice; } - G4bool GetRootFileOption() { return useDefaultROOTout; } - bool GetSaveRooTracker() { return SaveRooTracker; } - void FillGeoTree(); - TTree* GetTree(){return WCSimTree;} - TBranch* GetBranch(G4String detectorElement = "tank"){ - if(detectorElement=="tank") return wcsimrooteventbranch; - else if(detectorElement=="tankPMT2") return wcsimrooteventbranch2; - else G4cout << "Unkown detector element" << G4endl; - } - TTree* GetFlatMasterTree(){return masterTree;} - TTree* GetGeoTree(){return geoTree;} - TTree* GetOptionsTree(){return optionsTree;} - WCSimRootGeom* GetRootGeom(){return wcsimrootgeom;} - WCSimRootEvent* GetRootEvent(G4String detectorElement = "tank"){ - if(detectorElement=="tank") return wcsimrootsuperevent; - if(detectorElement=="tankPMT2") return wcsimrootsuperevent2; - } - WCSimRootOptions* GetRootOptions(){return wcsimrootoptions;} - - //Need to share with EventAction: - TTree *GetCherenkovHitsTree(){return cherenkovHitsTree;} - TTree *GetCherenkovDigiHitsTree(){return cherenkovDigiHitsTree;} - TTree *GetTracksTree(){return tracksTree;} - TTree *GetTriggerTree(){return triggerTree;} - TTree *GetEventInfoTree(){return eventInfoTree;} - TTree *GetFlatRooTrackerTree(){return flatRooTrackerTree;} - - void SetEventHeaderNew(G4int run_id, G4int event_id, G4int subevent_id){ - event = event_id; - run = run_id; - subevent = subevent_id;} - - void SetTriggerInfoNew(TriggerType_t trigger_type,int trigger_info, /* std::vector trigger_info, */ - G4double trigger_length, G4double trigger_start){ - trig_type = trigger_type; - /* - for(size_t j = 0; j < trigger_info.size(); j++){ - if(j < 10) - trig_info[j] = trigger_info[j]; - else{ - G4cerr << "Trigger Info too large for array" << G4endl; - break; - } - }*/ - trig_info = trigger_info; - trig_length = trigger_length; - trig_start = trigger_start; - return; - } - - eventNtuple * GetMyStruct(){return evNtup;} - NRooTrackerVtx * GetMyRooTracker(){return evNRooTracker;} - - void SetTree(TTree* tree){WCSimTree=tree;} - void SetBranch(TBranch* branchin, G4String detectorElement = "tank"){ - if(detectorElement=="tank") wcsimrooteventbranch=branchin; - if(detectorElement=="tankPMT2") wcsimrooteventbranch2=branchin; - } - void SetGeoTree(TTree* tree){geoTree=tree;} - void SetRootEvent(WCSimRootEvent* revent, G4String detectorElement = "tank"){ - if(detectorElement=="tank") wcsimrootsuperevent=revent; - if(detectorElement=="tankPMT2") wcsimrootsuperevent2=revent; - } - void SetRootGeom(WCSimRootGeom* rgeom){wcsimrootgeom=rgeom;} - - int GetNumberOfEventsGenerated() { return numberOfEventsGenerated;} - int GetNtuples(){return ntuples;} - - void incrementEventsGenerated() { numberOfEventsGenerated++;} - void incrementWaterTubeHits() { numberOfTimesWaterTubeHit++;} - void incrementFVWaterTubeHits() { numberOfTimesFVWaterTubeHit++;} - void incrementCatcherHits() { numberOfTimesCatcherHit++;} - void SetNtuples(int ntup) {ntuples=ntup;} - - //New: - void FillFlatGeoTree(); - - NRooTrackerVtx* GetRootrackerVertex(); - void FillRootrackerVertexTree() { - fRooTrackerOutputTree->Fill(); - } - void ClearRootrackerVertexArray() { - fVertices->Clear(); - fNVtx = 0; - } - -private: - // MFechner : set by the messenger - std::string RootFileName; - // Only required for verification scripts and current fiTQun tuning - // But making initialization very slow due to large TCloneArray init. - G4bool useDefaultROOTout; - - // - TTree* WCSimTree; - TBranch* wcsimrooteventbranch; - TBranch* wcsimrooteventbranch2; - TTree* geoTree; - TTree* optionsTree; - WCSimRootEvent* wcsimrootsuperevent; - WCSimRootEvent* wcsimrootsuperevent2; - WCSimRootGeom* wcsimrootgeom; - WCSimRootOptions* wcsimrootoptions; - WCSimDetectorConstruction* wcsimdetector; - WCSimRandomParameters* wcsimrandomparameters; - - int numberOfEventsGenerated; - int numberOfTimesWaterTubeHit; - int numberOfTimesFVWaterTubeHit; - int numberOfTimesCatcherHit; - - TClonesArray* fVertices; - TTree* fRooTrackerOutputTree; - int fNVtx; - bool SaveRooTracker; - TTree* fSettingsOutputTree; - TTree* fSettingsInputTree; - - float WCXRotation[3]; - float WCYRotation[3]; - float WCZRotation[3]; - float WCDetCentre[3]; - float WCDetRadius; - float WCDetHeight; - float fNuPlanePos[3]; - float fNuPrismRadius; - - WCSimRunActionMessenger* messenger; - int ntuples; // 1 for ntuples to be written - - //new: vars for FLAT Trees - TTree* masterTree; - TTree* geomTree; - TTree* cherenkovHitsTree; //cfr. RecoHitSeriesMap - TTree* cherenkovDigiHitsTree; //cfr. RecoHitSeriesMap - TTree* tracksTree; - TTree* triggerTree; - TTree* eventInfoTree; - TTree* flatRooTrackerTree; - - // GeoTree - Char_t geo_type_string[20]; - double cyl_radius; - double cyl_length; - Char_t pmt_id_string[50]; - double pmt_radius_id; - Char_t pmt_od_string[50]; - double pmt_radius_od; - int numPMT_id; - int numPMT_od; - int orient; - double offset_x; - double offset_y; - double offset_z; - int num_mPMT; - int tube_id[5000000]; - int mPMT_id[5000000]; - int mPMT_pmt_id[5000000]; - double tube_x[5000000]; - double tube_y[5000000]; - double tube_z[5000000]; - double dir_x[5000000]; - double dir_y[5000000]; - double dir_z[5000000]; - double theta[5000000]; - double phi[5000000]; - - enum CylinderLocation{ - UNDEFINED = -1, - WALL = 0, - TOPCAP = 10, - BOTTOMCAP = 20 - } cylLocation[5000000]; - - //EventHeader - int run; - int event; - int subevent; - - //TriggerTree - TriggerType_t trig_type; - int trig_info; //double trig_info[100]; - double trig_length; - double trig_start; - - //Event info: General, Tracks and Hits - eventNtuple *evNtup; - - //NRooTracker - NRooTrackerVtx *evNRooTracker; - - const G4Run* fG4Run; -}; - -#endif diff --git a/libWCSIM/include/WCSimRunActionMessenger.hh b/libWCSIM/include/WCSimRunActionMessenger.hh deleted file mode 100644 index 5e679e9..0000000 --- a/libWCSIM/include/WCSimRunActionMessenger.hh +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef WCSimRunActionMessenger_h -#define WCSimRunActionMessenger_h 1 - -class WCSimRunAction; -class G4UIdirectory; -class G4UIcmdWithAString; -class G4UIcmdWithABool; - -#include "G4UImessenger.hh" -#include "globals.hh" -#include "G4UIcmdWithABool.hh" - -class WCSimRunActionMessenger: public G4UImessenger -{ - public: - WCSimRunActionMessenger(WCSimRunAction* mpga); - ~WCSimRunActionMessenger(); - - public: - void SetNewValue(G4UIcommand* command, G4String newValues); - - private: - WCSimRunAction* WCSimRun; - - private: //commands - G4UIdirectory* WCSimIODir; - G4UIcmdWithAString* RootFile; - G4UIcmdWithABool* WriteDefaultRootFile; - G4UIcmdWithABool* RooTracker; - -}; - -#endif - - diff --git a/libWCSIM/include/WCSimStackingAction.hh b/libWCSIM/include/WCSimStackingAction.hh deleted file mode 100644 index 9c1b67d..0000000 --- a/libWCSIM/include/WCSimStackingAction.hh +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef WCSimStackingAction_H -#define WCSimStackingAction_H 1 - -#include "globals.hh" -#include "G4UserStackingAction.hh" -#include "WCSimDetectorConstruction.hh" - -class G4Track; - -class WCSimStackingAction : public G4UserStackingAction { - - public: - WCSimStackingAction(WCSimDetectorConstruction*); - virtual ~WCSimStackingAction(); - - public: - virtual G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track* aTrack); - virtual void NewStage(); - virtual void PrepareNewEvent(); - - private: - WCSimDetectorConstruction* DetConstruct; - -}; - -#endif - diff --git a/libWCSIM/include/WCSimSteppingAction.hh b/libWCSIM/include/WCSimSteppingAction.hh deleted file mode 100644 index 04e5475..0000000 --- a/libWCSIM/include/WCSimSteppingAction.hh +++ /dev/null @@ -1,49 +0,0 @@ -#ifndef WCSimSteppingAction_h -#define WCSimSteppingAction_h 1 - -#include "G4Event.hh" -#include "G4UserSteppingAction.hh" -#include "G4ThreeVector.hh" - -class G4HCofThisEvent; -class G4Event; - -class WCSimSteppingAction : public G4UserSteppingAction -{ - -public: - WCSimSteppingAction() - {}; - - ~WCSimSteppingAction() - { }; - - void UserSteppingAction(const G4Step*); - - G4int G4ThreeVectorToWireTime(G4ThreeVector *pos3d, - G4ThreeVector lArPos, - G4ThreeVector start, - G4int i); - - void Distortion(G4double x, - G4double y); - - G4double FieldLines(G4double x, - G4double y, - G4int xy); - - - static G4int n_photons_through_mPMTLV; - static G4int n_photons_through_acrylic; - static G4int n_photons_through_gel; - static G4int n_photons_on_blacksheet; - static G4int n_photons_on_smallPMT; - -private: - - G4double ret[2]; - -}; - - -#endif diff --git a/libWCSIM/include/WCSimTrackInformation.hh b/libWCSIM/include/WCSimTrackInformation.hh deleted file mode 100644 index 0a218bc..0000000 --- a/libWCSIM/include/WCSimTrackInformation.hh +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef WCSimTrackInformation_h -#define WCSimTrackInformation_h 1 - - -#include "globals.hh" -#include "G4Track.hh" -#include "G4Allocator.hh" -#include "G4VUserTrackInformation.hh" - -// Maximilien Fechner, december 2004 -// Information class for flagging the secondaries -// I'm interested in (namely gammas from pi0s and secondaries -// from muon decay -// TF: Also gamma's from neutron capture and oxygen de-excitation and -// electrons from pion decay are very relevant!! -class WCSimTrackInformation : public G4VUserTrackInformation { -private: - G4bool saveit; - G4int primaryParentID; - -public: - WCSimTrackInformation() : saveit(false), primaryParentID(-99) {} //TF: initialize to value with NO meaning instead of DN - WCSimTrackInformation(const WCSimTrackInformation* aninfo) - { saveit = aninfo->saveit; primaryParentID = aninfo->primaryParentID;} - virtual ~WCSimTrackInformation() {} - WCSimTrackInformation(const G4Track* ); - - G4bool isSaved() { return saveit;} - void WillBeSaved(G4bool choice) { saveit = choice;} - - void SetPrimaryParentID(G4int i) { primaryParentID = i;} - G4int GetPrimaryParentID() {return primaryParentID;} - - inline void *operator new(size_t); - inline void operator delete(void *aTrackInfo); - inline int operator ==(const WCSimTrackInformation& right) const - {return (this==&right);} - - void Print() const; - -}; - -extern G4Allocator aWCSimTrackInfoAllocator; - -inline void* WCSimTrackInformation::operator new(size_t) -{ void* aTrackInfo; - aTrackInfo = (void*)aWCSimTrackInfoAllocator.MallocSingle(); - return aTrackInfo; -} - -inline void WCSimTrackInformation::operator delete(void *aTrackInfo) -{ aWCSimTrackInfoAllocator.FreeSingle((WCSimTrackInformation*)aTrackInfo);} - - -#endif diff --git a/libWCSIM/include/WCSimTrackingAction.hh b/libWCSIM/include/WCSimTrackingAction.hh deleted file mode 100644 index 0afab53..0000000 --- a/libWCSIM/include/WCSimTrackingAction.hh +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef WCSimTrackingAction_h -#define WCSimTrackingAction_h - -#include -#include "G4UserTrackingAction.hh" -#include "globals.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class G4Track; -class WCSimTrackingMessenger; - -class WCSimTrackingAction : public G4UserTrackingAction -{ - public: - WCSimTrackingAction(); - ~WCSimTrackingAction(); - - void PreUserTrackingAction (const G4Track* aTrack); - void PostUserTrackingAction(const G4Track*); - - void SetFractionChPhotons(G4double fraction){percentageOfCherenkovPhotonsToDraw = fraction;} - -private: - std::set ProcessList; - std::set ParticleList; - std::set pi0List; - - // TF: define in macro now - G4float percentageOfCherenkovPhotonsToDraw; - - WCSimTrackingMessenger* messenger; -}; - - -#endif - - diff --git a/libWCSIM/include/WCSimTrackingMessenger.hh b/libWCSIM/include/WCSimTrackingMessenger.hh deleted file mode 100644 index 672469b..0000000 --- a/libWCSIM/include/WCSimTrackingMessenger.hh +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef WCSimTrackingMessenger_h -#define WCSimTrackingMessenger_h 1 - - -#include "G4UImessenger.hh" - -class G4UIcommand; -class G4UIdirectory; -class G4UIcmdWithADouble; -class WCSimTrackingAction; - -class WCSimTrackingMessenger: public G4UImessenger -{ -public: - WCSimTrackingMessenger(WCSimTrackingAction*); - - ~WCSimTrackingMessenger(); - - void SetNewValue(G4UIcommand* command, G4String newValue); - -private: - WCSimTrackingAction* myTracking; - - G4UIdirectory* WCSimDir; - G4UIcmdWithADouble* fractionPhotonsToDraw; -}; - -#endif diff --git a/libWCSIM/include/WCSimTrajectory.hh b/libWCSIM/include/WCSimTrajectory.hh deleted file mode 100644 index 597a19b..0000000 --- a/libWCSIM/include/WCSimTrajectory.hh +++ /dev/null @@ -1,137 +0,0 @@ -class WCSimTrajectory; - -#ifndef WCSimTrajectory_h -#define WCSimTrajectory_h 1 - -#include "G4VTrajectory.hh" -#include "G4Allocator.hh" -#include // Include from 'system' -#include "G4ios.hh" // Include from 'system' -#include // G4RWTValOrderedVector -#include "globals.hh" // Include from 'global' -#include "G4ParticleDefinition.hh" // Include from 'particle+matter' -#include "G4TrajectoryPoint.hh" // Include from 'tracking' -#include "G4Track.hh" -#include "G4Step.hh" - -class G4Polyline; // Forward declaration. - -typedef std::vector TrajectoryPointContainer; -/////////////////// -class WCSimTrajectory : public G4VTrajectory -/////////////////// -{ - -//-------- -public: // with description -//-------- - -// Constructor/Destrcutor - - WCSimTrajectory(); - - WCSimTrajectory(const G4Track* aTrack); - WCSimTrajectory(WCSimTrajectory &); - virtual ~WCSimTrajectory(); - -// Operators - inline void* operator new(size_t); - inline void operator delete(void*); - inline int operator == (const WCSimTrajectory& right) const - {return (this==&right);} - -// Get/Set functions - inline G4int GetTrackID() const - { return fTrackID; } - inline G4int GetParentID() const - { return fParentID; } - inline G4String GetParticleName() const - { return ParticleName; } - inline G4double GetCharge() const - { return PDGCharge; } - inline G4int GetPDGEncoding() const - { return PDGEncoding; } - inline G4ThreeVector GetInitialMomentum() const - { return initialMomentum; } - inline G4String GetCreatorProcessName() const { - return creatorProcess; - } - - inline G4double GetGlobalTime() const - { return globalTime; } - inline G4bool GetSaveFlag() const { return SaveIt; } - inline void SetSaveFlag(G4bool value) { SaveIt = value; } - -// New function we have added - inline G4ThreeVector GetStoppingPoint() const - { return stoppingPoint; } - inline G4VPhysicalVolume* GetStoppingVolume() const - { return stoppingVolume;} - inline void SetStoppingPoint(G4ThreeVector& currentPosition) - { stoppingPoint = currentPosition;} - inline void SetStoppingVolume(G4VPhysicalVolume* currentVolume) - { stoppingVolume = currentVolume;} - - -// Other member functions - virtual void ShowTrajectory(std::ostream& os=G4cout) const; - virtual void DrawTrajectory(G4int i_mode=0) const; - virtual void AppendStep(const G4Step* aStep); - virtual int GetPointEntries() const { return positionRecord->size(); } - virtual G4VTrajectoryPoint* GetPoint(G4int i) const - { return (*positionRecord)[i]; } - virtual void MergeTrajectory(G4VTrajectory* secondTrajectory); - - G4ParticleDefinition* GetParticleDefinition(); - - virtual const std::map* GetAttDefs() const; - virtual std::vector* CreateAttValues() const; - -//--------- - private: -//--------- - - TrajectoryPointContainer* positionRecord; - G4int fTrackID; - G4int fParentID; - G4int PDGEncoding; - G4double PDGCharge; - G4String ParticleName; - G4ThreeVector initialMomentum; - - // These are new variables - G4ThreeVector stoppingPoint; - G4VPhysicalVolume *stoppingVolume; - - // M Fechner : new saving mechanism - G4bool SaveIt; - G4String creatorProcess; - G4double globalTime; -}; - -/*** TEMP : M FECHNER *********** -** modification by Chris Walter that works for geant4 >= 4.6.2p01 -** does not compile with 4.6.1 -#if defined G4TRACKING_ALLOC_EXPORT - extern G4DLLEXPORT G4Allocator myTrajectoryAllocator; -#else - extern G4DLLIMPORT G4Allocator myTrajectoryAllocator; -#endif -*/ - -extern G4Allocator myTrajectoryAllocator; - -inline void* WCSimTrajectory::operator new(size_t) -{ - void* aTrajectory; - aTrajectory = (void*)myTrajectoryAllocator.MallocSingle(); - return aTrajectory; -} - -inline void WCSimTrajectory::operator delete(void* aTrajectory) -{ - myTrajectoryAllocator.FreeSingle((WCSimTrajectory*)aTrajectory); -} - -#endif - diff --git a/libWCSIM/include/WCSimTuningMessenger.hh b/libWCSIM/include/WCSimTuningMessenger.hh deleted file mode 100644 index c1c1a2c..0000000 --- a/libWCSIM/include/WCSimTuningMessenger.hh +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef WCSimTuningMessenger_h -#define WCSimTuningMessenger_h 1 - -// Contains detector parameters that need to be set up before detector is constructed -// KS Mar 2010 - -#include "globals.hh" -#include "G4UImessenger.hh" - -class WCSimTuningParameters; -class G4UIdirectory; -class G4UIcommand; -class G4UIcmdWithADouble; -class G4UIcmdWithABool; //jl145 - - -class WCSimTuningMessenger: public G4UImessenger -{ -public: - WCSimTuningMessenger(WCSimTuningParameters*); - ~WCSimTuningMessenger(); - - void SetNewValue(G4UIcommand* command, G4String newValue); - -private: - - WCSimTuningParameters* WCSimTuningParams; - - G4UIdirectory* WCSimDir; - G4UIcmdWithADouble* Rayff; - G4UIcmdWithADouble* Bsrff; - G4UIcmdWithADouble* Abwff; - G4UIcmdWithADouble* Rgcff; - G4UIcmdWithADouble* Qeff; - G4UIcmdWithADouble* Mieff; - G4UIcmdWithADouble* Ttsff; - G4UIcmdWithADouble* PMTSatur; //TD 2019.7.16 - //G4UIcmdWithADouble* Qoiff; //TD 2019.6.26 - //G4UIcmdWithADouble* NLTinfo; //TD 2019.6.26 - - //For Top Veto - jl145 - G4UIcmdWithADouble* TVSpacing; - G4UIcmdWithABool* TopVeto; - -}; - -#endif diff --git a/libWCSIM/include/WCSimTuningParameters.hh b/libWCSIM/include/WCSimTuningParameters.hh deleted file mode 100644 index b65723e..0000000 --- a/libWCSIM/include/WCSimTuningParameters.hh +++ /dev/null @@ -1,90 +0,0 @@ -#ifndef WCSimTuningParameters_h -#define WCSimTuningParameters_h 1 -#include "WCSimTuningMessenger.hh" -#include "WCSimRootOptions.hh" -#include "globals.hh" - -class WCSimTuningParameters -{ -public: - WCSimTuningParameters(); - ~WCSimTuningParameters(); - - - // Setters and getters - G4double GetRayff() {return rayff;} - void SetRayff(G4double rparam) {rayff=rparam;} - - G4double GetBsrff() {return bsrff;} - void SetBsrff(G4double rparam) {bsrff=rparam;} - - G4double GetAbwff() {return abwff;} - void SetAbwff(G4double rparam) {abwff=rparam;} - - G4double GetRgcff() {return rgcff;} - void SetRgcff(G4double rparam) {rgcff=rparam;} - - //Added by B.Q 2018/07/25 - G4double GetQeff() {return qeff;} - void SetQeff(G4double rparam) {qeff=rparam;} - - G4double GetMieff() {return mieff;} - void SetMieff(G4double rparam) {mieff=rparam;} - - //Added by TD 2019/06/22 - G4double GetTtsff() {return ttsff;} - void SetTtsff(G4double rparam) {ttsff=rparam;} - - //TD 2019.7.16 - G4double GetPMTSatur() {return pmtsatur;} - void SetPMTSatur(G4double rparam) {pmtsatur=rparam;} - -// TD 2019.6.26 - // G4double GetQoiff() {return qoiff;} - // void SetQoiff(G4double rparam) {qoiff=rparam;} - - // G4double GetNLTinfo() {return nltinfo;} - // void SetNLTinfo(G4double rparam) {nltinfo=rparam;} - - //For Top Veto - jl145 - G4double GetTVSpacing() {return tvspacing;} - void SetTVSpacing(G4double tparam) {tvspacing=tparam;} - - G4bool GetTopVeto() {return topveto;} - void SetTopVeto(G4double tparam) {topveto=tparam;} - - void SaveOptionsToOutput(WCSimRootOptions * wcopt); - -private: - - // The messenger - WCSimTuningMessenger* TuningMessenger; - - - // The parameters that need to be set before WCSimDetectorConstruction - // is created - - G4double rayff; - G4double bsrff; - G4double abwff; - G4double rgcff; - G4double qeff; - G4double mieff; - G4double ttsff; - // G4double qoiff; // TD 2019.6.26 - G4double pmtsatur; - - //For Top Veto - jl145 - G4double tvspacing; - G4bool topveto; - -}; - -#endif - - - - - - - diff --git a/libWCSIM/include/WCSimVisManager.hh b/libWCSIM/include/WCSimVisManager.hh deleted file mode 100644 index 5d8b438..0000000 --- a/libWCSIM/include/WCSimVisManager.hh +++ /dev/null @@ -1,27 +0,0 @@ - - - -#ifndef WCSimVisManager_h -#define WCSimVisManager_h 1 - -#ifdef G4VIS_USE - -#include "G4VisManager.hh" - - -class WCSimVisManager: public G4VisManager { - -public: - - WCSimVisManager (); - -private: - - void RegisterGraphicsSystems (); - -}; - - -#endif - -#endif diff --git a/libWCSIM/include/WCSimWCAddDarkNoise.hh b/libWCSIM/include/WCSimWCAddDarkNoise.hh deleted file mode 100644 index eb55ce7..0000000 --- a/libWCSIM/include/WCSimWCAddDarkNoise.hh +++ /dev/null @@ -1,72 +0,0 @@ -#ifndef WCSimWCAddDarkNoise_h -#define WCSimWCAddDarkNoise_h 1 - -#include "WCSimDarkRateMessenger.hh" -#include "WCSimDetectorConstruction.hh" -#include "G4VDigitizerModule.hh" -#include "WCSimWCDigi.hh" -#include "WCSimWCHit.hh" -#include "WCSimRootOptions.hh" -#include "globals.hh" -#include "Randomize.hh" -#include -#include -#include - -class WCSimWCAddDarkNoise : public G4VDigitizerModule -{ -public: - - WCSimWCAddDarkNoise(G4String name, WCSimDetectorConstruction*, G4String); - //WCSimWCAddDarkNoise(G4String name, WCSimDetectorConstruction*, G4String); - ~WCSimWCAddDarkNoise(); - -public: - void AddDarkNoise(); - void AddDarkNoiseBeforeDigi(WCSimWCDigitsCollection* WCHCPMT, float num1 ,float num2); - void FindDarkNoiseRanges(WCSimWCDigitsCollection* WCHCPMT, float width); - //As it inherits from G4VDigitizerModule it needs a digitize class. Not used - void Digitize() { } - void SetDarkRate(double idarkrate){ PMTDarkRate = idarkrate; } - double GetDarkRate() { return PMTDarkRate; } - void SetConversion(double iconvrate){ ConvRate = iconvrate; } - void SetDarkMode(int imode){DarkMode = imode;} - int GetDarkMode(){return DarkMode;} - void SetDarkHigh(int idarkhigh){DarkHigh = idarkhigh;} - double GetDarkHigh(){return DarkHigh;} - void SetDarkLow(int idarklow){DarkLow = idarklow;} - double GetDarkLow(){return DarkLow;} - void SetDarkWindow(int idarkwindow){DarkWindow = idarkwindow;} - int GetDarkWindow(){return (int)(DarkWindow);} - void SaveOptionsToOutput(WCSimRootOptions * wcopt, string tag); - -private: - void ReInitialize() { ranges.clear(); result.clear();} - void SetPMTDarkDefaults(); - - WCSimDarkRateMessenger *DarkRateMessenger; - double PMTDarkRate; // kHz - double ConvRate; // kHz - double DarkHigh; //ns - double DarkLow; //ns - double DarkWindow; //ns - int DarkMode; - bool fCalledAddDarkNoise; - - WCSimDetectorConstruction* myDetector; - G4String detectorElement; - - std::vector > ranges; - std::vector > result; - -}; - -#endif - - - - - - - - diff --git a/libWCSIM/include/WCSimWCDAQMessenger.hh b/libWCSIM/include/WCSimWCDAQMessenger.hh deleted file mode 100644 index ad96009..0000000 --- a/libWCSIM/include/WCSimWCDAQMessenger.hh +++ /dev/null @@ -1,78 +0,0 @@ -#ifndef WCSimWCDAQMessenger_h -#define WCSimWCDAQMessenger_h 1 - -#include "G4UImessenger.hh" -#include "G4UIcmdWithAString.hh" -#include "G4UIcmdWithABool.hh" -#include "G4UIcmdWithAnInteger.hh" -#include "G4UIcmdWithADouble.hh" -#include "G4UIdirectory.hh" -#include "G4UIcmdWithoutParameter.hh" - -class G4UIcommand; -class WCSimEventAction; -class WCSimWCDigitizerBase; -class WCSimWCTriggerBase; - -class WCSimWCDAQMessenger: public G4UImessenger -{ -public: - WCSimWCDAQMessenger(WCSimEventAction*); - - ~WCSimWCDAQMessenger(); - - void SetNewValue(G4UIcommand* command, G4String newValue); - - void SetTriggerOptions(); - void SetDigitizerOptions(); - - void TellMeAboutTheDigitizer (WCSimWCDigitizerBase* digitizer) { WCSimDigitize = digitizer; } - void TellMeAboutTheTrigger (WCSimWCTriggerBase* trigger) { WCSimTrigger = trigger; } - -private: - WCSimEventAction* WCSimEvent; - WCSimWCDigitizerBase* WCSimDigitize; - WCSimWCTriggerBase* WCSimTrigger; - - G4UIdirectory* WCSimDAQDir; - G4UIcmdWithAString* DigitizerChoice; - G4String StoreDigitizerChoice; - G4UIcmdWithAString* TriggerChoice; - G4String StoreTriggerChoice; - G4UIcmdWithABool* MultiDigitsPerTrigger; - G4bool StoreMultiDigitsPerTrigger; - G4bool MultiDigitsPerTriggerSet; - - G4UIdirectory* DigitizerDir; - G4UIcmdWithAnInteger* DigitizerDeadTime; - G4int StoreDigitizerDeadTime; - G4UIcmdWithAnInteger* DigitizerIntegrationWindow; - G4int StoreDigitizerIntegrationWindow; - - G4UIdirectory* SaveFailuresTriggerDir; - G4UIcmdWithAnInteger* SaveFailuresTriggerMode; - G4int StoreSaveFailuresMode; - G4UIcmdWithADouble* SaveFailuresTriggerTime; - G4double StoreSaveFailuresTime; - G4UIcmdWithAnInteger* SaveFailuresPreTriggerWindow; - G4int StoreSaveFailuresPreWindow; - G4UIcmdWithAnInteger* SaveFailuresPostTriggerWindow; - G4int StoreSaveFailuresPostWindow; - - G4UIdirectory* NDigitsTriggerDir; - G4UIcmdWithAnInteger* NDigitsTriggerThreshold; - G4int StoreNDigitsThreshold; - G4UIcmdWithAnInteger* NDigitsTriggerWindow; - G4int StoreNDigitsWindow; - G4UIcmdWithABool* NDigitsTriggerAdjustForNoise; - G4bool StoreNDigitsAdjustForNoise; - G4UIcmdWithAnInteger* NDigitsPreTriggerWindow; - G4int StoreNDigitsPreWindow; - G4UIcmdWithAnInteger* NDigitsPostTriggerWindow; - G4int StoreNDigitsPostWindow; - - G4String initialiseString; - G4bool initialised; -}; - -#endif diff --git a/libWCSIM/include/WCSimWCDigi.hh b/libWCSIM/include/WCSimWCDigi.hh deleted file mode 100644 index 9e374f5..0000000 --- a/libWCSIM/include/WCSimWCDigi.hh +++ /dev/null @@ -1,232 +0,0 @@ -#ifndef WCSimWCDigi_h -#define WCSimWCDigi_h 1 - -#include "G4VDigi.hh" -#include "G4TDigiCollection.hh" -#include "G4Allocator.hh" -#include "G4ThreeVector.hh" -#include "G4LogicalVolume.hh" -#include "G4ios.hh" - -#include -#include -#include - -// for sort, find, count_if -#include -//for less_equal, bind2nd,... -#include - -// compose2 is not part of the C++ standard -#include -using __gnu_cxx::compose2; - - - -class WCSimWCDigi : public G4VDigi -{ - -public: - - WCSimWCDigi(); - ~WCSimWCDigi(); - WCSimWCDigi(const WCSimWCDigi&); - const WCSimWCDigi& operator=(const WCSimWCDigi&); - int operator==(const WCSimWCDigi&) const; - - inline void* operator new(size_t); - inline void operator delete(void*); - - void Draw(); - void Print(); - -private: - - //PMT parameters - G4int tubeID; - G4RotationMatrix rot; - G4ThreeVector pos; - G4ThreeVector orient; - G4LogicalVolume* pLogV; - G4String tubeType;//Added by B.Q for hybrid PMT configuration - - //'Gates' is a digit counter or specifies subevent - //'TriggerTimes' specifies e.g. the subevent trigger time - std::set Gates; // list of gates that were hit - std::vector TriggerTimes; - - //lists (meaning vector/map) of information for each hit/digit created on the PMT - std::map pe; ///< Charge of each Digi - std::map time_presmear; ///< Time of each Digi, before smearing - std::map time; ///< Time of each Digi - std::vector time_float; ///< Same information as "time" but stored in a vector for quick time sorting - /** \brief IDs of the hits that make up this Digit (do not use for Hits) - * - * Stores the unique IDs of each photon making up a digit - * Each digit can be made from multiple photons, therefore a vector is used - * For example: 0:[3,4,6]; 1:[10,11,13,14] - * The first digit in the event is made of of photons 3,4,6; - * The second digit is made up of photons: 10,11,13,14 - */ - std::map > fDigiComp; - std::map primaryParentID; ///< Primary parent ID of the Hit (do not use for Digits) - - - //integrated hit/digit parameters - G4int totalPe; - - //parameters not actually used? - G4int totalPeInGate; - G4double edep; - static G4int maxPe; - G4int trackID; - -public: - void RemoveDigitizedGate(G4int gate); - - inline void SetTubeID(G4int tube) {tubeID = tube;}; - inline void SetTubeType(G4String tube_type) {tubeType = tube_type;}; - inline void AddGate(int g,float t) { Gates.insert(g); TriggerTimes.push_back(t);} - inline void SetPe(G4int gate, G4float Q) {pe[gate] = Q;}; - inline void SetTime(G4int gate, G4float T) {time[gate] = T;}; - inline void SetPreSmearTime(G4int gate, G4float T) {time_presmear[gate] = T;}; - inline void SetParentID(G4int gate, G4int parent) { primaryParentID[gate] = parent; }; - - // Add a digit number and unique photon number to fDigiComp - inline void AddPhotonToDigiComposition(int digi_number, int photon_number){ - fDigiComp[digi_number].push_back(photon_number); - } - // Add a whole vector for one digit to fDigiComp. Clear input vector once added. - void AddDigiCompositionInfo(std::vector & digi_comp){ - const size_t size = fDigiComp.size(); - fDigiComp[size] = digi_comp; - digi_comp.clear(); - } - - - inline G4int GetParentID(int gate) { return primaryParentID[gate];}; - inline G4int GetTrackID() { return trackID;}; - inline G4float GetGateTime(int gate) { return TriggerTimes[gate];} - inline G4int GetTubeID() {return tubeID;}; - inline G4String GetTubeType() {return tubeType;}; - inline G4ThreeVector GetPos(){ return pos;}; - inline G4ThreeVector GetOrientation(){ return orient;}; - inline G4RotationMatrix GetRot(){ return rot;}; - inline G4float GetPe(int gate) {return pe[gate];}; - inline G4float GetTime(int gate) {return time[gate];}; - inline G4float GetPreSmearTime(int gate) {return time_presmear[gate];}; - std::vector GetDigiCompositionInfo(int gate); - inline std::map< int, std::vector > GetDigiCompositionInfo(){return fDigiComp;} - - inline int NumberOfGates() { return Gates.size();} - inline int NumberOfSubEvents() { return (Gates.size()-1);} - inline bool HasHitsInGate(int number) { return (Gates.count(number)>0); } - - G4LogicalVolume* GetLogicalVolume() {return pLogV;}; - - - void SetEdep (G4double de) { edep = de; }; - void SetPos (G4ThreeVector xyz) { pos = xyz; }; - void SetOrientation (G4ThreeVector xyz) { orient = xyz; }; - void SetLogicalVolume(G4LogicalVolume* logV) { pLogV = logV;} - void SetTrackID (G4int track) { trackID = track; }; - void SetRot (G4RotationMatrix rotMatrix) { rot = rotMatrix; }; - G4int GetTotalPe() { return totalPe;}; - - void SetMaxPe(G4int number = 0) {maxPe = number;}; - - void AddPe(G4float hitTime) - { - // Increment the totalPe number - totalPe++; - - time_float.push_back(hitTime); - } - - void SortHitTimes() { sort(time_float.begin(),time_float.end()); } - - - void SortArrayByHitTime() { - int i, j; - float index_time,index_timepresmear,index_pe; - std::vector index_digicomp; - int index_primaryparentid; - for (i = 1; i < (int) time.size(); ++i) - { - index_time = time[i]; - index_timepresmear = time_presmear[i]; - index_pe = pe[i]; - index_digicomp = fDigiComp[i]; - index_primaryparentid = primaryParentID[i]; - for (j = i; j > 0 && time[j-1] > index_time; j--) { - time[j] = time[j-1]; - pe[j] = pe[j-1]; - fDigiComp[j] = fDigiComp[j-1]; - primaryParentID[j] = primaryParentID[j-1]; - //G4cout <<"swapping "< 0 && a[j-1] > index; j--) - a[j] = a[j-1]; - - a[j] = index; - } - } - - - G4float GetFirstHitTimeInGate(G4float low,G4float upevent) - { - G4float firsttime; - std::vector::iterator tfirst = time_float.begin(); - std::vector::iterator tlast = time_float.end(); - - std::vector::iterator found = - std::find_if(tfirst,tlast, - compose2(std::logical_and(), - std::bind2nd(std::greater_equal(),low), - std::bind2nd(std::less_equal(),upevent) - ) - ); - if ( found != tlast ) { - firsttime = *found; // first hit time - } - else { - firsttime = -10000.; //error code. - } - //G4cout << "firsthit time " << firsttime << "\n"; - return firsttime; - } - - -}; - -typedef G4TDigiCollection WCSimWCDigitsCollection; -extern G4Allocator WCSimWCDigiAllocator; - -inline void* WCSimWCDigi::operator new(size_t) -{ - void* aDigi; - aDigi = (void*) WCSimWCDigiAllocator.MallocSingle(); - return aDigi; -} - -inline void WCSimWCDigi::operator delete(void* aDigi) -{ - WCSimWCDigiAllocator.FreeSingle((WCSimWCDigi*) aDigi); -} - -#endif diff --git a/libWCSIM/include/WCSimWCDigitizer.hh b/libWCSIM/include/WCSimWCDigitizer.hh deleted file mode 100644 index 0e3b6fd..0000000 --- a/libWCSIM/include/WCSimWCDigitizer.hh +++ /dev/null @@ -1,112 +0,0 @@ -#ifndef WCSimWCDigitizer_h -#define WCSimWCDigitizer_h 1 - -#include "WCSimRootOptions.hh" -#include "WCSimDarkRateMessenger.hh" -#include "WCSimWCDAQMessenger.hh" -#include "WCSimDetectorConstruction.hh" -#include "WCSimEnumerations.hh" -#include "G4VDigitizerModule.hh" -#include "WCSimWCDigi.hh" -#include "WCSimWCHit.hh" -#include "globals.hh" -#include "Randomize.hh" -#include -#include - - -// ******************************************* -// BASE CLASS -// ******************************************* - -class WCSimWCDigitizerBase : public G4VDigitizerModule -{ -public: - - WCSimWCDigitizerBase(G4String name, WCSimDetectorConstruction*, WCSimWCDAQMessenger*, DigitizerType_t, G4String detectorElement); - virtual ~WCSimWCDigitizerBase(); - - bool AddNewDigit(int tube, int gate, float digihittime, float peSmeared, std::vector digi_comp); - virtual void DigitizeHits(WCSimWCDigitsCollection* WCHCPMT) = 0; - void DigitizeGate(WCSimWCDigitsCollection* WCHC,G4int G); - void Digitize(); - - //.mac file option setting methods - void SetDigitizerDeadTime (int deadtime) { DigitizerDeadTime = deadtime; }; ///< Override the default digitizer deadtime (ns) - void SetDigitizerIntegrationWindow(int inttime ) { DigitizerIntegrationWindow = inttime; }; ///< Override the default digitizer integration window (ns) - - ///Save current values of options - void SaveOptionsToOutput(WCSimRootOptions * wcopt); - -protected: - void ReInitialize() { DigiStoreHitMap.clear(); } - - G4double peSmeared; - - WCSimDetectorConstruction* myDetector; ///< Get the geometry information - WCSimWCDAQMessenger* DAQMessenger; ///< Get the /DAQ/ .mac options - G4String detectorElement; //to identify which hit collection the trigger is associated: OD, ID, ID PMT type 2(for hybrid) - - WCSimWCDigitsCollection* DigiStore; - std::map DigiStoreHitMap; ///< Used to check if a digit has already been created on a PMT - - //generic digitizer properties. Defaults set with the GetDefault*() methods. Overidden by .mac options - G4String DigitizerClassName; ///< Name of the digitizer class being run - int DigitizerDeadTime; ///< Digitizer deadtime (ns) - int DigitizerIntegrationWindow; ///< Digitizer integration window (ns) - - DigitizerType_t DigitizerType; ///< Enumeration to say which digitizer we've constructed - - virtual int GetDefaultDeadTime() = 0; ///< Set the default digitizer-specific deadtime (in ns) (overridden by .mac) - virtual int GetDefaultIntegrationWindow() = 0; ///< Set the default digitizer-specific integration window (in ns) (overridden by .mac) - - void GetVariables(); ///< Get the default deadtime, etc. from the derived class, and override with read from the .mac file -}; - - - -// ******************************************* -// DERIVED CLASSES -// ******************************************* - - -// SKI-based digitizer class -class WCSimWCDigitizerSKI : public WCSimWCDigitizerBase -{ -public: - - WCSimWCDigitizerSKI(G4String name, WCSimDetectorConstruction*, WCSimWCDAQMessenger*, G4String); - ~WCSimWCDigitizerSKI(); - - void DigitizeHits(WCSimWCDigitsCollection* WCHCPMT); - -private: - int GetDefaultDeadTime() { return 0; } ///< SKI digitizer deadtime is 0 ns - int GetDefaultIntegrationWindow() { return 200; } ///< - - static void Threshold(double& pe,int& iflag){ - // CLHEP::HepRandom::setTheSeed(pe+2014); - double x = pe+0.1; iflag=0; - double thr; double RDUMMY,err; - if ( x<1.1) { - thr = std::min(1.0, - -0.06374+x*(3.748+x*(-63.23+x*(452.0+x*(-1449.0+x*(2513.0 - +x*(-2529.+x*(1472.0+x*(-452.2+x*(51.34+x*2.370)))))))))); - } else { - thr = 1.0; - } - RDUMMY = G4UniformRand(); - if (thr < RDUMMY) { - pe = 0.0; - iflag = 1; - } - else { - err = G4RandGauss::shoot(0.0,0.03); - ///// call rngaus(0.0, 0.03, err); - pe = pe+err; - } - } -}; - - -#endif //WCSimWCDigitizer_h diff --git a/libWCSIM/include/WCSimWCHit.hh b/libWCSIM/include/WCSimWCHit.hh deleted file mode 100644 index 03a8c3b..0000000 --- a/libWCSIM/include/WCSimWCHit.hh +++ /dev/null @@ -1,188 +0,0 @@ -#ifndef WCSimWCHit_h -#define WCSimWCHit_h 1 - -#include "G4VHit.hh" -#include "G4THitsCollection.hh" -#include "G4Allocator.hh" -#include "G4ThreeVector.hh" -#include "G4LogicalVolume.hh" -#include "G4ios.hh" -// for sort, find, count_if -#include -//for less_equal, bind2nd,... -#include - -// compose2 is not part of the C++ standard -// use this kludgy technique to use it -#include -using __gnu_cxx::identity_element; -using __gnu_cxx::unary_compose; -using __gnu_cxx::binary_compose; -using __gnu_cxx::compose1; -using __gnu_cxx::compose2; -using __gnu_cxx::identity; -using __gnu_cxx::select1st; -using __gnu_cxx::select2nd; -using __gnu_cxx::project1st; -using __gnu_cxx::project2nd; -using __gnu_cxx::constant_void_fun; -using __gnu_cxx::constant_unary_fun; -using __gnu_cxx::constant_binary_fun; -using __gnu_cxx::constant0; -using __gnu_cxx::constant1; -using __gnu_cxx::constant2; -using __gnu_cxx::subtractive_rng; -using __gnu_cxx::mem_fun1; -using __gnu_cxx::mem_fun1_ref; - - - -class WCSimWCHit : public G4VHit -{ - public: - - WCSimWCHit(); - ~WCSimWCHit(); - WCSimWCHit(const WCSimWCHit&); - const WCSimWCHit& operator=(const WCSimWCHit&); - G4int operator==(const WCSimWCHit&) const; - - inline void* operator new(size_t); - inline void operator delete(void*); - - void Draw(); - void Print(); - - public: - - void SetTubeID (G4int tube) { tubeID = tube; }; - void SetTrackID (G4int track) { trackID = track; }; - void SetEdep (G4double de) { edep = de; }; - void SetPos (G4ThreeVector xyz) { pos = xyz; }; - void SetOrientation (G4ThreeVector xyz) { orient = xyz; }; - void SetRot (G4RotationMatrix rotMatrix) { rot = rotMatrix; }; - void SetLogicalVolume(G4LogicalVolume* logV) { pLogV = logV;} - void AddParentID (G4int primParentID) - { primaryParentID.push_back(primParentID); } - void SetTubeType (G4String tube_type) { tubeType = tube_type; }; //Added by B.Quilain to transmit on which PMT type the hit happened. For detectors with several PMT types in ID. - - - // This is temporarily used for the drawing scale - void SetMaxPe(G4int number = 0) {maxPe = number;}; - - void AddPe(G4float hitTime) - { - // First increment the totalPe number - totalPe++; - - if (totalPe > maxPe) - maxPe = totalPe; - - time.push_back(hitTime); - } - - G4int GetTubeID() { return tubeID; }; - G4int GetTrackID() { return trackID; }; - G4ThreeVector GetPos() { return pos; }; - G4ThreeVector GetOrientation() { return orient; }; - G4int GetTotalPe() { return totalPe;}; - G4float GetTime(int i) { return time[i];}; - G4int GetParentID(int i) { return primaryParentID[i];}; - G4String GetTubeType() { return tubeType; }; - - G4LogicalVolume* GetLogicalVolume() {return pLogV;}; - - void SortHitTimes() { sort(time.begin(),time.end()); } - - - // low is the trigger time, up is trigger+950ns (end of event) - G4float GetFirstHitTimeInGate(G4float low,G4float upevent) - { - G4float firsttime; - std::vector::iterator tfirst = time.begin(); - std::vector::iterator tlast = time.end(); - - std::vector::iterator found = - std::find_if(tfirst,tlast, - compose2(std::logical_and(), - std::bind2nd(std::greater_equal(),low), - std::bind2nd(std::less_equal(),upevent) - ) - ); - if ( found != tlast ) { - firsttime = *found; // first hit time - } - else { - firsttime = -10000.; //error code. - } - //G4cout << "firsthit time " << firsttime << "\n"; - return firsttime; - } - - - // pmtgate and evgate are durations, ie not absolute times - - G4int GetPeInGate(double low, double pmtgate,double evgate) { - // M Fechner; april 2005 - // assumes that time has already been sorted - std::vector::iterator tfirst = time.begin(); - std::vector::iterator tlast = time.end(); - // select min time - G4float mintime = (pmtgate < evgate) ? pmtgate : evgate; - - // return number of hits in the time window... - - G4int number = std::count_if(tfirst,tlast, - compose2(std::logical_and(), - std::bind2nd(std::greater_equal(),low), - std::bind2nd(std::less_equal(),mintime) - ) - ); - - totalPeInGate = number; - // G4cout << "numer = " << number <<"\n"; - return number; - } - - - private: - - void HSVtoRGB(float& fR, float& fG, float& fB, float& fH, float& fS, float& fV); - - G4int tubeID; - G4int trackID; - G4double edep; - G4ThreeVector pos; - G4ThreeVector orient; - G4RotationMatrix rot; - G4LogicalVolume* pLogV; - G4String tubeType;//Added by B.Quilain to transmit on which PMT type the hit happened. For detectors with several PMT types in ID. - - // This is temporarily used for the drawing scale - // Since its static *every* WChit sees the same value for this. - - static G4int maxPe; - - G4int totalPe; - std::vector time; - std::vector primaryParentID; - G4int totalPeInGate; -}; - -typedef G4THitsCollection WCSimWCHitsCollection; - -extern G4Allocator WCSimWCHitAllocator; - -inline void* WCSimWCHit::operator new(size_t) -{ - void *aHit; - aHit = (void *) WCSimWCHitAllocator.MallocSingle(); - return aHit; -} - -inline void WCSimWCHit::operator delete(void *aHit) -{ - WCSimWCHitAllocator.FreeSingle((WCSimWCHit*) aHit); -} - -#endif diff --git a/libWCSIM/include/WCSimWCPMT.hh b/libWCSIM/include/WCSimWCPMT.hh deleted file mode 100644 index eb136ec..0000000 --- a/libWCSIM/include/WCSimWCPMT.hh +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef WCSimWCPMT_h -#define WCSimWCPMT_h 1 - -#include "WCSimDarkRateMessenger.hh" -#include "WCSimDetectorConstruction.hh" -#include "G4VDigitizerModule.hh" -#include "WCSimWCDigi.hh" -#include "WCSimWCHit.hh" -#include "globals.hh" -#include "Randomize.hh" -#include -#include - - -class WCSimWCPMT : public G4VDigitizerModule -{ -public: - - WCSimWCPMT(G4String name, WCSimDetectorConstruction*, G4String detectorElement); - ~WCSimWCPMT(); - - void ReInitialize() { DigiHitMapPMT.clear(); TriggerTimes.clear(); } - - -public: - - void AddPMTDarkRate(WCSimWCDigitsCollection*); - void MakePeCorrection(WCSimWCHitsCollection*); - void Digitize(); - G4double GetTriggerTime(int i) { return TriggerTimes[i];} - // void SetConversion(double iconvrate){ ConvRate = iconvrate; } - // static G4double GetLongTime() { return LongTime;} - - G4double rn1pe(); - G4double peSmeared; - // double ConvRate; // kHz - std::vector TriggerTimes; - std::map DigiHitMapPMT; // need to check if a hit already exists.. - - WCSimWCDigitsCollection* DigitsCollection; - WCSimDetectorConstruction* myDetector; - G4String detectorElement; - -}; - -#endif - - - - - - - - diff --git a/libWCSIM/include/WCSimWCSD.hh b/libWCSIM/include/WCSimWCSD.hh deleted file mode 100644 index 0851138..0000000 --- a/libWCSIM/include/WCSimWCSD.hh +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef WCSimWCSD_h -#define WCSimWCSD_h 1 - -#include "G4VSensitiveDetector.hh" -#include "WCSimWCHit.hh" -#include "WCSimDetectorConstruction.hh" - -class G4Step; -class G4HCofThisEvent; - -class WCSimWCSD : public G4VSensitiveDetector -{ - public: - WCSimWCSD(G4String,G4String,WCSimDetectorConstruction*, G4String); - ~WCSimWCSD(); - - void Initialize(G4HCofThisEvent*); - - G4bool ProcessHits(G4Step*, G4TouchableHistory*); - void EndOfEvent(G4HCofThisEvent*); - - private: - - G4int HCID; - WCSimDetectorConstruction* fdet; - WCSimWCHitsCollection* hitsCollection; - WCSimWCHitsCollection* hitsCollection2; - std::map PMTHitMap; // Whether a PMT was hit already - - G4String detectorElement; -}; - -#endif - diff --git a/libWCSIM/include/WCSimWCTrigger.hh b/libWCSIM/include/WCSimWCTrigger.hh deleted file mode 100644 index 4874bb0..0000000 --- a/libWCSIM/include/WCSimWCTrigger.hh +++ /dev/null @@ -1,362 +0,0 @@ -#ifndef WCSimWCTrigger_h -#define WCSimWCTrigger_h 1 - -#include "WCSimRootOptions.hh" -#include "WCSimEnumerations.hh" -#include "WCSimWCDAQMessenger.hh" -#include "WCSimDetectorConstruction.hh" -#include "G4VDigitizerModule.hh" -#include "WCSimWCDigi.hh" -#include "WCSimWCHit.hh" -#include "globals.hh" -#include "Randomize.hh" -#include -#include - -class WCSimWCDigiTrigger; -typedef G4TDigiCollection WCSimWCTriggeredDigitsCollection; - -// ******************************************* -// BASE CLASS -// ******************************************* - -/** - * \class WCSimWCTriggerBase - * - * \brief The base class for WCSim triggering algorithms - * - * Concrete implementations of a trigger class should inherit from this class. - * Minimally, only DoTheWork() needs to be implemented in the implementation class. - * - */ - -class WCSimWCTriggerBase : public G4VDigitizerModule -{ - -public: - - ///Create WCSimWCTriggerBase instance with knowledge of the detector and DAQ options - WCSimWCTriggerBase(G4String name, WCSimDetectorConstruction*, WCSimWCDAQMessenger*, G4String); - - virtual ~WCSimWCTriggerBase(); - - ///The main user-callable routine of the class. Gets the input & creates the output WCSimWCTriggeredDigitsCollection's, then calls DoTheWork() - void Digitize(); - - ///Returns the number of trigger gates in the event (i.e. the number of triggers passed) - int NumberOfGatesInThisEvent() { return TriggerTimes.size(); } - ///Get the time of the ith trigger - Float_t GetTriggerTime(int i) { return TriggerTimes[i];} - ///Get the trigger type of the ith trigger - TriggerType_t GetTriggerType(int i) { return TriggerTypes[i];} - ///Get the additional trigger information associated with the ith trigger - std::vector GetTriggerInfo(int i) { return TriggerInfos[i];} - ///Get the trigger class name - G4String GetTriggerClassName(){ return triggerClassName; } - - // - // Trigger algorithm option set methods - // - - ///Set whether to allow the number of digits per PMT per trigger to go > 1 - void SetMultiDigitsPerTrigger(G4bool allow_multi) { multiDigitsPerTrigger = allow_multi; } - - // NDigits options - ///Set the threshold for the NDigits trigger - void SetNDigitsThreshold(G4int threshold) { ndigitsThreshold = threshold; } - ///Set the time window for the NDigits trigger - void SetNDigitsWindow(G4int window) { ndigitsWindow = window; } - ///Automatically adjust the NDigits threshold based on the average noise occupancy? - void SetNDigitsAdjustForNoise (G4bool adjust) { ndigitsAdjustForNoise = adjust; } - ///Set the pretrigger window for the NDigits trigger (value will be forced negative) - void SetNDigitsPreTriggerWindow(G4int window) { ndigitsPreTriggerWindow = - abs(window); } - ///Set the posttrigger window for the NDigits trigger (value will be forced positive) - void SetNDigitsPostTriggerWindow(G4int window) { ndigitsPostTriggerWindow = + abs(window); } - - // Save trigger failures options - ///Set the mode for saving failed triggers (0:save only triggered events, 1:save both triggered events & failed events, 2:save only failed events) - void SetSaveFailuresMode (G4int mode ) { saveFailuresMode = mode; } - ///Set the dummy trigger time for the failed triggers - void SetSaveFailuresTime (G4double time ) { saveFailuresTime = time; } - ///Set the pretrigger window for the SaveFailures trigger (value will be forced negative) - void SetSaveFailuresPreTriggerWindow(G4int window) { saveFailuresPreTriggerWindow = - abs(window); } - ///Set the posttrigger window for the SaveFailures trigger (value will be forced positive) - void SetSaveFailuresPostTriggerWindow(G4int window) { saveFailuresPostTriggerWindow = + abs(window); } - - ///Knowledge of the dark rate (use for automatically adjusting for noise) - void SetDarkRate(double idarkrate){ PMTDarkRate = idarkrate; } - - ///Save current values of options - void SaveOptionsToOutput(WCSimRootOptions * wcopt); - -protected: - - ///This should call the trigger algorithms, and handle any temporary DigitsCollection's - virtual void DoTheWork(WCSimWCDigitsCollection* WCDCPMT) = 0; - - /// Get the default threshold, etc. from the derived class, and override with read from the .mac file - void GetVariables(); - - ///Set the default trigger class specific decision of whether to save multiple digits per PMT per trigger (overridden by .mac) - virtual bool GetDefaultMultiDigitsPerTrigger() { return true; } - ///Set the default trigger class specific NDigits window (in ns) (overridden by .mac) - virtual int GetDefaultNDigitsWindow() { return 200; } - ///Set the default trigger class specific NDigits threshold (in ns) (overridden by .mac) - virtual int GetDefaultNDigitsThreshold() { return 25; } //Default - //virtual int GetDefaultNDigitsThreshold() { return 20; } //B.Q - ///Set the default trigger class specific NDigits pretrigger window (in ns) (overridden by .mac) - virtual int GetDefaultNDigitsPreTriggerWindow() { return -400; } - ///Set the default trigger class specific NDigits posttrigger window (in ns) (overridden by .mac) - virtual int GetDefaultNDigitsPostTriggerWindow() { return 950; } - - ///Get the pretrigger window for a given trigger algorithm - int GetPreTriggerWindow(TriggerType_t t); - ///Get the posttrigger window for a given trigger algorithm - int GetPostTriggerWindow(TriggerType_t t); - - //these are the algorithms that perform triggering - //they are stored here so that different trigger classes can use the same algorithms without copying code - /** - * \brief An NDigits trigger algorithm - * - * Looks through the input WCSimWCDigitsCollection and integrates the number of hits in a (specified) time window - * If the integral passes above a (specified) threshold, a trigger is issued - * - * The trigger type is kTriggerNDigits - * - * The trigger time is the time of the first digit above threshold - * - * The trigger information is the number of hits in the time window (i.e. the number of hits that caused the trigger to fire) - * - * Currently setup with the optional 'test' argument which runs the algorithm with half the hit threshold - * for testing purposes. Triggers issued in this mode have type kTriggerNDigitsTest - */ - void AlgNDigits(WCSimWCDigitsCollection* WCDCPMT, bool remove_hits, bool test=false); - - WCSimWCTriggeredDigitsCollection* DigitsCollection; ///< The main output of the class - collection of digits in the trigger window - std::map DigiHitMap; ///< Keeps track of the PMTs that have been added to the output WCSimWCTriggeredDigitsCollection - - std::vector TriggerTimes; ///< The times of the triggers - std::vector TriggerTypes; ///< The type of the triggers - std::vector< std::vector > TriggerInfos; ///< Additional information associated with each trigger - - WCSimWCDAQMessenger* DAQMessenger; ///< Get the options from the .mac file - WCSimDetectorConstruction* myDetector; ///< Know about the detector, so can add appropriate PMT time smearing - - G4String detectorElement; - - /// Clear the Trigger* vectors and DigiHitMap - void ReInitialize() { - TriggerTimes.clear(); - TriggerTypes.clear(); - TriggerInfos.clear(); - DigiHitMap.clear(); - } - - double PMTDarkRate; ///< Dark noise rate of the PMTs - - // Trigger algorithm options - G4bool multiDigitsPerTrigger; ///< Allow the number of digits per PMT saved in each trigger window to go > 1? - //NDigits - G4int ndigitsThreshold; ///< The threshold for the NDigits trigger - G4int ndigitsWindow; ///< The time window for the NDigits trigger - G4bool ndigitsAdjustForNoise; ///< Automatically adjust the NDigits trigger threshold based on the average dark noise rate? - G4int ndigitsPreTriggerWindow; ///< The pretrigger window to save before an NDigits trigger - G4int ndigitsPostTriggerWindow; ///< The posttrigger window to save after an NDigits trigger - //Save failures - G4int saveFailuresMode; ///< The mode for saving events which don't pass triggers - G4double saveFailuresTime; ///< The dummy trigger time for failed events - G4int saveFailuresPreTriggerWindow; ///< The pretrigger window to save before an SaveFailures trigger - G4int saveFailuresPostTriggerWindow; ///< The posttrigger window to save after an SaveFailures trigger - - G4String triggerClassName; ///< Save the name of the trigger class - -private: - ///modify the NDigits threshold based on the average dark noise rate - void AdjustNDigitsThresholdForNoise(); - - ///takes all trigger times, then loops over all Digits & fills the output DigitsCollection - void FillDigitsCollection(WCSimWCDigitsCollection* WCDCPMT, bool remove_hits, TriggerType_t save_triggerType); - - ///sort the Trigger vectors (Time, Type, Info) by Trigger Time - void SortTriggersByTime() { - int i, j; - TriggerType_t index_type; - float index_time; - std::vector index_info; - for (i = 1; i < (int) TriggerTimes.size(); ++i) { - index_time = TriggerTimes[i]; - index_type = TriggerTypes[i]; - index_info = TriggerInfos[i]; - for (j = i; j > 0 && TriggerTimes[j-1] > index_time; j--) { - TriggerTimes[j] = TriggerTimes[j-1]; - TriggerTypes[j] = TriggerTypes[j-1]; - TriggerInfos[j] = TriggerInfos[j-1]; - }//j - TriggerTimes[j] = index_time; - TriggerTypes[j] = index_type; - TriggerInfos[j] = index_info; - }//i - } - - static const double offset; ///< Hit time offset (ns) - static const double LongTime; ///< An arbitrary long time to use in loops (ns) - - bool digitizeCalled; ///< Has Digitize() been called yet? -}; - -// ******************************************* -// CONTAINER CLASS -// ******************************************* - -class WCSimWCDigiTrigger : public G4VDigi -{ -public: - - WCSimWCDigiTrigger(); - ~WCSimWCDigiTrigger(); - WCSimWCDigiTrigger(const WCSimWCDigiTrigger&); - const WCSimWCDigiTrigger& operator=(const WCSimWCDigiTrigger&); - int operator==(const WCSimWCDigiTrigger&) const; - - inline void* operator new(size_t); - inline void operator delete(void*); - - void Draw() {} - void Print(); - - inline void SetTubeID(G4int tube) { tubeID = tube; } - inline void AddGate (G4int gate) { Gates.insert(gate); } - inline void AddPe () { totalPe++; } - inline void SetPe (G4int gate, G4float Q) { pe.insert(std::pair(gate,Q)); } - inline void SetTime (G4int gate, G4float T) { time.insert(std::pair(gate,T)); } - - /// Add a whole vector for one digit to fDigiComp. Clear input vector once added. - void AddDigiCompositionInfo(G4int gate, std::vector &digi_comp){ - fDigiComp.insert(std::pair >(gate, digi_comp)); - digi_comp.clear(); - } - - inline G4int GetTubeID() {return tubeID;} - inline std::vector GetPe (int gate) { return FindInMultimap(gate, pe); } - inline std::vector GetTime (int gate) { return FindInMultimap(gate, time); } - std::vector > GetDigiCompositionInfo(int gate) - { - std::vector > v; - std::multimap >::iterator it = fDigiComp.begin(); - for (; it != fDigiComp.end(); ++it) { - if((it->first) == gate) - v.push_back(it->second); - } - return v; - } - - inline int NumberOfGates() { return Gates.size(); } - inline int NumberOfSubEvents() { return Gates.size() - 1; } - inline bool HasHitsInGate(int gate) { return Gates.count(gate) > 0; } - -private: - G4int tubeID; ///< PMT id of the digit - - std::set Gates; ///< 'Gates' specifies subevent - - //lists (meaning multimap) of information for each digit created on the PMT - std::multimap pe; ///< Digit charge - std::multimap time; ///< Digit time - std::multimap > fDigiComp; ///< Stores the unique IDs of each photon making up a digit - - //integrated hit/digit parameters - G4int totalPe; ///< Total charge on digit - - template std::vector FindInMultimap(const int compare, typename std::multimap &map) - { - typename std::vector v; - typename std::multimap::iterator it = map.begin(); - for (; it != map.end(); ++it) { - if((it->first) == compare) - v.push_back(it->second); - } - return v; - } - -}; - -extern G4Allocator WCSimWCDigiTriggerAllocator; - -inline void* WCSimWCDigiTrigger::operator new(size_t) -{ - void* aDigi; - aDigi = (void*) WCSimWCDigiTriggerAllocator.MallocSingle(); - return aDigi; -} - -inline void WCSimWCDigiTrigger::operator delete(void* aDigi) -{ - WCSimWCDigiTriggerAllocator.FreeSingle((WCSimWCDigiTrigger*) aDigi); -} - - - -// ******************************************* -// DERIVED CLASSES -// ******************************************* - - -/** - * \class WCSimWCTriggerNDigits - * - * \brief A simple NDigits trigger class - * - */ - -class WCSimWCTriggerNDigits : public WCSimWCTriggerBase -{ -public: - - ///Create WCSimWCTriggerNDigits instance with knowledge of the detector and DAQ options - WCSimWCTriggerNDigits(G4String name, WCSimDetectorConstruction*, WCSimWCDAQMessenger*, G4String detectorElement); - - ~WCSimWCTriggerNDigits(); - -private: - ///Calls the workhorse of this class: AlgNDigits - void DoTheWork(WCSimWCDigitsCollection* WCDCPMT); - - bool GetDefaultMultiDigitsPerTrigger() { return false; } ///< SKI saves only earliest digit on a PMT in the trigger window - int GetDefaultNDigitsWindow() { return 200; } ///< SK max light travel time ~200 ns - // int GetDefaultNDigitsThreshold() { return 25; } ///< SK NDigits threshold ~25 - int GetDefaultNDigitsThreshold() { return 20; } ///< SK NDigits threshold ~25 B.Q - int GetDefaultNDigitsPreTriggerWindow() { return -400; } ///< SK SLE trigger window ~-400 - int GetDefaultNDigitsPostTriggerWindow() { return 950; } ///< SK SLE trigger window ~+950 -}; - - -/** - * \class WCSimWCTriggerNDigits2 - * - * \brief An (incomplete) example of running two trigger algorithms, one after the other - * - */ - -class WCSimWCTriggerNDigits2 : public WCSimWCTriggerBase -{ -public: - - //not recommended to override these methods - WCSimWCTriggerNDigits2(G4String name, WCSimDetectorConstruction*, WCSimWCDAQMessenger*, G4String detectorElements); - ~WCSimWCTriggerNDigits2(); - -private: - void DoTheWork(WCSimWCDigitsCollection* WCDCPMT); - - bool GetDefaultMultiDigitsPerTrigger() { return false; } ///< SKI saves only earliest digit on a PMT in the trigger window - int GetDefaultNDigitsWindow() { return 200; } ///< SK max light travel time ~200 ns - // int GetDefaultNDigitsThreshold() { return 50; } ///< 2 * SK NDigits threshold ~25 - int GetDefaultNDigitsThreshold() { return 40; } ///< 2 * SK NDigits threshold ~25 B.Q - int GetDefaultNDigitsPreTriggerWindow() { return -400; } ///< SK SLE trigger window ~-400 - int GetDefaultNDigitsPostTriggerWindow() { return 950; } ///< SK SLE trigger window ~+950 -}; - - - -#endif //WCSimWCTrigger_h diff --git a/libWCSIM/include/evNtuple.h b/libWCSIM/include/evNtuple.h deleted file mode 100644 index b81c597..0000000 --- a/libWCSIM/include/evNtuple.h +++ /dev/null @@ -1,106 +0,0 @@ -// Should at some point replace jhfNtuple, but that is now a global, extern, -// while it should be a member variable. I don't want to break WCSim too much yet. - -// Makes filling branches from EventAction to RunAction very easy, while keeping flat structure. -#include "WCSimEnumerations.hh" - -struct eventNtuple{ - - //event info: - InteractionType_t interaction_mode; // interaction mode - Char_t vtxVolume[100]; // volume of vertex - //already flatten array because have to initialize index by index anyway - double vtx_x; // interaction vertex - double vtx_y; - double vtx_z; - - // Beam and target move to eventInfo from Tracks? - // Both don't have start and stop, only vertex and PiD and direction and flag - // While pGun is one primary with start and stop if generated inside the detector - - - - - //tracks: - int nTracks; // number of final state particles - int pid[100]; // id of ith final state particle - int flag[100]; // flag: -1 = beam particle (incoming neutrino) - // -2 = target - // 0 = pGun or Cosmic primary - // 1 = outgoing lepton - // 2 = most energetic outgoing nucleon - float mass[100]; // mass of ith final state particle - float p[100]; // momentum of ith final state particle - float energy[100]; // energy of ith final state particle - int startvol[100]; // starting volume of ith final state particle - int stopvol[100]; // stopping volume of ith final state particle - float dir_x[100]; // direction of ith final state particle - float dir_y[100]; // direction of ith final state particle - float dir_z[100]; // direction of ith final state particle - float pdir_x[100]; // momentum-vector of ith final state particle - float pdir_y[100]; // momentum-vector of ith final state particle - float pdir_z[100]; // momentum-vector of ith final state particle - float start_x[100]; // starting point of ith final state particle - float start_y[100]; // starting point of ith final state particle - float start_z[100]; // starting point of ith final state particle - - float stop_x[100]; // stopping point of ith final state particle - float stop_y[100]; // stopping point of ith final state particle - float stop_z[100]; // stopping point of ith final state particle - float length[100]; // TrackLength - - int parent[100]; // ID of parent of ith particle (0 if primary) - int trackID[100]; // trackID of ith particle (1 if primary) - float time[100]; // creation time of the ith particle - //ToDo: add distance start to wall and stop to wall - - - - //hits: from WCDC_hits (= WCHC + tagged noise) - // ToDo: extend to OD/ID when OD is implemented - int numTubesHit; // Total number of tubes with hits - int numTubesHit_noNoise; // Total number of tubes with physics hits - int totalNumHits; // hits per event = hits per Tube x numTubesHit - int totalNumHits_noNoise; // hits per event = hits per Tube x numTubesHit - - - int totalPe[10000000]; // The totalPE recorded at each tube - int totalPe_noNoise[10000000];// The totalPE recorded at each tube, without DN - float truetime[10000000]; // The true time of each hit - int vector_index[10000000]; // Index in vector of hits - int tubeid[10000000]; // Readout tube ID - int mPMTid[10000000]; // Readout tube mPMT ID - int mPMT_pmtid[10000000]; // Readout tube mPMT-PMT ID - int parentid[10000000]; // Track ID of originating parent, 1 = initial primary particle ( NOT parentID of parent!!) - int trackid[10000000]; // Track ID - // Optional? - float tube_x[10000000]; // Tube position - float tube_y[10000000]; - float tube_z[10000000]; - float tube_dirx[10000000]; // Hit tube orientation - float tube_diry[10000000]; - float tube_dirz[10000000]; - - - //digits: from WCDC (= WCDC_hits: but triggered and digitized) - // ToDo: extend to OD/ID when OD is implemented - int numDigiTubesHit; // Number of PMTs with digitized hits - int totalNumDigiHits; // Digitized hits per event = hits per Tube x numTubesHit - float sumq; // Sum of q(readout digitized pe) in event - - float q[10000000]; // The readout digitized pe - float t[10000000]; // The readout digitized time - int digivector_index[10000000]; // Index in vector of digits - int digitubeid[10000000]; // Readout tube ID - int digimPMTid[10000000]; // Readout tube mPMT ID - int digimPMT_pmtid[10000000]; // Readout tube mPMT-PMT ID - // Optional? - float digitube_x[10000000]; // Tube position - float digitube_y[10000000]; - float digitube_z[10000000]; - float digitube_dirx[10000000]; // Hit tube orientation - float digitube_diry[10000000]; - float digitube_dirz[10000000]; - // Save DigiCompositionInfo? Not now: ToDo, needs to be a 2D array, even in flat_root - -}; diff --git a/libWCSIM/include/jhfNtuple.h b/libWCSIM/include/jhfNtuple.h deleted file mode 100644 index 332b31f..0000000 --- a/libWCSIM/include/jhfNtuple.h +++ /dev/null @@ -1,89 +0,0 @@ -#include "WCSimEnumerations.hh" -struct ntupleStruct -{ - //int mode; // interaction mode - InteractionType_t mode; // interaction mode - int vtxvol; // volume of vertex - float vtx[3]; // interaction vertex - int vecRecNumber; // info event number in inputvetcotfile - int jmu; // index to muon - int jp; // index to proton - int npar; // number of final state particles - int ipnu[50]; // id of ith final state particle - int flag[50]; // flag: -1 = incoming neutrino - // -2 = target - // 1 = outgoing lepton - // 2 = most energetic outgoing nucleon - float m[50]; // mass of ith final state particle - float p[50]; // momentum of ith final state particle - float E[50]; // energy of ith final state particle - int startvol[50]; // starting volume of ith final state particle - int stopvol[50]; // stopping volume of ith final state particle - float dir[50][3]; // direction of ith final state particle - float pdir[50][3]; // momentum-vector of ith final state particle - float stop[50][3]; // stopping point of ith final state particle - float start[50][3]; // starting point of ith final state particle - int parent[50]; // ID of parent of ith particle (0 if primary) - float time[50]; // creation time of the ith particle - - int numTubesHit; // Total number of tubes with hits - int totalPe[500]; // The totalPE recorded at each tube - float truetime[500][90]; // The true time of each hit - - int numDigitizedTubes; // Number of PMTs with digitized hits - float q[500]; // The readout digitized pe - float t[500]; // The readout digitized time - int tubeid[500]; // The readout tube ID - float sumq; // sum of q(readout digitized pe) in event - - int fvnumTubesHit; // Total number of inner tubes with hits - int fvtotalPe[500]; // The totalPE recorded at each innertube - float fvtruetime[500][90]; // The true time of each inner hit - - int fvnumDigitizedTubes; // Number of PMTs with digitized hits - float fvq[500]; // The readout digitized pe - float fvt[500]; // The readout digitized time - int fvtubeid[500]; // The readout tube ID - float fvsumq; // sum of q(readout digitized pe) in event -}; - -extern struct ntupleStruct jhfNtuple; - -/* Not used: -static const char* ntDesc = -"mode:I," -"vtxvol:I," -"vtx(3):R," -"vecRecNumber:I," -"jmu:I," -"jp:I," -"npar[0,50]:I," -"ipnu(npar):I," -"flag(npar):I," -"m(npar):R," -"p(npar):R," -"E(npar):R," -"startvol(npar):I," -"stopvol(npar):I," -"dir(3,npar):R," -"pdir(3,npar):R," -"stoppos(3,npar):R," -"startpos(3,npar):R," -"parent(npar):I," -"time(npar):R," -"numTubesHit[0,500]:I," -"totalPe(numTubesHit):I," -"truetime(90,numTubesHit):R," -"numDigTubes[0,500]:I," -"q(numDigTubes):R," -"t(numDigTubes):R," -"tubeid(numDigTubes):I" -"fvnumTubesHit[0,500]:I," -"fvtotalPe(fvnumTubesHit):I," -"fvtruetime(90,fvnumTubesHit):R," -"fvnumDigTubes[0,500]:I," -"fvq(fvnumDigTubes):R," -"fvt(fvnumDigTubes):R," -"fvtubeid(fvnumDigTubes):I"; - -*/ diff --git a/libWCSIM/libWCSimRoot.so b/libWCSIM/libWCSimRoot.so deleted file mode 100755 index b90a46d20c628bb4d362752bb9f106d6c13d3cd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1723709 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 z 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