Giter Club home page Giter Club logo

vmc's People

Contributors

amadio avatar axel-naumann avatar bellenot avatar benedikt-voelkel avatar christiantackegsi avatar couet avatar dpiparo avatar fonsrademakers avatar hegner avatar ihrivnac avatar pcanal avatar peremato avatar sawenzel avatar teemperor avatar vgvassilev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

vmc's Issues

Consider Dropping `TNamed` inheritance from `TVirtualMCSensitiveDetector`

We are currently investigating some (internal) redesign. For this we consider multiple inheritance. Simplified:

  • Class M1 inherits from nothing
  • Class M2 (basically FairModule) inherits from TNamed
  • Class D1 inherits from M1 and TVirtualMCSensitiveDetector
  • Class 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.

  1. 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
    
  2. 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

AddIons() and InitGeometry() order

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?

Difference GEANT3-GEANT4 via VMC: media in magnetic field (CBMROOT)

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.