PandaRoot
PndLepLepGenerator.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 //----------------------------------------------------//
14 // PndLepLepGenerator header file //
15 //----------------------------------------------------//
16 
23 #ifndef PND_LEPLEPGENERATOR_H
24 #define PND_LEPLEPGENERATOR_H
25 
26 // c/c++
27 #include <stdlib.h>
28 #include <iostream>
29 #include <fstream>
30 #include <sstream>
31 #include <cmath>
32 #include <algorithm>
33 #include <time.h>
34 
35 // ranlux
36 #include "ranlxs.h"
37 #include "ranlxd.h"
38 
39 void ranlxs(float r[], int n);
40 void ranlxd(double r[], int n);
41 
42 void rlxs_init(int level, int seed);
43 void rlxd_init(int level, int seed);
44 
45 // mz (general)
46 #include "mzparameters.h"
47 #include "mzfunctions.h"
48 
49 // mz for pp_to_pipi_vandewi
51 
52 #include "FairGenerator.h"
53 
54 using namespace std;
55 
56 class FairPrimaryGenerator;
57 
58 class PndLepLepGenerator : public FairGenerator {
59  public:
62 
64  virtual ~PndLepLepGenerator();
65 
67  void SetBeamMom(Double_t in_P) { P = in_P; }; // set pbar momentum
68  void SetSeed(Int_t in_seed) { seed = in_seed; }; // set seed
69  void SetParticleID(Int_t in_particleID) { particleID = in_particleID; }; // particle ID (0 - electron, 1 - muon, 2 - tau)
70  void SetGeGmRatio(Int_t in_gegm) { gegm = in_gegm; }; // GE/GM ratio (|GE|/|GM| = 0,1,3)
71  void SetCosThetaMin(Double_t in_cos_theta_min) { cos_theta_min = in_cos_theta_min; }; // set cos(theta*) min in the pbarp CM frame
72  void SetCosThetaMax(Double_t in_cos_theta_max) { cos_theta_max = in_cos_theta_max; }; // set cos(theta*) max in the pbarp CM frame
73 
75  virtual Bool_t ReadEvent(FairPrimaryGenerator *primGen);
76 
78  Bool_t Init();
79 
80  ClassDef(PndLepLepGenerator, 1);
81 
82  Double_t P; // pbar momentum
83  Int_t seed; // seed
84  Int_t particleID; // particle ID (0 - electron, 1 - muon, 2 - tau)
85  Int_t PDGParticleID; // PDG particle ID
86  Int_t gegm; // GE/GM ratio (|GE|/|GM| = 0,1,3)
87  Double_t cos_theta_min; // cos(theta*) min in the pbarp CM frame
88  Double_t cos_theta_max; // cos(theta*) max in the pbarp CM frame
89  Double_t lepplus_p[4]; // lab frame: 4-momentum of a lepton
90  Double_t lepminus_p[4]; // lab frame: 4-momentum of a lepton
91 };
92 
93 #endif
void SetSeed(Int_t in_seed)
void SetBeamMom(Double_t in_P)
STL namespace.
void ranlxd(double r[], int n)
void SetGeGmRatio(Int_t in_gegm)
void ranlxs(float r[], int n)
void rlxd_init(int level, int seed)
void SetCosThetaMax(Double_t in_cos_theta_max)
void SetParticleID(Int_t in_particleID)
void SetCosThetaMin(Double_t in_cos_theta_min)
void rlxs_init(int level, int seed)