FairRoot/PandaRoot
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
PndEmcMapperGeo4RootV2 Class Reference

#include <PndEmcMapper.h>

Inheritance diagram for PndEmcMapperGeo4RootV2:
PndEmcMapper

Public Member Functions

 PndEmcMapperGeo4RootV2 ()
 
const std::map< Int_t,
PndEmcTwoCoordIndex * > & 
GetTciMap ()
 
Int_t GetMapVersion () const
 
void Add (PndEmcMapper *)
 
PndEmcTwoCoordIndexGetTCI (Int_t DetectorId)
 

Static Public Member Functions

static PndEmcMapperInstance ()
 
static void Init (Int_t MapVersion)
 

Protected Attributes

std::map< Int_t,
PndEmcTwoCoordIndex * > 
fIntTwoCoordMap
 

Detailed Description

Definition at line 94 of file PndEmcMapper.h.

Constructor & Destructor Documentation

PndEmcMapperGeo4RootV2::PndEmcMapperGeo4RootV2 ( )

Definition at line 309 of file PndEmcMapper.cxx.

References PndEmcMapper::fIntTwoCoordMap, and row.

310 {
311  // *** 2017 version of the BwEndCap geometry ***
312  PndEmcTwoCoordIndex *_tci;
313  Int_t detId, iX, iY, iXrel, iYrel, rowc;
314  detId = iX = iY = iXrel = iYrel = rowc = 0;
315 
316  Int_t module=4;
317 
318  for (Int_t row=0; row<10;row++){ //-- loop over submodules in one quarter (called row to keep
319  //-- nomenclature of PndEmcStructure)
320  for (Int_t crystal=0; crystal<16;crystal++){ //-- loop over crystals in one submodule
321 
322  if( row < 6 ){ // side submodules
323 
324  iXrel = 4*(row%3) + (crystal%4) - 6;
325  iYrel = -4*(row/3) - (crystal/4) + 14;
326 
327  } else { // corner submodules
328  rowc = row - 6;
329 
330  iXrel = 4*(rowc%2) + (crystal%4) + 6;
331  iYrel = -4*(rowc/2) - (crystal/4) + 13;
332 
333  }
334 
335  for (Int_t copy=0; copy<4;copy++){ //-- loop over quarters
336 
337  if (copy==0) { iX = iXrel ; iY = iYrel ; }
338  if (copy==1) { iX = -iYrel-1; iY = iXrel ; }
339  if (copy==2) { iX = -iXrel-1; iY = -iYrel-1; }
340  if (copy==3) { iX = iYrel ; iY = -iXrel-1; }
341 
342  detId = module*100000000 + row*1000000 + copy*10000 + crystal;
343  _tci=new PndEmcTwoCoordIndex(iX+351,iY+351,detId);
344  fIntTwoCoordMap[detId]=_tci;
345  }
346  }
347  }
348 }
int row
Definition: anaLmdDigi.C:67
stores crystal index coordinates (x,y) or (theta,phi)
std::map< Int_t, PndEmcTwoCoordIndex * > fIntTwoCoordMap
Definition: PndEmcMapper.h:40

Member Function Documentation

void PndEmcMapper::Add ( PndEmcMapper newMapper)
inherited

Definition at line 89 of file PndEmcMapper.cxx.

References PndEmcMapper::fIntTwoCoordMap, and PndEmcMapper::GetTciMap().

Referenced by PndEmcMapper::Init().

90 {
91  std::map<Int_t,PndEmcTwoCoordIndex* > newMapp = newMapper->GetTciMap();
92 
93  fIntTwoCoordMap.insert(newMapp.begin(),newMapp.end());
94 }
const std::map< Int_t, PndEmcTwoCoordIndex * > & GetTciMap()
std::map< Int_t, PndEmcTwoCoordIndex * > fIntTwoCoordMap
Definition: PndEmcMapper.h:40
Int_t PndEmcMapper::GetMapVersion ( ) const
inlineinherited

Accessors

Definition at line 34 of file PndEmcMapper.h.

References PndEmcMapper::fMapVersion.

34 { return fMapVersion ;};
static Int_t fMapVersion
Definition: PndEmcMapper.h:45
PndEmcTwoCoordIndex * PndEmcMapper::GetTCI ( Int_t  DetectorId)
inherited
const std::map< Int_t, PndEmcTwoCoordIndex * > & PndEmcMapper::GetTciMap ( )
inherited

Definition at line 441 of file PndEmcMapper.cxx.

References PndEmcMapper::fIntTwoCoordMap.

Referenced by PndEmcMapper::Add(), and PndEmcHitsToWaveform::Exec().

442 {
443  return fIntTwoCoordMap;
444 }
std::map< Int_t, PndEmcTwoCoordIndex * > fIntTwoCoordMap
Definition: PndEmcMapper.h:40
PndEmcMapper::Init ( Int_t  MapVersion)
staticinherited

Definition at line 25 of file PndEmcMapper.cxx.

References PndEmcMapper::_instance, PndEmcMapper::Add(), and PndEmcMapper::fMapVersion.

Referenced by anaPatternRecoQuality(), clonemc(), dbuilder(), generatePatternDB(), PndEmcGeoPar::InitEmcMapper(), kfparticle(), patternMatcher(), pid(), pid2_complete(), pid_box(), pid_complete(), pid_complete_runs(), pid_complete_sec(), pid_day1(), pid_multi(), pid_rich(), pidideal_complete(), pidideal_day1(), prod_pid(), prod_rec(), reco(), reco2_complete(), reco_box(), reco_complete(), reco_complete_gf2(), reco_complete_runs(), reco_complete_sec(), reco_completeCA(), reco_day1(), reco_fts(), reco_multi(), reco_rich(), reco_sttcombi(), recoideal_box(), recoideal_complete(), recoideal_day1(), recolocal_complete(), recoqa_complete(), run_reco_complete(), run_reco_sttcombi_timebased(), run_tracking_sttcombi_timebased(), runTrackingPid(), testFilter(), trackingQA_complete(), trackingQA_forward_complete(), and trackingQANewLinks().

26 {
27  if (mapVersion==0)
28  {
29  cout<<"Emc mapper version 0 does not exist"<<endl;
30  }
31  else if (mapVersion!=fMapVersion)
32  {
33  fMapVersion=mapVersion;
34  switch (mapVersion) {
35  case 1:
40  break;
41  case 2:
46  break;
47  case 3:
52  break;
53  case 4:
55  break;
56  case 5:
58  break;
59  case 6:
61  break;
62  case 7:
64  break;
65  case 8: // old backward emc mappping (geom. version 2008)
67  break;
68  case 9: // old barrel emc mapping
73  break;
74  default :
75  cout<<"Emc Mapper version "<<mapVersion<<" is not defined"<<endl;
76  }
77  }
78 }
static Int_t fMapVersion
Definition: PndEmcMapper.h:45
void Add(PndEmcMapper *)
static PndEmcMapper * _instance
Definition: PndEmcMapper.h:44
PndEmcMapper::Instance ( )
staticinherited

Member Data Documentation

std::map<Int_t,PndEmcTwoCoordIndex* > PndEmcMapper::fIntTwoCoordMap
protectedinherited

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