FEDRA emulsion software from the OPERA Collaboration
EdbBrickGen Class Reference

#include <EdbBrickGen.h>

Inheritance diagram for EdbBrickGen:
Collaboration diagram for EdbBrickGen:

Public Member Functions

EdbBrickPBrick () const
 
 EdbBrickGen ()
 
void Generate ()
 
void GenerateOperaBrick (EdbBrickP &br, int npl, float dx, float dy, float x0, float y0, float z0, float zbase, float zu, float zd, float zspacer)
 
void GenerateOperaBrick (int npl=58, float dx=60000., float dy=50000., float x0=0., float y0=0., float z0=0., float zbase=210., float zu=45., float zd=45., float zspacer=1000.)
 
void GeneratePatternsVolumeBT (EdbPatternsVolume &v)
 
void GeneratePatternsVolumeBT (EdbPatternsVolume *v=0)
 
void Print ()
 
EdbPVGenPVG () const
 
 ~EdbBrickGen ()
 

Private Attributes

EdbBrickPeBrick
 
EdbPVGenePVG
 

Constructor & Destructor Documentation

◆ EdbBrickGen()

EdbBrickGen::EdbBrickGen ( )
71{
72 eBrick=0;
73 ePVG=0;
74}
EdbPVGen * ePVG
Definition: EdbBrickGen.h:54
EdbBrickP * eBrick
Definition: EdbBrickGen.h:53

◆ ~EdbBrickGen()

EdbBrickGen::~EdbBrickGen ( )
78{
79 if(eBrick) delete eBrick;
80 if(ePVG) delete ePVG;
81}

Member Function Documentation

◆ Brick()

EdbBrickP * EdbBrickGen::Brick ( ) const
inline
60{return eBrick;}

◆ Generate()

void EdbBrickGen::Generate ( )
85{
88}
void GeneratePatternsVolumeBT(EdbPatternsVolume &v)
Definition: EdbBrickGen.cxx:152
void GenerateOperaBrick(int npl=58, float dx=60000., float dy=50000., float x0=0., float y0=0., float z0=0., float zbase=210., float zu=45., float zd=45., float zspacer=1000.)
Definition: EdbBrickGen.cxx:98

◆ GenerateOperaBrick() [1/2]

void EdbBrickGen::GenerateOperaBrick ( EdbBrickP br,
int  npl,
float  dx,
float  dy,
float  x0,
float  y0,
float  z0,
float  zbase,
float  zu,
float  zd,
float  zspacer 
)
118{
119 float dzpl = zbase+zu+zd;
120 float zstep = zspacer+dzpl;
121
122 float z = z0;
123 EdbPlateP *pl=0;
124 for(int i=0; i<npl; i++) {
125 pl = new EdbPlateP();
126 pl->SetZlayer( z , z-dzpl/2. , z+dzpl/2. );
127 z += zstep;
128 br.AddPlate(pl);
129 }
130 br.SetPlatesLayout(zbase,zu,zd);
131 br.SetXY(x0,y0);
132 br.SetDXDY(dx,dy);
133
134 br.SetZlayer( br.GetPlate(0)->Z(),
135 br.GetPlate(0)->Zmin(),
136 br.GetPlate(br.Npl()-1)->Zmax());
137
138}
brick z0
Definition: RecDispMC.C:106
EdbPlateP * GetPlate(int i)
Definition: EdbBrick.h:53
void AddPlate(EdbPlateP *pl)
Definition: EdbBrick.h:52
void SetPlatesLayout(float z0, float z1, float z2)
Definition: EdbBrick.cxx:97
void SetDXDY(float dx, float dy)
Definition: EdbBrick.cxx:116
int Npl() const
Definition: EdbBrick.h:51
void SetXY(float x, float y)
Definition: EdbLayer.h:96
void SetZlayer(float z, float zmin, float zmax)
Definition: EdbLayer.h:101
float Zmin() const
Definition: EdbLayer.h:80
float Zmax() const
Definition: EdbLayer.h:81
float Z() const
Definition: EdbLayer.h:77
Definition: EdbBrick.h:14

◆ GenerateOperaBrick() [2/2]

void EdbBrickGen::GenerateOperaBrick ( int  npl = 58,
float  dx = 60000.,
float  dy = 50000.,
float  x0 = 0.,
float  y0 = 0.,
float  z0 = 0.,
float  zbase = 210.,
float  zu = 45.,
float  zd = 45.,
float  zspacer = 1000. 
)
103{
104 // Generate the typical OPERA brick with the given settings
105
106 if(eBrick) delete eBrick;
107 eBrick = new EdbBrickP();
108 GenerateOperaBrick( *eBrick, npl, dx, dy, x0, y0, z0,zbase, zu, zd, zspacer );
109}
Definition: EdbBrick.h:38

◆ GeneratePatternsVolumeBT() [1/2]

void EdbBrickGen::GeneratePatternsVolumeBT ( EdbPatternsVolume v)
153{
154 int npl = eBrick->Npl();
155 EdbPattern *pat =0;
156 for(int i=0; i<npl; i++) {
157 pat = new EdbPattern( 0,0, eBrick->GetPlate(i)->Z() );
158 pat->SetPID(i);
159 v.AddPattern(pat);
160 }
161 v.SetPatternsID();
162}
Definition: EdbPattern.h:273
void SetPID(int pid)
Definition: EdbPattern.h:310
void AddPattern(EdbPattern *pat)
Definition: EdbPattern.cxx:1707
void SetPatternsID()
Definition: EdbPattern.cxx:1603

◆ GeneratePatternsVolumeBT() [2/2]

void EdbBrickGen::GeneratePatternsVolumeBT ( EdbPatternsVolume v = 0)
142{
143 // generate the patterns structure 1 pattern/plate (corresponding to basetracks)
144
145 if(!ePVG) ePVG = new EdbPVGen();
146 if(!v) v = new EdbPatternsVolume();
148 ePVG->SetVolume(v);
149}
Definition: EdbPVGen.h:18
void SetVolume(EdbPatternsVolume *pv)
Definition: EdbPVGen.h:34
Definition: EdbPattern.h:334

◆ Print()

void EdbBrickGen::Print ( )
92{
93 if(eBrick) eBrick->Print();
94 if(ePVG) ePVG->Print();
95}
void Print()
Definition: EdbBrick.cxx:134

◆ PVG()

EdbPVGen * EdbBrickGen::PVG ( ) const
inline
61{return ePVG; }

Member Data Documentation

◆ eBrick

EdbBrickP* EdbBrickGen::eBrick
private

◆ ePVG

EdbPVGen* EdbBrickGen::ePVG
private

The documentation for this class was generated from the following files: