FairRoot/PandaRoot
Public Member Functions | Public Attributes | List of all members
PndEmcReader Class Reference

#include <PndEmcReader.h>

Public Member Functions

 PndEmcReader (TString name)
 
 ~PndEmcReader ()
 
void fill_vector ()
 
int GetMaxModules ()
 
int GetMaxRows (int module)
 
int GetMaxCrystals (int module, int row)
 
int GetMinModules ()
 
int GetMinRows (int module)
 
int GetMinCrystals (int module, int row)
 
DataG4 GetData (int module, int row, int crystal)
 

Public Attributes

std::vector< DataG4g4data
 
TString sName
 

Detailed Description

Definition at line 26 of file PndEmcReader.h.

Constructor & Destructor Documentation

PndEmcReader::PndEmcReader ( TString  name)

Definition at line 21 of file PndEmcReader.cxx.

References fill_vector(), and g4data.

21  : g4data(), sName(name)
22 {
23  g4data.clear();
25 }
TString sName
Definition: PndEmcReader.h:36
void fill_vector()
TString name
std::vector< DataG4 > g4data
Definition: PndEmcReader.h:34
PndEmcReader::~PndEmcReader ( )

Definition at line 27 of file PndEmcReader.cxx.

References g4data.

28 {
29  g4data.clear();
30 }
std::vector< DataG4 > g4data
Definition: PndEmcReader.h:34

Member Function Documentation

void PndEmcReader::fill_vector ( )

Definition at line 32 of file PndEmcReader.cxx.

References DataG4::crystal, exit(), f, g4data, DataG4::module, DataG4::pAlp1, DataG4::pAlp2, DataG4::pDx1, DataG4::pDx2, DataG4::pDx3, DataG4::pDx4, DataG4::pDy1, DataG4::pDy2, DataG4::pDz, DataG4::phi, DataG4::posX, DataG4::posY, DataG4::posZ, DataG4::pPhi, DataG4::pTheta, DataG4::row, sName, DataG4::tau, and DataG4::theta.

Referenced by PndEmcReader().

33 {
34  fstream f;
35  string str;
36  DataG4 data;
37  int line_nr;
38 
39  f.open(sName.Data(), ios::in);
40  cout << "PndEmcReader: EMC geometry file == " << sName.Data() << endl;
41  if(!f) {
42  cout<<"PndEmcReader Error: Data file cannot be open!"<<endl;
43  exit(1);
44  } else {
45  line_nr = 1;
46  while(line_nr<=3) {getline(f,str,'\n'); line_nr++;};
47  while(f) {
48 
49  f>>data.module>>data.row>>data.crystal>>data.theta>>data.phi>>data.tau>>data.posX>>data.posY>>data.posZ>>data.pDz
50  >>data.pTheta>>data.pPhi>>data.pDy1>>data.pDx1>>data.pDx2>>data.pAlp1>>data.pDy2>>data.pDx3>>data.pDx4>>data.pAlp2;
51  PndEmcReader::g4data.push_back(data);
52  };
53  f.close();
54  };
55  f.clear();
56 
57  return;
58 }
double pDx3
Definition: PndEmcReader.h:22
double tau
Definition: PndEmcReader.h:20
TString sName
Definition: PndEmcReader.h:36
double pAlp2
Definition: PndEmcReader.h:22
exit(0)
double pDz
Definition: PndEmcReader.h:22
double pDx2
Definition: PndEmcReader.h:22
double phi
Definition: PndEmcReader.h:20
int module
Definition: PndEmcReader.h:19
int row
Definition: PndEmcReader.h:19
double pPhi
Definition: PndEmcReader.h:22
int crystal
Definition: PndEmcReader.h:19
TFile * f
Definition: bump_analys.C:12
double pDx4
Definition: PndEmcReader.h:22
double pDx1
Definition: PndEmcReader.h:22
double posX
Definition: PndEmcReader.h:21
double posZ
Definition: PndEmcReader.h:21
double pDy2
Definition: PndEmcReader.h:22
double pTheta
Definition: PndEmcReader.h:22
double pDy1
Definition: PndEmcReader.h:22
std::vector< DataG4 > g4data
Definition: PndEmcReader.h:34
double posY
Definition: PndEmcReader.h:21
double theta
Definition: PndEmcReader.h:20
double pAlp1
Definition: PndEmcReader.h:22
DataG4 PndEmcReader::GetData ( int  module,
int  row,
int  crystal 
)

Definition at line 130 of file PndEmcReader.cxx.

References DataG4::crystal, g4data, i, DataG4::module, DataG4::pAlp1, DataG4::pAlp2, DataG4::pDx1, DataG4::pDx2, DataG4::pDx3, DataG4::pDx4, DataG4::pDy1, DataG4::pDy2, DataG4::pDz, DataG4::phi, DataG4::posX, DataG4::posY, DataG4::posZ, DataG4::pPhi, DataG4::pTheta, DataG4::row, DataG4::tau, and DataG4::theta.

Referenced by PndEmcApd::ConstructASCIIGeometry(), and PndEmc::ConstructASCIIGeometry().

131 {
132  DataG4 data;
133  data.module = -1; // Module not present
134 
135  for(unsigned int i=0; i<PndEmcReader::g4data.size(); i++) {
136  if((module==PndEmcReader::g4data[i].module)&&(row==PndEmcReader::g4data[i].row)&&(crystal==PndEmcReader::g4data[i].crystal)) {
137  data.module = PndEmcReader::g4data[i].module;
138  data.row = PndEmcReader::g4data[i].row;
139  data.crystal = PndEmcReader::g4data[i].crystal;
140  data.theta = PndEmcReader::g4data[i].theta;
141  data.phi = PndEmcReader::g4data[i].phi;
142  data.tau = PndEmcReader::g4data[i].tau;
143  data.posX = PndEmcReader::g4data[i].posX;
144  data.posY = PndEmcReader::g4data[i].posY;
145  data.posZ = PndEmcReader::g4data[i].posZ;
146  data.pDz = PndEmcReader::g4data[i].pDz;
147  data.pTheta = PndEmcReader::g4data[i].pTheta;
148  data.pPhi = PndEmcReader::g4data[i].pPhi;
149  data.pDy1 = PndEmcReader::g4data[i].pDy1;
150  data.pDx1 = PndEmcReader::g4data[i].pDx1;
151  data.pDx2 = PndEmcReader::g4data[i].pDx2;
152  data.pAlp1 = PndEmcReader::g4data[i].pAlp1;
153  data.pDy2 = PndEmcReader::g4data[i].pDy2;
154  data.pDx3 = PndEmcReader::g4data[i].pDx3;
155  data.pDx4 = PndEmcReader::g4data[i].pDx4;
156  data.pAlp2 = PndEmcReader::g4data[i].pAlp2;
157  };
158  };
159 
160  return data;
161 }
int row
Definition: anaLmdDigi.C:67
double pDx3
Definition: PndEmcReader.h:22
double tau
Definition: PndEmcReader.h:20
Int_t i
Definition: run_full.C:25
double pAlp2
Definition: PndEmcReader.h:22
double pDz
Definition: PndEmcReader.h:22
double pDx2
Definition: PndEmcReader.h:22
double phi
Definition: PndEmcReader.h:20
int module
Definition: PndEmcReader.h:19
int row
Definition: PndEmcReader.h:19
double pPhi
Definition: PndEmcReader.h:22
int crystal
Definition: PndEmcReader.h:19
double pDx4
Definition: PndEmcReader.h:22
double pDx1
Definition: PndEmcReader.h:22
double posX
Definition: PndEmcReader.h:21
double posZ
Definition: PndEmcReader.h:21
double pDy2
Definition: PndEmcReader.h:22
double pTheta
Definition: PndEmcReader.h:22
double pDy1
Definition: PndEmcReader.h:22
std::vector< DataG4 > g4data
Definition: PndEmcReader.h:34
double posY
Definition: PndEmcReader.h:21
double theta
Definition: PndEmcReader.h:20
double pAlp1
Definition: PndEmcReader.h:22
int PndEmcReader::GetMaxCrystals ( int  module,
int  row 
)

Definition at line 83 of file PndEmcReader.cxx.

References g4data, and i.

Referenced by PndEmcApd::ConstructASCIIGeometry(), and PndEmc::ConstructASCIIGeometry().

84 {
85  int crystals = 0;
86 
87  for(unsigned int i=0; i<PndEmcReader::g4data.size(); i++)
88  if((module==PndEmcReader::g4data[i].module)&&(row==PndEmcReader::g4data[i].row))
89  if(crystals<PndEmcReader::g4data[i].crystal)
90  crystals = PndEmcReader::g4data[i].crystal;
91 
92  return crystals;
93 }
int row
Definition: anaLmdDigi.C:67
Int_t i
Definition: run_full.C:25
std::vector< DataG4 > g4data
Definition: PndEmcReader.h:34
int PndEmcReader::GetMaxModules ( )

Definition at line 60 of file PndEmcReader.cxx.

References g4data, and i.

Referenced by PndEmcApd::ConstructASCIIGeometry(), and PndEmc::ConstructASCIIGeometry().

61 {
62  int modules = 0;
63 
64  for(unsigned int i=0; i<PndEmcReader::g4data.size(); i++)
65  if(modules<PndEmcReader::g4data[i].module)
66  modules = PndEmcReader::g4data[i].module;
67 
68  return modules;
69 }
Int_t i
Definition: run_full.C:25
std::vector< DataG4 > g4data
Definition: PndEmcReader.h:34
int PndEmcReader::GetMaxRows ( int  module)

Definition at line 71 of file PndEmcReader.cxx.

References g4data, i, and row.

Referenced by PndEmcApd::ConstructASCIIGeometry(), and PndEmc::ConstructASCIIGeometry().

72 {
73  int rows = 0;
74 
75  for(unsigned int i=0; i<PndEmcReader::g4data.size(); i++)
76  if(module==PndEmcReader::g4data[i].module)
77  if(rows<PndEmcReader::g4data[i].row)
78  rows = PndEmcReader::g4data[i].row;
79 
80  return rows;
81 }
int row
Definition: anaLmdDigi.C:67
Int_t i
Definition: run_full.C:25
std::vector< DataG4 > g4data
Definition: PndEmcReader.h:34
int PndEmcReader::GetMinCrystals ( int  module,
int  row 
)

Definition at line 118 of file PndEmcReader.cxx.

References g4data, and i.

Referenced by PndEmcApd::ConstructASCIIGeometry(), and PndEmc::ConstructASCIIGeometry().

119 {
120  int crystals = 1000000;
121 
122  for(unsigned int i=0; i<PndEmcReader::g4data.size(); i++)
123  if((module==PndEmcReader::g4data[i].module)&&(row==PndEmcReader::g4data[i].row))
124  if(crystals>PndEmcReader::g4data[i].crystal)
125  crystals = PndEmcReader::g4data[i].crystal;
126 
127  return crystals;
128 }
int row
Definition: anaLmdDigi.C:67
Int_t i
Definition: run_full.C:25
std::vector< DataG4 > g4data
Definition: PndEmcReader.h:34
int PndEmcReader::GetMinModules ( )

Definition at line 95 of file PndEmcReader.cxx.

References g4data, and i.

Referenced by PndEmcApd::ConstructASCIIGeometry(), and PndEmc::ConstructASCIIGeometry().

96 {
97  int modules = 1000000;
98 
99  for(unsigned int i=0; i<PndEmcReader::g4data.size(); i++)
100  if(modules>PndEmcReader::g4data[i].module)
101  modules = PndEmcReader::g4data[i].module;
102 
103  return modules;
104 }
Int_t i
Definition: run_full.C:25
std::vector< DataG4 > g4data
Definition: PndEmcReader.h:34
int PndEmcReader::GetMinRows ( int  module)

Definition at line 106 of file PndEmcReader.cxx.

References g4data, i, and row.

Referenced by PndEmcApd::ConstructASCIIGeometry(), and PndEmc::ConstructASCIIGeometry().

107 {
108  int rows = 1000000;
109 
110  for(unsigned int i=0; i<PndEmcReader::g4data.size(); i++)
111  if(module==PndEmcReader::g4data[i].module)
112  if(rows>PndEmcReader::g4data[i].row)
113  rows = PndEmcReader::g4data[i].row;
114 
115  return rows;
116 }
int row
Definition: anaLmdDigi.C:67
Int_t i
Definition: run_full.C:25
std::vector< DataG4 > g4data
Definition: PndEmcReader.h:34

Member Data Documentation

std::vector<DataG4> PndEmcReader::g4data
TString PndEmcReader::sName

Definition at line 36 of file PndEmcReader.h.

Referenced by fill_vector().


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