ATLAS Offline Software
Loading...
Searching...
No Matches
VP1CaloCellSystem::Clockwork Class Reference

Public Member Functions

 Clockwork ()
 ~Clockwork ()
 Clockwork (const Clockwork &)=delete
Clockworkoperator= (const Clockwork &)=delete
void BuildCellManagers ()
void FillManagers ()
std::string SearchTileRawchanKeys (const std::vector< std::string > &inputKeys)

Public Attributes

VP1CaloCellControllercontroller {nullptr}
bool noCalo {false}
bool noLArDigitsGlobal {false}
bool noLArDigitsEvent {false}
bool noTileDigitsGlobal {false}
bool noTileDigitsEvent {false}
bool modeSimple {true}
const TileDetDescrManagertile_dd_man {nullptr}
const CaloCell_IDcalo_id {nullptr}
const TileIDtile_id {nullptr}
const TileHWIDtile_hw_id {nullptr}
const TileInfotile_info {nullptr}
const TileCablingServicetile_cabling {nullptr}
const LArOnlineIDlar_onlineID {nullptr}
const ICaloBadChanToolcalo_badchannel {nullptr}
const CaloCellContainercalocells {nullptr}
const LArDigitContainerlar_digits {nullptr}
const TileDigitsContainertile_digits {nullptr}
const TileRawChannelContainertile_rawchannel {nullptr}
VP1CCManagerContainer cell_managers
VP1MbtsHelpermbtsHelper
VP1CC_SoNode2CCMap node2ccMap
VP1CC_SeparatorMap sepHelperMap
VP1CC_SeparatorTypesSet sepTypes

Detailed Description

Definition at line 61 of file VP1CaloCellSystem.cxx.

Constructor & Destructor Documentation

◆ Clockwork() [1/2]

VP1CaloCellSystem::Clockwork::Clockwork ( )

Definition at line 161 of file VP1CaloCellSystem.cxx.

162: mbtsHelper(new VP1MbtsHelper(false))
163{
164 // Initialize set of available separator types besides MBTS
179}
@ VP1CC_SepTileNegativeDown
@ VP1CC_SepTilePositiveDown
@ VP1CC_SepLArEMBPos
@ VP1CC_SepLArHECNeg
@ VP1CC_SepLArFCALPos
@ VP1CC_SepLArEMECPos
@ VP1CC_SepTilePositiveNeg
@ VP1CC_SepLArEMECNeg
@ VP1CC_SepTilePositiveUp
@ VP1CC_SepLArEMBNeg
@ VP1CC_SepLArHECPos
@ VP1CC_SepTileNegativePos
@ VP1CC_SepTileNegativeUp
@ VP1CC_SepLArFCALNeg
VP1CC_SeparatorTypesSet sepTypes

◆ ~Clockwork()

VP1CaloCellSystem::Clockwork::~Clockwork ( )

Definition at line 181 of file VP1CaloCellSystem.cxx.

182{
183 if(mbtsHelper) delete mbtsHelper;
184}

◆ Clockwork() [2/2]

VP1CaloCellSystem::Clockwork::Clockwork ( const Clockwork & )
delete

Member Function Documentation

◆ BuildCellManagers()

void VP1CaloCellSystem::Clockwork::BuildCellManagers ( )

Definition at line 186 of file VP1CaloCellSystem.cxx.

