vmc-project / vmc Goto Github PK
View Code? Open in Web Editor NEWThe Virtual Monte Carlo core library.
License: GNU General Public License v3.0
The Virtual Monte Carlo core library.
License: GNU General Public License v3.0
The compilation of the legacy code now fails. This is fixed by adding the options to Geant3BuildLibrary.cmake
<-fallow-argument-mismatch -fallow-invalid-boz>
I don't know whether this needs to be conditional on gfortran_version>9 or whether it will be OK for older versions as well.
We are currently investigating some (internal) redesign. For this we consider multiple inheritance. Simplified:
M1
inherits from nothingM2
(basically FairModule) inherits from TNamedD1
inherits from M1
and TVirtualMCSensitiveDetector
D2
(basically FairDetector) inherits from M2
and TVirtualMCSensitiveDetector
classDiagram
M1 <|-- D1
TVirtualMCSensitiveDetector <|-- D1
TNamed <|-- TVirtualMCSensitiveDetector
TNamed_ <|-- M2
M2 <|-- D2
TVirtualMCSensitiveDetector <|-- D2
Case D1
is simple and will just work.
But case D2
has a problem. There are two ways to reach TNamed. I think this is called diamond inheritance. Currently D2
will have two copies of TNamed (TNamed
and TNamed_
in the diagram). Not really, what we want.
The C++ answer to this problem is called virtual base classes. These come with some performance overhead when accessing TNamed member variables (might or might not be relevant. We haven't checked).
classDiagram
M1 <|-- D1
TVirtualMCSensitiveDetector <|-- D1
TNamed <|-- TVirtualMCSensitiveDetector
TNamed <|-- M2
M2 <|-- D2
TVirtualMCSensitiveDetector <|-- D2
Another question is, whether vmc, geamt4_vmc and geant3 actually depend on TVirtualMCSensitiveDetector
deriving from TNamed
? If none of them depend on this base class, it maybe could be dropped from TVirtualMCSensitiveDetector
? This would solve D2 and even improve D1, because the whole TNamed thing would be gone.
classDiagram
M1 <|-- D1
TVirtualMCSensitiveDetector <|-- D1
TNamed <|-- M2
M2 <|-- D2
TVirtualMCSensitiveDetector <|-- D2
What do you think?
cc: @dennisklein
In TGeant3
AddIons() is called before InitGeometry():
fApplication->AddIons();
fApplication->InitGeometry();
On the contrary, the order of calling these functions in TGeant4
is different:
fApplication->InitGeometry();
fApplication->AddIons();
Is it intended behavior?
Can it be changed so that the functions are called in the same order in both TGeant3 and TGeant4?
Hello.
We found some difference in particle acceptance using GEANT3 and 4. After some study I found possible source of difference.
I simulated proton and anti-p with flat momentum distribution. They fly through magnetic field until detector. I built momentum of the particles accepted in the detector. These distributions in GEANT3 and 4 are different for particles with momentum lower 2-3 GeV/c. I changed the medium description for GEANT3, and can reproduce GEANT4 distribution. I tried to explain my study a few slides. I would like to ask: could you please check, that all medium parameters concerning magnetic field are proper calculated or converted from input file to the GEANT3, and they are the same as for GEANT4.
Best regards
Anna Senger
G3_G4.pdf
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.