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

#include <FastCaloSimGeometryHelper.h>

Inheritance diagram for FastCaloSimGeometryHelper:
Collaboration diagram for FastCaloSimGeometryHelper:

Public Member Functions

 FastCaloSimGeometryHelper (const std::string &t, const std::string &n, const IInterface *p)
 Constructor with parameters. More...
 
virtual ~FastCaloSimGeometryHelper ()
 Destructor. More...
 
virtual StatusCode initialize () override final
 
virtual StatusCode finalize () override final
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 
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)
 
void calculateFCalRminRmax ()
 
virtual bool checkFCalGeometryConsistency ()
 
virtual void PrintMapInfo (int i, int j)
 

Static Public Member Functions

static std::string SamplingName (int sample)
 
static const InterfaceID & interfaceID ()
 AlgTool interface methods. More...
 

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

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 
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 Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

bool LoadGeometryFromCaloDDM ()
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

const CaloDetDescrManagerm_caloMgr {nullptr}
 DetDescr mgr for access to the calo helper. More...
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Definition at line 16 of file FastCaloSimGeometryHelper.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ FastCaloSimGeometryHelper()

FastCaloSimGeometryHelper::FastCaloSimGeometryHelper ( const std::string &  t,
const std::string &  n,
const IInterface *  p 
)

Constructor with parameters.

Constructor.

Definition at line 15 of file FastCaloSimGeometryHelper.cxx.

16 {
17  declareInterface<IFastCaloSimGeometryHelper>(this);
18 }

◆ ~FastCaloSimGeometryHelper()

FastCaloSimGeometryHelper::~FastCaloSimGeometryHelper ( )
virtualdefault

Destructor.

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 
72  m_cells[identify]=cell;
73  m_cells_in_sampling[sampling][identify]=cell;
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 CaloGeometry::calculateFCalRminRmax ( )
inherited

Definition at line 905 of file CaloGeometry.cxx.

905  {
906 
907  m_FCal_rmin.resize(3,FLT_MAX);
908  m_FCal_rmax.resize(3,0.);
909 
910  double x(0.),y(0.),r(0.);
911  for(int imap=1;imap<=3;imap++)for(auto it=m_FCal_ChannelMap.begin(imap);it!=m_FCal_ChannelMap.end(imap);it++){
912  x=it->second.x();
913  y=it->second.y();
914  r=sqrt(x*x+y*y);
915  if(r<m_FCal_rmin[imap-1])m_FCal_rmin[imap-1]=r;
916  if(r>m_FCal_rmax[imap-1])m_FCal_rmax[imap-1]=r;
917  }
918 
919 }

◆ checkFCalGeometryConsistency()

bool CaloGeometry::checkFCalGeometryConsistency ( )
virtualinherited

Reimplemented in CaloGeometryFromFile.

Definition at line 922 of file CaloGeometry.cxx.

922  {
923 
924  unsigned long long phi_index,eta_index;
925  float x,y,dx,dy;
926  long id;
927 
928  long mask1[]{0x34,0x34,0x35};
929  long mask2[]{0x36,0x36,0x37};
930 
931  m_FCal_rmin.resize(3,FLT_MAX);
932  m_FCal_rmax.resize(3,0.);
933 
934 
935  for(int imap=1;imap<=3;imap++){
936 
937  int sampling = imap+20;
938 
939  if((int)m_cells_in_sampling[sampling].size() != 2*std::distance(m_FCal_ChannelMap.begin(imap), m_FCal_ChannelMap.end(imap))){
940  cout << "Error: Incompatibility between FCalChannel map and GEO file: Different number of cells in m_cells_in_sampling and FCal_ChannelMap" << endl;
941  cout << "m_cells_in_sampling: " << m_cells_in_sampling[sampling].size() << endl;
942  cout << "FCal_ChannelMap: " << 2*std::distance(m_FCal_ChannelMap.begin(imap), m_FCal_ChannelMap.end(imap)) << endl;
943  return false;
944  }
945 
946  for(auto it=m_FCal_ChannelMap.begin(imap);it!=m_FCal_ChannelMap.end(imap);it++){
947 
948 
949  phi_index = it->first & 0xffff;
950  eta_index = it->first >> 16;
951  x=it->second.x();
952  y=it->second.y();
953  m_FCal_ChannelMap.tileSize(imap, eta_index, phi_index,dx,dy);
954 
955  id=(mask1[imap-1]<<12) + (eta_index << 5) +2*phi_index;
956 
957  if(imap==2) id+= (8<<8);
958 
959  Identifier id1((unsigned long long)(id<<44));
960  const CaloDetDescrElement *DDE1 =getDDE(id1);
961 
962  id=(mask2[imap-1]<<12) + (eta_index << 5) +2*phi_index;
963  if(imap==2) id+= (8<<8);
964  Identifier id2((unsigned long long)(id<<44));
965  const CaloDetDescrElement *DDE2=getDDE(id2);
966 
967  if(!TMath::AreEqualRel(x, DDE1->x(),1.E-8) || !TMath::AreEqualRel(y, DDE1->y(),1.E-8) || !TMath::AreEqualRel(x, DDE2->x(),1.E-8) || !TMath::AreEqualRel(y, DDE2->y(),1.E-8) ){
968  cout << "Error: Incompatibility between FCalChannel map and GEO file \n" << x << " " << DDE1->x() << " " << DDE2->x() << y << " " << DDE1->y() << " " << DDE2->y() << endl;
969  return false;
970  }
971  }
972 
973 
974 
975  }
976 
977  return true;
978 }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

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

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ DoGraphs()

bool CaloGeometry::DoGraphs ( ) const
inlineinherited

Definition at line 68 of file CaloGeometry.h.

68 {return m_dographs;};

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

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ finalize()

StatusCode FastCaloSimGeometryHelper::finalize ( )
finaloverridevirtual

Definition at line 38 of file FastCaloSimGeometryHelper.cxx.

39 {
40  ATH_MSG_INFO("Finalizing FastCaloSimGeometryHelper");
41 
42  return StatusCode::SUCCESS;
43 }

◆ 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 73 of file CaloGeometry.h.

