|
ATLAS Offline Software
|
Go to the documentation of this file.
27 #ifndef TILESIMALGS_TILEDIGITSMAKER_H
28 #define TILESIMALGS_TILEDIGITSMAKER_H
51 #include "GaudiKernel/ToolHandle.h"
52 #include "GaudiKernel/ServiceHandle.h"
54 #include "CLHEP/Random/RandomEngine.h"
95 std::vector<std::vector<double>>& drawerBufferLo,
96 std::vector<std::vector<double>>& drawerBufferHi,
98 std::vector<int>& over_gain,
const TileEMScale* emScale,
103 std::vector<std::vector<double>>& drawerBufferLo,
104 std::vector<std::vector<double>>& drawerBufferHi,
105 std::vector<int>&
igain, std::vector<int>& overgain, std::vector<double>& ech_int,
106 std::vector<bool> &signal_in_channel,
const TileEMScale* emScale,
110 "TileHitContainer",
"TileHitCnt",
"input Tile hit container key"};
113 "TileHitContainer_DigiHSTruth",
"TileHitCnt_DigiHSTruth",
"input Tile hit container key"};
116 "OnlyUseContainerName",
true,
"Don't use the ReadHandleKey directly. Just extract the container name from it."};
122 "TileDigitsContainer",
"TileDigitsCnt",
"Output Tile digits container key"};
125 "TileDigitsContainer_DigiHSTruth",
"TileDigitsCnt_DigiHSTruth",
"Output DigiHSTruth Tile digits container key"};
128 "TileFilteredContainer",
"TileDigitsFlt",
"Output filtered Tile digits container key"};
131 "FilterThreshold", 100.0 *
Athena::Units::MeV,
"Threshold on filtered digits (default - 100 MeV)"};
134 "FilterThresholdMBTS", 0.0 *
Athena::Units::MeV,
"Threshold on filtered digits of MBTS (default - 0 MeV)"};
137 "TileInfoName",
"TileInfo",
"TileInfo object name"};
140 "IntegerDigits",
true,
"Round digits to integer"};
143 "CalibrationRun",
false,
"If true -> both high and low gain saved"};
146 "RndmEvtOverlay",
false,
"Pileup and/or noise added by overlaying random events (default=false)"};
149 "UseCoolPulseShapes",
true,
"Pulse shapes from database (default=true)"};
152 "MaskBadChannels",
false,
"Remove channels tagged bad (default=false)"};
155 "DoHSTruthReconstruction",
false,
""};
158 "AllChannels", -1,
"Create all channels, use 0 or 1 or 2 (default=-1 - unset)"};
168 std::vector<std::unique_ptr<HWIdentifier[]> >
m_all_ids;
200 "TileCablingSvc",
"TileCablingSvc",
"The Tile cabling service"};
203 Gaudi::Property<std::string>
m_randomStreamName{
this,
"RandomStreamName",
"Tile_DigitsMaker",
""};
210 "TileSampleNoise",
"TileSampleNoise",
"Input Tile sample noise"};
216 "TileEMScale",
"TileEMScale",
"Input Tile EMS calibration constants"};
222 "TilePulseShape",
"TilePulseShape",
"Input Tile pulse shape"};
228 "TileSamplingFraction",
"TileSamplingFraction",
"Input Tile sampling fraction"};
234 "TileBadChannels",
"TileBadChannels",
"Input Tile bad channel status"};
237 "TileDQstatus",
"",
"Input TileDQstatus key" };
241 #endif // TILESIMALGS_TILEDIGITSMAKER_H
Property holding a SG store/key/clid from which a ReadHandle is made.
Condition object to keep calibration factors of TileCal channels.
float m_ADCmaxPlusEps
ADC saturation value + 0.01 or something small.
This algorithm performs digitization in TileCal, obtaining TileDigits from TileHits.
Gaudi::Property< bool > m_integerDigits
const TileCablingService * m_cabling
TileCabling instance.
Gaudi::Property< bool > m_doDigiTruth
float m_f_ADCmax
ADC saturation value.
Gaudi::Property< bool > m_maskBadChannels
SG::WriteHandleKey< TileDigitsContainer > m_digitsContainer_DigiHSTruthKey
Condition object to keep and provide Tile sample noise.
SG::ReadCondHandleKey< TileEMScale > m_emScaleKey
Name of TileEMScale in condition store.
Gaudi::Property< double > m_filterThreshold
virtual StatusCode execute(const EventContext &ctx) const override
execute method
double m_timeStepLo
Time step in low gain pulse shape: 25.0 / nBinsPerXLo.
Gaudi::Property< double > m_filterThresholdMBTS
SG::WriteHandleKey< TileDigitsContainer > m_filteredDigitsContainerKey
bool m_tileNoise
If true => generate noise in TileDigits.
float m_f_ADCmaxHG
ADC saturation value - 0.5.
SG::ReadCondHandleKey< TileSampleNoise > m_sampleNoiseKey
Name of TileSampleNoise in condition store.
ServiceHandle< TileCablingSvc > m_cablingSvc
Name of Tile cabling service.
SG::ReadCondHandleKey< TileSamplingFraction > m_samplingFractionKey
Name of TileSamplingFraction in condition store.
ServiceHandle< PileUpMergeSvc > m_mergeSvc
SG::WriteHandleKey< TileDigitsContainer > m_digitsContainerKey
int m_nSamples
Number of time slices for each channel.
SG::ReadHandleKey< TileHitContainer > m_hitContainer_DigiHSTruthKey
const TileTBID * m_tileTBID
Gaudi::Property< bool > m_useCoolPulseShapes
const TileInfo * m_tileInfo
int m_nShapeHi
Number of bins in high gain pulse shape.
the preferred mechanism to access information from the different event stores in a pileup job.
virtual ~TileDigitsMaker()=default
An algorithm that can be simultaneously executed in multiple threads.
int m_nBinsPerXLo
Number of bins per bunch crossing in low gain pulse shape.
Helper class for TileCal online (hardware) identifiers.
Class that holds Data Quality fragment information and provides functions to extract the data quality...
virtual StatusCode finalize() override
finalize method
int m_binTime0Lo
Index of time=0 bin for low gain pulse shape.
bool m_tileThresh
If true => apply threshold to Digits.
AthReentrantAlgorithm()
Default constructor:
StatusCode overlayBackgroundDigits(const TileDigitsCollection *bkgDigitCollection, const TileHitCollection *hitCollection, std::vector< std::vector< double >> &drawerBufferLo, std::vector< std::vector< double >> &drawerBufferHi, std::vector< int > &igain, int ros, int drawer, int drawerIdx, std::vector< int > &over_gain, const TileEMScale *emScale, const TileSampleNoise *sampleNoise, const TileDQstatus *dqStatus, const TileBadChannels *badChannels) const
int m_binTime0Hi
Index of time=0 bin for high gain pulse shape.
Condition object to keep and provide Tile Calorimeter sampling fraction and number of photoelectrons.
double m_tileThreshLo
Actual threshold value for low gain.
Helper class for TileCal offline identifiers.
::StatusCode StatusCode
StatusCode definition for legacy code.
SG::ReadCondHandleKey< TileBadChannels > m_badChannelsKey
Name of TileBadChannels in condition store.
int m_nBinsPerXHi
Number of bins per bunch crossing in high gain pulse shape.
bool m_tileCoherNoise
If true => generate coherent noise in TileDigits.
int m_i_ADCmax
ADC saturation value.
Information produced by TileDQstatusAlg (used to be done by TileBeamInfoProvider).
Gaudi::Property< std::string > m_randomStreamName
Random Stream Name.
Gaudi::Property< bool > m_calibRun
Property holding a SG store/key/clid from which a WriteHandle is made.
std::vector< double > m_digitShapeHi
High gain pulse shape.
std::string m_inputDigitContainerName
Condition object to keep Tile channel and ADC status.
int m_iTrig
Index of the triggering time slice.
Gaudi::Property< int > m_allChannels
double m_tileThreshHi
Actual threshold value for high gain.
Gaudi::Property< bool > m_rndmEvtOverlay
Wrapper to avoid constant divisions when using units.
SG::ReadHandleKey< TileDigitsContainer > m_inputDigitContainerKey
StatusCode fillDigitCollection(const TileHitCollection *hitCollection, std::vector< std::vector< double >> &drawerBufferLo, std::vector< std::vector< double >> &drawerBufferHi, std::vector< int > &igain, std::vector< int > &overgain, std::vector< double > &ech_int, std::vector< bool > &signal_in_channel, const TileEMScale *emScale, const TileSamplingFraction *samplingFraction, const TilePulse *pulse) const
SG::ReadHandleKey< TileHitContainer > m_hitContainerKey
Gaudi::Property< bool > m_onlyUseContainerName
SG::ReadCondHandleKey< TilePulse > m_pulseShapeKey
Name of TilePulseShape in condition store.
the preferred mechanism to access information from the different event stores in a pileup job.
SG::ReadHandleKey< TileDQstatus > m_DQstatusKey
float m_ADCmaxMinusEps
ADC saturation value - 0.01 or something small.
manage multiple RandomEngines in thread-safe way.
const TileHWID * m_tileHWID
virtual StatusCode initialize() override
initialize method
ServiceHandle< IAthRNGSvc > m_rndmSvc
Random number service to use.
Helper class for TileCal offline identifiers of ancillary testbeam detectors and MBTS.
Condition object to keep and provide Tile pulse shape.
float m_f_ADCmaskValue
indicates channels which were masked in background dataset
std::vector< std::unique_ptr< HWIdentifier[]> > m_all_ids
int m_nShapeLo
Number of bins in low gain pulse shape.
Gaudi::Property< std::string > m_infoName
double m_timeStepHi
Time step in high gain pulse shape: 25.0 / nBinsPerXHi.
std::vector< double > m_digitShapeLo
Low gain pulse shape.