187{
188 // Populate cell_managers map
190 controller->energyModeEt(),controller->scale(),
191 controller->showVolumeOutLines(),controller->globalCuts());
193 controller->energyModeEt(),controller->scale(),
194 controller->showVolumeOutLines(),controller->globalCuts());
196 controller->energyModeEt(),controller->scale(),
197 controller->showVolumeOutLines(),controller->globalCuts());
199 controller->energyModeEt(),controller->scale(),
200 controller->showVolumeOutLines(),controller->globalCuts());
202 controller->energyModeEt(),controller->scale(),
203 controller->showVolumeOutLines(),controller->globalCuts());
205 controller->energyModeEt(),controller->scale(),
206 controller->showVolumeOutLines(),controller->globalCuts());
208 controller->energyModeEt(),controller->scale(),
209 controller->showVolumeOutLines(),controller->globalCuts());
211 controller->energyModeEt(),controller->scale(),
212 controller->showVolumeOutLines(),controller->globalCuts());
214 controller->energyModeEt(),controller->scale(),
215 controller->showVolumeOutLines(),controller->globalCuts());
217 controller->energyModeEt(),controller->scale(),
218 controller->showVolumeOutLines(),controller->globalCuts());
220 controller->energyModeEt(),controller->scale(),
221 controller->showVolumeOutLines(),controller->globalCuts());
223 controller->energyModeEt(),controller->scale(),
224 controller->showVolumeOutLines(),controller->globalCuts());
226 controller->energyModeEt(),controller->scale(),
227 controller->showVolumeOutLines(),controller->globalCuts());
229 controller->energyModeEt(),controller->scale(),
230 controller->showVolumeOutLines(),controller->globalCuts());
232 controller->energyModeEt(),controller->scale(),
233 controller->showVolumeOutLines(),controller->globalCuts());
235 controller->energyModeEt(),controller->scale(),
236 controller->showVolumeOutLines(),controller->globalCuts());
238 controller->energyModeEt(),controller->scale(),
239 controller->showVolumeOutLines(),controller->globalCuts());
241 controller->energyModeEt(),controller->scale(),
242 controller->showVolumeOutLines(),controller->globalCuts());
243
244 // Connect controller signals to manager slots
245 for(VP1CCManagerContainer::iterator it=cell_managers.begin(); it!=cell_managers.end(); ++it) {
246 connect(controller,SIGNAL(selectionIntervalsChanged(VP1CCIntervalMap)),
247 it->second,SLOT(selectionUpdated(VP1CCIntervalMap)));
248 connect(controller,SIGNAL(scaleChanged(QPair<bool,double>)),
249 it->second,SLOT(scaleUpdated(QPair<bool,double>)));
250 connect(controller,SIGNAL(showVolumeOutLinesChanged(bool)),
251 it->second,SLOT(outlineUpdated(bool)));
252 connect(controller,SIGNAL(globalCutsChanged(VP1CC_GlobalCuts)),
253 it->second,SLOT(globalCutsUpdated(VP1CC_GlobalCuts)));
254 connect(controller->customTourEditor(),SIGNAL(clipVolumeRadiusChanged(double)),
255 it->second,SLOT(clipVolumeRadiusChanged(double)));
256 }
257}
QMap< VP1CC_SelectionTypes, VP1CCIntervalPair > VP1CCIntervalMap
@ VP1CC_SelTypeEMB2
@ VP1CC_SelTypeEMEC1
@ VP1CC_SelTypeFCAL3
@ VP1CC_SelTypeTileB
@ VP1CC_SelTypeEMEC3
@ VP1CC_SelTypeFCAL1
@ VP1CC_SelTypeHEC0
@ VP1CC_SelTypeHEC2
@ VP1CC_SelTypeTileEC
@ VP1CC_SelTypeEMB3
@ VP1CC_SelTypeEMEC0
@ VP1CC_SelTypeEMB0
@ VP1CC_SelTypeFCAL2
@ VP1CC_SelTypeEMB1
@ VP1CC_SelTypeEMEC2
@ VP1CC_SelTypeHEC3
@ VP1CC_SelTypeHEC1
@ VP1CC_SelTypeTileCrack
VP1CCManagerContainer cell_managers
VP1CaloCellController * controller

◆ FillManagers()

void VP1CaloCellSystem::Clockwork::FillManagers ( )

Definition at line 259 of file VP1CaloCellSystem.cxx.

260{
261 // For events with no Calo Cells do nothing
262 if(!calocells) return;
263
264 for(const CaloCell* cell : *calocells) {
265
266 // for each cell:
267 // 1. determine its type
268 // 2. build VP1CaloCell of appropriate type
269 // 3. add it to the appropriate manager
270 try {
271 if(calo_id->is_em_barrel(cell->ID())) {
272 // ------- EMB ----------
273 VP1CC_LArEMB* embCC = new VP1CC_LArEMB(cell,&sepHelperMap);
274
275 switch(calo_id->sampling(cell->ID())) {
276 case 0: {
277 cell_managers[VP1CC_SelTypeEMB0]->add(embCC);
278 break;
279 }
280 case 1: {
281 cell_managers[VP1CC_SelTypeEMB1]->add(embCC);
282 break;
283 }
284 case 2: {
285 cell_managers[VP1CC_SelTypeEMB2]->add(embCC);
286 break;
287 }
288 case 3: {
289 cell_managers[VP1CC_SelTypeEMB3]->add(embCC);
290 break;
291 }
292 default: { //unknown case, tidy up
293 delete embCC; embCC=nullptr;
294 break;
295 }
296 }
297 // ------- EMB ----------
298 }
299 else if(calo_id->is_em_endcap(cell->ID()) || calo_id->is_hec(cell->ID())) {
300 VP1CC_LArEMECHEC* emechecCC = new VP1CC_LArEMECHEC(cell,calo_id,&sepHelperMap);
301
302 if(calo_id->is_em_endcap(cell->ID())) {
303 // ------- EMEC ----------
304 switch(calo_id->sampling(cell->ID())) {
305 case 0: {
306 cell_managers[VP1CC_SelTypeEMEC0]->add(emechecCC);
307 break;
308 }
309 case 1: {
310 cell_managers[VP1CC_SelTypeEMEC1]->add(emechecCC);
311 break;
312 }
313 case 2: {
314 cell_managers[VP1CC_SelTypeEMEC2]->add(emechecCC);
315 break;
316 }
317 case 3: {
318 cell_managers[VP1CC_SelTypeEMEC3]->add(emechecCC);
319 break;
320 }
321 default: { //unknown case, tidy up
322 delete emechecCC; emechecCC=nullptr;
323 break;
324 }
325 }
326 // ------- EMEC ----------
327 } else {
328 // ------- HEC ----------
329 switch(calo_id->sampling(cell->ID())) {
330 case 0: {
331 cell_managers[VP1CC_SelTypeHEC0]->add(emechecCC);
332 break;
333 }
334 case 1: {
335 cell_managers[VP1CC_SelTypeHEC1]->add(emechecCC);
336 break;
337 }
338 case 2: {
339 cell_managers[VP1CC_SelTypeHEC2]->add(emechecCC);
340 break;
341 }
342 case 3: {
343 cell_managers[VP1CC_SelTypeHEC3]->add(emechecCC);
344 break;
345 }
346 default: { //unknown case, tidy up
347 delete emechecCC; emechecCC=nullptr;
348 break;
349 }
350 }
351 // ------- EMEC ----------
352 }
353 }
354 else if(calo_id->is_fcal(cell->ID())) {
355 // ------- FCAL ----------
356 VP1CC_LArFCAL* fcalCC = new VP1CC_LArFCAL(cell,&sepHelperMap);
357
358 switch(calo_id->sampling(cell->ID())) {
359 case 1: {
360 cell_managers[VP1CC_SelTypeFCAL1]->add(fcalCC);
361 break;
362 }
363 case 2: {
364 cell_managers[VP1CC_SelTypeFCAL2]->add(fcalCC);
365 break;
366 }
367 case 3: {
368 cell_managers[VP1CC_SelTypeFCAL3]->add(fcalCC);
369 break;
370 }
371 default: { //unknown case, tidy up
372 delete fcalCC; fcalCC=nullptr;
373 break;
374 }
375 }
376 // ------- FCAL ----------
377 }
378 else if(!calo_id->is_tile_gapscin(cell->ID())) {
379 // ------- Tile Barrel EC ----------
380 VP1CC_TileBarEc* tileCC = new VP1CC_TileBarEc(cell,tile_id,&sepHelperMap);
381
382 if(calo_id->is_tile_barrel(cell->ID()))
383 cell_managers[VP1CC_SelTypeTileB]->add(tileCC);
384 else
386 }
387 else if(calo_id->is_tile_gapscin(cell->ID())) {
388 // ------- Tile Crack ----------
389 VP1CC_TileCrack* tilecrackCC = new VP1CC_TileCrack(cell,tile_id,&sepHelperMap);
390
391 cell_managers[VP1CC_SelTypeTileCrack]->add(tilecrackCC);
392 }
393 }
394 catch(std::runtime_error& err) {
395 // --- do nothing for now
396 std::cout << "RunTime exception caught! --> " << err.what() << std::endl;
397 }
398 } // iterate over cells
399}
const CaloCellContainer * calocells

◆ operator=()

Clockwork & VP1CaloCellSystem::Clockwork::operator= ( const Clockwork & )
delete

◆ SearchTileRawchanKeys()

std::string VP1CaloCellSystem::Clockwork::SearchTileRawchanKeys ( const std::vector< std::string > & inputKeys)

Definition at line 401 of file VP1CaloCellSystem.cxx.

402{
403 // Search order
404 std::vector<std::string> searchOrder;
405 searchOrder.push_back("TileRawChannelOpt2");
406 searchOrder.push_back("TileRawChannelOpt");
407 searchOrder.push_back("TileRawChannelFixed");
408 searchOrder.push_back("TileRawChannelFitCool");
409 searchOrder.push_back("TileRawChannelFit");
410 searchOrder.push_back("TileRawChannelCnt");
411 searchOrder.push_back("TileRawChannelFlt");
412
413 for(size_t i=0; i<searchOrder.size(); ++i) {
414 std::string searchString = searchOrder[i];
415 for(size_t ii=0; ii<inputKeys.size(); ++ii)
416 if(inputKeys[ii]==searchString)
417 return searchString;
418 }
419 // No keys found from Search Order, return empty string
420 return std::string("");
421}

Member Data Documentation

◆ calo_badchannel

const ICaloBadChanTool* VP1CaloCellSystem::Clockwork::calo_badchannel {nullptr}

Definition at line 120 of file VP1CaloCellSystem.cxx.

120{nullptr};

◆ calo_id

const CaloCell_ID* VP1CaloCellSystem::Clockwork::calo_id {nullptr}

Definition at line 108 of file VP1CaloCellSystem.cxx.

108{nullptr};

◆ calocells

const CaloCellContainer* VP1CaloCellSystem::Clockwork::calocells {nullptr}

Definition at line 127 of file VP1CaloCellSystem.cxx.

127{nullptr};

◆ cell_managers

VP1CCManagerContainer VP1CaloCellSystem::Clockwork::cell_managers

Definition at line 137 of file VP1CaloCellSystem.cxx.

◆ controller

VP1CaloCellController* VP1CaloCellSystem::Clockwork::controller {nullptr}

Definition at line 84 of file VP1CaloCellSystem.cxx.

84{nullptr};

◆ lar_digits

const LArDigitContainer* VP1CaloCellSystem::Clockwork::lar_digits {nullptr}

Definition at line 128 of file VP1CaloCellSystem.cxx.

128{nullptr};

◆ lar_onlineID

const LArOnlineID* VP1CaloCellSystem::Clockwork::lar_onlineID {nullptr}

Definition at line 119 of file VP1CaloCellSystem.cxx.

119{nullptr};

◆ mbtsHelper

VP1MbtsHelper* VP1CaloCellSystem::Clockwork::mbtsHelper

Definition at line 144 of file VP1CaloCellSystem.cxx.

◆ modeSimple

bool VP1CaloCellSystem::Clockwork::modeSimple {true}

Definition at line 97 of file VP1CaloCellSystem.cxx.

97{true}; // Which mode (simple/expert) is used for LAr

◆ noCalo

bool VP1CaloCellSystem::Clockwork::noCalo {false}

Definition at line 91 of file VP1CaloCellSystem.cxx.

91{false}; // If Calo has been switched off don't show anything

◆ node2ccMap

VP1CC_SoNode2CCMap VP1CaloCellSystem::Clockwork::node2ccMap

Definition at line 152 of file VP1CaloCellSystem.cxx.

◆ noLArDigitsEvent

bool VP1CaloCellSystem::Clockwork::noLArDigitsEvent {false}

Definition at line 93 of file VP1CaloCellSystem.cxx.

93{false}; // Are we able to show LAr digits for this event?

◆ noLArDigitsGlobal

bool VP1CaloCellSystem::Clockwork::noLArDigitsGlobal {false}

Definition at line 92 of file VP1CaloCellSystem.cxx.

92{false}; // Are we able to show LAr digits at all?

◆ noTileDigitsEvent

bool VP1CaloCellSystem::Clockwork::noTileDigitsEvent {false}

Definition at line 95 of file VP1CaloCellSystem.cxx.

95{false}; // Are we able to show Tile digits for this event?

◆ noTileDigitsGlobal

bool VP1CaloCellSystem::Clockwork::noTileDigitsGlobal {false}

Definition at line 94 of file VP1CaloCellSystem.cxx.

94{false}; // Are we able to show Tile digits at all?

◆ sepHelperMap

VP1CC_SeparatorMap VP1CaloCellSystem::Clockwork::sepHelperMap

Definition at line 155 of file VP1CaloCellSystem.cxx.

◆ sepTypes

VP1CC_SeparatorTypesSet VP1CaloCellSystem::Clockwork::sepTypes

Definition at line 158 of file VP1CaloCellSystem.cxx.

◆ tile_cabling

const TileCablingService* VP1CaloCellSystem::Clockwork::tile_cabling {nullptr}

Definition at line 118 of file VP1CaloCellSystem.cxx.

118{nullptr};

◆ tile_dd_man

const TileDetDescrManager* VP1CaloCellSystem::Clockwork::tile_dd_man {nullptr}

Definition at line 105 of file VP1CaloCellSystem.cxx.

105{nullptr};

◆ tile_digits

const TileDigitsContainer* VP1CaloCellSystem::Clockwork::tile_digits {nullptr}

Definition at line 129 of file VP1CaloCellSystem.cxx.

129{nullptr};

◆ tile_hw_id

const TileHWID* VP1CaloCellSystem::Clockwork::tile_hw_id {nullptr}

Definition at line 110 of file VP1CaloCellSystem.cxx.

110{nullptr};

◆ tile_id

const TileID* VP1CaloCellSystem::Clockwork::tile_id {nullptr}

Definition at line 109 of file VP1CaloCellSystem.cxx.

109{nullptr};

◆ tile_info

const TileInfo* VP1CaloCellSystem::Clockwork::tile_info {nullptr}

Definition at line 117 of file VP1CaloCellSystem.cxx.

117{nullptr};

◆ tile_rawchannel

const TileRawChannelContainer* VP1CaloCellSystem::Clockwork::tile_rawchannel {nullptr}

Definition at line 130 of file VP1CaloCellSystem.cxx.

130{nullptr};

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