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
void AddPlate(EdbPlateP *pl)
Definition: EdbBrick.h:51
void SetPlatesLayout(float z0, float z1, float z2)
Definition: EdbBrick.cxx:95
void SetDXDY(float dx, float dy)
Definition: EdbBrick.cxx:114
EdbPlateP * GetPlate(int i)
Definition: EdbBrick.h:52
int Npl() const
Definition: EdbBrick.h:50
void SetXY(float x, float y)
Definition: EdbLayer.h:97
void SetZlayer(float z, float zmin, float zmax)
Definition: EdbLayer.h:102
float Zmin() const
Definition: EdbLayer.h:81
float Zmax() const
Definition: EdbLayer.h:82
float Z() const
Definition: EdbLayer.h:78
Definition: EdbBrick.h:13

◆ 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:37

◆ 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:280
void SetPID(int pid)
Definition: EdbPattern.h:319
void AddPattern(EdbPattern *pat)
Definition: EdbPattern.cxx:1867
void SetPatternsID()
Definition: EdbPattern.cxx:1763

◆ 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:348

◆ Print()

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

◆ 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: