FEDRA emulsion software from the OPERA Collaboration
EdbPVGen.h
Go to the documentation of this file.
1#ifndef ROOT_EdbPVGen
2#define ROOT_EdbPVGen
3
5// //
6// EdbPVGen - Patterns Volume Generator //
7// //
8// collection of agorithms //
9// //
11#include "TROOT.h"
12#include "TMath.h"
13#include "TGenPhaseSpace.h"
14#include "EdbPVRec.h"
15#include "EdbVertex.h"
16
17//______________________________________________________________________________
18class EdbPVGen : public TObject {
19
20 private:
21
23
25
26 public:
27 TObjArray *eTracks;
28 TObjArray *eVTX; //
30 public:
32 ~EdbPVGen();
33
37
38 void SmearSegments();
39 void SmearPatterns(float shift, float rot);
40
41 void GenerateBeam( int n, float x[4], float sx[4], float lim[4], float z0, int flag=0 );
42 void GenerateBackground( int n, float x[4], float sx[4], int flag=0 );
43
44 void GeneratePulsPoisson( float mean, float amp=1., float wmin=0, float wmax=0., int flag=0 );
45 void GeneratePulsGaus( float amp, float mean, float sigma, float wmin=0, float wmax=0., int flag=0 );
46
48
50 if(!eTracks) { eTracks = new TObjArray(); eEVR->eEdbTracks = eTracks; }
51 eTracks->Add(track);
52 }
53
54 void AddVertex(EdbVertex *vtx) {
55 if(!eVTX) { eVTX = new TObjArray(); eEVR->eVTX = eVTX; }
56 eVTX->Add((TObject*)vtx);
57 }
58
59 void SmearSegment( EdbSegP &s, EdbScanCond &cond );
60 float PropagateSegment( EdbSegP &s, float dz,
61 float X0,
62 float m,
63 int eloss_flag );
64 int TrackMC2( EdbTrackP &tr,
66 int eloss_flag, float PGap);
67
68 void TrackMC( float zlim[2], float lim[4],
69 EdbTrackP &tr, int eloss_flag = 0, float PGap = 0. );
70
71 void GenerateUncorrelatedSegments(int nb, float lim[4],
72 float TetaMax, int flag );
73
74 void GenerateBackgroundTracks(int nb, float vlim[4], float lim[4],
75 float plim[2], float TetaMax,
76 float ProbGap, int eloss_flag );
77
78 void GeneratePhaseSpaceEvents( int nv, TGenPhaseSpace *pDecay, float vzlim[2],
79 float vlim[4], float lim[4], float ProbGap,
80 int eloss_flag, int *charges );
82 TGenPhaseSpace *pDecay,
83 TGenPhaseSpace *pSecond,
84 float vzlim[2], float vlim[4],
85 float lim[4], float ProbGap,
86 int eloss_flag, int *charges );
87
88 int MakeTracksMC(int nsegmin, TObjArray *tracks);
89
90 ClassDef(EdbPVGen,1) // PatternsVolume Generator
91};
92
93#endif /* ROOT_EdbPVGen */
brick z0
Definition: RecDispMC.C:106
brick dz
Definition: RecDispMC.C:107
TGenPhaseSpace * pDecay
Definition: RecDispMC.C:187
int eloss_flag
Definition: RecDispMC.C:89
brick X0
Definition: RecDispMC.C:112
brick lim[0]
Definition: RecDispMC.C:108
float ProbGap
Definition: RecDispMC.C:56
int charges[101]
Definition: RecDispMC.C:148
EdbScanCond * scan
Definition: RecDispNU.C:117
TTree * tr
Definition: Shower_E_FromShowerRoot.C:5
Definition: EdbLayer.h:39
Definition: EdbPVGen.h:18
void GenerateBeam(int n, float x[4], float sx[4], float lim[4], float z0, int flag=0)
Definition: EdbPVGen.cxx:41
void GeneratePhaseSpaceEvents(int nv, TGenPhaseSpace *pDecay, float vzlim[2], float vlim[4], float lim[4], float ProbGap, int eloss_flag, int *charges)
Definition: EdbPVGen.cxx:699
~EdbPVGen()
Definition: EdbPVGen.cxx:33
void GenerateBackground(int n, float x[4], float sx[4], int flag=0)
Definition: EdbPVGen.cxx:81
void SmearSegments()
Definition: EdbPVGen.cxx:190
void TrackMC(float zlim[2], float lim[4], EdbTrackP &tr, int eloss_flag=0, float PGap=0.)
Definition: EdbPVGen.cxx:389
TObjArray * eTracks
Definition: EdbPVGen.h:27
void GeneratePulsPoisson(float mean, float amp=1., float wmin=0, float wmax=0., int flag=0)
Definition: EdbPVGen.cxx:136
int MakeTracksMC(int nsegmin, TObjArray *tracks)
Definition: EdbPVGen.cxx:1046
void GenerateUncorrelatedSegments(int nb, float lim[4], float TetaMax, int flag)
Definition: EdbPVGen.cxx:587
EdbVertexRec * eEVR
Definition: EdbPVGen.h:29
void GeneratePulsGaus(float amp, float mean, float sigma, float wmin=0, float wmax=0., int flag=0)
Definition: EdbPVGen.cxx:163
void GeneratePhaseSpaceEventsWithDecay(int nv, TGenPhaseSpace *pDecay, TGenPhaseSpace *pSecond, float vzlim[2], float vlim[4], float lim[4], float ProbGap, int eloss_flag, int *charges)
Definition: EdbPVGen.cxx:839
void GenerateBackgroundTracks(int nb, float vlim[4], float lim[4], float plim[2], float TetaMax, float ProbGap, int eloss_flag)
Definition: EdbPVGen.cxx:640
EdbPatternsVolume * ePVolume
Definition: EdbPVGen.h:22
void FillRecVolumeBT(EdbPatternsVolume &vrec)
Definition: EdbPVGen.cxx:112
void SmearSegment(EdbSegP &s, EdbScanCond &cond)
Definition: EdbPVGen.cxx:337
EdbPatternsVolume * GetVolume() const
Definition: EdbPVGen.h:36
void AddVertex(EdbVertex *vtx)
Definition: EdbPVGen.h:54
void SetVolume(EdbPatternsVolume *pv)
Definition: EdbPVGen.h:34
TObjArray * eVTX
Definition: EdbPVGen.h:28
int TrackMC2(EdbTrackP &tr, EdbLayer &lim, int eloss_flag, float PGap)
Definition: EdbPVGen.cxx:230
void SetScanCond(EdbScanCond *scan)
Definition: EdbPVGen.h:35
float PropagateSegment(EdbSegP &s, float dz, float X0, float m, int eloss_flag)
Definition: EdbPVGen.cxx:277
EdbScanCond * eScanCond
Definition: EdbPVGen.h:24
void SmearPatterns(float shift, float rot)
Definition: EdbPVGen.cxx:213
void AddTrack(EdbTrackP *track)
Definition: EdbPVGen.h:49
Definition: EdbPattern.h:334
Definition: EdbScanCond.h:10
Definition: EdbSegP.h:21
Definition: EdbPattern.h:113
Definition: EdbVertex.h:194
TObjArray * eVTX
array of vertex
Definition: EdbVertex.h:205
TObjArray * eEdbTracks
Definition: EdbVertex.h:204
Definition: EdbVertex.h:69
Definition: bitview.h:14
s
Definition: check_shower.C:55
TTree * tracks
Definition: check_tr.C:19
int nsegmin
Definition: check_vertex.C:23