Jpp 19.3.0-rc.2
the software that should make you happy
Loading...
Searching...
No Matches
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.
 
virtual const JModuleAddressMapgetDefaultModuleAddressMap () const =0
 Get default module address map.
 
virtual int getModuleID (const JLocation &location) const
 Get module identifier.
 
const JModuleAddressMapget (const int id) const
 Get module address map.
 
JModuleAddressMapget (const int id)
 Get module address map.
 
const JPMTAddressTranslatorget (const JPMTIdentifier &id) const
 Get PMT address translator.
 

Protected Member Functions

virtual void configure () const
 Configure module.
 

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

◆ getModule()

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 }
const JModuleAddressMap & get(const int id) const
Get module address map.
virtual void configure() const
Configure module.

◆ configure()

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

◆ getDefaultModuleAddressMap()

virtual const JModuleAddressMap & JDETECTOR::JDetectorAddressMap::getDefaultModuleAddressMap ( ) const
pure virtualinherited

◆ getModuleID()

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 }

◆ get() [1/3]

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 }
std::vector< JModuleAddressMap > buffer
virtual const JModuleAddressMap & getDefaultModuleAddressMap() const =0
Get default module address map.

◆ get() [2/3]

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 }

◆ get() [3/3]

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 }
virtual int getModuleID(const JLocation &location) const
Get module identifier.
const JPMTAddressTranslator & getAddressTranslator(const int tdc) const
Get PMT address translator.

Member Data Documentation

◆ module

JModule JDETECTOR::JDetectorBuilder::module
mutableprotected

Definition at line 146 of file JDetectorSupportkit.hh.

◆ buffer

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

Definition at line 109 of file JDetectorAddressMap.hh.

◆ router

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: