Jpp  18.5.2
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
JDETECTOR::JDetectorBuilder Struct Referenceabstract

Auxiliary interface for building detector. More...

#include <JDetectorSupportkit.hh>

Inheritance diagram for JDETECTOR::JDetectorBuilder:
JDETECTOR::JDetectorAddressMap JDETECTOR::JDetectorBuilder_t< JKM3NeT_t > JDETECTOR::JDetectorBuilder_t< JMonteCarlo_t > JDETECTOR::JDetectorBuilder_t< JObsolete_t > JDETECTOR::JDetectorBuilder_t< JPPM_DU_t > JDETECTOR::JDetectorBuilder_t< JKM3NeTFit_t >

Public Member Functions

const JModulegetModule (const int id=-1, const JLocation &location=JLocation()) const
 Get module. More...
 
virtual const JModuleAddressMapgetDefaultModuleAddressMap () const =0
 Get default module address map. More...
 
virtual int getModuleID (const JLocation &location) const
 Get module identifier. More...
 
const JModuleAddressMapget (const int id) const
 Get module address map. More...
 
JModuleAddressMapget (const int id)
 Get module address map. More...
 
const JPMTAddressTranslatorget (const JPMTIdentifier &id) const
 Get PMT address translator. More...
 

Protected Member Functions

virtual void configure () const
 Configure module. More...
 

Protected Attributes

JModule module
 
std::vector< JModuleAddressMapbuffer
 
JTOOLS::JRouter< int > router
 

Detailed Description

Auxiliary interface for building detector.

Definition at line 73 of file JDetectorSupportkit.hh.

Member Function Documentation

const JModule& JDETECTOR::JDetectorBuilder::getModule ( const int  id = -1,
const JLocation location = JLocation() 
) const
inline

Get module.

The configuration of module is according internal module address map.

Parameters
idmodule identifier
locationmodule location
Returns
module

Definition at line 85 of file JDetectorSupportkit.hh.

