source: trunk/source/processes/hadronic/models/binary_cascade/test/G4BrWigTest.cc@ 1201

Last change on this file since 1201 was 1199, checked in by garnier, 16 years ago

nvx fichiers dans CVS

File size: 3.6 KB
Line 
1//
2// ********************************************************************
3// * DISCLAIMER *
4// * *
5// * The following disclaimer summarizes all the specific disclaimers *
6// * of contributors to this software. The specific disclaimers,which *
7// * govern, are listed with their locations in: *
8// * http://cern.ch/geant4/license *
9// * *
10// * Neither the authors of this software system, nor their employing *
11// * institutes,nor the agencies providing financial support for this *
12// * work make any representation or warranty, express or implied, *
13// * regarding this software system or assume any liability for its *
14// * use. *
15// * *
16// * This code implementation is the intellectual property of the *
17// * GEANT4 collaboration. *
18// * By copying, distributing or modifying the Program (or any work *
19// * based on the Program) you indicate your acceptance of this *
20// * statement, and all its terms. *
21// ********************************************************************
22//
23#include "globals.hh"
24#include "G4ios.hh"
25
26#include "CLHEP/Hist/TupleManager.h"
27#include "CLHEP/Hist/HBookFile.h"
28#include "CLHEP/Hist/Histogram.h"
29#include "CLHEP/Hist/Tuple.h"
30#include "Randomize.hh"
31
32#include <fstream>
33#include <iomanip>
34#include <assert.h>
35#include <iostream>
36#include <G4KineticTrack.hh>
37
38#include "G4PionMinus.hh"
39#include "G4VShortLivedParticle.hh"
40#include "G4ShortLivedConstructor.hh"
41#include "G4ParticleTable.hh"
42#include "G4ShortLivedTable.hh"
43
44int main()
45{
46 // MGP ---- HBOOK initialization
47 HepTupleManager* hbookManager;
48 hbookManager = new HBookFile("brwig.hbook", 58);
49 assert (hbookManager != 0);
50
51 // MGP ---- Book histograms
52
53 HepHistogram* hbrwig;
54 HepHistogram* hbmass;
55 hbrwig = hbookManager->histogram("Breit Wigner", 1000,0.,1.);
56 assert (hbrwig != 0);
57 hbmass = hbookManager->histogram("random mass", 1000,0.,2500.);
58 assert (hbmass != 0);
59
60 G4ParticleDefinition* pionMinus = G4PionMinus::PionMinusDefinition();
61 G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable();
62
63 G4ShortLivedConstructor ShortLived;
64 ShortLived.ConstructParticle();
65
66 G4ParticleDefinition* deltaPlus = particleTable->FindParticle("delta+");
67 G4cout << deltaPlus->GetParticleName() << " created, type is "
68 << deltaPlus->GetParticleType() << G4endl;
69
70 G4ParticleDefinition* definition1;
71 definition1 = deltaPlus;
72 G4double mass1 = definition1->GetPDGMass();
73 G4double width1 = definition1->GetPDGWidth();
74
75 int nevt, DEBUG, nwid;
76 cout << "Enter Debug 0/1" << G4endl;
77 G4cin >> DEBUG;
78 cout << " Enter number of events " << G4endl;
79 G4cin >> nevt;
80 cout << " Enter number of width " << G4endl;
81 G4cin >> nwid;
82
83 G4KineticTrack wig;
84 G4double max=wig.BrWig(width1, mass1, mass1);
85 int i=0;
86 while(i<nevt){
87 // rand mass-nwid*width:mass+nwid*width
88 G4double mass=(mass1+nwid*width1)-(G4UniformRand()*2*nwid*width1);
89 G4double check=max*G4UniformRand();
90 G4double wigt=wig.BrWig(width1, mass1, mass);
91 // fill histo
92 hbrwig->accumulate(wigt);
93 if(check < wigt){
94 hbmass->accumulate(mass);
95 i++;
96 }
97 if (DEBUG == 1)cout << " w/m/xm/brwig " << width1 << " " << mass << " " << mass1 << " " << wigt << G4endl;
98 }
99 hbookManager->write();
100 return EXIT_SUCCESS;
101}
102
103
104
105
106
107
108
109
110
111
Note: See TracBrowser for help on using the repository browser.