|  | ATLAS Offline Software
    | 
 
 
 
Go to the documentation of this file.
    5 #ifndef TILERECUTILS_TILECELLBUILDER_H 
    6 #define TILERECUTILS_TILECELLBUILDER_H 
   51 #include "GaudiKernel/ToolHandle.h" 
   52 #include "GaudiKernel/ServiceHandle.h" 
  108   : 
public extends<AthAlgTool, ICaloCellMakerTool>
 
  121                                 const EventContext& ctx) 
const override;
 
  123     void reset(
bool fullSizeCont, 
bool printReset = 
true); 
 
  138                                                                         "Input Tile raw channel container key"};
 
  142                                                                            "Input Tile DSP raw channel container key"};
 
  156                                                              "Output Tile MBTS container key"};
 
  160                                                              "Output Tile E4 prime container key"};
 
  164                                                                       "Dummy decoration key to aid scheduling"};
 
  207         "TileBadChannels", 
"TileBadChannels", 
"Input Tile bad channel status"};
 
  213          "TileEMScale", 
"TileEMScale", 
"Input Tile EMS calibration constants"};
 
  216         "TileCondToolTiming", 
"TileCondToolTiming", 
"Tile timing tool"};
 
  219         "NoiseFilterTools", {}, 
"Tile noise filter tools"};
 
  225         "TileDCS", 
"TileDCS", 
"Input Tile DCS status"};
 
  231         "TileCablingSvc", 
"TileCablingSvc", 
"The Tile cabling service"};
 
  271     template<
class ITERATOR, 
class COLLECTION>
 
  272     void build (
const EventContext& ctx,
 
  275                 const ITERATOR & 
begin,
 
  276                 const ITERATOR & 
end,
 
  292         unsigned char iqual, 
unsigned char qbit, 
int ch_type) 
const; 
 
  303                          bool count_over, 
bool good_time, 
bool good_ener,
 
  304                          bool overflow, 
bool underflow,
 
  305                          bool good_overflowfit) 
const;
 
  307     template<
