ATLAS Offline Software
Loading...
Searching...
No Matches
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
24class CaloCell;
25class Identifier;
26class LArDigit;
27class TileDigits;
29
30namespace LVL1{
31
33
36
37 public:
38
39 virtual bool initCaloCellsTriggerTowers(const CaloCellContainer& cellContainer) = 0;
40 virtual bool initLArDigitsTriggerTowers(const LArDigitContainer& larDigitContainer) = 0;
41 virtual bool initTileDigitsTriggerTowers(const TileDigitsContainer& tileDigitsContainer) = 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
#define ASG_TOOL_INTERFACE(CLASSNAME)
Container class for CaloCell.
Data object for each calorimeter readout cell.
Definition CaloCell.h:57
Container class for LArDigit.
Liquid Argon digit base class.
Definition LArDigit.h:25
virtual void dumpLArDigits(const Identifier &ttId) const =0
virtual float energy(const std::vector< const CaloCell * > &cells) const =0
virtual void dumpDigits(const Identifier &ttId) const =0
virtual void dump(const std::vector< const LArDigit * > &vCells) const =0
virtual float et(const std::vector< const CaloCell * > &cells) const =0
virtual void dump(const std::vector< const CaloCell * > &vCells) const =0
virtual void dumpTileDigits() const =0
virtual int layerNames(const CaloCell *cell) const =0
virtual std::vector< const LArDigit * > larDigits(const Identifier &ttId) const =0
virtual std::vector< const CaloCell * > caloCells(const Identifier &ttId) const =0
virtual void dumpCaloCells(const Identifier &ttId) const =0
virtual bool initLArDigitsTriggerTowers(const LArDigitContainer &larDigitContainer)=0
virtual std::vector< int > layerNames(const Identifier &ttID) const =0
virtual float calcEnergyOrEt(const std::vector< const CaloCell * > &cells, const unsigned int mode) const =0
virtual void dumpLArDigits() const =0
virtual void dumpTileDigits(const Identifier &ttId) const =0
virtual std::vector< std::vector< const CaloCell * > > caloCellsByLayer(const Identifier &ttId) const =0
virtual std::vector< double > samples(const Identifier &ttId) const =0
virtual bool initTileDigitsTriggerTowers(const TileDigitsContainer &tileDigitsContainer)=0
virtual bool initCaloCellsTriggerTowers(const CaloCellContainer &cellContainer)=0
Declare the interface that the class provides.
virtual void dumpCaloCells() const =0
virtual float energy(const Identifier &ttId) const =0
virtual void dump(const std::vector< const TileDigits * > &vCells) const =0
virtual std::vector< const TileDigits * > tileDigits(const Identifier &ttId) const =0
virtual float et(const Identifier &ttId) const =0
Base class for the dual-use tool interface classes.
Definition IAsgTool.h:41
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...