FEDRA emulsion software from the OPERA Collaboration
EdbEDABrickData Class Reference

#include <EdbEDA.h>

Inheritance diagram for EdbEDABrickData:
Collaboration diagram for EdbEDABrickData:

Public Member Functions

 EdbEDABrickData ()
 
EdbAffine2DGetAffine (int ipl)
 
double GetBeamTX ()
 
double GetBeamTY ()
 
int GetBrick ()
 
EdbDataSetGetDataSet ()
 
int GetDataType ()
 
int GetFirstPlate ()
 
EdbID GetID ()
 
int GetIPL (int PID)
 
int GetIPLZ (float z)
 
int GetLastPlate ()
 
int GetNPL ()
 
int GetPID (int ipl)
 
int GetPlateDown ()
 
int GetPlateUp ()
 
EdbPVRecGetPVR ()
 
EdbScanSetGetScanSet ()
 
double GetZ (int ipl)
 
double GetZPID (int pid)
 
void SetBeamAngle (double tx, double ty)
 
void SetBrick (int ibrick)
 
void SetDataType (int datatype)
 
void SetID (EdbID id)
 
void SetIDSB (EdbID id)
 
void SetIDSF (EdbID id)
 
void SetPVR (EdbPVRec *pvr)
 
void SetScanSet (EdbScanSet *ss)
 
virtual ~EdbEDABrickData ()
 

Public Attributes

EdbDataSeteDataSet
 
int eDataType
 
int eFirstPlate
 
EdbID eID
 
EdbID eIDSB
 
EdbID eIDSF
 
int eLastPlate
 
EdbPVRecePVR
 
EdbScanProceScanProc
 
EdbScanSeteScanSet
 

Private Attributes

double eBeamTX
 
double eBeamTY
 

Constructor & Destructor Documentation

◆ EdbEDABrickData()

EdbEDABrickData::EdbEDABrickData ( )
inline
213  : eBeamTX(0), eBeamTY(0.058), eDataSet(0), eScanSet(0), ePVR(0), eDataType(-1), eFirstPlate(1), eLastPlate(57){
214  }
int eFirstPlate
Definition: EdbEDA.h:210
double eBeamTX
Definition: EdbEDA.h:196
EdbScanSet * eScanSet
Definition: EdbEDA.h:205
double eBeamTY
Definition: EdbEDA.h:196
int eDataType
Definition: EdbEDA.h:208
int eLastPlate
Definition: EdbEDA.h:211
EdbDataSet * eDataSet
Definition: EdbEDA.h:203
EdbPVRec * ePVR
Definition: EdbEDA.h:206

◆ ~EdbEDABrickData()

virtual EdbEDABrickData::~EdbEDABrickData ( )
inlinevirtual
215 {}

Member Function Documentation

◆ GetAffine()

EdbAffine2D * EdbEDABrickData::GetAffine ( int  ipl)
197  {
198  int i;
199 
200  if(eScanSet){
201  EdbPlateP *p = eScanSet->GetPlate(ipl);
202  if(p!=NULL) return p->GetAffineXY();
203  else return NULL;
204  }
205  else if (eDataSet){
207  for(i=0;i<dset->N();i++){
208  EdbDataPiece *piece = dset->GetPiece(i);
209  if(piece->Plate()==ipl){
210  EdbLayer *l = piece->GetLayer(0);
211  return l->GetAffineXY();
212  }
213  }
214  }
215  return NULL;
216 }
EdbDataProc * dset
Definition: RecDispEX.C:9
Definition: EdbDataSet.h:25
EdbLayer * GetLayer(int id)
Definition: EdbDataSet.h:86
int Plate() const
Definition: EdbDataSet.h:65
Definition: EdbDataSet.h:143
Definition: EdbLayer.h:40
EdbAffine2D * GetAffineXY()
Definition: EdbLayer.h:120
Definition: EdbBrick.h:13
EdbPlateP * GetPlate(Int_t p)
Definition: EdbScanSet.h:57
#define NULL
Definition: nidaqmx.h:84
p
Definition: testBGReduction_AllMethods.C:8

◆ GetBeamTX()

double EdbEDABrickData::GetBeamTX ( )
inline
343 { return eBeamTX;}

◆ GetBeamTY()

double EdbEDABrickData::GetBeamTY ( )
inline
344 { return eBeamTY;}

◆ GetBrick()

