ATLAS Offline Software
Loading...
Searching...
No Matches
TilePulseForTileMuonReceiver.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
5//****************************************************************************
6// Filename : TilePulseForTileMuonReceiver.h
7// Author : Joao Gentil Mendes Saraiva (jmendes@cern.ch)
8// Created : October 2013
9//
10// DESCRIPTION
11//
12// Creates TileMuonReceiver digits and raw channel from TileHit
13//
14// Properties (JobOption Parameters):
15//
16// TileHitContainer "TileHitCnt"
17// MuonReceiverDigitsContainer "MuRcvDigitsCnt"
18// MuonReceiverRawChannelContainer "MuRcvRawChCnt"
19// TileInfoName "TileInfo"
20// IntegerDigits "Round digits (default=false)"
21// MaskBadChannels "Remove channels tagged bad (default=false)"
22// UseCoolPulseShapes "Pulse shapes from database (default=false)"
23// UseCoolNoise "Noise from database (default=false)"
24// UseCoolPedestal "Pedestal from database (default=false)"
25// RndmSvc "Random Number Service used in TilePulseForTileMuonReceiver"
26// TileRawChannelBuilderMF "The tool by default is the Matched Filter"
27// UseRndmEvtOverlay "Pileup and/or noise added by overlaying rando events (default=false)"
28//
29// BUGS:
30//
31// History:
32//
33//
34//****************************************************************************
35
36#ifndef TILESIMALGS_TILEPULSEFORTILEMUONRECEIVER_H
37#define TILESIMALGS_TILEPULSEFORTILEMUONRECEIVER_H
38
39// Tile includes
50
51// pileup
53
54// Atlas includes
59
60// Gaudi includes
61#include "GaudiKernel/ToolHandle.h"
62#include "GaudiKernel/ServiceHandle.h"
63
64#include "CLHEP/Random/RandomEngine.h"
65
66class IAthRNGSvc;
67class PileUpMergeSvc;
68class HWIdentifier;
69
70class TileID;
71class TileHWID;
72class TileInfo;
74class TileEvent;
75class TileDQstatus;
76
77#include <string>
78#include <vector>
79
81 public:
82 // constructor
83 TilePulseForTileMuonReceiver(const std::string& name, ISvcLocator* pSvcLocator);
84 // destructor
86
87 //Gaudi Hooks
88 virtual StatusCode initialize() override;
89 virtual StatusCode execute() override;
90 virtual StatusCode finalize() override;
91 virtual bool isClonable() const override final { return true; }
92
93 private:
94
97
99 "TileHitContainer","TileHitCnt", "Input Tile hit container key"};
100
102 "MuonReceiverDigitsContainer", "MuRcvDigitsCnt", "Output Tile muon receiver digits container key"};
103
105 "MuonReceiverRawChannelContainer", "MuRcvRawChCnt", "Output Tile muon receiver raw channel container key"};
106
111 "TileSamplingFraction", "TileSamplingFraction", "Input Tile sampling fraction"};
112
117 "TileCablingSvc", "TileCablingSvc", "The Tile cabling service"};
118
119 ServiceHandle<IAthRNGSvc> m_rndmSvc{this, "RndmSvc", "AthRNGSvc", ""};
121 Gaudi::Property<std::string> m_randomStreamName{this, "RandomStreamName", "Tile_PulseForTileMuonReceiver", ""};
122
127 "TileSampleNoise", "TileSampleNoise", "Input Tile sample noise"};
128
133 "TileEMScale", "TileEMScale", "Input Tile EMS calibration constants"};
134
139 "TilePulseShape", "TileMuRcvPulseShape", "Input Tile Muon Receiver pulse shape"};
140
145 "TileBadChannels", "TileBadChannels", "Input Tile bad channel status"};
146
147 ToolHandle<TileRawChannelBuilderMF> m_MuRcvBuildTool{this,
148 "TileRawChannelBuilderMF", "TileRawChannelBuilderMF", "Reconstruction tool, default: the Matched Filter"};
149
150 Gaudi::Property<std::string> m_infoName{this, "TileInfoName", "TileInfo", "TileInfo object name"};
151 Gaudi::Property<bool> m_integerDigits{this, "IntegerDigits", false, "Round digits (default=false)"};
152 Gaudi::Property<bool> m_maskBadChannels{this, "MaskBadChannels", false, "Remove channels tagged bad (default=false)"};
153 Gaudi::Property<bool> m_useCoolPulseShapes{this, "UseCoolPulseShapes", false, "Pulse shapes from database (default=false)"};
154 Gaudi::Property<bool> m_tileNoise{this, "UseCoolNoise", false, "Noise from database (default=false)"};
155 Gaudi::Property<bool> m_tilePedestal{this, "UseCoolPedestal", false, "Pedestal from database (default=false)"};
156 Gaudi::Property<bool> m_rndmEvtOverlay{this, "RndmEvtOverlay", false, "Pileup and/or noise added by overlaying random events (default=false)"};
157 Gaudi::Property<bool> m_onlyUseContainerName{this, "OnlyUseContainerName", true, "Don't use the ReadHandleKey directly. Just extract the container name from it."};
158
163
168
169 // This is used when loading a pulse from db
170 //
174 double m_timeStep;
175
176 ServiceHandle<PileUpMergeSvc> m_mergeSvc{this, "PileUpMergeSvc", "PileUpMergeSvc"};
177 // vector container for the pulse shape
178 //
179 std::vector<double> m_shapeMuonReceiver;
180
182};
183
184#endif
the preferred mechanism to access information from the different event stores in a pileup job.
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
manage multiple RandomEngines in thread-safe way.
Definition IAthRNGSvc.h:28
the preferred mechanism to access information from the different event stores in a pileup job.
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
Class that holds Data Quality fragment information and provides functions to extract the data quality...
Helper class for TileCal online (hardware) identifiers.
Definition TileHWID.h:49
Helper class for TileCal offline identifiers.
Definition TileID.h:67
ServiceHandle< TileCablingSvc > m_cablingSvc
Name of Tile cabling service.
SG::WriteHandleKey< TileDigitsContainer > m_muRcvDigitsContainerKey
int m_iTrig
Index of the triggering time slice.
SG::ReadHandleKey< TileHitContainer > m_hitContainerKey
double m_tileThresh
Actual threshold value.
ServiceHandle< PileUpMergeSvc > m_mergeSvc
double m_timeStep
Time step in pulse shape: 25.0 / nBinsPerX.
SG::ReadCondHandleKey< TilePulse > m_pulseShapeKey
Name of TilePulseShape in condition store.
ServiceHandle< IAthRNGSvc > m_rndmSvc
Random number service to use.
int m_nShape
Number of bins in pulse shape.
Gaudi::Property< std::string > m_infoName
const TileCablingService * m_cablingService
TileCabling instance.
SG::WriteHandleKey< TileRawChannelContainer > m_muRcvRawChannelContainerKey
virtual StatusCode initialize() override
initialize method
virtual StatusCode execute() override
execute method
int m_binTime0
Index of time=0 bin for pulse shape.
ToolHandle< TileRawChannelBuilderMF > m_MuRcvBuildTool
TilePulseForTileMuonReceiver(const std::string &name, ISvcLocator *pSvcLocator)
SG::ReadCondHandleKey< TileBadChannels > m_badChannelsKey
Name of TileBadChannels in condition store.
SG::ReadCondHandleKey< TileEMScale > m_emScaleKey
Name of TileEMScale in condition store.
int m_nBinsPerX
Number of bins per bunch crossing in pulse shape.
Gaudi::Property< std::string > m_randomStreamName
Random Stream Name.
int m_nSamples
Number of time slices for each channel.
SG::ReadHandleKey< TileDigitsContainer > m_inputDigitContainerKey
SG::ReadCondHandleKey< TileSamplingFraction > m_samplingFractionKey
Name of TileSamplingFraction in condition store.
SG::ReadCondHandleKey< TileSampleNoise > m_sampleNoiseKey
Name of TileSampleNoise in condition store.
virtual StatusCode finalize() override
finalize method
std::vector< double > m_shapeMuonReceiver
Muon receiver pulse shape.
virtual bool isClonable() const override final