FEDRA emulsion software from the OPERA Collaboration
EdbEmrFileAccess Class Reference

#include <EdbEmrIO.h>

Inheritance diagram for EdbEmrFileAccess:
Collaboration diagram for EdbEmrFileAccess:

Public Member Functions

EdbSegPAddEntry (int plate, int side, int zone, int view, int entry, float x, float y, float z)
 
 EdbEmrFileAccess ()
 
int FirstPlate ()
 
int GetPlateEntries (int plate, int side, TArrayI &entries)
 
int LastPlate ()
 
int PlateID (int plateside)
 
void PrintStat ()
 
int SideID (int plate, int side)
 
int SideID (int plateside)
 
virtual ~EdbEmrFileAccess ()
 

Private Attributes

TObjArray eSides
 

Constructor & Destructor Documentation

◆ EdbEmrFileAccess()

EdbEmrFileAccess::EdbEmrFileAccess ( )
inline
45{}

◆ ~EdbEmrFileAccess()

virtual EdbEmrFileAccess::~EdbEmrFileAccess ( )
inlinevirtual
46{}

Member Function Documentation

◆ AddEntry()

EdbSegP * EdbEmrFileAccess::AddEntry ( int  plate,
int  side,
int  zone,
int  view,
int  entry,
float  x,
float  y,
float  z 
)
52{
53 int iside = SideID(plate,side);
54 if(iside<0) return 0;
55 if(iside+1>eSides.GetSize()) eSides.Expand(iside+1);
56 if(!eSides.At(iside)) eSides.AddAt(new EdbPattern, iside);
57 EdbPattern *p = (EdbPattern*)eSides.At(iside);
58 EdbSegP s(entry, x, y, 0, 0, 0,0);
59 s.SetAid(zone, view,side);
60 s.SetZ(z);
61 return p->AddSegment(s);
62}
TLegendEntry * entry
Definition: Canv_SYSTEMATICS_ALLCOMBINED__RMSEnergy__vs__Energy__ELECTRON.C:130
int SideID(int plateside)
Definition: EdbEmrIO.h:49
TObjArray eSides
Definition: EdbEmrIO.h:42
Definition: EdbPattern.h:273
Definition: EdbSegP.h:21
s
Definition: check_shower.C:55
Int_t plate
Definition: merge_Energy_SytematicSources_Electron.C:1
p
Definition: testBGReduction_AllMethods.C:8

◆ FirstPlate()

int EdbEmrFileAccess::FirstPlate ( )

◆ GetPlateEntries()

int EdbEmrFileAccess::GetPlateEntries ( int  plate,
int  side,
TArrayI &  entries 
)
66{
67 int iside = SideID(plate,side);
68 EdbPattern *p = (EdbPattern*)eSides.At(iside);
69 if(!p) return 0;
70 int n = p->N();
71 entries.Set(n);
72 EdbSegP *s;
73 for(int i=0; i<n; i++) {
74 s = p->GetSegment(i);
75 entries[i] = s->ID();
76 }
77 return n;
78}

◆ LastPlate()

int EdbEmrFileAccess::LastPlate ( )
29{
30 int size = eSides.GetSize(), i=0;
31 EdbPattern *p=0;
32 for(i=size-1; i>=0; i--) {
33 p = (EdbPattern*)eSides.At(i);
34 if(p) break;
35 }
36 return PlateID(i);
37}
int PlateID(int plateside)
Definition: EdbEmrIO.h:48

◆ PlateID()

int EdbEmrFileAccess::PlateID ( int  plateside)
inline
48{ return plateside/3; }

◆ PrintStat()

void EdbEmrFileAccess::PrintStat ( )
41{
42 int size = eSides.GetSize();
43 EdbPattern *p=0;
44 for(int i=0; i<size; i++) {
45 p = (EdbPattern*)eSides.At(i);
46 if(p) printf("%d views in plate %d side %d\n", p->N(), PlateID(i), SideID(i) );
47 }
48}

◆ SideID() [1/2]

int EdbEmrFileAccess::SideID ( int  plate,
int  side 
)
inline
56 {
57 if(plate<0||plate>1000) return -1;
58 if(side<0||side>2) return -1;
59 return plate*3 + side;
60 }

◆ SideID() [2/2]

int EdbEmrFileAccess::SideID ( int  plateside)
inline
49{ return plateside%3; }

Member Data Documentation

◆ eSides

TObjArray EdbEmrFileAccess::eSides
private

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