73 {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 66 of file CaloGeometry.h.

66 {return m_graph_layers[sample];};

◆ initialize()

StatusCode FastCaloSimGeometryHelper::initialize ( )
finaloverridevirtual

Definition at line 24 of file FastCaloSimGeometryHelper.cxx.

25 {
26  ATH_MSG_INFO("Initializing FastCaloSimGeometryHelper");
27  m_caloMgr = detStore()->tryConstRetrieve<CaloDetDescrManager>(caloMgrStaticKey);
28  if(!m_caloMgr) {
29  std::unique_ptr<CaloDetDescrManager> caloMgrPtr = buildCaloDetDescrNoAlign(serviceLocator()
31  ATH_CHECK(detStore()->record(std::move(caloMgrPtr), caloMgrStaticKey));
32  ATH_CHECK(detStore()->retrieve(m_caloMgr, caloMgrStaticKey));
33  }
35  return StatusCode::SUCCESS;
36 }

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

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ interfaceID()

static const InterfaceID& IFastCaloSimGeometryHelper::interfaceID ( )
inlinestaticinherited

AlgTool interface methods.

Definition at line 23 of file IFastCaloSimGeometryHelper.h.

23 { return IID_IFastCaloSimGeometryHelper; }

◆ isCaloBarrel()

bool CaloGeometry::isCaloBarrel ( int  sample) const
inlinevirtualinherited

Implements ICaloGeometry.

Definition at line 63 of file CaloGeometry.h.

63 {return m_isCaloBarrel[sample];};

◆ LoadGeometryFromCaloDDM()

bool FastCaloSimGeometryHelper::LoadGeometryFromCaloDDM ( )
private

Definition at line 45 of file FastCaloSimGeometryHelper.cxx.

46 {
47  ATH_MSG_INFO("Start LoadGeometryFromCaloDDM()");
48 
49  int jentry=0;
50  for(CaloDetDescrManager::calo_element_const_iterator calo_iter=m_caloMgr->element_begin();calo_iter<m_caloMgr->element_end();++calo_iter)
51  {
52  const CaloDetDescrElement* pcell=*calo_iter;
53  addcell(pcell);
54 
55  if(jentry%10000==0)
56  {
57  ATH_MSG_DEBUG("Load calo cell "<<jentry<<" : "<<pcell->getSampling()<<", "<<pcell->identify());
58  }
59  ++jentry;
60  }
61 
62  bool ok=PostProcessGeometry();
63 
64  ATH_MSG_INFO("Done LoadGeometryFromCaloDDM()");
65 
66  return ok;
67 }

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

◆ msg() [1/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

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

◆ renounce()

std::enable_if_t<std::is_void_v<std::result_of_t<decltype(&T::renounce)(T)> > && !std::is_base_of_v<SG::VarHandleKeyArray, T> && std::is_base_of_v<Gaudi::DataHandle, T>, void> AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ 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 67 of file CaloGeometry.h.

67 {m_dographs=dographs;};

◆ SetFCal_ChannelMap()

void CaloGeometry::SetFCal_ChannelMap ( const FCAL_ChannelMap fcal_ChannnelMap)
inlineinherited

Definition at line 74 of file CaloGeometry.h.

74 {m_FCal_ChannelMap=*fcal_ChannnelMap;}

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

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

const CaloDetDescrManager* FastCaloSimGeometryHelper::m_caloMgr {nullptr}
private

DetDescr mgr for access to the calo helper.

Definition at line 30 of file FastCaloSimGeometryHelper.h.

◆ m_cells

t_cellmap CaloGeometry::m_cells
protectedinherited

Definition at line 101 of file CaloGeometry.h.

◆ m_cells_in_regions

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

Definition at line 104 of file CaloGeometry.h.

◆ m_cells_in_sampling

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

Definition at line 102 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 103 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_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_dographs

bool CaloGeometry::m_dographs
protectedinherited

Definition at line 116 of file CaloGeometry.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_FCal_ChannelMap

FCAL_ChannelMap CaloGeometry::m_FCal_ChannelMap
protectedinherited

Definition at line 118 of file CaloGeometry.h.

◆ m_FCal_rmax

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

Definition at line 119 of file CaloGeometry.h.

◆ m_FCal_rmin

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

Definition at line 119 of file CaloGeometry.h.

◆ m_graph_layers

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

Definition at line 117 of file CaloGeometry.h.

◆ m_isCaloBarrel

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

Definition at line 106 of file CaloGeometry.h.

◆ m_max_eta_sample

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

Definition at line 108 of file CaloGeometry.h.

◆ m_min_eta_sample

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

Definition at line 107 of file CaloGeometry.h.

◆ m_rent_map

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

Definition at line 111 of file CaloGeometry.h.

◆ m_rext_map

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

Definition at line 113 of file CaloGeometry.h.

◆ m_rmid_map

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

Definition at line 109 of file CaloGeometry.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.

◆ m_zent_map

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

Definition at line 112 of file CaloGeometry.h.

◆ m_zext_map

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

Definition at line 114 of file CaloGeometry.h.

◆ m_zmid_map

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

Definition at line 110 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
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
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:108
CaloGeometry::post_process
virtual void post_process(int layer)
Definition: CaloGeometry.cxx:121
CaloGeometry::DrawGeoSampleForPhi0
TGraph * DrawGeoSampleForPhi0(int sample, int calocol, bool print=false)
Definition: CaloGeometry.cxx:349
CaloGeometry::rent
double rent(int sample, double eta) const
Definition: CaloGeometry.cxx:812
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
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
max
#define max(a, b)
Definition: cfImp.cxx:41
CaloGeometry::m_graph_layers
std::vector< TGraphErrors * > m_graph_layers
Definition: CaloGeometry.h:117
CaloGeometry::m_FCal_rmax
std::vector< double > m_FCal_rmax
Definition: CaloGeometry.h:119
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
TileRawChannelBuilderOpt2::lookup
const unsigned short lookup[2401]
Definition: TileRawChannelBuilderOpt2FilterLookup.h:21
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
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:63
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:114
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
CaloDetDescrElement
This class groups all DetDescr information related to a CaloCell. Provides a generic interface for al...
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:66
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:423
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
FastCaloSimGeometryHelper::LoadGeometryFromCaloDDM
bool LoadGeometryFromCaloDDM()
Definition: FastCaloSimGeometryHelper.cxx:45
dq_defect_virtual_defect_validation.d1
d1
Definition: dq_defect_virtual_defect_validation.py:79
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
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
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:111
x
#define x
empty
bool empty(TH1 *h)
Definition: computils.cxx:294
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
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
AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
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:118
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:109
beamspotman.steps
int steps
Definition: beamspotman.py:505
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
CaloGeometry::getClosestFCalCellIndex
bool getClosestFCalCellIndex(int sampling, float x, float y, int &ieta, int &iphi, int *steps=0)
Definition: CaloGeometry.cxx:592
id2
HWIdentifier id2
Definition: LArRodBlockPhysicsV0.cxx:564
FullCPAlgorithmsTest_eljob.sample
sample
Definition: FullCPAlgorithmsTest_eljob.py:100
lumiFormat.i
int i
Definition: lumiFormat.py:92
z
#define z
beamspotman.n
n
Definition: beamspotman.py:731
CaloGeometry::m_cells
t_cellmap m_cells
Definition: CaloGeometry.h:101
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
CaloGeometry::m_rext_map
std::vector< FSmap< double, double > > m_rext_map[2]
Definition: CaloGeometry.h:113
CaloGeometry::m_FCal_rmin
std::vector< double > m_FCal_rmin
Definition: CaloGeometry.h:119
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
CaloGeometry::m_min_eta_sample
std::vector< double > m_min_eta_sample[2]
Definition: CaloGeometry.h:107
compute_lumi.leg
leg
Definition: compute_lumi.py:95
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
createCablingJSON.eta_index
int eta_index
Definition: createCablingJSON.py:9
SUBPOS_ENT
@ SUBPOS_ENT
Definition: FastCaloSim_CaloCell_ID.h:12
module_driven_slicing.max_eta
max_eta
Definition: module_driven_slicing.py:166
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
CaloGeometryLookup::merge_into_ref
void merge_into_ref(CaloGeometryLookup *ref)
Definition: CaloGeometryLookup.cxx:63
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
CaloGeometry::m_cells_in_sampling_for_phi0
std::vector< t_eta_cellmap > m_cells_in_sampling_for_phi0
Definition: CaloGeometry.h:103
Amg::py
@ py
Definition: GeoPrimitives.h:39
CaloGeometry::DoGraphs
bool DoGraphs() const
Definition: CaloGeometry.h:68
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:191
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
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:110
CaloDetDescrManager_Base::element_begin
calo_element_const_iterator element_begin() const
first element
Definition: CaloDetDescrManager.cxx:111
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:102
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
h
CaloDetDescrManager
This class provides the client interface for accessing the detector description information common to...
Definition: CaloDetDescrManager.h:473
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
Muon::print
std::string print(const MuPatSegment &)
Definition: MuonTrackSteering.cxx:28
FCAL_ChannelMap::begin
tileMap_const_iterator begin(int isam) const
Definition: LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCAL_ChannelMap.h:147
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
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:104
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
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:112
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
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
nmax
const int nmax(200)
buildCaloDetDescrNoAlign
std::unique_ptr< CaloDetDescrManager > buildCaloDetDescrNoAlign(ISvcLocator *svcLocator, IMessageSvc *msgSvc)
Definition: CaloDetDescrBuilder.cxx:791
FastCaloSimGeometryHelper::m_caloMgr
const CaloDetDescrManager * m_caloMgr
DetDescr mgr for access to the calo helper.
Definition: FastCaloSimGeometryHelper.h:30
CaloConstIteratorAdaptor
Tranform iterator over pointers to iterator over const pointers.
Definition: CaloConstIteratorAdaptor.h:47
CaloGeometry::m_isCaloBarrel
std::vector< bool > m_isCaloBarrel
Definition: CaloGeometry.h:106
CaloGeometry::m_dographs
bool m_dographs
Definition: CaloGeometry.h:116
fitman.k
k
Definition: fitman.py:528