86  {
87  module.setID(id);
88  module.setLocation(location);
89 
90  const JModuleAddressMap& memo = this->get(id);
91 
92  module.resize(memo.size());
93 
94  if (memo.has( 0)) { module[memo[ 0].tdc] = JPMT( 1, JAxis3D(JVector3D(+0.000, +0.000, -0.200), JVersor3D(+0.000, +0.000, -1.000))); }
95 
96  if (memo.has( 1)) { module[memo[ 1].tdc] = JPMT( 2, JAxis3D(JVector3D(+0.000, +0.105, -0.170), JVersor3D(+0.000, +0.527, -0.850))); }
97  if (memo.has( 2)) { module[memo[ 2].tdc] = JPMT( 3, JAxis3D(JVector3D(+0.091, +0.053, -0.170), JVersor3D(+0.456, +0.263, -0.850))); }
98  if (memo.has( 3)) { module[memo[ 3].tdc] = JPMT( 4, JAxis3D(JVector3D(+0.091, -0.053, -0.170), JVersor3D(+0.456, -0.263, -0.850))); }
99  if (memo.has( 4)) { module[memo[ 4].tdc] = JPMT( 5, JAxis3D(JVector3D(+0.000, -0.105, -0.170), JVersor3D(+0.000, -0.527, -0.850))); }
100  if (memo.has( 5)) { module[memo[ 5].tdc] = JPMT( 6, JAxis3D(JVector3D(-0.091, -0.053, -0.170), JVersor3D(-0.456, -0.263, -0.850))); }
101  if (memo.has( 6)) { module[memo[ 6].tdc] = JPMT( 7, JAxis3D(JVector3D(-0.091, +0.053, -0.170), JVersor3D(-0.456, +0.263, -0.850))); }
102 
103  if (memo.has( 7)) { module[memo[ 7].tdc] = JPMT( 8, JAxis3D(JVector3D(+0.083, +0.144, -0.111), JVersor3D(+0.416, +0.720, -0.555))); }
104  if (memo.has( 8)) { module[memo[ 8].tdc] = JPMT( 9, JAxis3D(JVector3D(+0.166, +0.000, -0.111), JVersor3D(+0.832, +0.000, -0.555))); }
105  if (memo.has( 9)) { module[memo[ 9].tdc] = JPMT(10, JAxis3D(JVector3D(+0.083, -0.144, -0.111), JVersor3D(+0.416, -0.720, -0.555))); }
106  if (memo.has(10)) { module[memo[10].tdc] = JPMT(11, JAxis3D(JVector3D(-0.083, -0.144, -0.111), JVersor3D(-0.416, -0.720, -0.555))); }
107  if (memo.has(11)) { module[memo[11].tdc] = JPMT(12, JAxis3D(JVector3D(-0.166, +0.000, -0.111), JVersor3D(-0.832, +0.000, -0.555))); }
108  if (memo.has(12)) { module[memo[12].tdc] = JPMT(13, JAxis3D(JVector3D(-0.083, +0.144, -0.111), JVersor3D(-0.416, +0.720, -0.555))); }
109 
110  if (memo.has(13)) { module[memo[13].tdc] = JPMT(14, JAxis3D(JVector3D(+0.000, +0.191, -0.059), JVersor3D(+0.000, +0.955, -0.295))); }
111  if (memo.has(14)) { module[memo[14].tdc] = JPMT(15, JAxis3D(JVector3D(+0.165, +0.096, -0.059), JVersor3D(+0.827, +0.478, -0.295))); }
112  if (memo.has(15)) { module[memo[15].tdc] = JPMT(16, JAxis3D(JVector3D(+0.165, -0.096, -0.059), JVersor3D(+0.827, -0.478, -0.295))); }
113  if (memo.has(16)) { module[memo[16].tdc] = JPMT(17, JAxis3D(JVector3D(+0.000, -0.191, -0.059), JVersor3D(+0.000, -0.955, -0.295))); }
114  if (memo.has(17)) { module[memo[17].tdc] = JPMT(18, JAxis3D(JVector3D(-0.165, -0.096, -0.059), JVersor3D(-0.827, -0.478, -0.295))); }
115  if (memo.has(18)) { module[memo[18].tdc] = JPMT(19, JAxis3D(JVector3D(-0.165, +0.096, -0.059), JVersor3D(-0.827, +0.478, -0.295))); }
116 
117  if (memo.has(19)) { module[memo[19].tdc] = JPMT(20, JAxis3D(JVector3D(+0.096, +0.165, +0.059), JVersor3D(+0.478, +0.827, +0.295))); }
118  if (memo.has(20)) { module[memo[20].tdc] = JPMT(21, JAxis3D(JVector3D(+0.191, +0.000, +0.059), JVersor3D(+0.955, +0.000, +0.295))); }
119  if (memo.has(21)) { module[memo[21].tdc] = JPMT(22, JAxis3D(JVector3D(+0.096, -0.165, +0.059), JVersor3D(+0.478, -0.827, +0.295))); }
120  if (memo.has(22)) { module[memo[22].tdc] = JPMT(23, JAxis3D(JVector3D(-0.096, -0.165, +0.059), JVersor3D(-0.478, -0.827, +0.295))); }
121  if (memo.has(23)) { module[memo[23].tdc] = JPMT(24, JAxis3D(JVector3D(-0.191, +0.000, +0.059), JVersor3D(-0.955, +0.000, +0.295))); }
122  if (memo.has(24)) { module[memo[24].tdc] = JPMT(25, JAxis3D(JVector3D(-0.096, +0.165, +0.059), JVersor3D(-0.478, +0.827, +0.295))); }
123 
124  if (memo.has(25)) { module[memo[25].tdc] = JPMT(26, JAxis3D(JVector3D(+0.000, +0.166, +0.111), JVersor3D(+0.000, +0.832, +0.555))); }
125  if (memo.has(26)) { module[memo[26].tdc] = JPMT(27, JAxis3D(JVector3D(+0.144, +0.083, +0.111), JVersor3D(+0.720, +0.416, +0.555))); }
126  if (memo.has(27)) { module[memo[27].tdc] = JPMT(28, JAxis3D(JVector3D(+0.144, -0.083, +0.111), JVersor3D(+0.720, -0.416, +0.555))); }
127  if (memo.has(28)) { module[memo[28].tdc] = JPMT(29, JAxis3D(JVector3D(+0.000, -0.166, +0.111), JVersor3D(+0.000, -0.832, +0.555))); }
128  if (memo.has(29)) { module[memo[29].tdc] = JPMT(30, JAxis3D(JVector3D(-0.144, -0.083, +0.111), JVersor3D(-0.720, -0.416, +0.555))); }
129  if (memo.has(30)) { module[memo[30].tdc] = JPMT(31, JAxis3D(JVector3D(-0.144, +0.083, +0.111), JVersor3D(-0.720, +0.416, +0.555))); }
130 
131  configure();
132 
133  module.compile();
134  module.set(JVector3D(0.0, 0.0, 0.0));
135 
136  return module;
137  }
void setLocation(const JLocation &location)
Set location.
Definition: JLocation.hh:91
Lookup table for PMT addresses in optical module.
virtual void configure() const
Configure module.
Data structure for PMT geometry, calibration and status.
Definition: JPMT.hh:43
void compile()
Compile module data.
Definition: JModule.hh:281
void setID(const int id)
Set identifier.
Definition: JObjectID.hh:72
JModule & set(const JVector3D &pos)
Set position.
Definition: JModule.hh:407
bool has(const int index) const
Test whether index is available.
virtual void JDETECTOR::JDetectorBuilder::configure ( ) const
inlineprotectedvirtual

