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
 Data management. More...
 
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
Data management.
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
Edb raw data unit (scanned plate) associated with run file.
Definition: EdbDataSet.h:26
EdbLayer * GetLayer(int id)
Definition: EdbDataSet.h:87
int Plate() const
Definition: EdbDataSet.h:66
OPERA emulsion data set.
Definition: EdbDataSet.h:144
Definition: EdbLayer.h:39
EdbAffine2D * GetAffineXY()
Definition: EdbLayer.h:119
Definition: EdbBrick.h:14
EdbPlateP * GetPlate(Int_t p)
Definition: EdbScanSet.h:56
#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.
255 return pl->ID();
256 }
257 else if( eDataSet ){
258 if(PID>=eDataSet->N()) return PID;
260 if(NULL==piece) return PID;
261 return piece->Plate();
262 }
263
264 return PID;
265 }
EdbPlateP * GetPlate(int i)
Definition: EdbBrick.h:53
EdbDataPiece * GetPiece(int id)
Definition: EdbDataSet.h:163
int N() const
Definition: EdbDataSet.h:162
int ID() const
Definition: EdbLayer.h:73
EdbBrickP eB
all layers of the brick defined here
Definition: EdbScanSet.h:13
Definition: Flexmotn.h:102

◆ GetIPLZ()

int EdbEDABrickData::GetIPLZ ( float  z)
inline

return ipl just downstream of given z.

267 {
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:51

◆ GetPID()

int EdbEDABrickData::GetPID ( int  ipl)
inline

Get PID from iPlate.
if iPlate is out of volume scan, return -1;

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 ){
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:38

◆ 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

Get Z value for give plate number.

300 {
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:77
Definition: EdbPattern.h:273
Int_t Plate() const
Definition: EdbPattern.h:327
Int_t Npatterns() const
Definition: EdbPattern.h:366
EdbPattern * GetPattern(int id) const
Definition: EdbPattern.cxx:1721
Float_t Z() const
Definition: EdbPattern.h:84

◆ GetZPID()

double EdbEDABrickData::GetZPID ( int  pid)
inline

Get Z from PID
if pid is out of range, set pid within the range.

321 {
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;
335 EdbLayer* l = piece->GetLayer(0);
336 return l->Z();
337 }
338
339 return GetZ(pid);
340 }
const EdbBrickP & Brick() const
Definition: EdbScanSet.h:49
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: tlg2couples.C:117

◆ 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

Data management.

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