ATLAS Offline Software
IL1CaloCells2TriggerTowers.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 // ***************************************************************************
5 // * Author: John Morris (john.morris@cern.ch) *
6 // * Queen Mary University of London *
7 // * *
8 
9 //
10 // Pure abstract base class interface to L1CaloCells2TriggerTowers
11 //
12 
13 #ifndef TRIGT1CALOCALIBTOOLINTERFACES_IL1CALOCELLS2TRIGGERTOWERS_H
14 #define TRIGT1CALOCALIBTOOLINTERFACES_IL1CALOCELLS2TRIGGERTOWERS_H
15 
16 // Framework include(s):
17 #include "AsgTools/IAsgTool.h"
18 
19 #include <vector>
20 
21 class CaloCellContainer;
22 class LArDigitContainer;
24 class CaloCell;
25 class Identifier;
26 class LArDigit;
27 class TileDigits;
28 class LArOnOffIdMapping;
29 
30 namespace LVL1{
31 
32  class IL1CaloCells2TriggerTowers : virtual public asg::IAsgTool{
33 
36 
37  public:
38 
39  virtual bool initCaloCellsTriggerTowers(const CaloCellContainer& cellContainer) = 0;
40  virtual bool initLArDigitsTriggerTowers(const LArDigitContainer& larDigitContainer) = 0;
42 
43  virtual std::vector<const CaloCell*> caloCells(const Identifier& ttId) const = 0;
44  virtual std::vector<std::vector<const CaloCell*> > caloCellsByLayer(const Identifier& ttId) const = 0;
45  virtual std::vector<int> layerNames(const Identifier& ttID) const = 0;
46  virtual int layerNames(const CaloCell* cell) const = 0;
47  virtual float energy(const std::vector<const CaloCell*> &cells) const = 0;
48  virtual float et(const std::vector<const CaloCell*> &cells) const = 0;
49  virtual float energy(const Identifier& ttId) const = 0;
50  virtual float et(const Identifier& ttId) const = 0;
51  // Return a vector digits belonging the to requested trigger tower
52  virtual std::vector<double> samples(const Identifier& ttId) const = 0;
53  virtual std::vector<const LArDigit*> larDigits(const Identifier& ttId) const = 0;
54  virtual std::vector<const TileDigits*> tileDigits(const Identifier& ttId) const = 0;
55 
56  virtual void dumpCaloCells() const = 0;
57  virtual void dumpCaloCells(const Identifier& ttId) const = 0;
58 
59  virtual void dumpDigits(const Identifier& ttId) const = 0;
60 
61  virtual void dumpLArDigits(const Identifier& ttId) const = 0; /* ttId must be a LAr TTId */
62  virtual void dumpLArDigits() const = 0;
63 
64  virtual void dumpTileDigits(const Identifier& ttId) const = 0; /* ttId must be a Tile TTId */
65  virtual void dumpTileDigits() const = 0;
66 
67  protected:
68  virtual float calcEnergyOrEt(const std::vector<const CaloCell*> &cells,const unsigned int mode) const = 0;
69 
70  virtual void reset() = 0;
71  virtual void resetCaloCells() = 0;
72  virtual void resetLArDigits() = 0;
73  virtual void resetTileDigits() = 0;
74 
75 
76  virtual void dump(const std::vector<const CaloCell*>& vCells) const = 0;
77  virtual void dump(const std::vector<const LArDigit*>& vCells) const = 0;
78  virtual void dump(const std::vector<const TileDigits*>& vCells) const = 0;
79 
80  };
81 } // end of namespace
82 #endif
LVL1::IL1CaloCells2TriggerTowers::layerNames
virtual std::vector< int > layerNames(const Identifier &ttID) const =0
LVL1::IL1CaloCells2TriggerTowers::dumpDigits
virtual void dumpDigits(const Identifier &ttId) const =0
RunTileCalibRec.cells
cells
Definition: RunTileCalibRec.py:271
ReadCellNoiseFromCool.cell
cell
Definition: ReadCellNoiseFromCool.py:53
LVL1::IL1CaloCells2TriggerTowers::dump
virtual void dump(const std::vector< const CaloCell * > &vCells) const =0
LVL1::IL1CaloCells2TriggerTowers::resetCaloCells
virtual void resetCaloCells()=0
LVL1::IL1CaloCells2TriggerTowers::dumpLArDigits
virtual void dumpLArDigits() const =0
LVL1::IL1CaloCells2TriggerTowers::caloCells
virtual std::vector< const CaloCell * > caloCells(const Identifier &ttId) const =0
LVL1::IL1CaloCells2TriggerTowers::initCaloCellsTriggerTowers
virtual bool initCaloCellsTriggerTowers(const CaloCellContainer &cellContainer)=0
Declare the interface that the class provides.
LVL1::IL1CaloCells2TriggerTowers::dumpTileDigits
virtual void dumpTileDigits() const =0
asg::IAsgTool
Base class for the dual-use tool interface classes.
Definition: IAsgTool.h:41
LVL1::IL1CaloCells2TriggerTowers
Definition: IL1CaloCells2TriggerTowers.h:32
LVL1::IL1CaloCells2TriggerTowers::energy
virtual float energy(const std::vector< const CaloCell * > &cells) const =0
LVL1::IL1CaloCells2TriggerTowers::calcEnergyOrEt
virtual float calcEnergyOrEt(const std::vector< const CaloCell * > &cells, const unsigned int mode) const =0
TileDigitsContainer
Definition: TileDigitsContainer.h:13
LVL1
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
Definition: ICMMCPHitsCnvTool.h:18
LVL1::IL1CaloCells2TriggerTowers::resetLArDigits
virtual void resetLArDigits()=0
LVL1::IL1CaloCells2TriggerTowers::resetTileDigits
virtual void resetTileDigits()=0
LArDigit
Liquid Argon digit base class.
Definition: LArDigit.h:25
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
LVL1::IL1CaloCells2TriggerTowers::tileDigits
virtual std::vector< const TileDigits * > tileDigits(const Identifier &ttId) const =0
LVL1::IL1CaloCells2TriggerTowers::dump
virtual void dump(const std::vector< const LArDigit * > &vCells) const =0
LVL1::IL1CaloCells2TriggerTowers::initTileDigitsTriggerTowers
virtual bool initTileDigitsTriggerTowers(const TileDigitsContainer &tileDigitsContainer)=0
Preparation.mode
mode
Definition: Preparation.py:95
CaloJiveXML_DataTypes.tileDigitsContainer
string tileDigitsContainer
Definition: CaloJiveXML_DataTypes.py:11
LVL1::IL1CaloCells2TriggerTowers::layerNames
virtual int layerNames(const CaloCell *cell) const =0
ASG_TOOL_INTERFACE
#define ASG_TOOL_INTERFACE(CLASSNAME)
Definition: AsgToolMacros.h:40
LVL1::IL1CaloCells2TriggerTowers::dumpCaloCells
virtual void dumpCaloCells() const =0
LVL1::IL1CaloCells2TriggerTowers::larDigits
virtual std::vector< const LArDigit * > larDigits(const Identifier &ttId) const =0
IAsgTool.h
LVL1::IL1CaloCells2TriggerTowers::et
virtual float et(const Identifier &ttId) const =0
LVL1::IL1CaloCells2TriggerTowers::dumpLArDigits
virtual void dumpLArDigits(const Identifier &ttId) const =0
LVL1::IL1CaloCells2TriggerTowers::dumpCaloCells
virtual void dumpCaloCells(const Identifier &ttId) const =0
LVL1::IL1CaloCells2TriggerTowers::reset
virtual void reset()=0
LVL1::IL1CaloCells2TriggerTowers::initLArDigitsTriggerTowers
virtual bool initLArDigitsTriggerTowers(const LArDigitContainer &larDigitContainer)=0
TileDigits
Definition: TileDigits.h:30
LVL1::IL1CaloCells2TriggerTowers::et
virtual float et(const std::vector< const CaloCell * > &cells) const =0
CaloCellContainer
Container class for CaloCell.
Definition: CaloCellContainer.h:55
CaloCell
Data object for each calorimeter readout cell.
Definition: CaloCell.h:57
LVL1::IL1CaloCells2TriggerTowers::energy
virtual float energy(const Identifier &ttId) const =0
LArDigitContainer
Container class for LArDigit.
Definition: LArDigitContainer.h:24
LVL1::IL1CaloCells2TriggerTowers::dumpTileDigits
virtual void dumpTileDigits(const Identifier &ttId) const =0
LVL1::IL1CaloCells2TriggerTowers::samples
virtual std::vector< double > samples(const Identifier &ttId) const =0
LVL1::IL1CaloCells2TriggerTowers::dump
virtual void dump(const std::vector< const TileDigits * > &vCells) const =0
LArOnOffIdMapping
Definition: LArOnOffIdMapping.h:20
LVL1::IL1CaloCells2TriggerTowers::caloCellsByLayer
virtual std::vector< std::vector< const CaloCell * > > caloCellsByLayer(const Identifier &ttId) const =0