Configure module.

Reimplemented in JDETECTOR::JDetectorBuilder_t< JKM3NeTFit_t >.

Definition at line 143 of file JDetectorSupportkit.hh.

144  {}
virtual const JModuleAddressMap& JDETECTOR::JDetectorAddressMap::getDefaultModuleAddressMap ( ) const
pure virtualinherited
virtual int JDETECTOR::JDetectorAddressMap::getModuleID ( const JLocation location) const
inlinevirtualinherited

Get module identifier.

Parameters
locationmodule location
Returns
module identifier

Definition at line 58 of file JDetectorAddressMap.hh.

59  {
60  return location.getString() * 100 + location.getFloor();
61  }
int getFloor() const
Get floor number.
Definition: JLocation.hh:145
int getString() const
Get string number.
Definition: JLocation.hh:134
const JModuleAddressMap& JDETECTOR::JDetectorAddressMap::get ( const int  id) const
inlineinherited

Get module address map.

Parameters
idmodule identifier

Definition at line 69 of file JDetectorAddressMap.hh.

70  {
71  if (router.has(id))
72  return buffer[router.get(id)];
73  else
75  }
virtual const JModuleAddressMap & getDefaultModuleAddressMap() const =0
Get default module address map.
std::vector< JModuleAddressMap > buffer
JModuleAddressMap& JDETECTOR::JDetectorAddressMap::get ( const int  id)
inlineinherited

Get module address map.

Parameters
idmodule identifier
Returns
module address map

Definition at line 84 of file JDetectorAddressMap.hh.

85  {
86  if (!router.has(id)) {
87 
89 
90  router.put(id, buffer.size() - 1);
91  }
92 
93  return buffer[router.get(id)];
94  }
virtual const JModuleAddressMap & getDefaultModuleAddressMap() const =0
Get default module address map.
std::vector< JModuleAddressMap > buffer
const JPMTAddressTranslator& JDETECTOR::JDetectorAddressMap::get ( const JPMTIdentifier id) const
inlineinherited

Get PMT address translator.

Parameters
idPMY identifier
Returns
PMT address translator

Definition at line 103 of file JDetectorAddressMap.hh.

104  {
105  return get(id.getModuleID()).getAddressTranslator(id.getTDC());
106  }

Member Data Documentation

JModule JDETECTOR::JDetectorBuilder::module
mutableprotected

Definition at line 146 of file JDetectorSupportkit.hh.

std::vector<JModuleAddressMap> JDETECTOR::JDetectorAddressMap::buffer
protectedinherited

Definition at line 109 of file JDetectorAddressMap.hh.

JTOOLS::JRouter<int> JDETECTOR::JDetectorAddressMap::router
protectedinherited

Definition at line 110 of file JDetectorAddressMap.hh.


The documentation for this struct was generated from the following file: