ATLAS Offline Software
Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
CaloGeometryFromFile Class Reference

#include <CaloGeometryFromFile.h>

Inheritance diagram for CaloGeometryFromFile:
Collaboration diagram for CaloGeometryFromFile:

Public Member Functions

 CaloGeometryFromFile ()
 
bool LoadGeometryFromFile (const std::string &fileName, const std::string &treeName, const std::string &hashFileName="/eos/atlas/atlascerngroupdisk/proj-simul/" "CaloGeometry/cellId_vs_cellHashId_map.txt")
 
bool LoadFCalGeometryFromFiles (const std::array< std::string, 3 > &fileNames)
 
void DrawFCalGraph (int isam, int color)
 
virtual bool PostProcessGeometry ()
 
virtual void Validate ATLAS_NOT_THREAD_SAFE (int nrnd=100)
 
virtual const CaloDetDescrElementgetDDE (Identifier identify)
 
virtual const CaloDetDescrElementgetDDE (int sampling, Identifier identify)
 
virtual const CaloDetDescrElementgetDDE (int sampling, float eta, float phi, float *distance=0, int *steps=0)
 
virtual const CaloDetDescrElementgetFCalDDE (int sampling, float x, float y, float z, float *distance=0, int *steps=0)
 
bool getClosestFCalCellIndex (int sampling, float x, float y, int &ieta, int &iphi, int *steps=0)
 
double deta (int sample, double eta) const
 
void minmaxeta (int sample, double eta, double &mineta, double &maxeta) const
 
double rzmid (int sample, double eta) const
 
double rzent (int sample, double eta) const
 
double rzext (int sample, double eta) const
 
double rmid (int sample, double eta) const
 
double rent (int sample, double eta) const
 
double rext (int sample, double eta) const
 
double zmid (int sample, double eta) const
 
double zent (int sample, double eta) const
 
double zext (int sample, double eta) const
 
double rpos (int sample, double eta, int subpos=CaloSubPos::SUBPOS_MID) const
 
double zpos (int sample, double eta, int subpos=CaloSubPos::SUBPOS_MID) const
 
double rzpos (int sample, double eta, int subpos=CaloSubPos::SUBPOS_MID) const
 
bool isCaloBarrel (int sample) const
 
TGraphErrors * GetGraph (unsigned int sample) const
 
void SetDoGraphs (bool dographs=true)
 
bool DoGraphs () const
 
TGraph * DrawGeoSampleForPhi0 (int sample, int calocol, bool print=false)
 
TCanvas * DrawGeoForPhi0 ()
 
FCAL_ChannelMapGetFCAL_ChannelMap ()
 
void SetFCal_ChannelMap (const FCAL_ChannelMap *fcal_ChannnelMap)
 
virtual void PrintMapInfo (int i, int j)
 

Static Public Member Functions

static std::string SamplingName (int sample)
 

Static Public Attributes

static const int MAX_SAMPLING = CaloCell_ID_FCS::MaxSample
 
static const Identifier m_debug_identify
 
static std::atomic< bool > m_debug =false
 

Protected Member Functions

virtual void addcell (const CaloDetDescrElement *cell)
 
virtual void post_process (int layer)
 
virtual void InitRZmaps ()
 

Protected Attributes

t_cellmap m_cells
 
std::vector< t_cellmapm_cells_in_sampling
 
std::vector< t_eta_cellmapm_cells_in_sampling_for_phi0
 
std::vector< std::vector< CaloGeometryLookup * > > m_cells_in_regions
 
std::vector< bool > m_isCaloBarrel
 
std::vector< double > m_min_eta_sample [2]
 
std::vector< double > m_max_eta_sample [2]
 
std::vector< FSmap< double, double > > m_rmid_map [2]
 
std::vector< FSmap< double, double > > m_zmid_map [2]
 
std::vector< FSmap< double, double > > m_rent_map [2]
 
std::vector< FSmap< double, double > > m_zent_map [2]
 
std::vector< FSmap< double, double > > m_rext_map [2]
 
std::vector< FSmap< double, double > > m_zext_map [2]
 
bool m_dographs
 
std::vector< TGraphErrors * > m_graph_layers
 
FCAL_ChannelMap m_FCal_ChannelMap
 
std::vector< double > m_FCal_rmin
 
std::vector< double > m_FCal_rmax
 

Private Member Functions

void calculateFCalRminRmax ()
 
bool checkFCalGeometryConsistency ()
 

Detailed Description

Definition at line 10 of file CaloGeometryFromFile.h.

Constructor & Destructor Documentation

◆ CaloGeometryFromFile()

CaloGeometryFromFile::CaloGeometryFromFile ( )

Definition at line 21 of file CaloGeometryFromFile.cxx.

21 : CaloGeometry() {}

Member Function Documentation

◆ addcell()

void CaloGeometry::addcell ( const CaloDetDescrElement cell)
protectedvirtualinherited

Definition at line 67 of file CaloGeometry.cxx.

68 {
69  int sampling=cell->getSampling();
70  Identifier identify=cell->identify();
71 
74 
75  //m_cells[identify]= new CaloDetDescrElement(*cell);
76  //m_cells_in_sampling[sampling][identify]= new CaloDetDescrElement(*cell);
77 
78  CaloGeometryLookup* lookup=nullptr;
79  for(unsigned int i=0;i<m_cells_in_regions[sampling].size();++i) {
80  if(m_cells_in_regions[sampling][i]->IsCompatible(cell)) {
81  lookup=m_cells_in_regions[sampling][i];
82  //cout<<sampling<<": found compatible map"<<endl;
83  break;
84  }
85  }
86  if(!lookup) {
88  m_cells_in_regions[sampling].push_back(lookup);
89  }
90  lookup->add(cell);
91 }

◆ ATLAS_NOT_THREAD_SAFE()

virtual void Validate CaloGeometry::ATLAS_NOT_THREAD_SAFE ( int  nrnd = 100)
virtualinherited

Implements ICaloGeometry.

◆ calculateFCalRminRmax()

void CaloGeometryFromFile::calculateFCalRminRmax ( )
private

Definition at line 307 of file CaloGeometryFromFile.cxx.

308 {
309 
310  m_FCal_rmin.resize(3, FLT_MAX);
311  m_FCal_rmax.resize(3, 0.);
312 
313  double x(0.), y(0.), r(0.);
314  for (int imap = 1; imap <= 3; imap++)
315  for (auto it = m_FCal_ChannelMap.begin(imap);
316  it != m_FCal_ChannelMap.end(imap); it++) {
317  x = it->second.x();
318  y = it->second.y();
319  r = sqrt(x * x + y * y);
320  if (r < m_FCal_rmin[imap - 1])
321  m_FCal_rmin[imap - 1] = r;
322  if (r > m_FCal_rmax[imap - 1])
323  m_FCal_rmax[imap - 1] = r;
324  }
325 }

◆ checkFCalGeometryConsistency()

bool CaloGeometryFromFile::checkFCalGeometryConsistency ( )
privatevirtual

Reimplemented from CaloGeometry.

Definition at line 327 of file CaloGeometryFromFile.cxx.

328 {
329 
330  unsigned long long phi_index, eta_index;
331  float x, y, dx, dy;
332  long id;
333 
334  long mask1[]{0x34, 0x34, 0x35};
335  long mask2[]{0x36, 0x36, 0x37};
336 
337  m_FCal_rmin.resize(3, FLT_MAX);
338  m_FCal_rmax.resize(3, 0.);
339 
340  for (int imap = 1; imap <= 3; imap++) {
341 
342  int sampling = imap + 20;
343 
344  if ((int)m_cells_in_sampling[sampling].size()
345  != 2
347  m_FCal_ChannelMap.end(imap))) {
348  std::cout
349  << "Error: Incompatibility between FCalChannel map and GEO file: "
350  "Different number of cells in m_cells_in_sampling and "
351  "FCal_ChannelMap"
352  << std::endl;
353  std::cout << "m_cells_in_sampling: "
354  << m_cells_in_sampling[sampling].size() << std::endl;
355  std::cout << "FCal_ChannelMap: "
356  << 2
358  m_FCal_ChannelMap.end(imap))
359  << std::endl;
360  return false;
361  }
362 
363  for (auto it = m_FCal_ChannelMap.begin(imap);
364  it != m_FCal_ChannelMap.end(imap); it++) {
365 
366  phi_index = it->first & 0xffff;
367  eta_index = it->first >> 16;
368  x = it->second.x();
369  y = it->second.y();
370  m_FCal_ChannelMap.tileSize(imap, eta_index, phi_index, dx, dy);
371 
372  id = (mask1[imap - 1] << 12) + (eta_index << 5) + 2 * phi_index;
373 
374  if (imap == 2)
375  id += (8 << 8);
376 
377  Identifier id1((unsigned long long)(id << 44));
378  const CaloDetDescrElement *DDE1 = getDDE(id1);
379 
380  id = (mask2[imap - 1] << 12) + (eta_index << 5) + 2 * phi_index;
381  if (imap == 2)
382  id += (8 << 8);
383  Identifier id2((unsigned long long)(id << 44));
384  const CaloDetDescrElement *DDE2 = getDDE(id2);
385 
386  if (!TMath::AreEqualRel(x, DDE1->x(), 1.E-8)
387  || !TMath::AreEqualRel(y, DDE1->y(), 1.E-8)
388  || !TMath::AreEqualRel(x, DDE2->x(), 1.E-8)
389  || !TMath::AreEqualRel(y, DDE2->y(), 1.E-8)) {
390  std::cout
391  << "Error: Incompatibility between FCalChannel map and GEO file \n"
392  << x << " " << DDE1->x() << " " << DDE2->x() << y << " "
393  << DDE1->y() << " " << DDE2->y() << std::endl;
394  return false;
395  }
396  }
397  }
398 
399  return true;
400 }

◆ deta()

double CaloGeometry::deta ( int  sample,
double  eta 
) const
virtualinherited

Implements ICaloGeometry.

Definition at line 752 of file CaloGeometry.cxx.

753 {
754  int side=0;
755  if(eta>0) side=1;
756 
757  double mineta=m_min_eta_sample[side][sample];
758  double maxeta=m_max_eta_sample[side][sample];
759 
760  if(eta<mineta)
761  {
762  return fabs(eta-mineta);
763  }
764  else if(eta>maxeta)
765  {
766  return fabs(eta-maxeta);
767  }
768  else
769  {
770  double d1=fabs(eta-mineta);
771  double d2=fabs(eta-maxeta);
772  if(d1<d2) return -d1;
773  else return -d2;
774  }
775 }

◆ DoGraphs()

bool CaloGeometry::DoGraphs ( ) const
inlineinherited

Definition at line 67 of file CaloGeometry.h.

67 {return m_dographs;};

◆ DrawFCalGraph()

void CaloGeometryFromFile::DrawFCalGraph ( int  isam,
int  color 
)

Definition at line 276 of file CaloGeometryFromFile.cxx.

277 {
278 
279  std::stringstream ss;
280  ss << "FCal" << isam - 20 << std::endl;
281 
282  const int size = m_cells_in_sampling[isam].size();
283 
284  std::vector<double> x;
285  std::vector<double> y;
286  x.reserve(size);
287  y.reserve(size);
288 
289  for (auto it = m_cells_in_sampling[isam].begin();
290  it != m_cells_in_sampling[isam].end(); it++) {
291  x.push_back(it->second->x());
292  y.push_back(it->second->y());
293  }
294 
295  TGraph *graph = new TGraph(size, &x[0], &y[0]);
296  graph->SetLineColor(color);
297  graph->SetTitle(ss.str().c_str());
298  graph->SetMarkerStyle(21);
299  graph->SetMarkerColor(color);
300  graph->SetMarkerSize(0.5);
301  graph->GetXaxis()->SetTitle("x [mm]");
302  graph->GetYaxis()->SetTitle("y [mm]");
303 
304  graph->Draw("AP");
305 }

◆ DrawGeoForPhi0()

TCanvas * CaloGeometry::DrawGeoForPhi0 ( )
inherited

Definition at line 440 of file CaloGeometry.cxx.

441 {
442  TCanvas* c=new TCanvas("CaloGeoForPhi0","Calo geometry for #phi~0");
443  TH2D* hcalolayout=new TH2D("hcalolayoutPhi0","Reconstruction geometry: calorimeter layout;z [mm];r [mm]",50,-7000,7000,50,0,4000);
444  hcalolayout->Draw();
445  hcalolayout->SetStats(0);
446  hcalolayout->GetYaxis()->SetTitleOffset(1.4);
447 
448  TLegend* leg=new TLegend(0.30,0.13,0.70,0.37);
449  leg->SetFillStyle(0);
450  leg->SetFillColor(10);
451  leg->SetBorderSize(1);
452  leg->SetNColumns(2);
453 
454  for(int sample=0;sample<MAX_SAMPLING;++sample) {
456  if(gr) {
457  std::string sname=Form("Sampling %2d : ",sample);
458  sname+=SamplingName(sample);
459  leg->AddEntry(gr,sname.c_str(),"LF");
460  }
461  }
462  leg->Draw();
463  return c;
464 }

◆ DrawGeoSampleForPhi0()

TGraph * CaloGeometry::DrawGeoSampleForPhi0 ( int  sample,
int  calocol,
bool  print = false 
)
inherited

Definition at line 349 of file CaloGeometry.cxx.

350 {
351  if (sample < CaloSampling::PreSamplerB || sample >= CaloSampling::Unknown) {
352  return nullptr;
353  }
354  TGraph* firstgr=nullptr;
355  cout<<"Start sample "<<sample<<" ("<<SamplingName(sample)<<")"<<endl;
356  int ngr=0;
358  const CaloDetDescrElement* theDDE=(*calo_iter).second;
359  if(theDDE) {
360  TVector3 cv;
361  TGraph* gr=new TGraph(5);
362  gr->SetLineColor(TMath::Abs(calocol));
363  gr->SetFillColor(TMath::Abs(calocol));
364  if(calocol<0) {
365  gr->SetFillStyle(1001);
366  } else {
367  gr->SetFillStyle(0);
368  }
369  gr->SetLineWidth(2);
370  double r=theDDE->r();
371  double dr=theDDE->dr();
372  double x=theDDE->x();
373  double dx=theDDE->dx();
374  double y=theDDE->y();
375  double dy=theDDE->dy();
376  double z=theDDE->z();
377  double dz=theDDE->dz()*2;
378  double eta=theDDE->eta();
379  double deta=theDDE->deta();
380 
382  dr*=2;
383  }
384  if(print) {
385  cout<<"sample="<<sample<<" r="<<r<<" dr="<<dr<<" eta="<<eta<<" deta="<<deta<<" x="<<x<<" y="<<y<<" z="<<z<<" dz="<<dz<<endl;
386  }
387  if(isCaloBarrel(sample)) {
388  cv.SetPtEtaPhi(r-dr/2,eta-deta/2,0);
389  gr->SetPoint(0,cv.Z(),cv.Pt());
390  gr->SetPoint(4,cv.Z(),cv.Pt());
391  cv.SetPtEtaPhi(r-dr/2,eta+deta/2,0);
392  gr->SetPoint(1,cv.Z(),cv.Pt());
393  cv.SetPtEtaPhi(r+dr/2,eta+deta/2,0);
394  gr->SetPoint(2,cv.Z(),cv.Pt());
395  cv.SetPtEtaPhi(r+dr/2,eta-deta/2,0);
396  gr->SetPoint(3,cv.Z(),cv.Pt());
397  } else {
399  cv.SetPtEtaPhi(1,eta-deta/2,0);cv*=(z-dz/2)/cv.Z();
400  gr->SetPoint(0,cv.Z(),cv.Pt());
401  gr->SetPoint(4,cv.Z(),cv.Pt());
402  cv.SetPtEtaPhi(1,eta+deta/2,0);cv*=(z-dz/2)/cv.Z();
403  gr->SetPoint(1,cv.Z(),cv.Pt());
404  cv.SetPtEtaPhi(1,eta+deta/2,0);cv*=(z+dz/2)/cv.Z();
405  gr->SetPoint(2,cv.Z(),cv.Pt());
406  cv.SetPtEtaPhi(1,eta-deta/2,0);cv*=(z+dz/2)/cv.Z();
407  gr->SetPoint(3,cv.Z(),cv.Pt());
408  } else {
409  double minr=r;
410  double maxr=r;
411  for(double px=x-dx/2;px<=x+dx/2;px+=dx) {
412  for(double py=y-dy/2;py<=y+dy/2;py+=dy) {
413  double pr=TMath::Sqrt(px*px+py*py);
414  minr=TMath::Min(minr,pr);
415  maxr=TMath::Max(maxr,pr);
416  }
417  }
418  cv.SetXYZ(minr,0,z-dz/2);
419  gr->SetPoint(0,cv.Z(),cv.Pt());
420  gr->SetPoint(4,cv.Z(),cv.Pt());
421  cv.SetXYZ(maxr,0,z-dz/2);
422  gr->SetPoint(1,cv.Z(),cv.Pt());
423  cv.SetXYZ(maxr,0,z+dz/2);
424  gr->SetPoint(2,cv.Z(),cv.Pt());
425  cv.SetXYZ(minr,0,z+dz/2);
426  gr->SetPoint(3,cv.Z(),cv.Pt());
427  }
428  }
429  //if(calocol[sample]>0) gr->Draw("Lsame");
430  // else gr->Draw("LFsame");
431  gr->Draw("LFsame");
432  if(ngr==0) firstgr=gr;
433  ++ngr;
434  }
435  }
436  cout<<"Done sample "<<sample<<" ("<<SamplingName(sample)<<")="<<ngr<<endl;
437  return firstgr;
438 }

◆ getClosestFCalCellIndex()

bool CaloGeometry::getClosestFCalCellIndex ( int  sampling,
float  x,
float  y,
int &  ieta,
int &  iphi,
int *  steps = 0 
)
inherited

Definition at line 592 of file CaloGeometry.cxx.

592  {
593 
594  double rmin = m_FCal_rmin[sampling-21];
595  double rmax = m_FCal_rmax[sampling-21];
596  int isam=sampling-20;
597  double a=1.;
598  const double b=0.01;
599  const int nmax=100;
600  int i=0;
601 
602  const double r = sqrt(x*x +y*y);
603  if(r==0.) return false;
604  const double r_inverse=1./r;
605 
606  if((r/rmax)>(rmin*r_inverse)){
607  x=x*rmax*r_inverse;
608  y=y*rmax*r_inverse;
609  while((!m_FCal_ChannelMap.getTileID(isam, a*x, a*y, ieta, iphi)) && i<nmax){
610  a-=b;
611  i++;
612  }
613  }
614  else {
615  x=x*rmin*r_inverse;
616  y=y*rmin*r_inverse;
617  while((!m_FCal_ChannelMap.getTileID(isam, a*x, a*y, ieta, iphi)) && i<nmax){
618  a+=b;
619  i++;
620  }
621 
622  }
623  if(steps)*steps=i+1;
624  return i<nmax;
625 }

◆ getDDE() [1/3]

const CaloDetDescrElement * CaloGeometry::getDDE ( Identifier  identify)
virtualinherited

Implements ICaloGeometry.

Definition at line 466 of file CaloGeometry.cxx.

467 {
468  return m_cells[identify];
469 }

◆ getDDE() [2/3]

const CaloDetDescrElement * CaloGeometry::getDDE ( int  sampling,
float  eta,
float  phi,
float *  distance = 0,
int *  steps = 0 
)
virtualinherited

Implements ICaloGeometry.

Definition at line 475 of file CaloGeometry.cxx.

476 {
477  if(sampling<0) return nullptr;
478  if(sampling>=MAX_SAMPLING) return nullptr;
479  if(m_cells_in_regions[sampling].empty()) return nullptr;
480 
481  float dist = 0;
482  const CaloDetDescrElement* bestDDE=nullptr;
483  if(!distance) distance=&dist;
484  *distance=+10000000;
485  int intsteps;
486  int beststeps;
487  if(steps) beststeps=(*steps);
488  else beststeps=0;
489 
490  if(sampling<21) {
491  for(int skip_range_check=0;skip_range_check<=1;++skip_range_check) {
492  for(unsigned int j=0;j<m_cells_in_regions[sampling].size();++j) {
493  if(!skip_range_check) {
494  if(eta<m_cells_in_regions[sampling][j]->mineta()) continue;
495  if(eta>m_cells_in_regions[sampling][j]->maxeta()) continue;
496  }
497  if(steps) intsteps=(*steps);
498  else intsteps=0;
499  if(m_debug) {
500  cout<<"CaloGeometry::getDDE : check map"<<j<<" skip_range_check="<<skip_range_check<<endl;
501  }
502  float newdist;
503  const CaloDetDescrElement* newDDE=m_cells_in_regions[sampling][j]->getDDE(eta,phi,&newdist,&intsteps);
504  if(m_debug) {
505  cout<<"CaloGeometry::getDDE : map"<<j<<" dist="<<newdist<<" best dist="<<*distance<<" steps="<<intsteps<<endl;
506  }
507  if(newdist<*distance) {
508  bestDDE=newDDE;
509  *distance=newdist;
510  if(steps) beststeps=intsteps;
511  if(newdist<-0.1) break; //stop, we are well within the hit cell
512  }
513  }
514  if(bestDDE) break;
515  }
516  } else {
517  return nullptr;
518  //for(int skip_range_check=0;skip_range_check<=1;++skip_range_check) {
519  //for(unsigned int j=0;j<m_cells_in_regions[sampling].size();++j) {
520  //if(!skip_range_check) {
521  //if(eta<m_cells_in_regions[sampling][j]->minx()) continue;
522  //if(eta>m_cells_in_regions[sampling][j]->maxx()) continue;
523  //if(phi<m_cells_in_regions[sampling][j]->miny()) continue;
524  //if(phi>m_cells_in_regions[sampling][j]->maxy()) continue;
525  //}
526  //if(steps) intsteps=*steps;
527  //else intsteps=0;
528  //if(m_debug) {
529  //cout<<"CaloGeometry::getDDE : check map"<<j<<" skip_range_check="<<skip_range_check<<endl;
530  //}
531  //float newdist;
532  //const CaloGeoDetDescrElement* newDDE=m_cells_in_regions[sampling][j]->getDDE(eta,phi,&newdist,&intsteps);
533  //if(m_debug) {
534  //cout<<"CaloGeometry::getDDE : map"<<j<<" dist="<<newdist<<" best dist="<<*distance<<" steps="<<intsteps<<endl;
535  //}
536  //if(newdist<*distance) {
537  //bestDDE=newDDE;
538  //*distance=newdist;
539  //if(steps) beststeps=intsteps;
540  //if(newdist<-0.1) break; //stop, we are well within the hit cell
541  //}
542  //}
543  //if(bestDDE) break;
544  //}
545  }
546  if(steps) *steps=beststeps;
547  return bestDDE;
548 }

◆ getDDE() [3/3]

const CaloDetDescrElement * CaloGeometry::getDDE ( int  sampling,
Identifier  identify 
)
virtualinherited

Definition at line 470 of file CaloGeometry.cxx.

471 {
472  return m_cells_in_sampling[sampling][identify];
473 }

◆ GetFCAL_ChannelMap()

FCAL_ChannelMap* CaloGeometry::GetFCAL_ChannelMap ( )
inlineinherited

Definition at line 72 of file CaloGeometry.h.

72 {return &m_FCal_ChannelMap;}

◆ getFCalDDE()

const CaloDetDescrElement * CaloGeometry::getFCalDDE ( int  sampling,
float  x,
float  y,
float  z,
float *  distance = 0,
int *  steps = 0 
)
virtualinherited

Implements ICaloGeometry.

Definition at line 550 of file CaloGeometry.cxx.

550  {
551  int isam = sampling - 20;
552  int iphi(-100000),ieta(-100000);
553  Long64_t mask1[]{0x34,0x34,0x35};
554  Long64_t mask2[]{0x36,0x36,0x37};
555  bool found = m_FCal_ChannelMap.getTileID(isam, x, y, ieta, iphi);
556  if(steps && found) *steps=0;
557  if(!found) {
558  //cout << "Warning: Hit is not matched with any FCal cell! Looking for the closest cell" << endl;
559  found = getClosestFCalCellIndex(sampling, x, y, ieta, iphi,steps);
560  }
561  if(!found) {
562  cout << "Error: Unable to find the closest FCal cell!" << endl;
563  return nullptr;
564  }
565 
566 
567  //cout << "CaloGeometry::getFCalDDE: x:" << x << " y: " << y << " ieta: " << ieta << " iphi: " << iphi << " cmap->x(): " << m_FCal_ChannelMap.x(isam,ieta,iphi) << " cmap->y(): " << m_FCal_ChannelMap.y(isam,ieta,iphi) << endl;
568  Long64_t id = (ieta << 5) + 2*iphi;
569  if(isam==2)id+= (8<<8);
570 
571 
572 
573  if(z>0) id+=(mask2[isam-1] << 12);
574  else id+=(mask1[isam-1] << 12);
575 
576  id = id << 44;
577  Identifier identify((unsigned long long)id);
578  const CaloDetDescrElement* foundcell=m_cells[identify];
579 
580  // Report the shortest distance in x or y to the face of the cell if outside the cell.
581  // If inside the cell this will be negative and be the shortest distance to a cell face.
582  float dist = 0;
583  if(!distance) distance=&dist;
584  float distanceX = abs(foundcell->x()-x) - foundcell->dx()/2;
585  float distanceY = abs(foundcell->y()-y) - foundcell->dy()/2;
586  *distance = max(distanceX,distanceY);
587 
588  return foundcell;
589 }

◆ GetGraph()

TGraphErrors* CaloGeometry::GetGraph ( unsigned int  sample) const
inlineinherited

Definition at line 65 of file CaloGeometry.h.

65 {return m_graph_layers[sample];};

◆ InitRZmaps()

void CaloGeometry::InitRZmaps ( )
protectedvirtualinherited

Definition at line 197 of file CaloGeometry.cxx.

198 {
199  FSmap< double , double > rz_map_eta [2][MAX_SAMPLING];
200  FSmap< double , double > rz_map_rmid[2][MAX_SAMPLING];
201  FSmap< double , double > rz_map_zmid[2][MAX_SAMPLING];
202  FSmap< double , double > rz_map_rent[2][MAX_SAMPLING];
203  FSmap< double , double > rz_map_zent[2][MAX_SAMPLING];
204  FSmap< double , double > rz_map_rext[2][MAX_SAMPLING];
205  FSmap< double , double > rz_map_zext[2][MAX_SAMPLING];
206  FSmap< double , int > rz_map_n [2][MAX_SAMPLING];
207 
208 
209  for(unsigned int side=0;side<=1;++side) for(unsigned int sample=0;sample<MAX_SAMPLING;++sample)
210  {
211  m_min_eta_sample[side][sample]=+1000;
212  m_max_eta_sample[side][sample]=-1000;
213  }
214 
215 
216  for(t_cellmap::iterator calo_iter=m_cells.begin();calo_iter!=m_cells.end();++calo_iter)
217  {
218  const CaloDetDescrElement* theDDE=(*calo_iter).second;
219  if(theDDE)
220  {
221  unsigned int sample=theDDE->getSampling();
222 
223  int side=0;
224  int sign_side=-1;
225  double eta_raw=theDDE->eta_raw();
226  if(eta_raw>0) {
227  side=1;
228  sign_side=+1;
229  }
230 
231  if(!m_cells_in_sampling_for_phi0[sample][eta_raw]) {
232  m_cells_in_sampling_for_phi0[sample][eta_raw]=theDDE;
233  } else {
234  if(TMath::Abs(theDDE->phi()) < TMath::Abs(m_cells_in_sampling_for_phi0[sample][eta_raw]->phi())) {
235  m_cells_in_sampling_for_phi0[sample][eta_raw]=theDDE;
236  }
237  }
238 
239  double min_eta=theDDE->eta()-theDDE->deta()/2;
240  double max_eta=theDDE->eta()+theDDE->deta()/2;
243 
244  if(rz_map_eta[side][sample].find(eta_raw)==rz_map_eta[side][sample].end()) {
245  rz_map_eta [side][sample][eta_raw]=0;
246  rz_map_rmid[side][sample][eta_raw]=0;
247  rz_map_zmid[side][sample][eta_raw]=0;
248  rz_map_rent[side][sample][eta_raw]=0;
249  rz_map_zent[side][sample][eta_raw]=0;
250  rz_map_rext[side][sample][eta_raw]=0;
251  rz_map_zext[side][sample][eta_raw]=0;
252  rz_map_n [side][sample][eta_raw]=0;
253  }
254  rz_map_eta [side][sample][eta_raw]+=theDDE->eta();
255  rz_map_rmid[side][sample][eta_raw]+=theDDE->r();
256  rz_map_zmid[side][sample][eta_raw]+=theDDE->z();
257  double drh=theDDE->dr()/2;
258  double dzh=theDDE->dz();
259  if(sample<=CaloSampling::EMB3) { // ensure we have a valid sampling
260  drh=theDDE->dr();
261  }
262  // An `else` would be good here since we can't continue with a *bad* sampling...
263  // Should most likely handle the situation nicely rather than with a crash.
264 
265  rz_map_rent[side][sample][eta_raw]+=theDDE->r()-drh;
266  rz_map_zent[side][sample][eta_raw]+=theDDE->z()-dzh*sign_side;
267  rz_map_rext[side][sample][eta_raw]+=theDDE->r()+drh;
268  rz_map_zext[side][sample][eta_raw]+=theDDE->z()+dzh*sign_side;
269  rz_map_n [side][sample][eta_raw]++;
270 
271  }
272  }
273 
274  for(int side=0;side<=1;++side)
275  {
276  for(int sample=0;sample<MAX_SAMPLING;++sample)
277  {
278 
279  if(!rz_map_n[side][sample].empty())
280  {
281  for(FSmap< double , int >::iterator iter=rz_map_n[side][sample].begin();iter!=rz_map_n[side][sample].end();++iter)
282  {
283  double eta_raw=iter->first;
284  if(iter->second<1)
285  {
286  //ATH_MSG_WARNING("rz-map for side="<<side<<" sample="<<sample<<" eta_raw="<<eta_raw<<" : #cells="<<iter->second<<" !!!");
287  }
288  else
289  {
290  double eta =rz_map_eta[side][sample][eta_raw]/iter->second;
291  double rmid=rz_map_rmid[side][sample][eta_raw]/iter->second;
292  double zmid=rz_map_zmid[side][sample][eta_raw]/iter->second;
293  double rent=rz_map_rent[side][sample][eta_raw]/iter->second;
294  double zent=rz_map_zent[side][sample][eta_raw]/iter->second;
295  double rext=rz_map_rext[side][sample][eta_raw]/iter->second;
296  double zext=rz_map_zext[side][sample][eta_raw]/iter->second;
297 
304  }
305  }
306  //ATH_MSG_DEBUG("rz-map for side="<<side<<" sample="<<sample<<" #etas="<<m_rmid_map[side][sample].size());
307  }
308  else
309  {
310  std::cout<<"rz-map for side="<<side<<" sample="<<sample<<" is empty!!!"<<std::endl;
311  }
312  } //sample
313  } //side
314 
315  if(DoGraphs()) {
316  for(int sample=0;sample<MAX_SAMPLING;++sample) {
317  m_graph_layers[sample]=new TGraphErrors(rz_map_n[0][sample].size()+rz_map_n[1][sample].size());
318  m_graph_layers[sample]->SetMarkerColor(TMath::Abs(CaloGeometry_calocol[sample]));
319  m_graph_layers[sample]->SetLineColor(TMath::Abs(CaloGeometry_calocol[sample]));
320  int np=0;
321  for(int side=0;side<=1;++side) {
322  for(FSmap< double , int >::iterator iter=rz_map_n[side][sample].begin();iter!=rz_map_n[side][sample].end();++iter) {
323  double eta_raw=iter->first;
324  int sign_side=-1;
325  if(eta_raw>0) sign_side=+1;
326  //double eta =rz_map_eta[side][sample][eta_raw]/iter->second;
327  double rmid=rz_map_rmid[side][sample][eta_raw]/iter->second;
328  double zmid=rz_map_zmid[side][sample][eta_raw]/iter->second;
329  //double rent=rz_map_rent[side][sample][eta_raw]/iter->second;
330  //double zent=rz_map_zent[side][sample][eta_raw]/iter->second;
331  double rext=rz_map_rext[side][sample][eta_raw]/iter->second;
332  double zext=rz_map_zext[side][sample][eta_raw]/iter->second;
333  m_graph_layers[sample]->SetPoint(np,zmid,rmid);
334  /*
335  if(isCaloBarrel(sample)) {
336  m_graph_layers[sample]->SetPointError(np,0,rext-rmid);
337  } else {
338  m_graph_layers[sample]->SetPointError(np,(zext-zent)*sign_side,0);
339  }
340  */
341  m_graph_layers[sample]->SetPointError(np,(zext-zmid)*sign_side,rext-rmid);
342  ++np;
343  }
344  }
345  }
346  }
347 }

◆ isCaloBarrel()

bool CaloGeometry::isCaloBarrel ( int  sample) const
inlinevirtualinherited

Implements ICaloGeometry.

Definition at line 62 of file CaloGeometry.h.

62 {return m_isCaloBarrel[sample];};

◆ LoadFCalGeometryFromFiles()

bool CaloGeometryFromFile::LoadFCalGeometryFromFiles ( const std::array< std::string, 3 > &  fileNames)

Definition at line 184 of file CaloGeometryFromFile.cxx.

185 {
186  std::vector<std::unique_ptr<std::istream>> electrodes;
187  std::vector<std::unique_ptr<std::streambuf>> electrodesBuf;
188  electrodes.reserve(3);
189  electrodesBuf.reserve(3);
190 
191  for (uint16_t i = 0; i < 3; i++) {
192  const std::string &file = fileNames[i];
193 #ifdef ENABLE_XROOTD_SUPPORT
194  if (file.find("root://") != std::string::npos) {
195  electrodesBuf.emplace_back(std::make_unique<XrdStreamBuf>(file));
196  electrodes.emplace_back(std::make_unique<std::istream>(electrodesBuf.back().get()));
197  } else {
198 #endif
199  std::unique_ptr<std::ifstream> directStream = std::make_unique<std::ifstream>(file);
200  if (!directStream->is_open()) {
201  std::cout << "Error: Could not open " << file << std::endl;
202  throw std::runtime_error("Could not open file");
203  }
204  electrodes.push_back(std::move(directStream));
205 #ifdef ENABLE_XROOTD_SUPPORT
206  }
207 #endif
208  }
209 
210  int thisTubeId;
211  int thisTubeI;
212  int thisTubeJ;
213  // int thisTubeID;
214  // int thisTubeMod;
215  double thisTubeX;
216  double thisTubeY;
217  TString tubeName;
218 
219  // int second_column;
220  std::string seventh_column;
221  std::string eight_column;
222  int ninth_column;
223 
224  int i;
225  for (int imodule = 1; imodule <= 3; imodule++) {
226  std::cout << "Loading FCal electrode #" << imodule << std::endl;
227 
228  i = 0;
229  while (1) {
230 
231  (*electrodes[imodule - 1]) >> tubeName;
232  if (electrodes[imodule - 1]->eof())
233  break;
234  (*electrodes[imodule - 1]) >> thisTubeId; // ?????
235  (*electrodes[imodule - 1]) >> thisTubeI;
236  (*electrodes[imodule - 1]) >> thisTubeJ;
237  (*electrodes[imodule - 1]) >> thisTubeX;
238  (*electrodes[imodule - 1]) >> thisTubeY;
239  (*electrodes[imodule - 1]) >> seventh_column;
240  (*electrodes[imodule - 1]) >> eight_column;
241  (*electrodes[imodule - 1]) >> ninth_column;
242 
243  tubeName.ReplaceAll("'", "");
244  std::string tubeNamestring = tubeName.Data();
245 
246  std::istringstream tileStream1(std::string(tubeNamestring, 1, 1));
247  std::istringstream tileStream2(std::string(tubeNamestring, 3, 2));
248  std::istringstream tileStream3(std::string(tubeNamestring, 6, 3));
249  int a1 = 0, a2 = 0, a3 = 0;
250  if (tileStream1)
251  tileStream1 >> a1;
252  if (tileStream2)
253  tileStream2 >> a2;
254  if (tileStream3)
255  tileStream3 >> a3;
256 
257  std::stringstream s;
258 
259  m_FCal_ChannelMap.add_tube(tubeNamestring, imodule, thisTubeId, thisTubeI,
260  thisTubeJ, thisTubeX, thisTubeY,
261  seventh_column);
262 
263  i++;
264  }
265  }
266 
267  m_FCal_ChannelMap.finish(); // Creates maps
268 
269  electrodes.clear();
270  electrodesBuf.clear();
271 
272  this->calculateFCalRminRmax();
273  return this->checkFCalGeometryConsistency();
274 }

◆ LoadGeometryFromFile()

bool CaloGeometryFromFile::LoadGeometryFromFile ( const std::string &  fileName,
const std::string &  treeName,
const std::string &  hashFileName = "/eos/atlas/atlascerngroupdisk/proj-simul/" "CaloGeometry/cellId_vs_cellHashId_map.txt" 
)

Definition at line 23 of file CaloGeometryFromFile.cxx.

26 {
27  std::map<uint64_t, uint64_t> cellId_vs_cellHashId_map;
28 
29  std::unique_ptr<std::istream> hashStream{};
30  std::unique_ptr<std::streambuf> hashStreamBuf{};
31 #ifdef ENABLE_XROOTD_SUPPORT
32  if (hashFileName.find("root://") != std::string::npos) {
33  hashStreamBuf = std::make_unique<XrdStreamBuf>(hashFileName);
34  hashStream = std::make_unique<std::istream>(hashStreamBuf.get());
35  } else {
36 #endif
37  std::unique_ptr<std::ifstream> hashStreamDirect = std::make_unique<std::ifstream>(hashFileName);
38  if (!hashStreamDirect->is_open()) {
39  std::cout << "Error: Could not open " << hashFileName << std::endl;
40  throw std::runtime_error("Could not open file");
41  }
42  hashStream = std::move(hashStreamDirect);
43 #ifdef ENABLE_XROOTD_SUPPORT
44  }
45 #endif
46 
47  std::cout << "Loading cellId_vs_cellHashId_map" << std::endl;
48 
49  int i = 0;
50  uint64_t id, hash_id;
51  while (!hashStream->eof()) {
52  i++;
53 
54  *hashStream >> id >> hash_id;
55  cellId_vs_cellHashId_map[id] = hash_id;
56  if (i % 10000 == 0)
57  std::cout << "Line: " << i << " id " << std::hex << id << " hash_id "
58  << std::dec << hash_id << std::endl;
59  }
60 
61  std::cout << "Done." << std::endl;
62 
63  auto f = std::unique_ptr<TFile>(TFile::Open(fileName.c_str()));
64  if (!f) {
65  std::cerr << "Error: Could not open file '" << fileName << "'" << std::endl;
66  return false;
67  }
68  TTree *tree = (TTree*)f->Get(treeName.c_str());
69  if (!tree)
70  return false;
71 
72  TTree *fChain = tree;
73 
75 
76  // List of branches
77  TBranch *b_identifier;
78  TBranch *b_calosample;
79  TBranch *b_eta;
80  TBranch *b_phi;
81  TBranch *b_r;
82  TBranch *b_eta_raw;
83  TBranch *b_phi_raw;
84  TBranch *b_r_raw;
85  TBranch *b_x;
86  TBranch *b_y;
87  TBranch *b_z;
88  TBranch *b_x_raw;
89  TBranch *b_y_raw;
90  TBranch *b_z_raw;
91  TBranch *b_deta;
92  TBranch *b_dphi;
93  TBranch *b_dr;
94  TBranch *b_dx;
95  TBranch *b_dy;
96  TBranch *b_dz;
97 
98  fChain->SetMakeClass(1);
99  fChain->SetBranchAddress("identifier", &cell.m_identify, &b_identifier);
100  fChain->SetBranchAddress("calosample", &cell.m_calosample, &b_calosample);
101  fChain->SetBranchAddress("eta", &cell.m_eta, &b_eta);
102  fChain->SetBranchAddress("phi", &cell.m_phi, &b_phi);
103  fChain->SetBranchAddress("r", &cell.m_r, &b_r);
104  fChain->SetBranchAddress("eta_raw", &cell.m_eta_raw, &b_eta_raw);
105  fChain->SetBranchAddress("phi_raw", &cell.m_phi_raw, &b_phi_raw);
106  fChain->SetBranchAddress("r_raw", &cell.m_r_raw, &b_r_raw);
107  fChain->SetBranchAddress("x", &cell.m_x, &b_x);
108  fChain->SetBranchAddress("y", &cell.m_y, &b_y);
109  fChain->SetBranchAddress("z", &cell.m_z, &b_z);
110  fChain->SetBranchAddress("x_raw", &cell.m_x_raw, &b_x_raw);
111  fChain->SetBranchAddress("y_raw", &cell.m_y_raw, &b_y_raw);
112  fChain->SetBranchAddress("z_raw", &cell.m_z_raw, &b_z_raw);
113  fChain->SetBranchAddress("deta", &cell.m_deta, &b_deta);
114  fChain->SetBranchAddress("dphi", &cell.m_dphi, &b_dphi);
115  fChain->SetBranchAddress("dr", &cell.m_dr, &b_dr);
116  fChain->SetBranchAddress("dx", &cell.m_dx, &b_dx);
117  fChain->SetBranchAddress("dy", &cell.m_dy, &b_dy);
118  fChain->SetBranchAddress("dz", &cell.m_dz, &b_dz);
119 
120  Long64_t nentries = fChain->GetEntriesFast();
121  for (Long64_t jentry = 0; jentry < nentries; jentry++) {
122  Long64_t ientry = fChain->LoadTree(jentry);
123  if (ientry < 0)
124  break;
125  fChain->GetEntry(jentry);
126 
127  if (cellId_vs_cellHashId_map.find(cell.m_identify)
128  != cellId_vs_cellHashId_map.end()) {
129  cell.m_hash_id = cellId_vs_cellHashId_map[cell.m_identify];
130  if (cell.m_hash_id != jentry)
131  std::cout << jentry << " : ERROR hash=" << cell.m_hash_id << std::endl;
132  } else
133  std::cout << std::endl
134  << "ERROR: Cell id not found in the cellId_vs_cellHashId_map!!!"
135  << std::endl
136  << std::endl;
137 
138  const CaloDetDescrElement *pcell = new CaloDetDescrElement(cell);
139  this->addcell(pcell);
140 
141  if (jentry % 25000 == 0) {
142  std::cout << "Checking loading cells from file" << std::endl
143  << jentry << " : " << pcell->getSampling() << ", "
144  << pcell->identify() << std::endl;
145 
146  }
147  }
148 
149  f->Close();
150  bool ok = PostProcessGeometry();
151 
152  std::cout << "Result of PostProcessGeometry(): " << ok << std::endl;
153 
154  const CaloDetDescrElement *mcell = 0;
155  unsigned long long cellid64(3179554531063103488);
156  Identifier cellid(cellid64);
157  mcell = this->getDDE(cellid); // This is working also for the FCal
158 
159  std::cout << "\n \n";
160  std::cout << "Testing whether CaloGeoGeometry is loaded properly"
161  << std::endl;
162  if (!mcell) {
163  std::cout << "Cell is not found" << std::endl;
164  }
165  else {
166  std::cout << "Identifier " << mcell->identify() << " sampling "
167  << mcell->getSampling() << " eta: " << mcell->eta()
168  << " phi: " << mcell->phi() << " CaloDetDescrElement=" << mcell
169  << std::endl
170  << std::endl;
171 
172  const CaloDetDescrElement *mcell2
173  = this->getDDE(mcell->getSampling(), mcell->eta(), mcell->phi());
174  std::cout << "Identifier " << mcell2->identify() << " sampling "
175  << mcell2->getSampling() << " eta: " << mcell2->eta()
176  << " phi: " << mcell2->phi() << " CaloDetDescrElement=" << mcell2
177  << std::endl
178  << std::endl;
179  }
180 
181  return ok;
182 }

◆ minmaxeta()

void CaloGeometry::minmaxeta ( int  sample,
double  eta,
double &  mineta,
double &  maxeta 
) const
virtualinherited

Implements ICaloGeometry.

Definition at line 778 of file CaloGeometry.cxx.

779 {
780  int side=0;
781  if(eta>0) side=1;
782 
783  mineta=m_min_eta_sample[side][sample];
784  maxeta=m_max_eta_sample[side][sample];
785 }

◆ post_process()

void CaloGeometry::post_process ( int  layer)
protectedvirtualinherited

Definition at line 121 of file CaloGeometry.cxx.

122 {
123  //cout<<"post processing sampling "<<sampling<<endl;
124  bool found_overlap=false;
125  for(unsigned int j=0;j<m_cells_in_regions[sampling].size();++j) {
126  /*
127  cout<<"Sample "<<sampling<<": checking map "<<j<<"/"<<m_cells_in_regions[sampling].size();
128  for(unsigned int k=0;k<m_cells_in_regions[sampling].size();++k) {
129  cout<<", "<<k<<":"<<m_cells_in_regions[sampling][k]->size();
130  }
131  cout<<endl;
132  */
133  for(unsigned int i=j+1;i<m_cells_in_regions[sampling].size();++i) {
134  if(m_cells_in_regions[sampling][i]->has_overlap(m_cells_in_regions[sampling][j])) {
135  if(!found_overlap) {
136  cout<<"Sample "<<sampling<<", starting maps : "<<m_cells_in_regions[sampling].size();
137  for(unsigned int k=0;k<m_cells_in_regions[sampling].size();++k) {
138  cout<<", "<<k<<":"<<m_cells_in_regions[sampling][k]->size();
139  }
140  cout<<endl;
141  }
142  found_overlap=true;
143  /*
144  cout<<"Sample "<<sampling<<": Found overlap between map "<<j<<" and "<<i<<", "
145  <<m_cells_in_regions[sampling].size()<<" total maps"<<endl;
146  cout<<" current configuration map "<<j<<"/"<<m_cells_in_regions[sampling].size();
147  for(unsigned int k=0;k<m_cells_in_regions[sampling].size();++k) {
148  cout<<", "<<k<<":"<<m_cells_in_regions[sampling][k]->size();
149  }
150  cout<<endl;
151 
152  PrintMapInfo(sampling,j);
153  PrintMapInfo(sampling,i);
154  */
155 
156  CaloGeometryLookup* toremove=m_cells_in_regions[sampling][i];
157  toremove->merge_into_ref(m_cells_in_regions[sampling][j]);
158 
159  /*
160  cout<<" New ";
161  PrintMapInfo(sampling,j);
162  */
163 
164  for(unsigned int k=i;k<m_cells_in_regions[sampling].size()-1;++k) {
165  m_cells_in_regions[sampling][k]=m_cells_in_regions[sampling][k+1];
166  m_cells_in_regions[sampling][k]->set_index(k);
167  }
168  m_cells_in_regions[sampling].resize(m_cells_in_regions[sampling].size()-1);
169 
170  /*
171  cout<<" new configuration map "<<j<<"/"<<m_cells_in_regions[sampling].size();
172  for(unsigned int k=0;k<m_cells_in_regions[sampling].size();++k) {
173  cout<<", "<<k<<":"<<m_cells_in_regions[sampling][k]->size();
174  }
175  cout<<endl;
176  */
177 
178  --i;
179  }
180  }
181  }
182 
183  if(found_overlap) {
184  cout<<"Sample "<<sampling<<", final maps : "<<m_cells_in_regions[sampling].size();
185  for(unsigned int k=0;k<m_cells_in_regions[sampling].size();++k) {
186  cout<<", "<<k<<":"<<m_cells_in_regions[sampling][k]->size();
187  }
188  cout<<endl;
189  }
190 
191  if(found_overlap) {
192  cout<<"Run another round of ";
193  post_process(sampling);
194  }
195 }

◆ PostProcessGeometry()

bool CaloGeometry::PostProcessGeometry ( )
virtualinherited

Implements ICaloGeometry.

Definition at line 627 of file CaloGeometry.cxx.

628 {
629  for(int i=0;i<MAX_SAMPLING;++i) {
630  post_process(i);
631  for(unsigned int j=0;j<m_cells_in_regions[i].size();++j) {
632  m_cells_in_regions[i][j]->post_process();
633  }
634  //if(i>=21) break;
635  }
636 
637  InitRZmaps();
638 
639  /*
640  cout<<"all : "<<m_cells.size()<<endl;
641  for(int sampling=0;sampling<MAX_SAMPLING;++sampling) {
642  cout<<"cells sampling "<<sampling<<" : "<<m_cells_in_sampling[sampling].size()<<" cells";
643  cout<<", "<<m_cells_in_regions[sampling].size()<<" lookup map(s)"<<endl;
644  for(unsigned int j=0;j<m_cells_in_regions[sampling].size();++j) {
645  PrintMapInfo(sampling,j);
646  //break;
647  }
648  //if(i>0) break;
649  }
650  */
651 
652  return true;
653 }

◆ PrintMapInfo()

void CaloGeometry::PrintMapInfo ( int  i,
int  j 
)
virtualinherited

Definition at line 93 of file CaloGeometry.cxx.

94 {
95  cout<<" map "<<j<<": "<<m_cells_in_regions[i][j]->size()<<" cells";
96  if(i<21) {
97  cout<<", "<<m_cells_in_regions[i][j]->cell_grid_eta()<<"*"<<m_cells_in_regions[i][j]->cell_grid_phi();
98  cout<<", deta="<<m_cells_in_regions[i][j]->deta().mean()<<"+-"<<m_cells_in_regions[i][j]->deta().rms();
99  cout<<", dphi="<<m_cells_in_regions[i][j]->dphi().mean()<<"+-"<<m_cells_in_regions[i][j]->dphi().rms();
100  cout<<", mineta="<<m_cells_in_regions[i][j]->mineta()<<", maxeta="<<m_cells_in_regions[i][j]->maxeta();
101  cout<<", minphi="<<m_cells_in_regions[i][j]->minphi()<<", maxphi="<<m_cells_in_regions[i][j]->maxphi();
102  cout<<endl<<" ";
103  cout<<", mineta_raw="<<m_cells_in_regions[i][j]->mineta_raw()<<", maxeta_raw="<<m_cells_in_regions[i][j]->maxeta_raw();
104  cout<<", minphi_raw="<<m_cells_in_regions[i][j]->minphi_raw()<<", maxphi_raw="<<m_cells_in_regions[i][j]->maxphi_raw();
105  cout<<endl;
106  } else {
107  cout<<", "<<m_cells_in_regions[i][j]->cell_grid_eta()<<"*"<<m_cells_in_regions[i][j]->cell_grid_phi();
108  cout<<", dx="<<m_cells_in_regions[i][j]->dx().mean()<<"+-"<<m_cells_in_regions[i][j]->dx().rms();
109  cout<<", dy="<<m_cells_in_regions[i][j]->dy().mean()<<"+-"<<m_cells_in_regions[i][j]->dy().rms();
110  cout<<", mindx="<<m_cells_in_regions[i][j]->mindx();
111  cout<<", mindy="<<m_cells_in_regions[i][j]->mindy();
112  cout<<", minx="<<m_cells_in_regions[i][j]->minx()<<", maxx="<<m_cells_in_regions[i][j]->maxx();
113  cout<<", miny="<<m_cells_in_regions[i][j]->miny()<<", maxy="<<m_cells_in_regions[i][j]->maxy();
114  cout<<endl<<" ";
115  cout<<", minx_raw="<<m_cells_in_regions[i][j]->minx_raw()<<", maxx_raw="<<m_cells_in_regions[i][j]->maxx_raw();
116  cout<<", miny_raw="<<m_cells_in_regions[i][j]->miny_raw()<<", maxy_raw="<<m_cells_in_regions[i][j]->maxy_raw();
117  cout<<endl;
118  }
119 }

◆ rent()

double CaloGeometry::rent ( int  sample,
double  eta 
) const
virtualinherited

Implements ICaloGeometry.

Definition at line 812 of file CaloGeometry.cxx.

813 {
814  int side=0;
815  if(eta>0) side=1;
816 
817  return m_rent_map[side][sample].find_closest(eta)->second;
818 }

◆ rext()

double CaloGeometry::rext ( int  sample,
double  eta 
) const
virtualinherited

Implements ICaloGeometry.

Definition at line 837 of file CaloGeometry.cxx.

838 {
839  int side=0;
840  if(eta>0) side=1;
841 
842  return m_rext_map[side][sample].find_closest(eta)->second;
843 }

◆ rmid()

double CaloGeometry::rmid ( int  sample,
double  eta 
) const
virtualinherited

Implements ICaloGeometry.

Definition at line 787 of file CaloGeometry.cxx.

788 {
789  int side=0;
790  if(eta>0) side=1;
791 
792  return m_rmid_map[side][sample].find_closest(eta)->second;
793 }

◆ rpos()

double CaloGeometry::rpos ( int  sample,
double  eta,
int  subpos = CaloSubPos::SUBPOS_MID 
) const
virtualinherited

Implements ICaloGeometry.

Definition at line 862 of file CaloGeometry.cxx.

863 {
864 
865  int side=0;
866  if(eta>0) side=1;
867 
868  if(subpos==CaloSubPos::SUBPOS_ENT) return m_rent_map[side][sample].find_closest(eta)->second;
869  if(subpos==CaloSubPos::SUBPOS_EXT) return m_rext_map[side][sample].find_closest(eta)->second;
870 
871  return m_rmid_map[side][sample].find_closest(eta)->second;
872 }

◆ rzent()

double CaloGeometry::rzent ( int  sample,
double  eta 
) const
virtualinherited

Implements ICaloGeometry.

Definition at line 828 of file CaloGeometry.cxx.

829 {
830  int side=0;
831  if(eta>0) side=1;
832 
833  if(isCaloBarrel(sample)) return m_rent_map[side][sample].find_closest(eta)->second;
834  else return m_zent_map[side][sample].find_closest(eta)->second;
835 }

◆ rzext()

double CaloGeometry::rzext ( int  sample,
double  eta 
) const
virtualinherited

Implements ICaloGeometry.

Definition at line 853 of file CaloGeometry.cxx.

854 {
855  int side=0;
856  if(eta>0) side=1;
857 
858  if(isCaloBarrel(sample)) return m_rext_map[side][sample].find_closest(eta)->second;
859  else return m_zext_map[side][sample].find_closest(eta)->second;
860 }

◆ rzmid()

double CaloGeometry::rzmid ( int  sample,
double  eta 
) const
virtualinherited

Implements ICaloGeometry.

Definition at line 803 of file CaloGeometry.cxx.

804 {
805  int side=0;
806  if(eta>0) side=1;
807 
808  if(isCaloBarrel(sample)) return m_rmid_map[side][sample].find_closest(eta)->second;
809  else return m_zmid_map[side][sample].find_closest(eta)->second;
810 }

◆ rzpos()

double CaloGeometry::rzpos ( int  sample,
double  eta,
int  subpos = CaloSubPos::SUBPOS_MID 
) const
virtualinherited

Implements ICaloGeometry.

Definition at line 884 of file CaloGeometry.cxx.

885 {
886  int side=0;
887  if(eta>0) side=1;
888 
889  if(isCaloBarrel(sample)) {
890  if(subpos==CaloSubPos::SUBPOS_ENT) return m_rent_map[side][sample].find_closest(eta)->second;
891  if(subpos==CaloSubPos::SUBPOS_EXT) return m_rext_map[side][sample].find_closest(eta)->second;
892  return m_rmid_map[side][sample].find_closest(eta)->second;
893  } else {
894  if(subpos==CaloSubPos::SUBPOS_ENT) return m_zent_map[side][sample].find_closest(eta)->second;
895  if(subpos==CaloSubPos::SUBPOS_EXT) return m_zext_map[side][sample].find_closest(eta)->second;
896  return m_zmid_map[side][sample].find_closest(eta)->second;
897  }
898 }

◆ SamplingName()

std::string CaloGeometry::SamplingName ( int  sample)
staticinherited

Definition at line 900 of file CaloGeometry.cxx.

901 {
903 }

◆ SetDoGraphs()

void CaloGeometry::SetDoGraphs ( bool  dographs = true)
inlineinherited

Definition at line 66 of file CaloGeometry.h.

66 {m_dographs=dographs;};

◆ SetFCal_ChannelMap()

void CaloGeometry::SetFCal_ChannelMap ( const FCAL_ChannelMap fcal_ChannnelMap)
inlineinherited

Definition at line 73 of file CaloGeometry.h.

73 {m_FCal_ChannelMap=*fcal_ChannnelMap;}

◆ zent()

double CaloGeometry::zent ( int  sample,
double  eta 
) const
virtualinherited

Implements ICaloGeometry.

Definition at line 820 of file CaloGeometry.cxx.

821 {
822  int side=0;
823  if(eta>0) side=1;
824 
825  return m_zent_map[side][sample].find_closest(eta)->second;
826 }

◆ zext()

double CaloGeometry::zext ( int  sample,
double  eta 
) const
virtualinherited

Implements ICaloGeometry.

Definition at line 845 of file CaloGeometry.cxx.

846 {
847  int side=0;
848  if(eta>0) side=1;
849 
850  return m_zext_map[side][sample].find_closest(eta)->second;
851 }

◆ zmid()

double CaloGeometry::zmid ( int  sample,
double  eta 
) const
virtualinherited

Implements ICaloGeometry.

Definition at line 795 of file CaloGeometry.cxx.

796 {
797  int side=0;
798  if(eta>0) side=1;
799 
800  return m_zmid_map[side][sample].find_closest(eta)->second;
801 }

◆ zpos()

double CaloGeometry::zpos ( int  sample,
double  eta,
int  subpos = CaloSubPos::SUBPOS_MID 
) const
virtualinherited

Implements ICaloGeometry.

Definition at line 874 of file CaloGeometry.cxx.

875 {
876  int side=0;
877  if(eta>0) side=1;
878 
879  if(subpos==CaloSubPos::SUBPOS_ENT) return m_zent_map[side][sample].find_closest(eta)->second;
880  if(subpos==CaloSubPos::SUBPOS_EXT) return m_zext_map[side][sample].find_closest(eta)->second;
881  return m_zmid_map[side][sample].find_closest(eta)->second;
882 }

Member Data Documentation

◆ m_cells

t_cellmap CaloGeometry::m_cells
protectedinherited

Definition at line 100 of file CaloGeometry.h.

◆ m_cells_in_regions

std::vector< std::vector< CaloGeometryLookup* > > CaloGeometry::m_cells_in_regions
protectedinherited

Definition at line 103 of file CaloGeometry.h.

◆ m_cells_in_sampling

std::vector< t_cellmap > CaloGeometry::m_cells_in_sampling
protectedinherited

Definition at line 101 of file CaloGeometry.h.

◆ m_cells_in_sampling_for_phi0

std::vector< t_eta_cellmap > CaloGeometry::m_cells_in_sampling_for_phi0
protectedinherited

Definition at line 102 of file CaloGeometry.h.

◆ m_debug

std::atomic< bool > CaloGeometry::m_debug =false
staticinherited

Definition at line 32 of file CaloGeometry.h.

◆ m_debug_identify

const Identifier CaloGeometry::m_debug_identify
staticinherited

Definition at line 31 of file CaloGeometry.h.

◆ m_dographs

bool CaloGeometry::m_dographs
protectedinherited

Definition at line 115 of file CaloGeometry.h.

◆ m_FCal_ChannelMap

FCAL_ChannelMap CaloGeometry::m_FCal_ChannelMap
protectedinherited

Definition at line 117 of file CaloGeometry.h.

◆ m_FCal_rmax

std::vector<double> CaloGeometry::m_FCal_rmax
protectedinherited

Definition at line 118 of file CaloGeometry.h.

◆ m_FCal_rmin

std::vector<double> CaloGeometry::m_FCal_rmin
protectedinherited

Definition at line 118 of file CaloGeometry.h.

◆ m_graph_layers

std::vector< TGraphErrors* > CaloGeometry::m_graph_layers
protectedinherited

Definition at line 116 of file CaloGeometry.h.

◆ m_isCaloBarrel

std::vector< bool > CaloGeometry::m_isCaloBarrel
protectedinherited

Definition at line 105 of file CaloGeometry.h.

◆ m_max_eta_sample

std::vector< double > CaloGeometry::m_max_eta_sample[2]
protectedinherited

Definition at line 107 of file CaloGeometry.h.

◆ m_min_eta_sample

std::vector< double > CaloGeometry::m_min_eta_sample[2]
protectedinherited

Definition at line 106 of file CaloGeometry.h.

◆ m_rent_map

std::vector< FSmap< double , double > > CaloGeometry::m_rent_map[2]
protectedinherited

Definition at line 110 of file CaloGeometry.h.

◆ m_rext_map

std::vector< FSmap< double , double > > CaloGeometry::m_rext_map[2]
protectedinherited

Definition at line 112 of file CaloGeometry.h.

◆ m_rmid_map

std::vector< FSmap< double , double > > CaloGeometry::m_rmid_map[2]
protectedinherited

Definition at line 108 of file CaloGeometry.h.

◆ m_zent_map

std::vector< FSmap< double , double > > CaloGeometry::m_zent_map[2]
protectedinherited

Definition at line 111 of file CaloGeometry.h.

◆ m_zext_map

std::vector< FSmap< double , double > > CaloGeometry::m_zext_map[2]
protectedinherited

Definition at line 113 of file CaloGeometry.h.

◆ m_zmid_map

std::vector< FSmap< double , double > > CaloGeometry::m_zmid_map[2]
protectedinherited

Definition at line 109 of file CaloGeometry.h.

◆ MAX_SAMPLING

const int CaloGeometry::MAX_SAMPLING = CaloCell_ID_FCS::MaxSample
staticinherited

Definition at line 29 of file CaloGeometry.h.


