Giter Club home page Giter Club logo

compscat's Introduction

CompScat

License Python package GH Pages PyPI Package latest release Supported versions DOI JBI

Author

Aman Desai

Description

Monte Carlo simulation of fixed-target Compton scattering. The study has been compared with Madgraph5amc_NLO MC event generator. The full analysis can be found here Link. The analysis is currently done in C++ (ROOT Framework). To analyse the Madgraph LHE file, an LHE reader deverloped here is used.

Physics

Representative Feynman diagrams for compton scattering

compton-feynman diagram 2 compton-feynman diagram 2

Validation of CompScat

The following plots compare the final states for CompScat with the Madgraph5amc_NLO final states.

Cross section

Evaluated using $10^6$ phase points with CompScat and using the Madgraph file as given in analysis folder.

Plot showing the cross section versus energy (with error bars):

xsec_vs_energy

Initial Photon Energy CompScat $\sigma$ (milibarn) Madgraph $\sigma$ (milibarn)
50 MeV 15.585 $\pm$ 0.0495 15.57 $\pm$ 0.037
100 MeV 8.783 $\pm$ 0.0361 8.799 $\pm$ 0.028
200 MeV 4.857 $\pm$ 0.0255 4.87 $\pm$ 0.019
300 MeV 3.414 $\pm$ 0.0205 3.43 $\pm$ 0.0081
400 MeV 2.669 $\pm$ 0.0185 2.664 $\pm$ 0.0051
500 MeV 2.194 $\pm$ 0.0161 2.203 $\pm$ 0.0044

In the following, the initial photon energy is set to 0.1 GeV (electron is at rest).

Photon final state kinematics

Electron final state kinematics

Installation

Use:

pip install compscat

or to install from the latest branch use:

git clone https://github.com/amanmdesai/compscat.git
cd compscat
pip install .

Run the generator!

Description of the example in notebooks:

To import the library use

from compscat import CrossSection, SaveEvent,constants,PlotData

and then set the energy of the incoming photon in MeV:

E = 0.1

The step below is the crucial step as the Cross Section is evaluated here. Only the energy is passed as an argument.

w_sum, w_square, w_max = CrossSection(
    E / constants.m
).integrate_xsec()

The script below will generate the events according to the w_max obtained above and Energy specified by the user. Moreover, the below class will also save the events (either as root or in a csv file). To save in root format use:

SaveEvent(10000, w_max, E).to_root()

else to save them in a csv file use:

SaveEvent(10000, w_max, E).to_csv()

Finally the scripts below will plot the data and store it as pdf. If you have saved the events in a root format use:

PlotData.file("MC_compton.root")

else if you are using csv file, use:

PlotData.file("MC_compton.csv")

Evaluate the Cross section

See the notebook 'cross-section.ipynb'

Exercises

  • Evaluate the cross section of compton scattering using the CrossSection module for different initial proton energies. Plot the same.

  • Study the final states at different energies and plot them on the same plot.

  • Find the angles $\phi$ and $\theta$ of scattering.

  • Make a 2D plot of the energy of photon/electron with the angle of scattering ( $\phi$ and $\theta$).

Acknowledgements

We would like to thank Dr. Olivier Mattelaer (UCLouvain, Belgium), whose suggestion on applying cuts in the Madgraph configuration file was helpful in validation of the final states predicted by the CompScat package. We are grateful to Dr. Kilian Lieret (Princeton University, USA), whose suggestion to me about pre-commit config/python packaging (cookiecutter) was helpful in the overall formatting/structuring of the python package.

References

  1. For physics involved in the calculation, see for example, Introduction to Elementary Particles, David Griffiths.
  2. For monte carlo techniques: Statistical data analysis, Glen Cowan, 1998.
  3. For the equations used by the simulator see for example, Link
  4. Also see: Papaefstathiou, A. How-to: write a parton-level Monte Carlo particle physics event generator. Eur. Phys. J. Plus 135, 497 (2020).
  5. Alwall, J. and others, The automated computation of tree-level and next-to-leading order differential cross sections, and their matching to parton shower simulations.

compscat's People

Contributors

amanmdesai avatar dependabot[bot] avatar pre-commit-ci[bot] avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

bmondaliitb

compscat's Issues

add exceptions and update workflow

  • for instance if a file is not available raise error
  • specify the minimum/maximum energies where this would work (check theory)
  • lastly, it would be good if python test could be added to compare madgraph output with our output on the fly (difficult)
  • Add comments in code using docstring

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.