int EdbEDABrickData::GetBrick ( )
inline
232 { return eID.eBrick;}
EdbID eID
Definition: EdbEDA.h:201
Int_t eBrick
Definition: EdbID.h:10

◆ GetDataSet()

EdbDataSet* EdbEDABrickData::GetDataSet ( )
inline
244 { return eDataSet;}

◆ GetDataType()

int EdbEDABrickData::GetDataType ( )
inline
234 { return eDataType;}

◆ GetFirstPlate()

int EdbEDABrickData::GetFirstPlate ( )
inline
240 { return eFirstPlate;} // first plate of brick

◆ GetID()

EdbID EdbEDABrickData::GetID ( )
inline
219 { return eID;}

◆ GetIPL()

int EdbEDABrickData::GetIPL ( int  PID)
inline
252  {
253  if(eScanSet) { // using ScanSet for calibration.
254  EdbPlateP *pl = eScanSet->eB.GetPlate(PID);
255  return pl->ID();
256  }
257  else if( eDataSet ){
258  if(PID>=eDataSet->N()) return PID;
259  EdbDataPiece *piece = eDataSet->GetPiece(PID);
260  if(NULL==piece) return PID;
261  return piece->Plate();
262  }
263 
264  return PID;
265  }
EdbPlateP * GetPlate(int i)
Definition: EdbBrick.h:52
EdbDataPiece * GetPiece(int id)
Definition: EdbDataSet.h:162
int N() const
Definition: EdbDataSet.h:161
int ID() const
Definition: EdbLayer.h:74
EdbBrickP eB
Definition: EdbScanSet.h:13
Definition: Flexmotn.h:102

◆ GetIPLZ()

int EdbEDABrickData::GetIPLZ ( float  z)
inline
267  {
268  // return ipl just downstream of given z.
269  for(int ipl=GetFirstPlate(); ipl<=GetLastPlate(); ipl++){
270  float zz= GetZ(ipl)+0.1; // 0.1 is for the case that given z is exactly at the plate.
271  if(zz>=z) return ipl;
272  }
273  return GetLastPlate();
274  }
int GetFirstPlate()
Definition: EdbEDA.h:240
double GetZ(int ipl)
Definition: EdbEDA.h:300
int GetLastPlate()
Definition: EdbEDA.h:241

◆ GetLastPlate()

int EdbEDABrickData::GetLastPlate ( )
inline
241 { return eLastPlate;} // last plate of brick

◆ GetNPL()

int EdbEDABrickData::GetNPL ( )
inline
246  {
247  if (eScanSet) return eScanSet->eB.Npl();
248  else if (eDataSet) return eDataSet->N();
249  else return 0;
250  }
int Npl() const
Definition: EdbBrick.h:50

◆ GetPID()

int EdbEDABrickData::GetPID ( int  ipl)
inline
276  {
277  if(eScanSet) { // return the ordinal number in eB.
278  EdbBrickP *b = &eScanSet->eB;
279  for(int i=0;i<b->Npl();i++){
280  EdbPlateP *pl = b->GetPlate(i);
281  if(pl->ID()==ipl) return i;
282  }
283  return ipl; // if not correspondence found.
284  }
285  else if( eDataSet ){
286  // Get PID from iPlate.
287  // if iPlate is out of volume scan, return -1;
288  for(int i=0;i<eDataSet->N();i++){
289  EdbDataPiece *piece = eDataSet->GetPiece(i);
290  if(NULL==piece) continue;
291  if(ipl==piece->Plate()){
292  return i;
293  }
294  }
295  // printf("error at GetPID(%d)\n", ipl);
296  }
297  return ipl;
298  }
Definition: EdbBrick.h:37

◆ GetPlateDown()

int EdbEDABrickData::GetPlateDown ( )
inline
238 {return GetIPL(eDataSet->N()-1);} // downstream of data volume
int GetIPL(int PID)
Definition: EdbEDA.h:252

◆ GetPlateUp()

int EdbEDABrickData::GetPlateUp ( )
inline
237 {return GetIPL(0);} // upstream of data volume

◆ GetPVR()

EdbPVRec* EdbEDABrickData::GetPVR ( )
inline
225 {if(ePVR==NULL) printf("EdbEDA::GetPVR() is only to obtain global Z coordinate.\n"); return ePVR;}

◆ GetScanSet()

EdbScanSet* EdbEDABrickData::GetScanSet ( )
inline
222 { return eScanSet;}

◆ GetZ()