typename T, 
typename V>
 
  
JetConstituentVector::iterator iterator
Property holding a SG store/key/clid from which a ReadHandle is made.
static const InterfaceID & interfaceID()
float m_ADCmaskValueMinusEps
DoubleVectorIterator(VecParams ¶ms, T *f, const VecParams ¶ms1, T *s, const VecParams ¶ms2, int p)
SG::WriteDecorHandleKey< xAOD::EventInfo > m_EventInfoTileStatusKey
const TileCablingService * m_cabling
TileCabling instance.
SG::ReadHandleKey< TileRawChannelContainer > m_rawChannelContainerKey
float m_ampMinThresh
correct amplitude if it's above amplitude threshold (in ADC counts)
void reset(bool fullSizeCont, bool printReset=true)
Method to reset the options of the TileCellContainer.
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
int m_skipGain
for two-gain calib runs skip one of two gains
std::vector< CaloAffectedRegionInfo > m_affectedRegionInfo_global
SG::WriteHandleKey< TileCellContainer > m_E4prContainerKey
float m_timeMinThresh
correct amplitude is time is above time min threshold
bool m_mergeChannels
If true, missing raw channels are taken from DSP container.
unsigned char iquality(float qual) const
SG::ReadCondHandleKey< TileBadChannels > m_badChannelsKey
Name of TileBadChannels in condition store.
const TileHWID * m_tileHWID
Pointer to TileHWID.
SG::ReadCondHandleKey< TileEMScale > m_emScaleKey
Name of TileEMScale in condition store.
This class provides conversion between fragment ID and RESrcID.
bool m_maskBadChannels
if true=> bad channels are masked
float m_maxTimeDiff
maximum time difference between the PMTs in the cell
const MbtsDetDescrManager * m_mbtsMgr
Pointer to MbtsDetDescrManager.
Helper class for TileCal online (hardware) identifiers.
std::vector< CaloAffectedRegionInfo > m_affectedRegionInfo_current_run
Class that holds Data Quality fragment information and provides functions to extract the data quality...
SG::ReadCondHandleKey< TileDCSState > m_DCSStateKey
Name of TileDCSState object in condition store.
float m_minEneChan[3]
channel energy thresholds for masking (normal,gap,mbts)
float m_timeMaxThresh
correct amplitude is time is below time max threshold
TileFragHash::TYPE m_RChType
Property holding a SG store/key/clid from which a WriteHandle is made.
void correctCell(TileCell *pCell, int correction, int pmt, int gain, float ener, float time, unsigned char iqual, unsigned char qbit, int ch_type) const
Compute calibrated energy, time, etc.
Helper class for TileCal offline identifiers.
DoubleVectorIterator & operator=(const DoubleVectorIterator &other)=default
::StatusCode StatusCode
StatusCode definition for legacy code.
const TileID * m_tileID
Pointer to TileID.
const TileDetDescrManager * m_tileMgr
Pointer to TileDetDescrManager.
DoubleVectorIterator(const DoubleVectorIterator &i)=default
float m_maxTime
maximum time for the PMTs in the cels
float m_minChi2
minimum chi2 for the PMTs in the cels
Information produced by TileDQstatusAlg (used to be done by TileBeamInfoProvider).
float m_maxChi2
maximum chi2 for the PMTs in the cels
const TileTBID * m_tileTBID
Pointer to TileTBID.
const VecParams & m_params2
SG::ReadHandleKey< TileRawChannelContainer > m_dspRawChannelContainerKey
Property holding a SG store/key/clid from which a WriteHandle is made.
TileDrawerEvtStatus TileDrawerEvtStatusArray[5][64]
status of every drawer
const VecParams & m_params1
bool m_of2
If true, assume OF2 method for amplitude correction, otherwise - OF1.
Condition object to keep Tile channel and ADC status.
float m_zeroEnergy
energy to store in every PMT if both PMT are bad
bool m_correctTime
should time be corrected (deltat added from CondDB)
float m_eneForTimeCut
keep time for channels with energy above cut
bool maskBadChannels(TileDrawerEvtStatusArray &drawerEvtStatus, const TileDQstatus *DQstatus, const TileDCSState *dcsState, const TileBadChannels *badChannels, TileCell *pCell) const
virtual StatusCode initialize() override
Initializer.
Container class for CaloCell.
void build(const EventContext &ctx, TileDrawerEvtStatusArray &drawerEvtStatus, VecParams ¶ms, const ITERATOR &begin, const ITERATOR &end, COLLECTION *coll, TileCellContainer *MBTSCells, TileCellContainer *E4prCells) const
< method to process raw channels from a given vector and store them in collection
This class creates Cells from RawChannels and stores them in a container.
TileRawChannelUnit::UNIT m_RChUnit
std::string m_dspRawChannelContainer
bool operator!=(const DoubleVectorIterator &i)
ToolHandleArray< ITileRawChannelTool > m_noiseFilterTools
def time(flags, cells_name, *args, **kw)
SG::WriteHandleKey< TileCellContainer > m_MBTSContainerKey
int m_qualityCut
cut on channel quality (set energy to m_zeroEnergy for them)
float m_eThreshold
cell energy threshold to consider the cell
This class keep detailed status info about one drawer in a given event.
bool maskBadChannel(TileDrawerEvtStatusArray &drawerEvtStatus, const TileDQstatus *DQstatus, const TileDCSState *dcsState, const TileBadChannels *badChannels, TileCell *pCell, HWIdentifier hwid) const
method to check if channels are good or bad.
float m_eneForTimeCutMBTS
similar cut for MBTS in pC
ServiceHandle< TileCablingSvc > m_cablingSvc
Name of Tile cabling service.
unsigned char qbits(TileDrawerEvtStatusArray &drawerEvtStatus, TileFragHash::TYPE RChType, int ros, int drawer, bool count_over, bool good_time, bool good_ener, bool overflow, bool underflow, bool good_overflowfit) const
method to compute the cell quality bits
bool m_correctAmplitude
If true, amplitude is corrected by parabolic function (needed for OF without iterations)
Condition object to keep Tile DCS status from DB.
bool m_thresholdNotSet
bool variable to check whether some threshold have been set
float m_ADCmaskValuePlusEps
SG::ReadHandleKey< TileDQstatus > m_DQstatusKey
Helper class for TileCal offline identifiers of ancillary testbeam detectors and MBTS.
virtual ~TileCellBuilder()
Destructor.
defines and typedefs for IOVSvc
This class keep detailed status info about one drawer in whole run.
TileCellBuilder(const std::string &type, const std::string &name, const IInterface *parent)
Contructor.
bool m_fakeCrackCells
if true=> fake E3/E4 cells added
float m_minTime
minimum time for the PMTs in the cels
object to store information about affected regions in calorimeter
virtual StatusCode finalize() override
ToolHandle< TileCondToolTiming > m_tileToolTiming
const TileInfo * m_tileInfo
DoubleVectorIterator & operator++()
virtual StatusCode process(CaloCellContainer *theCellContainer, const EventContext &ctx) const override
method to process all raw channels and store them in container