The documentation for this class was generated from the following files:
CaloDetDescrElement::deta
float deta() const
cell deta
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:356
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
CaloGeometryFromFile::checkFCalGeometryConsistency
bool checkFCalGeometryConsistency()
Definition: CaloGeometryFromFile.cxx:327
beamspotman.r
def r
Definition: beamspotman.py:676
CaloGeometry::PostProcessGeometry
virtual bool PostProcessGeometry()
Definition: CaloGeometry.cxx:627
GetLCDefs::Unknown
@ Unknown
Definition: GetLCDefs.h:21
CaloGeometry::m_max_eta_sample
std::vector< double > m_max_eta_sample[2]
Definition: CaloGeometry.h:107
CaloGeometry::post_process
virtual void post_process(int layer)
Definition: CaloGeometry.cxx:121
xAOD::identify
const Identifier & identify(const UncalibratedMeasurement *meas)
Returns the associated identifier from the muon measurement.
Definition: MuonSpectrometer/MuonPhaseII/Event/xAOD/xAODMuonPrepData/Root/UtilFunctions.cxx:61
CaloGeometry::DrawGeoSampleForPhi0
TGraph * DrawGeoSampleForPhi0(int sample, int calocol, bool print=false)
Definition: CaloGeometry.cxx:349
color
Definition: jFexInputByteStreamTool.cxx:25
CaloGeometry::rent
double rent(int sample, double eta) const
Definition: CaloGeometry.cxx:812
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
CaloGeometry::MAX_SAMPLING
static const int MAX_SAMPLING
Definition: CaloGeometry.h:29
test_pyathena.px
px
Definition: test_pyathena.py:18
ReadCellNoiseFromCool.cell
cell
Definition: ReadCellNoiseFromCool.py:53
CaloGeometry::m_graph_layers
std::vector< TGraphErrors * > m_graph_layers
Definition: CaloGeometry.h:116
CaloGeometry::m_FCal_rmax
std::vector< double > m_FCal_rmax
Definition: CaloGeometry.h:118
PowhegControl_ttHplus_NLO.ss
ss
Definition: PowhegControl_ttHplus_NLO.py:83
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
checkxAOD.fileNames
fileNames
Definition: Tools/PyUtils/bin/checkxAOD.py:79
TileRawChannelBuilderOpt2::lookup
const unsigned short lookup[2401]
Definition: TileRawChannelBuilderOpt2FilterLookup.h:21
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
CaloDetDescrElement::y
float y() const
cell y
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:365
CaloGeometry::isCaloBarrel
bool isCaloBarrel(int sample) const
Definition: CaloGeometry.h:62
FCAL_ChannelMap::end
tileMap_const_iterator end(int isam) const
Definition: LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCAL_ChannelMap.h:148
CaloGeometry::m_zext_map
std::vector< FSmap< double, double > > m_zext_map[2]
Definition: CaloGeometry.h:113
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
CaloDetDescrElement
This class groups all DetDescr information related to a CaloCell. Provides a generic interface for al...
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:66
tree
TChain * tree
Definition: tile_monitor.h:30
PlotCalibFromCool.begin
begin
Definition: PlotCalibFromCool.py:94
CaloDetDescrElement::dr
float dr() const
cell dr
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:360
skel.it
it
Definition: skel.GENtoEVGEN.py:396
dq_defect_virtual_defect_validation.d1
d1
Definition: dq_defect_virtual_defect_validation.py:79
FCAL_ChannelMap::add_tube
void add_tube(const std::string &tileName, int mod, int id, int i, int j, double xCm, double yCm)
Definition: LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/FCAL_ChannelMap.cxx:69
CaloGeometry::addcell
virtual void addcell(const CaloDetDescrElement *cell)
Definition: CaloGeometry.cxx:67
gr
#define gr
CaloGeometry::zmid
double zmid(int sample, double eta) const
Definition: CaloGeometry.cxx:795
python.TurnDataReader.dr
dr
Definition: TurnDataReader.py:112
CaloGeometryFromFile::calculateFCalRminRmax
void calculateFCalRminRmax()
Definition: CaloGeometryFromFile.cxx:307
CaloGeometry::CaloGeometry
CaloGeometry()
Definition: CaloGeometry.cxx:41
PlotPulseshapeFromCool.np
np
Definition: PlotPulseshapeFromCool.py:64
CaloGeometry::rext
double rext(int sample, double eta) const
Definition: CaloGeometry.cxx:837
CaloGeometry::m_rent_map
std::vector< FSmap< double, double > > m_rent_map[2]
Definition: CaloGeometry.h:110
x
#define x
empty
bool empty(TH1 *h)
Definition: computils.cxx:295
CaloDetDescrElement::eta_raw
float eta_raw() const
cell eta_raw
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:350
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
FSmap< double, double >
TRT::Hit::side
@ side
Definition: HitInfo.h:83
CaloDetDescrElement::dz
float dz() const
cell dz
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:379
CaloGeometry::m_FCal_ChannelMap
FCAL_ChannelMap m_FCal_ChannelMap
Definition: CaloGeometry.h:117
CaloGeometry::zent
double zent(int sample, double eta) const
Definition: CaloGeometry.cxx:820
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
CaloGeometry::SamplingName
static std::string SamplingName(int sample)
Definition: CaloGeometry.cxx:900
CaloDetDescrElement::identify
Identifier identify() const override final
cell identifier
Definition: CaloDetDescrElement.cxx:64
CaloGeometry::m_rmid_map
std::vector< FSmap< double, double > > m_rmid_map[2]
Definition: CaloGeometry.h:108
PlotCalibFromCool.nentries
nentries
Definition: PlotCalibFromCool.py:798
beamspotman.steps
int steps
Definition: beamspotman.py:505
FortranAlgorithmOptions.fileName
fileName
Definition: FortranAlgorithmOptions.py:13
CaloGeometry::getClosestFCalCellIndex
bool getClosestFCalCellIndex(int sampling, float x, float y, int &ieta, int &iphi, int *steps=0)
Definition: CaloGeometry.cxx:592
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:93
id2
HWIdentifier id2
Definition: LArRodBlockPhysicsV0.cxx:562
FullCPAlgorithmsTest_eljob.sample
sample
Definition: FullCPAlgorithmsTest_eljob.py:113
lumiFormat.i
int i
Definition: lumiFormat.py:85
z
#define z
CaloGeometry::m_cells
t_cellmap m_cells
Definition: CaloGeometry.h:100
CaloGeometry::m_rext_map
std::vector< FSmap< double, double > > m_rext_map[2]
Definition: CaloGeometry.h:112
CaloGeometry::m_FCal_rmin
std::vector< double > m_FCal_rmin
Definition: CaloGeometry.h:118
CaloGeometryLookup
Definition: CaloGeometryLookup.h:25
FSmap::iterator
std::map< _Key, _Tp >::iterator iterator
Definition: FSmap.h:14
TileDCSDataPlotter.pr
pr
Definition: TileDCSDataPlotter.py:922
FCAL_ChannelMap::getTileID
bool getTileID(int isam, float x, float y, int &eta, int &phi) const
-— For the new LArFCAL_ID Identifier
Definition: LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/FCAL_ChannelMap.cxx:212
file
TFile * file
Definition: tile_monitor.h:29
dumpFileToPlots.treeName
string treeName
Definition: dumpFileToPlots.py:20
CaloGeometry::m_min_eta_sample
std::vector< double > m_min_eta_sample[2]
Definition: CaloGeometry.h:106
compute_lumi.leg
leg
Definition: compute_lumi.py:95
xAOD::uint64_t
uint64_t
Definition: EventInfo_v1.cxx:123
hist_file_dump.f
f
Definition: hist_file_dump.py:135
createCablingJSON.eta_index
int eta_index
Definition: createCablingJSON.py:14
SUBPOS_ENT
@ SUBPOS_ENT
Definition: FastCaloSim_CaloCell_ID.h:12
module_driven_slicing.max_eta
max_eta
Definition: module_driven_slicing.py:166
CaloGeometryLookup::merge_into_ref
void merge_into_ref(CaloGeometryLookup *ref)
Definition: CaloGeometryLookup.cxx:63
print
void print(char *figname, TCanvas *c1)
Definition: TRTCalib_StrawStatusPlots.cxx:25
CaloGeometry::m_cells_in_sampling_for_phi0
std::vector< t_eta_cellmap > m_cells_in_sampling_for_phi0
Definition: CaloGeometry.h:102
Amg::py
@ py
Definition: GeoPrimitives.h:39
CaloGeometry::DoGraphs
bool DoGraphs() const
Definition: CaloGeometry.h:67
FCAL_ChannelMap::finish
void finish()
Definition: LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/FCAL_ChannelMap.cxx:55
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:227
WriteCellNoiseToCool.mcell
mcell
Definition: WriteCellNoiseToCool.py:479
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
CaloGeometry_calocol
const int CaloGeometry_calocol[24]
Definition: CaloGeometry.cxx:27
CaloGeometry::m_debug
static std::atomic< bool > m_debug
Definition: CaloGeometry.h:32
CaloGeometry::m_zmid_map
std::vector< FSmap< double, double > > m_zmid_map[2]
Definition: CaloGeometry.h:109
CaloDetDescrElement::x
float x() const
cell x
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:363
CaloGeometry::m_cells_in_sampling
std::vector< t_cellmap > m_cells_in_sampling
Definition: CaloGeometry.h:101
makeTRTBarrelCans.dy
tuple dy
Definition: makeTRTBarrelCans.py:21
SUBPOS_EXT
@ SUBPOS_EXT
Definition: FastCaloSim_CaloCell_ID.h:13
a
TList * a
Definition: liststreamerinfos.cxx:10
y
#define y
CondAlgsOpts.found
int found
Definition: CondAlgsOpts.py:101
CaloGeometry::getDDE
virtual const CaloDetDescrElement * getDDE(Identifier identify)
Definition: CaloGeometry.cxx:466
CaloDetDescrElement::dx
float dx() const
cell dx
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:375
CaloDetDescrElement::getSampling
CaloCell_ID::CaloSample getSampling() const
cell sampling
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:395
CaloGeometry::deta
double deta(int sample, double eta) const
Definition: CaloGeometry.cxx:752
CaloCell_ID_FCS::PreSamplerB
@ PreSamplerB
Definition: FastCaloSim_CaloCell_ID.h:19
CaloDetDescrElement::z
float z() const
cell z
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:367
dq_defect_virtual_defect_validation.d2
d2
Definition: dq_defect_virtual_defect_validation.py:81
CaloGeometry::InitRZmaps
virtual void InitRZmaps()
Definition: CaloGeometry.cxx:197
makeTRTBarrelCans.dx
tuple dx
Definition: makeTRTBarrelCans.py:20
FCAL_ChannelMap::begin
tileMap_const_iterator begin(int isam) const
Definition: LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCAL_ChannelMap.h:147
module_driven_slicing.min_eta
min_eta
Definition: module_driven_slicing.py:166
CaloDetDescrElement::eta
float eta() const
cell eta
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:344
CaloGeometry::m_cells_in_regions
std::vector< std::vector< CaloGeometryLookup * > > m_cells_in_regions
Definition: CaloGeometry.h:103
CaloDetDescrElement::phi
float phi() const
cell phi
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:346
FCAL_ChannelMap::tileSize
void tileSize(int sam, int eta, int phi, float &dx, float &dy) const
Definition: LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/FCAL_ChannelMap.cxx:429
CaloGeometry::m_zent_map
std::vector< FSmap< double, double > > m_zent_map[2]
Definition: CaloGeometry.h:111
CaloSampling::getSamplingName
static std::string getSamplingName(CaloSample theSample)
Returns a string (name) for each CaloSampling.
Definition: Calorimeter/CaloGeoHelpers/Root/CaloSampling.cxx:18
CaloDetDescrElement::r
float r() const
cell r
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:348
CaloGeometry::zext
double zext(int sample, double eta) const
Definition: CaloGeometry.cxx:845
CaloGeometry::rmid
double rmid(int sample, double eta) const
Definition: CaloGeometry.cxx:787
CaloCell_ID_FCS::FCAL0
@ FCAL0
Definition: FastCaloSim_CaloCell_ID.h:40
CaloCell_ID_FCS::EMB3
@ EMB3
Definition: FastCaloSim_CaloCell_ID.h:22
CaloDetDescrElement::dy
float dy() const
cell dy
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:377
Amg::distance
float distance(const Amg::Vector3D &p1, const Amg::Vector3D &p2)
calculates the distance between two point in 3D space
Definition: GeoPrimitivesHelpers.h:54
python.compressB64.c
def c
Definition: compressB64.py:93
nmax
const int nmax(200)
CaloGeometry::m_isCaloBarrel
std::vector< bool > m_isCaloBarrel
Definition: CaloGeometry.h:105
CaloGeometry::m_dographs
bool m_dographs
Definition: CaloGeometry.h:115
fitman.k
k
Definition: fitman.py:528
Identifier
Definition: IdentifierFieldParser.cxx:14