double EdbEDABrickData::GetZ ( int  ipl)
inline
300  {
301  // Get Z value for give plate number.
302  if(eScanSet) {
303  EdbPlateP *pl = eScanSet->GetPlate(ipl);
304  if(pl!=NULL) return pl->Z();
305  return (ipl-57)*1300.0;
306  }
307  else if ( eDataSet ){
308  for(int i=0;i<eDataSet->N();i++){
309  if( GetIPL(i) == ipl ) return GetZPID(i);
310  }
311  }
312  else if( ePVR ){
313  for(int i=0;i<ePVR->Npatterns();i++){
314  EdbPattern *pat = ePVR->GetPattern(i);
315  if(pat->Plate()==ipl) return pat->Z();
316  }
317  }
318  return (ipl-57)*1300.0;
319  }
double GetZPID(int pid)
Definition: EdbEDA.h:321
float Z() const
Definition: EdbLayer.h:78
Definition: EdbPattern.h:280
Int_t Plate() const
Definition: EdbPattern.h:340
Int_t Npatterns() const
Definition: EdbPattern.h:380
EdbPattern * GetPattern(int id) const
Definition: EdbPattern.cxx:1887
Float_t Z() const
Definition: EdbPattern.h:87

◆ GetZPID()

double EdbEDABrickData::GetZPID ( int  pid)
inline
321  {
322  // Get Z from PID
323  // if pid is out of range, set pid within the range.
324 
325  if(eScanSet) {
326  EdbBrickP& b = eScanSet->Brick();
327  EdbPlateP *pl = b.GetPlate(pid);
328  return pl->Z();
329  }
330  else if (eDataSet){
331 
332  if(pid<0) pid=0;
333  if(pid>eDataSet->N()-1) pid=eDataSet->N()-1;
334  EdbDataPiece *piece = eDataSet->GetPiece(pid);
335  EdbLayer* l = piece->GetLayer(0);
336  return l->Z();
337  }
338 
339  return GetZ(pid);
340  }
const EdbBrickP & Brick() const
Definition: EdbScanSet.h:50
int pid[1000]
Definition: m2track.cpp:13

◆ SetBeamAngle()

void EdbEDABrickData::SetBeamAngle ( double  tx,
double  ty 
)
inline
342 { eBeamTX=tx; eBeamTY=ty;}

◆ SetBrick()

void EdbEDABrickData::SetBrick ( int  ibrick)
inline
227  {
228  eID.eBrick = ibrick;
229  eIDSF.eBrick = ibrick;
230  eIDSF.eBrick = ibrick;
231  }
EdbID eIDSF
Definition: EdbEDA.h:199

◆ SetDataType()

void EdbEDABrickData::SetDataType ( int  datatype)
inline
235 { eDataType=datatype;}

◆ SetID()

void EdbEDABrickData::SetID ( EdbID  id)
inline
218 { eID=id;}
UInt_t id
Definition: tlg2pattern.C:118

◆ SetIDSB()

void EdbEDABrickData::SetIDSB ( EdbID  id)
inline
217 { eIDSB=id;}
EdbID eIDSB
Definition: EdbEDA.h:200

◆ SetIDSF()

void EdbEDABrickData::SetIDSF ( EdbID  id)
inline
216 { eIDSF=id;}

◆ SetPVR()

void EdbEDABrickData::SetPVR ( EdbPVRec pvr)
inline
224 { ePVR=pvr;}

◆ SetScanSet()

void EdbEDABrickData::SetScanSet ( EdbScanSet ss)
inline
221 { eScanSet = ss;}
ss
Definition: energy.C:62

Member Data Documentation

◆ eBeamTX

double EdbEDABrickData::eBeamTX
private

◆ eBeamTY

double EdbEDABrickData::eBeamTY
private

◆ eDataSet

EdbDataSet* EdbEDABrickData::eDataSet

◆ eDataType

int EdbEDABrickData::eDataType

◆ eFirstPlate

int EdbEDABrickData::eFirstPlate

◆ eID

EdbID EdbEDABrickData::eID

◆ eIDSB

EdbID EdbEDABrickData::eIDSB

◆ eIDSF

EdbID EdbEDABrickData::eIDSF

◆ eLastPlate

int EdbEDABrickData::eLastPlate

◆ ePVR

EdbPVRec* EdbEDABrickData::ePVR

◆ eScanProc

EdbScanProc* EdbEDABrickData::eScanProc

◆ eScanSet

EdbScanSet* EdbEDABrickData::eScanSet

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