FEDRA emulsion software from the OPERA Collaboration
EdbEmrFileAccess Class Reference

#include <EdbEmrIO.h>

Inheritance diagram for EdbEmrFileAccess:
Collaboration diagram for EdbEmrFileAccess:

Public Member Functions

EdbSegP * AddEntry (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 
)
53 {
54  int iside = SideID(plate,side);
55  if(iside<0||iside>1000) {
56  Log(1,"EdbEmrFileAccess::AddEntry","Error: iside = %d is out of range! (%d %d)",iside,0,1000);
57  return 0;
58  }
59  if(iside+1>eSides.GetSize()) eSides.Expand(iside+1);
60  if(!eSides.At(iside)) eSides.AddAt(new EdbPattern, iside);
61  EdbPattern *p = (EdbPattern*)eSides.At(iside);
62  EdbSegP s(entry, x, y, 0, 0, 0,0);
63  s.SetAid(zone, view,side);
64  s.SetZ(z);
65  return p->AddSegment(s);
66 }
TLegendEntry * entry
Definition: Canv_SYSTEMATICS_ALLCOMBINED__RMSEnergy__vs__Energy__ELECTRON.C:130
bool Log(int level, const char *location, const char *fmt,...)
Definition: EdbLog.cxx:75
int SideID(int plateside)
Definition: EdbEmrIO.h:49
TObjArray eSides
Definition: EdbEmrIO.h:42
Definition: EdbPattern.h:280
Definition: EdbSegP.h:18
void SetZ(float z)
Definition: EdbSegP.h:122
void SetAid(int a, int v, int side=0)
Definition: EdbSegP.h:135
Int_t plate
Definition: merge_Energy_SytematicSources_Electron.C:1
p
Definition: testBGReduction_AllMethods.C:8
EdbSegP * s
Definition: tlg2pattern.C:32

◆ FirstPlate()

int EdbEmrFileAccess::FirstPlate ( )

◆ GetPlateEntries()

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

◆ LastPlate()

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

◆ PlateID()

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

◆ PrintStat()

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

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