ATLAS Offline Software
Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
TileDigitsFromPulse Class Reference

This algorithm creates TileDigits from pulses provided by pulse simulator. More...

#include <TileDigitsFromPulse.h>

Inheritance diagram for TileDigitsFromPulse:
Collaboration diagram for TileDigitsFromPulse:

Public Member Functions

 TileDigitsFromPulse (const std::string &name, ISvcLocator *pSvcLocator)
 
virtual ~TileDigitsFromPulse ()
 
virtual StatusCode initialize () override
 initialize method More...
 
virtual StatusCode execute () override
 execute method More...
 
virtual StatusCode finalize () override
 finalize method More...
 
virtual StatusCode sysInitialize () override
 Override sysInitialize. More...
 
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies. More...
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

bool makeDist (TFile *&file, TH1F *&hist, const std::string &fileName, const std::string &histName="h_Eopt_hi")
 Method to read distribution from file. More...
 
bool makeDist (TFile *&file, std::vector< std::vector< TH1F * >> &hists, const std::string &fileName)
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

std::string m_outputContainer
 Name of the output TileDigitsContainer. More...
 
const TileHWIDm_tileHWID
 
std::string m_infoName
 
const TileInfom_tileInfo
 
int m_i_ADCmax
 
TileRawChannelUnit::UNIT m_rChUnit
 Units used for the TileRawChannels (ADC, pCb, etc.)(see TileInfo.h) More...
 
TileFragHash::TYPE m_rChType
 Type of TileRawChannels (Digitizar, OF1, OF2, Fit, etc.)(see TileFragHash.h) More...
 
ToolHandle< TileCondToolNoiseSamplem_tileToolNoiseSample
 
SG::WriteHandleKey< TileDigitsContainerm_digitsContainerKey
 
SG::WriteHandleKey< TileRawChannelContainerm_rawChannelContainerKey
 
ServiceHandle< IAthRNGSvcm_rndmSvc {this, "RndmSvc", "AthRNGSvc", ""}
 Random number service to use. More...
 
Gaudi::Property< std::string > m_randomStreamName {this, "RandomStreamName", "Tile_DigitsMaker", ""}
 Random Stream Name. More...
 
double m_imperfectionMean
 Mean value of pulse shape broadening. More...
 
double m_imperfectionRms
 RMS of pulse shape broadening. More...
 
double m_inTimeAmp
 Amplitude of in-time pulse. More...
 
double m_ootAmp
 Amplitude of out-of-time pulse. More...
 
double m_itOffset
 In-time pulse offset from nominal time. More...
 
double m_ootOffset
 Out-of-time pulse offset from nominal time. More...
 
double m_ped_HG
 Pedestal value for HG if specific channel pedestal is not used. More...
 
double m_ped_LG
 Pedestal value for LG if specific channel pedestal is not used. More...
 
bool m_gaussNoise
 Set to TRUE in order to create noise from double gaussian. More...
 
double m_GNAmpOne
 Amplitude of first gaussian of double gaussian noise. More...
 
double m_GNSigmaOne
 Standard deviation of first gaussian of double gaussian noise. More...
 
double m_GNAmpTwo
 Amplitude of second gaussian of double gaussian noise. More...
 
double m_GNSigmaTwo
 Standard deviation of second gaussian of double gaussian noise. More...
 
bool m_useItADist
 Set to TRUE in order to use a distribution for the in-time amplitude instead of a constant value. More...
 
bool m_useOotADist
 Set to TRUE in order to use a distribution for the out-of-time amplitude instead of a constant value. More...
 
float m_pileUpFraction
 Probability that an out-of-time component will be added. More...
 
float m_gausC2C
 RMS for the in-time pulse offset (channel-to-channel phase variation) More...
 
std::string m_itADistFileName
 Filename of file to use for amplitude distribution of in-time pulses. More...
 
std::string m_ootADistFileName
 Filename of file to use for amplitude distribution of out-of-time pulses. More...
 
bool m_chanPed
 Use channel specific pedestal value if true. More...
 
bool m_chanNoise
 Add channel specific noise. More...
 
std::string m_ootOffsetFileName
 File name for offset timing distribution histogram. More...
 
std::string m_ootOffsetHistName
 Name of the histogram for timing offset distribution. More...
 
int m_AmpDistLowLim
 Set all bins to the left of this bin to 0 in the amplitude distribution histograms. More...
 
std::string m_itADistHistName
 Name of histogram for in-time amplitude distribution. More...
 
std::string m_ootADistHistName
 Name of histogram for out-of-time amplitude distribution. More...
 
bool m_simQIE
 Raw PMT pulses are generated if the option is set to true. More...
 
int m_seed
 
int m_BunchSpacing
 Time between pulses in ms 25, 50 or 75. More...
 
int m_nSamples
 number of read out samples More...
 
int m_nPul
 number of pileup pulses More...
 
int m_nPul_eff
 
std::vector< float > m_PUAmp
 
bool m_PhaseII
 
bool m_bigain
 
bool m_simPUwPoisson
 
int m_avgMuForPU
 
std::string m_pileupAmpDistFileName
 Filename for PU amplitude distribution histograms. More...
 
TilePulseShapem_ps [2]
 Class for defining pulse. More...
 
TileSampleBufferm_buf
 Buffer class to hold generated pulses. More...
 
TileSampleGeneratorm_tsg
 Pulse generating class. More...
 
TH1F * m_ootDist
 Histogram to hold the distribution of out-of-time amplitudes. More...
 
TH1F * m_itDist
 Histogram to hold the distribution of in-time amplitudes. More...
 
TFile * m_itFile
 File that holds the distribution of in-time amplitudes. More...
 
TFile * m_ootFile
 File that holds the distribution of out-of-time amplitudes. More...
 
TH1F * m_ootOffsetDist
 Histogram to hold the distribution of out-of-time timing offsets. More...
 
TFile * m_ootOffsetFile
 File that holds the distribution of out-of-time timing offsets. More...
 
bool m_useOffsetHisto
 Internally used to keep track of wether a histogram has been opened or not. More...
 
TFile * m_pileup_AmpDistFile
 File containing amplitude histograms for PU pulses. More...
 
std::vector< std::vector< TH1F * > > m_pileup_AmpDists
 Matrix of PU amplitude distribution histograms (PU per partition and channel) More...
 
DataObjIDColl m_extendedExtraObjects
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

This algorithm creates TileDigits from pulses provided by pulse simulator.

Definition at line 86 of file TileDigitsFromPulse.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< Algorithm > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ TileDigitsFromPulse()

TileDigitsFromPulse::TileDigitsFromPulse ( const std::string &  name,
ISvcLocator *  pSvcLocator 
)

Definition at line 61 of file TileDigitsFromPulse.cxx.

61  :
62  AthAlgorithm(name, pSvcLocator),
63  m_tileHWID(0),
64  m_tileInfo(0),
65  m_i_ADCmax(0),
66  m_nPul_eff(0),
67  m_buf(nullptr),
68  m_tsg(nullptr)
69 {
72 
73  declareProperty("ImperfectionMean", m_imperfectionMean = 1.01);
74  declareProperty("ImperfectionRms", m_imperfectionRms = 0.02);
75  declareProperty("InTimeAmp", m_inTimeAmp = 300.);
76  declareProperty("OutOfTimeAmp", m_ootAmp = 150.);
77  declareProperty("InTimeOffset", m_itOffset = 0.);
78  declareProperty("OutOfTimeOffset", m_ootOffset = 50.);
79  declareProperty("OutOfTimeOffsetHistogramFile", m_ootOffsetFileName = "");
80  declareProperty("OutOfTimeOffsetHistogramName", m_ootOffsetHistName = "");
81  declareProperty("UseGaussNoise", m_gaussNoise = kFALSE);
82  declareProperty("GaussNoiseAmpOne", m_GNAmpOne = 1 / 1.039);
83  declareProperty("GaussNoiseSigmaOne", m_GNSigmaOne = 1.6);
84  declareProperty("GaussNoiseAmpTwo", m_GNAmpTwo = 0.039);
85  declareProperty("GaussNoiseSigmaTwo", m_GNSigmaTwo = 3.6);
86  declareProperty("UseInTimeAmpDist", m_useItADist = kFALSE);
87  declareProperty("UseOutOfTimeAmpDist", m_useOotADist = kFALSE);
88  declareProperty("InTimeAmpDistFileName", m_itADistFileName = "");
89  declareProperty("OutOfTimeAmpDistFileName", m_ootADistFileName = "");
90  declareProperty("PileUpFraction", m_pileUpFraction = 1);
91  declareProperty("GaussianC2CPhaseVariation", m_gausC2C = 0);
92  declareProperty("ChannelSpecificPedestal", m_chanPed = kFALSE);
93  declareProperty("ChannelSpecificNoise", m_chanNoise = kFALSE);
94  declareProperty("PedestalValueHG", m_ped_HG = 100);
95  declareProperty("PedestalValueLG", m_ped_LG = 100);
96  declareProperty("AmpDistLowerLimit", m_AmpDistLowLim = 135);
97  declareProperty("InTimeAmpDistHistogramName", m_itADistHistName = "h_Eopt_hi");
98  declareProperty("OutOfTimeAmpDistHistogramName", m_ootADistHistName = "h_Eopt_hi");
99 
100  declareProperty("SimulatePileUpWithPoiss", m_simPUwPoisson = kFALSE);
101  declareProperty("AvgMuForPileUpSimulation", m_avgMuForPU = 40);
102  declareProperty("PileUpAmpDistFileName", m_pileupAmpDistFileName = "");
103 
104  declareProperty("RandomSeed", m_seed = 4357);
105  declareProperty("BunchSpacing", m_BunchSpacing = 25.); // 25, 50 or 75
106  declareProperty("SimulateQIE", m_simQIE = kFALSE);
107 
108  declareProperty("TileInfoName", m_infoName = "TileInfo");
109  declareProperty("TilePhaseII", m_PhaseII = kFALSE);
110  declareProperty("Bigain", m_bigain = kFALSE);
111  declareProperty("NSamples", m_nSamples = 7);
112  declareProperty("nPulses", m_nPul = 21);
113 
114  //Initialisations
115  m_ps[0] = new TilePulseShape(msgSvc(), "TilePulseShapeLo"); //Low Gain
116  m_ps[1] = new TilePulseShape(msgSvc(), "TilePulseShapeHi"); //High Gain
117 
118 
119  m_itFile = new TFile();
120  m_itDist = new TH1F();
121  m_ootFile = new TFile();
122  m_ootDist = new TH1F();
123  m_ootOffsetDist = new TH1F();
124  m_ootOffsetFile = new TFile();
125 
126  m_pileup_AmpDistFile = new TFile();
127 
128  m_useOffsetHisto = kFALSE;
129 
130 }

◆ ~TileDigitsFromPulse()

TileDigitsFromPulse::~TileDigitsFromPulse ( )
virtual

Definition at line 132 of file TileDigitsFromPulse.cxx.

132  {
133 
134  delete m_ootOffsetFile;
135  delete m_ootFile;
136  delete m_itFile;
137  delete m_pileup_AmpDistFile;
138 
139  delete m_ps[0];
140  delete m_ps[1];
141 }

Member Function Documentation

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Algorithm > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ execute()

StatusCode TileDigitsFromPulse::execute ( )
overridevirtual

execute method

< Local loop variable for amplitude of in-time pulse

Definition at line 252 of file TileDigitsFromPulse.cxx.

252  {
253 
254  ATH_MSG_DEBUG("in execute()");
255 
256  const EventContext& ctx = Gaudi::Hive::currentContext();
257 
258  // Prepare RNG service
259  ATHRNG::RNGWrapper* rngWrapper = m_rndmSvc->getEngine(this, m_randomStreamName);
260  rngWrapper->setSeed( m_randomStreamName, ctx );
261 
262  // Create new container for digits
263  auto digitsContainer = std::make_unique<TileMutableDigitsContainer>(true,
267 
268  ATH_CHECK( digitsContainer->status() );
269 
270  //Create RawChannel for truth values.
271  auto rawChannelContainer = std::make_unique<TileMutableRawChannelContainer>(true, m_rChType, m_rChUnit);
272  ATH_CHECK( rawChannelContainer->status() );
273 
275 
276  TRandom3 *random = new TRandom3(m_seed); //Randomizer for pulse-shape imperfection
277  double tFit = 0, ped = 100; //Settings for simulation
278  double mu = 0; //Interaction per bunch crossing for PU simulation
279 
280  TF1 *pdf = new TF1();
281  TF1 *pdf_PhaseI = new TF1();
282  TF1 *pdf_lo = new TF1();
283  TF1 *pdf_hi = new TF1();
284  if (!m_simQIE) {
285 
286 
287  if(m_PhaseII){
288  Double_t sigma_lo = 1; //Noise value obtained from ATL-COM-TILECAL-2020-031
289  pdf_lo = new TF1("pdf_lo","(1/(sqrt(2*pi)*[0])) * (exp(-0.5*(x/[0])**2)/(sqrt(2*pi)*[0]))", -100, 100);
290  pdf_lo->SetParameter(0,sigma_lo);
291 
292  Double_t sigma_hi = 2.5; //Noise value obtained from ATL-COM-TILECAL-2020-031
293  pdf_hi = new TF1("pdf_hi","(1/(sqrt(2*pi)*[0])) * (exp(-0.5*(x/[0])**2)/(sqrt(2*pi)*[0]))", -100, 100);
294  pdf_hi->SetParameter(0,sigma_hi);
295  }
296  else{
297  //Noise pdf for general noise. Maybe use as a member and put in init.
298  //pdf = new TF1("pdf", "[0] * (Gaus(x,0,[1]) + [2] * Gaus(x,0,[3]))", -100., 100.); //Root goes not like "Gaus"
299 
300  pdf_PhaseI = new TF1("pdf_PhaseI", "[0] * (exp(-0.5*(x/[1])**2)/(sqrt(2*pi)*[1]) + [2] *exp(-0.5*(x/[3])**2)/(sqrt(2*pi)*[3]))", -100., 100.);
301  pdf_PhaseI->SetParameters(m_GNAmpOne, m_GNSigmaOne, m_GNAmpTwo, m_GNSigmaTwo);
302  }
303  }
304 
305  std::vector<float> samples(m_nSamples);
306 
307  double Rndm[16]; // Can't use variable size array,
308  double Rndm_dG[1]; // uniform random number for the double gaussian
309 
310  double amp_1;
311  double amp_2;
312 
313  ATH_MSG_DEBUG("Starting loop");
314  int gain = 1;
315  double n_inTimeAmp = 0.0;
316 
317  for (int ros = 1; ros < 5; ++ros) {
318  for (int drawer = 0; drawer < 64; ++drawer) {
319  unsigned int drawerIdx = TileCalibUtils::getDrawerIdx(ros, drawer);
320  for (int channel = 0; channel < 48; ++channel) {
321 
322  if (!m_simQIE) { //3-in-1 is simulated below
323 
324  if(m_PhaseII){
325  ATH_MSG_VERBOSE("executing FENICS code");
326  }
327  else{
328  ATH_MSG_VERBOSE("executing 3-in-1 code");
329  }
330 
331 
332  bool isHGSaturated = false;
333 
334  for (int igain = 1; igain >= 0; igain--) {
335  gain = igain;
336  if (gain == 1) {
337  n_inTimeAmp = m_useItADist ? m_itDist->GetRandom() : m_inTimeAmp;
338 
339  if (m_chanPed){
341  }
342  else{
343  ped = m_ped_HG;
344  }
345  if (random->Rndm() >= m_pileUpFraction)
346  m_ootAmp = 0; //Set oot amplitude to 0 if no pile-up.
347  tFit = random->Gaus(0., m_gausC2C); //C2C phase variation
348  double deformatedTime = random->Gaus(m_imperfectionMean, m_imperfectionRms); //Widening of pulseshape
349  m_ps[gain]->scalePulse(deformatedTime, deformatedTime); // Deformation of pulse shape by changing its width
350  //if(m_useOffsetHisto) m_ootOffset = m_ootOffsetDist->GetRandom(); //OLD Remove for 7 samples -> BunchSpacing
351 
352  //Pileup samples
353  m_PUAmp.clear();
354  m_PUAmp.resize(m_nPul);
355 
356  for (int i = 0; i <= m_nPul_eff; i++) {
357  if (((i * 25) % m_BunchSpacing) == 0) {
358  if(m_simPUwPoisson){
359  mu=random->Poisson(m_avgMuForPU);
360  ATH_MSG_VERBOSE("Effective pulse number " << i);
361  ATH_MSG_VERBOSE("Number of interactions for simulation: " << mu );
362  for (int imu = 0; imu<mu; imu++){
363 
364  amp_1 = m_pileup_AmpDists[ros-1][channel]->GetRandom();
365  amp_2 = m_pileup_AmpDists[ros-1][channel]->GetRandom();
366 
367  ATH_MSG_VERBOSE("Random amplitudes for PU: " << amp_1 << " " << amp_2);
368 
369  if(i==0){
370  m_PUAmp.at(m_nPul_eff) += abs(amp_1);
371  }
372  else{
373  m_PUAmp.at(m_nPul_eff + i) += abs(amp_1);
374  m_PUAmp.at(m_nPul_eff - i) += abs(amp_2);
375  }
376  }
377 
378  ATH_MSG_VERBOSE("Final amplitudes for pulse " << m_PUAmp.at(m_nPul_eff + i) << " " << m_PUAmp.at(m_nPul_eff - i));
379  }
380  else{
381  m_PUAmp.at(m_nPul_eff + i) = m_useOotADist ? m_ootDist->GetRandom() : m_ootAmp;
382  m_PUAmp.at(m_nPul_eff - i) = m_useOotADist ? m_ootDist->GetRandom() : m_ootAmp;
383  }
384  } else {
385  m_PUAmp.at(m_nPul_eff + i) = 0;
386  m_PUAmp.at(m_nPul_eff - i) = 0;
387  }
388  }
389 
390 
391  } else {
392  if (m_chanPed)
394  double deformatedTime = random->Gaus(m_imperfectionMean, m_imperfectionRms); //Widening of pulseshape
395  m_ps[gain]->scalePulse(deformatedTime, deformatedTime); // Deformation of pulse shape by changing its width
396 
397  if (m_chanPed)
399 
400  else{
401  ped=m_ped_LG;
402  }
403 
404  if(!m_PhaseII){
405  n_inTimeAmp /= 64;
406  for (int i = 0; i <= m_nPul_eff; i++) {
407  m_PUAmp.at(m_nPul_eff + i) /= 64;
408  m_PUAmp.at(m_nPul_eff - i) /= 64;
409  }
410  } else{
411  n_inTimeAmp /= 40;
412  for (int i = 0; i <= m_nPul_eff; i++) {
413  m_PUAmp.at(m_nPul_eff + i) /= 40;
414  m_PUAmp.at(m_nPul_eff - i) /= 40;
415  }
416  }
417  }
418 
419  if(m_PhaseII && m_gaussNoise){
420  pdf = (gain==1) ? pdf_hi : pdf_lo;
421  }
422  else if(m_gaussNoise){
423  pdf = pdf_PhaseI;
424  }
425 
427  m_tsg->fillNSamples(tFit, ped, n_inTimeAmp, m_PUAmp, pdf, m_gaussNoise, m_itOffset, m_nSamples, m_nPul); // Sum of Intime + PU pulses
428 
429  samples.clear();
430  samples.resize(m_nSamples);
431  m_buf->getValueVector(samples);
432 
433  if (m_chanNoise) {
434  double Hfn1 = m_tileToolNoiseSample->getHfn1(drawerIdx, channel, gain, ctx);
435  double Hfn2 = m_tileToolNoiseSample->getHfn2(drawerIdx, channel, gain, ctx);
436  double Norm = m_tileToolNoiseSample->getHfnNorm(drawerIdx, channel, gain, ctx);
437  RandGaussQ::shootArray(*rngWrapper, samples.size(), Rndm, 0.0, 1.0);
438  RandFlat::shootArray(*rngWrapper, 1, Rndm_dG, 0.0, 1.0);
439  for (unsigned int js = 0; js < samples.size(); ++js) {
440  //using the same gaussian(sigma) for all samples in one channel in one event
441  if (Rndm_dG[0] < Norm)
442  samples[js] += (float) Hfn1 * Rndm[js];
443  else
444  samples[js] += (float) Hfn2 * Rndm[js];
445  }
446  }
447 
448  for (unsigned int i = 0; i < samples.size(); ++i) {
449  if (samples[i] >= m_i_ADCmax){
450  isHGSaturated = true;
451  if(m_bigain) samples[i]=m_i_ADCmax;
452  }
453 
454  }
455 
456  if(!m_bigain){
457  if (!isHGSaturated)
458  break;
459  }
460 
461  if(m_bigain){
462  ATH_MSG_VERBOSE("New ADC " << ros << "/" << drawer << "/" << channel << "/ saving gain " << gain);
463 
464  TileDigits * digit = tileDigitsPool.nextElementPtr();
466  std::move(samples));
467 
468  ATH_CHECK( digitsContainer->push_back(digit) );
469 
470  auto rawChannel = std::make_unique<TileRawChannel>(digit->adc_HWID(),
471  n_inTimeAmp,
472  tFit,
473  m_ootAmp,
474  m_ootOffset);
475 
476  ATH_CHECK( rawChannelContainer->push_back(std::move(rawChannel)) );
477  }
478  }
479 
480  } else { //QIE is simulated here --------------------------------------------
481 
482  //ATH_MSG_DEBUG("executing QIE code");
483 
484  gain = 1; //This is just a place holder. The gain is not used in QIE.
485  n_inTimeAmp = m_useItADist ? m_itDist->GetRandom() : m_inTimeAmp;
486  //if (random->Rndm() >= m_pileUpFraction) //m_pileUpFraction is 1 by default
487  m_ootAmp = 0; //Set oot amplitude to 0 if no pile-up.
488  tFit = 0; //TODO: Introduce jitter of the PMT pulse; random->Gaus(0., m_gausC2C); //C2C phase variation
489 
490  //Pileup samples
491  //m_PUAmp.clear();
492  //m_PUAmp.resize(nPul);
493  float my_PUAmp[7]; //I use an array to store the energies/charges of the out-of-time pulses
494 
495  for (int i = 0; i < 7; i++)
496  if ((((i - 3) * 25) % (int) m_BunchSpacing) == 0) {
497  if (i != 3) { //index 3 corresponds to the in-time pulse, the signal
498  //m_PUAmp.at(i) = m_useOotADist ? m_ootDist->GetRandom() : m_ootAmp; //out-of-time pulses
499  my_PUAmp[i] = m_useOotADist ? m_ootDist->GetRandom() : m_ootAmp; //out-of-time pulses
500  } else {
501  //m_PUAmp.at(i) = 0; //it-time pulse
502  my_PUAmp[i] = 0;
503  }
504  }
505 
506  //fill7SamplesQIE(float t0, float amp_it, float *amp_pu, bool addNoise);
507  m_tsg->fill7SamplesQIE((float) n_inTimeAmp, my_PUAmp); // Sum of In time + out-of-time PU pulses
508 
509  samples.clear();
510  samples.resize(m_nSamples);
511  m_buf->getValueVector(samples);
512  }
513 
514  if(!m_bigain){
515 
516  ATH_MSG_VERBOSE("New ADC " << ros << "/" << drawer << "/" << channel << "/ saving gain " << gain);
517 
518  TileDigits * digit = tileDigitsPool.nextElementPtr();
520  std::move(samples));
521 
522  ATH_CHECK( digitsContainer->push_back(digit) );
523 
524  auto rawChannel = std::make_unique<TileRawChannel>(digit->adc_HWID(),
525  n_inTimeAmp,
526  tFit,
527  m_ootAmp,
528  m_ootOffset);
529 
530  ATH_CHECK( rawChannelContainer->push_back(std::move(rawChannel)) );
531  }
532  }
533  }
534  }
535 
537  ATH_CHECK( rawChannelCnt.record(std::move(rawChannelContainer)) );
538 
540  ATH_CHECK( digitsCnt.record(std::move(digitsContainer)) );
541 
542  if (!m_simQIE) {
543  //delete pdf;
544  delete pdf_PhaseI;
545  delete pdf_hi;
546  delete pdf_lo;
547  }
548  delete random;
549 
550  ATH_MSG_DEBUG("Execution completed");
551 
552  return StatusCode::SUCCESS;
553 }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ extraOutputDeps()

const DataObjIDColl & AthAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 50 of file AthAlgorithm.cxx.

51 {
52  // If we didn't find any symlinks to add, just return the collection
53  // from the base class. Otherwise, return the extended collection.
54  if (!m_extendedExtraObjects.empty()) {
56  }
57  return Algorithm::extraOutputDeps();
58 }

◆ finalize()

StatusCode TileDigitsFromPulse::finalize ( )
overridevirtual

finalize method

Definition at line 555 of file TileDigitsFromPulse.cxx.

555  {
556  ATH_MSG_DEBUG("in finalize()");
557  delete m_buf;
558  delete m_tsg;
559 
560 
561  if (m_useItADist)
562  m_itFile->Close();
563  if (m_useOotADist)
564  m_ootFile->Close();
565  if (m_simPUwPoisson)
566  m_pileup_AmpDistFile->Close();
567 
568  return StatusCode::SUCCESS;
569 }

◆ initialize()

StatusCode TileDigitsFromPulse::initialize ( )
overridevirtual

initialize method

Definition at line 146 of file TileDigitsFromPulse.cxx.

146  {
147 
148  ATH_MSG_DEBUG("in initialize()");
149 
150  m_buf = new TileSampleBuffer(m_nSamples, -(m_nSamples-1)*25/2, 25.);
151 
152  m_tsg = new TileSampleGenerator(m_ps[0], m_buf, false); //Set third parameter to true for debug of the sum of pulses
153 
154  m_nPul_eff = (m_nPul - 1) / 2; //Used for symetrization of PU in computation
155 
156  ATH_CHECK(detStore()->retrieve(m_tileHWID, "TileHWID"));
159  ATH_MSG_DEBUG("Max ADC counts TileDigitsFromPulse: " << m_i_ADCmax);
160 
161  ATH_CHECK(m_tileToolNoiseSample.retrieve());
162 
164  ATH_MSG_INFO("Output digits container: " << m_digitsContainerKey.key());
165 
167  ATH_MSG_INFO("Output raw channel container: " << m_rawChannelContainerKey.key());
168 
169 
170  //Build pulse shapes
173 
174  //Initialise distribution histograms if in use
175  if (m_useItADist) {
176  if (m_itADistFileName.size() == 0) {
177  m_itADistFileName = PathResolver::find_file("Distributions_small_h2000_177531_JetTauEtmiss.root", "DATAPATH");
178  if (m_itADistFileName.size() == 0) {
179  ATH_MSG_FATAL("Could not find input file Distributions_small_h2000_177531_JetTauEtmiss.root");
180  return StatusCode::FAILURE;
181  }
182  }
184  return StatusCode::FAILURE;
185  ATH_MSG_DEBUG("Made in-time distribution");
186  } else
187  delete m_itDist;
188 
189  if (m_simPUwPoisson){
190 
191  if (m_pileupAmpDistFileName.size() == 0) {
192  m_pileupAmpDistFileName = PathResolver::find_file("Distributions_MB_minbias_inelastic_lowjetphoton_e8314_e7400_s3508.root", "DATAPATH");
193  //m_pileupAmpDistFileName = PathResolver::find_file("Distributions_small_h2000_177531_ZeroBias.root", "DATAPATH");
194  if (m_pileupAmpDistFileName.size() == 0 ) {
195  ATH_MSG_FATAL("Could not find input file Distributions_MB_minbias_inelastic_lowjetphoton_e8314_e7400_s3508.root");
196  return StatusCode::FAILURE;
197  }
198 
199  }
201  return StatusCode::FAILURE;
202  ATH_MSG_DEBUG("Made PU amp distributions for each partition and channel");
203 
204  }
205 
206  if (m_useOotADist) {
207  if (m_ootADistFileName.size() == 0) {
208  m_ootADistFileName = PathResolver::find_file("Distributions_small_h2000_177531_ZeroBias.root", "DATAPATH");
209  if (m_ootADistFileName.size() == 0) {
210  ATH_MSG_FATAL("Could not find input file Distributions_small_h2000_177531_ZeroBias.root");
211  return StatusCode::FAILURE;
212  }
213  }
215  return StatusCode::FAILURE;
216  ATH_MSG_DEBUG("Made Oot distribution");
217  } else
218  delete m_ootDist;
219 
220  //Initialise timing offset distribution. If filename is empty, use static offset
221  if (m_ootOffsetFileName.size() != 0) {
222  m_ootOffsetFile = TFile::Open(m_ootOffsetFileName.c_str());
223  if (m_ootOffsetFile->IsZombie()) {
224  ATH_MSG_WARNING("Error reading offset timing distribution from " << m_ootOffsetFileName << ". Using static timing offset.");
225  } else {
226  TKey *key = m_ootOffsetFile->FindKey(m_ootOffsetHistName.c_str());
227  if (key == 0) {
228  ATH_MSG_WARNING("Histogram " << m_ootOffsetHistName << " not found in file " << m_ootOffsetFileName << ". Using static timing offset.");
229  } else {
231  m_useOffsetHisto = kTRUE;
232  }
233  }
234  }
235 
236  //Start the random number service used to create channel specific noise
237  if (!m_rndmSvc.retrieve().isSuccess()) {
238  ATH_MSG_FATAL("Could not initialize find Random Number Service.");
239  return StatusCode::FAILURE;
240  }
241  if (m_chanNoise)
242  m_gaussNoise = kFALSE; //Make sure channel noise overrides gaussian noise.
243 
244  ATH_MSG_DEBUG("initialize() successful");
245 
246  return StatusCode::SUCCESS;
247 }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< Algorithm > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ makeDist() [1/2]

bool TileDigitsFromPulse::makeDist ( TFile *&  file,
std::vector< std::vector< TH1F * >> &  hists,
const std::string &  fileName 
)
private

Definition at line 589 of file TileDigitsFromPulse.cxx.

589  {
590 
591  std::string histName;
592  TKey *key;
593  TH1F* hist;
594 
595  file = new TFile(fileName.c_str());
596  if (file->IsZombie()) {
597  ATH_MSG_FATAL("Error reading amplitude distributions from " << fileName << ".");
598  return kFALSE;
599  }
600 
601  for(int ros=0; ros<4; ros++){
602 
603  hists.push_back(std::vector<TH1F*>());
604  for(int channel=0; channel<48; channel++){
605 
606  histName = "ene_ros_" + std::to_string(ros+1) + "_channel_" + std::to_string(channel+1);
607 
608  key = file->FindKey(histName.c_str());
609  if (key == 0) {
610  ATH_MSG_FATAL("Could not find histogram " << histName << " in file " << fileName << ".");
611  return kFALSE;
612  }
613 
614  hist = (TH1F*) file->Get(histName.c_str());
615 
616  for (int i = 0; i < m_AmpDistLowLim; i++)
617  hist->SetBinContent(i, 0.); // Puts a cut on the amplitude distribution.
618 
619  hists[ros].push_back(hist);
620  hist->Clear();
621  }
622  }
623 
624  return kTRUE;
625 
626 }

◆ makeDist() [2/2]

bool TileDigitsFromPulse::makeDist ( TFile *&  file,
TH1F *&  hist,
const std::string &  fileName,
const std::string &  histName = "h_Eopt_hi" 
)
private

Method to read distribution from file.

Definition at line 571 of file TileDigitsFromPulse.cxx.

571  {
572  file = new TFile(fileName.c_str());
573  if (file->IsZombie()) {
574  ATH_MSG_FATAL("Error reading amplitude distribution from " << fileName << ".");
575  return kFALSE;
576  }
577  TKey *key = file->FindKey(histName.c_str());
578  if (key == 0) {
579  ATH_MSG_FATAL("Could not find histogram " << histName << " in file " << fileName << ".");
580  return kFALSE;
581  }
582  hist = (TH1F*) file->Get(histName.c_str());
583  for (int i = 0; i < m_AmpDistLowLim; i++)
584  hist->SetBinContent(i, 0.); // Puts a cut on the amplitude distribution.
585  return kTRUE;
586 
587 }

◆ msg() [1/2]

MsgStream& AthCommonMsg< Algorithm >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< Algorithm >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< Algorithm >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ renounce()

std::enable_if_t<std::is_void_v<std::result_of_t<decltype(&T::renounce)(T)> > && !std::is_base_of_v<SG::VarHandleKeyArray, T> && std::is_base_of_v<Gaudi::DataHandle, T>, void> AthCommonDataStore< AthCommonMsg< Algorithm > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ sysInitialize()

StatusCode AthAlgorithm::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Algorithm > >.

Reimplemented in AthAnalysisAlgorithm, AthFilterAlgorithm, PyAthena::Alg, and AthHistogramAlgorithm.

Definition at line 66 of file AthAlgorithm.cxx.

66  {
68 
69  if (sc.isFailure()) {
70  return sc;
71  }
72  ServiceHandle<ICondSvc> cs("CondSvc",name());
73  for (auto h : outputHandles()) {
74  if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
75  // do this inside the loop so we don't create the CondSvc until needed
76  if ( cs.retrieve().isFailure() ) {
77  ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
78  return StatusCode::SUCCESS;
79  }
80  if (cs->regHandle(this,*h).isFailure()) {
81  sc = StatusCode::FAILURE;
82  ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
83  << " with CondSvc");
84  }
85  }
86  }
87  return sc;
88 }

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Algorithm > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ m_AmpDistLowLim

int TileDigitsFromPulse::m_AmpDistLowLim
private

Set all bins to the left of this bin to 0 in the amplitude distribution histograms.

Definition at line 150 of file TileDigitsFromPulse.h.

◆ m_avgMuForPU

int TileDigitsFromPulse::m_avgMuForPU
private

Definition at line 166 of file TileDigitsFromPulse.h.

◆ m_bigain

bool TileDigitsFromPulse::m_bigain
private

Definition at line 163 of file TileDigitsFromPulse.h.

◆ m_buf

TileSampleBuffer* TileDigitsFromPulse::m_buf
private

Buffer class to hold generated pulses.

Definition at line 171 of file TileDigitsFromPulse.h.

◆ m_BunchSpacing

int TileDigitsFromPulse::m_BunchSpacing
private

Time between pulses in ms 25, 50 or 75.

Definition at line 157 of file TileDigitsFromPulse.h.

◆ m_chanNoise

bool TileDigitsFromPulse::m_chanNoise
private

Add channel specific noise.

Definition at line 147 of file TileDigitsFromPulse.h.

◆ m_chanPed

bool TileDigitsFromPulse::m_chanPed
private

Use channel specific pedestal value if true.

Otherwise, same for all channels.

Definition at line 146 of file TileDigitsFromPulse.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_digitsContainerKey

SG::WriteHandleKey<TileDigitsContainer> TileDigitsFromPulse::m_digitsContainerKey
private
Initial value:
{this,
"TileDigitsContainer", "TileDigitsCnt", "Output Tile digits container key"}

Definition at line 115 of file TileDigitsFromPulse.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthAlgorithm::m_extendedExtraObjects
privateinherited

Definition at line 79 of file AthAlgorithm.h.

◆ m_gausC2C

float TileDigitsFromPulse::m_gausC2C
private

RMS for the in-time pulse offset (channel-to-channel phase variation)

Definition at line 143 of file TileDigitsFromPulse.h.

◆ m_gaussNoise

bool TileDigitsFromPulse::m_gaussNoise
private

Set to TRUE in order to create noise from double gaussian.

Definition at line 135 of file TileDigitsFromPulse.h.

◆ m_GNAmpOne

double TileDigitsFromPulse::m_GNAmpOne
private

Amplitude of first gaussian of double gaussian noise.

Definition at line 136 of file TileDigitsFromPulse.h.

◆ m_GNAmpTwo

double TileDigitsFromPulse::m_GNAmpTwo
private

Amplitude of second gaussian of double gaussian noise.

Definition at line 138 of file TileDigitsFromPulse.h.

◆ m_GNSigmaOne

double TileDigitsFromPulse::m_GNSigmaOne
private

Standard deviation of first gaussian of double gaussian noise.

Definition at line 137 of file TileDigitsFromPulse.h.

◆ m_GNSigmaTwo

double TileDigitsFromPulse::m_GNSigmaTwo
private

Standard deviation of second gaussian of double gaussian noise.


Definition at line 139 of file TileDigitsFromPulse.h.

◆ m_i_ADCmax

int TileDigitsFromPulse::m_i_ADCmax
private

Definition at line 107 of file TileDigitsFromPulse.h.

◆ m_imperfectionMean

double TileDigitsFromPulse::m_imperfectionMean
private

Mean value of pulse shape broadening.

Definition at line 127 of file TileDigitsFromPulse.h.

◆ m_imperfectionRms

double TileDigitsFromPulse::m_imperfectionRms
private

RMS of pulse shape broadening.

Definition at line 128 of file TileDigitsFromPulse.h.

◆ m_infoName

std::string TileDigitsFromPulse::m_infoName
private

Definition at line 105 of file TileDigitsFromPulse.h.

◆ m_inTimeAmp

double TileDigitsFromPulse::m_inTimeAmp
private

Amplitude of in-time pulse.

Definition at line 129 of file TileDigitsFromPulse.h.

◆ m_itADistFileName

std::string TileDigitsFromPulse::m_itADistFileName
private

Filename of file to use for amplitude distribution of in-time pulses.

Definition at line 144 of file TileDigitsFromPulse.h.

◆ m_itADistHistName

std::string TileDigitsFromPulse::m_itADistHistName
private

Name of histogram for in-time amplitude distribution.

Definition at line 151 of file TileDigitsFromPulse.h.

◆ m_itDist

TH1F* TileDigitsFromPulse::m_itDist
private

Histogram to hold the distribution of in-time amplitudes.

Definition at line 176 of file TileDigitsFromPulse.h.

◆ m_itFile

TFile* TileDigitsFromPulse::m_itFile
private

File that holds the distribution of in-time amplitudes.

Definition at line 177 of file TileDigitsFromPulse.h.

◆ m_itOffset

double TileDigitsFromPulse::m_itOffset
private

In-time pulse offset from nominal time.

Definition at line 131 of file TileDigitsFromPulse.h.

◆ m_nPul

int TileDigitsFromPulse::m_nPul
private

number of pileup pulses

Definition at line 159 of file TileDigitsFromPulse.h.

◆ m_nPul_eff

int TileDigitsFromPulse::m_nPul_eff
private

Definition at line 160 of file TileDigitsFromPulse.h.

◆ m_nSamples

int TileDigitsFromPulse::m_nSamples
private

number of read out samples

Definition at line 158 of file TileDigitsFromPulse.h.

◆ m_ootADistFileName

std::string TileDigitsFromPulse::m_ootADistFileName
private

Filename of file to use for amplitude distribution of out-of-time pulses.

Definition at line 145 of file TileDigitsFromPulse.h.

◆ m_ootADistHistName

std::string TileDigitsFromPulse::m_ootADistHistName
private

Name of histogram for out-of-time amplitude distribution.

Definition at line 152 of file TileDigitsFromPulse.h.

◆ m_ootAmp

double TileDigitsFromPulse::m_ootAmp
private

Amplitude of out-of-time pulse.

Definition at line 130 of file TileDigitsFromPulse.h.

◆ m_ootDist

TH1F* TileDigitsFromPulse::m_ootDist
private

Histogram to hold the distribution of out-of-time amplitudes.

Definition at line 175 of file TileDigitsFromPulse.h.

◆ m_ootFile

TFile* TileDigitsFromPulse::m_ootFile
private

File that holds the distribution of out-of-time amplitudes.

Definition at line 178 of file TileDigitsFromPulse.h.

◆ m_ootOffset

double TileDigitsFromPulse::m_ootOffset
private

Out-of-time pulse offset from nominal time.

Definition at line 132 of file TileDigitsFromPulse.h.

◆ m_ootOffsetDist

TH1F* TileDigitsFromPulse::m_ootOffsetDist
private

Histogram to hold the distribution of out-of-time timing offsets.

Definition at line 179 of file TileDigitsFromPulse.h.

◆ m_ootOffsetFile

TFile* TileDigitsFromPulse::m_ootOffsetFile
private

File that holds the distribution of out-of-time timing offsets.

Definition at line 180 of file TileDigitsFromPulse.h.

◆ m_ootOffsetFileName

std::string TileDigitsFromPulse::m_ootOffsetFileName
private

File name for offset timing distribution histogram.

Definition at line 148 of file TileDigitsFromPulse.h.

◆ m_ootOffsetHistName

std::string TileDigitsFromPulse::m_ootOffsetHistName
private

Name of the histogram for timing offset distribution.

Definition at line 149 of file TileDigitsFromPulse.h.

◆ m_outputContainer

std::string TileDigitsFromPulse::m_outputContainer
private

Name of the output TileDigitsContainer.

Definition at line 100 of file TileDigitsFromPulse.h.

◆ m_ped_HG

double TileDigitsFromPulse::m_ped_HG
private

Pedestal value for HG if specific channel pedestal is not used.

Definition at line 133 of file TileDigitsFromPulse.h.

◆ m_ped_LG

double TileDigitsFromPulse::m_ped_LG
private

Pedestal value for LG if specific channel pedestal is not used.

Definition at line 134 of file TileDigitsFromPulse.h.

◆ m_PhaseII

bool TileDigitsFromPulse::m_PhaseII
private

Definition at line 162 of file TileDigitsFromPulse.h.

◆ m_pileup_AmpDistFile

TFile* TileDigitsFromPulse::m_pileup_AmpDistFile
private

File containing amplitude histograms for PU pulses.

Definition at line 182 of file TileDigitsFromPulse.h.

◆ m_pileup_AmpDists

std::vector<std::vector<TH1F*> > TileDigitsFromPulse::m_pileup_AmpDists
private

Matrix of PU amplitude distribution histograms (PU per partition and channel)

Definition at line 183 of file TileDigitsFromPulse.h.

◆ m_pileupAmpDistFileName

std::string TileDigitsFromPulse::m_pileupAmpDistFileName
private

Filename for PU amplitude distribution histograms.

Definition at line 167 of file TileDigitsFromPulse.h.

◆ m_pileUpFraction

float TileDigitsFromPulse::m_pileUpFraction
private

Probability that an out-of-time component will be added.

Definition at line 142 of file TileDigitsFromPulse.h.

◆ m_ps

TilePulseShape* TileDigitsFromPulse::m_ps[2]
private

Class for defining pulse.

One element for lo gain and one for hi.

Definition at line 170 of file TileDigitsFromPulse.h.

◆ m_PUAmp

std::vector<float> TileDigitsFromPulse::m_PUAmp
private

Definition at line 161 of file TileDigitsFromPulse.h.

◆ m_randomStreamName

Gaudi::Property<std::string> TileDigitsFromPulse::m_randomStreamName {this, "RandomStreamName", "Tile_DigitsMaker", ""}
private

Random Stream Name.

Definition at line 123 of file TileDigitsFromPulse.h.

◆ m_rawChannelContainerKey

SG::WriteHandleKey<TileRawChannelContainer> TileDigitsFromPulse::m_rawChannelContainerKey
private
Initial value:
{this,
"TileRawChannelContainer", "TrueAmp", "Output Tile raw channel container key"}

Definition at line 118 of file TileDigitsFromPulse.h.

◆ m_rChType

TileFragHash::TYPE TileDigitsFromPulse::m_rChType
private

Type of TileRawChannels (Digitizar, OF1, OF2, Fit, etc.)(see TileFragHash.h)

Definition at line 110 of file TileDigitsFromPulse.h.

◆ m_rChUnit

TileRawChannelUnit::UNIT TileDigitsFromPulse::m_rChUnit
private

Units used for the TileRawChannels (ADC, pCb, etc.)(see TileInfo.h)

Definition at line 109 of file TileDigitsFromPulse.h.

◆ m_rndmSvc

ServiceHandle<IAthRNGSvc> TileDigitsFromPulse::m_rndmSvc {this, "RndmSvc", "AthRNGSvc", ""}
private

Random number service to use.

Definition at line 121 of file TileDigitsFromPulse.h.

◆ m_seed

int TileDigitsFromPulse::m_seed
private

Definition at line 156 of file TileDigitsFromPulse.h.

◆ m_simPUwPoisson

bool TileDigitsFromPulse::m_simPUwPoisson
private

Definition at line 165 of file TileDigitsFromPulse.h.

◆ m_simQIE

bool TileDigitsFromPulse::m_simQIE
private

Raw PMT pulses are generated if the option is set to true.

The option is intended to simulate the QIE FEB.

Definition at line 154 of file TileDigitsFromPulse.h.

◆ m_tileHWID

const TileHWID* TileDigitsFromPulse::m_tileHWID
private

Definition at line 102 of file TileDigitsFromPulse.h.

◆ m_tileInfo

const TileInfo* TileDigitsFromPulse::m_tileInfo
private

Definition at line 106 of file TileDigitsFromPulse.h.

◆ m_tileToolNoiseSample

ToolHandle<TileCondToolNoiseSample> TileDigitsFromPulse::m_tileToolNoiseSample
private
Initial value:
{this,
"TileCondToolNoiseSample", "TileCondToolNoiseSample", "Tile sample noise tool"}

Definition at line 112 of file TileDigitsFromPulse.h.

◆ m_tsg

TileSampleGenerator* TileDigitsFromPulse::m_tsg
private

Pulse generating class.

Definition at line 172 of file TileDigitsFromPulse.h.

◆ m_useItADist

bool TileDigitsFromPulse::m_useItADist
private

Set to TRUE in order to use a distribution for the in-time amplitude instead of a constant value.

Definition at line 140 of file TileDigitsFromPulse.h.

◆ m_useOffsetHisto

bool TileDigitsFromPulse::m_useOffsetHisto
private

Internally used to keep track of wether a histogram has been opened or not.

Definition at line 181 of file TileDigitsFromPulse.h.

◆ m_useOotADist

bool TileDigitsFromPulse::m_useOotADist
private

Set to TRUE in order to use a distribution for the out-of-time amplitude instead of a constant value.

Definition at line 141 of file TileDigitsFromPulse.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
TileDigitsFromPulse::m_ped_LG
double m_ped_LG
Pedestal value for LG if specific channel pedestal is not used.
Definition: TileDigitsFromPulse.h:134
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
TileDigitsFromPulse::makeDist
bool makeDist(TFile *&file, TH1F *&hist, const std::string &fileName, const std::string &histName="h_Eopt_hi")
Method to read distribution from file.
Definition: TileDigitsFromPulse.cxx:571
TileDigitsFromPulse::m_buf
TileSampleBuffer * m_buf
Buffer class to hold generated pulses.
Definition: TileDigitsFromPulse.h:171
TileDigitsFromPulse::m_i_ADCmax
int m_i_ADCmax
Definition: TileDigitsFromPulse.h:107
ATHRNG::RNGWrapper::setSeed
void setSeed(const std::string &algName, const EventContext &ctx)
Set the random seed using a string (e.g.
Definition: RNGWrapper.h:169
TileDigitsFromPulse::m_GNSigmaOne
double m_GNSigmaOne
Standard deviation of first gaussian of double gaussian noise.
Definition: TileDigitsFromPulse.h:137
TileSampleGenerator::fillNSamples
void fillNSamples(double t0, double pedestal, double amp_it, const std::vector< float > &amp_pu, TF1 *pdf, bool addNoise, double itOffset=0, int nSamples=7, int nPul=21)
Definition: TileSampleGenerator.cxx:64
TileDigitsFromPulse::m_tsg
TileSampleGenerator * m_tsg
Pulse generating class.
Definition: TileDigitsFromPulse.h:172
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
TileInfo::digitsFullShapeLo
const std::vector< double > & digitsFullShapeLo() const
Return shape vector with full binning to produce the TileDigits from sub-hits.
Definition: TileInfo.h:186
TileDigitsFromPulse::m_nPul
int m_nPul
number of pileup pulses
Definition: TileDigitsFromPulse.h:159
TileDigitsFromPulse::m_ps
TilePulseShape * m_ps[2]
Class for defining pulse.
Definition: TileDigitsFromPulse.h:170
AddEmptyComponent.histName
string histName
Definition: AddEmptyComponent.py:64
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:24
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
PathResolver::find_file
static std::string find_file(const std::string &logical_file_name, const std::string &search_path, SearchType search_type=LocalSearch)
Definition: PathResolver.cxx:251
TileDigitsFromPulse::m_pileup_AmpDists
std::vector< std::vector< TH1F * > > m_pileup_AmpDists
Matrix of PU amplitude distribution histograms (PU per partition and channel)
Definition: TileDigitsFromPulse.h:183
SG::VIEW_ELEMENTS
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
Definition: OwnershipPolicy.h:18
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
plotmaker.hist
hist
Definition: plotmaker.py:148
TileDigitsFromPulse::m_tileHWID
const TileHWID * m_tileHWID
Definition: TileDigitsFromPulse.h:102
CaloCondBlobAlgs_fillNoiseFromASCII.gain
gain
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:110
TileDigitsFromPulse::m_simQIE
bool m_simQIE
Raw PMT pulses are generated if the option is set to true.
Definition: TileDigitsFromPulse.h:154
TileSampleBuffer::getValueVector
void getValueVector(std::vector< float > &vec)
Definition: TileSampleBuffer.h:29
TileDigitsFromPulse::m_pileup_AmpDistFile
TFile * m_pileup_AmpDistFile
File containing amplitude histograms for PU pulses.
Definition: TileDigitsFromPulse.h:182
TileDigitsFromPulse::m_itADistHistName
std::string m_itADistHistName
Name of histogram for in-time amplitude distribution.
Definition: TileDigitsFromPulse.h:151
TileDigitsFromPulse::m_ootOffset
double m_ootOffset
Out-of-time pulse offset from nominal time.
Definition: TileDigitsFromPulse.h:132
TileDigitsFromPulse::m_useOffsetHisto
bool m_useOffsetHisto
Internally used to keep track of wether a histogram has been opened or not.
Definition: TileDigitsFromPulse.h:181
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
TilePulseShape
Definition: TilePulseShape.h:17
TileDigitsFromPulse::m_PUAmp
std::vector< float > m_PUAmp
Definition: TileDigitsFromPulse.h:161
TileDigitsFromPulse::m_imperfectionRms
double m_imperfectionRms
RMS of pulse shape broadening.
Definition: TileDigitsFromPulse.h:128
TileSampleBuffer
Definition: TileSampleBuffer.h:14
TileDigitsFromPulse::m_nPul_eff
int m_nPul_eff
Definition: TileDigitsFromPulse.h:160
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
TileDigitsFromPulse::m_chanPed
bool m_chanPed
Use channel specific pedestal value if true.
Definition: TileDigitsFromPulse.h:146
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
checkRpcDigits.digit
digit
Definition: checkRpcDigits.py:186
TileFragHash::Digitizer
@ Digitizer
Definition: TileFragHash.h:33
TileDigitsFromPulse::m_ootOffsetHistName
std::string m_ootOffsetHistName
Name of the histogram for timing offset distribution.
Definition: TileDigitsFromPulse.h:149
TileSampleGenerator::fill7SamplesQIE
void fill7SamplesQIE(float amp_it, float *amp_pu)
Definition: TileSampleGenerator.cxx:135
Example_ReadSampleNoise.drawer
drawer
Definition: Example_ReadSampleNoise.py:39
TileDigitsFromPulse::m_infoName
std::string m_infoName
Definition: TileDigitsFromPulse.h:105
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
AthCommonDataStore< AthCommonMsg< Algorithm > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
TileDigitsFromPulse::m_ootAmp
double m_ootAmp
Amplitude of out-of-time pulse.
Definition: TileDigitsFromPulse.h:130
TileDigitsFromPulse::m_nSamples
int m_nSamples
number of read out samples
Definition: TileDigitsFromPulse.h:158
TileDigitsFromPulse::m_useItADist
bool m_useItADist
Set to TRUE in order to use a distribution for the in-time amplitude instead of a constant value.
Definition: TileDigitsFromPulse.h:140
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
TileDigitsFromPulse::m_chanNoise
bool m_chanNoise
Add channel specific noise.
Definition: TileDigitsFromPulse.h:147
FortranAlgorithmOptions.fileName
fileName
Definition: FortranAlgorithmOptions.py:13
AthCommonDataStore
Definition: AthCommonDataStore.h:52
AthAlgorithm::sysInitialize
virtual StatusCode sysInitialize() override
Override sysInitialize.
Definition: AthAlgorithm.cxx:66
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
StdJOSetup.msgSvc
msgSvc
Provide convenience handles for various services.
Definition: StdJOSetup.py:36
lumiFormat.i
int i
Definition: lumiFormat.py:85
TileDigitsFromPulse::m_bigain
bool m_bigain
Definition: TileDigitsFromPulse.h:163
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
TileDigitsFromPulse::m_itADistFileName
std::string m_itADistFileName
Filename of file to use for amplitude distribution of in-time pulses.
Definition: TileDigitsFromPulse.h:144
TileInfo::digitsFullShapeHi
const std::vector< double > & digitsFullShapeHi() const
Return shape vector with full binning to produce the TileDigits from sub-hits.
Definition: TileInfo.h:184
TileDigitsFromPulse::m_digitsContainerKey
SG::WriteHandleKey< TileDigitsContainer > m_digitsContainerKey
Definition: TileDigitsFromPulse.h:115
TileDigitsFromPulse::m_pileupAmpDistFileName
std::string m_pileupAmpDistFileName
Filename for PU amplitude distribution histograms.
Definition: TileDigitsFromPulse.h:167
JetVoronoiDiagramHelpers::Norm
Point Norm(const Point &a)
Definition: JetVoronoiDiagramHelpers.cxx:79
file
TFile * file
Definition: tile_monitor.h:29
TileSampleGenerator
Definition: TileSampleGenerator.h:16
TileDigitsFromPulse::m_ootDist
TH1F * m_ootDist
Histogram to hold the distribution of out-of-time amplitudes.
Definition: TileDigitsFromPulse.h:175
TileHWID::adc_hash_max
size_type adc_hash_max(void) const
ADC hash table max size.
Definition: TileHWID.h:276
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
TileDigitsFromPulse::m_ootOffsetFileName
std::string m_ootOffsetFileName
File name for offset timing distribution histogram.
Definition: TileDigitsFromPulse.h:148
MakeTH3DFromTH2Ds.hists
hists
Definition: MakeTH3DFromTH2Ds.py:72
TileDigitsFromPulse::m_tileInfo
const TileInfo * m_tileInfo
Definition: TileDigitsFromPulse.h:106
WriteCellNoiseToCool.igain
igain
Definition: WriteCellNoiseToCool.py:338
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
TileDigitsFromPulse::m_rndmSvc
ServiceHandle< IAthRNGSvc > m_rndmSvc
Random number service to use.
Definition: TileDigitsFromPulse.h:121
maskDeadModules.ros
ros
Definition: maskDeadModules.py:35
TileDigitsFromPulse::m_itOffset
double m_itOffset
In-time pulse offset from nominal time.
Definition: TileDigitsFromPulse.h:131
TilePulseShape::scalePulse
int scalePulse(double leftSF=1., double rightSF=1.)
Definition: TilePulseShape.cxx:138
TileDigitsFromPulse::m_imperfectionMean
double m_imperfectionMean
Mean value of pulse shape broadening.
Definition: TileDigitsFromPulse.h:127
TileDigitsFromPulse::m_useOotADist
bool m_useOotADist
Set to TRUE in order to use a distribution for the out-of-time amplitude instead of a constant value.
Definition: TileDigitsFromPulse.h:141
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
TileDigitsFromPulse::m_BunchSpacing
int m_BunchSpacing
Time between pulses in ms 25, 50 or 75.
Definition: TileDigitsFromPulse.h:157
TileDigitsFromPulse::m_GNAmpTwo
double m_GNAmpTwo
Amplitude of second gaussian of double gaussian noise.
Definition: TileDigitsFromPulse.h:138
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
ATHRNG::RNGWrapper
A wrapper class for event-slot-local random engines.
Definition: RNGWrapper.h:56
TileDigits
Definition: TileDigits.h:30
ActsTrk::to_string
std::string to_string(const DetectorType &type)
Definition: GeometryDefs.h:34
TileDigitsFromPulse::m_ootOffsetDist
TH1F * m_ootOffsetDist
Histogram to hold the distribution of out-of-time timing offsets.
Definition: TileDigitsFromPulse.h:179
TileDigitsFromPulse::m_ootADistHistName
std::string m_ootADistHistName
Name of histogram for out-of-time amplitude distribution.
Definition: TileDigitsFromPulse.h:152
TileDigitsFromPulse::m_ootADistFileName
std::string m_ootADistFileName
Filename of file to use for amplitude distribution of out-of-time pulses.
Definition: TileDigitsFromPulse.h:145
Example_ReadSampleNoise.ped
ped
Definition: Example_ReadSampleNoise.py:45
TileDigitsFromPulse::m_simPUwPoisson
bool m_simPUwPoisson
Definition: TileDigitsFromPulse.h:165
TileHWID::adc_id
HWIdentifier adc_id(int ros, int drawer, int channel, int adc) const
adc HWIdentifer
Definition: TileHWID.cxx:229
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:76
TileDigitsFromPulse::m_gaussNoise
bool m_gaussNoise
Set to TRUE in order to create noise from double gaussian.
Definition: TileDigitsFromPulse.h:135
AthAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Definition: AthAlgorithm.h:79
TileDigitsFromPulse::m_GNSigmaTwo
double m_GNSigmaTwo
Standard deviation of second gaussian of double gaussian noise.
Definition: TileDigitsFromPulse.h:139
TileDigitsFromPulse::m_seed
int m_seed
Definition: TileDigitsFromPulse.h:156
a
TList * a
Definition: liststreamerinfos.cxx:10
TileDigitsFromPulse::m_ped_HG
double m_ped_HG
Pedestal value for HG if specific channel pedestal is not used.
Definition: TileDigitsFromPulse.h:133
TileDigitsFromPulse::m_AmpDistLowLim
int m_AmpDistLowLim
Set all bins to the left of this bin to 0 in the amplitude distribution histograms.
Definition: TileDigitsFromPulse.h:150
h
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
TileDigitsFromPulse::m_gausC2C
float m_gausC2C
RMS for the in-time pulse offset (channel-to-channel phase variation)
Definition: TileDigitsFromPulse.h:143
TileDigitsFromPulse::m_PhaseII
bool m_PhaseII
Definition: TileDigitsFromPulse.h:162
TileDigitsFromPulse::m_tileToolNoiseSample
ToolHandle< TileCondToolNoiseSample > m_tileToolNoiseSample
Definition: TileDigitsFromPulse.h:112
TileDigitsFromPulse::m_itFile
TFile * m_itFile
File that holds the distribution of in-time amplitudes.
Definition: TileDigitsFromPulse.h:177
TileDigitsFromPulse::m_pileUpFraction
float m_pileUpFraction
Probability that an out-of-time component will be added.
Definition: TileDigitsFromPulse.h:142
PowhegPythia8EvtGen_jetjet.pdf
pdf
Definition: PowhegPythia8EvtGen_jetjet.py:4
DataPool
a typed memory pool that saves time spent allocation small object. This is typically used by containe...
Definition: DataPool.h:63
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
TileSampleGenerator::setPulseShape
void setPulseShape(TilePulseShape *ps)
Definition: TileSampleGenerator.h:22
AthAlgorithm::AthAlgorithm
AthAlgorithm()
Default constructor:
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
TileDigitsFromPulse::m_itDist
TH1F * m_itDist
Histogram to hold the distribution of in-time amplitudes.
Definition: TileDigitsFromPulse.h:176
python.TrigEgammaMonitorHelper.TH1F
def TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)
Definition: TrigEgammaMonitorHelper.py:24
TileCalibUtils::getDrawerIdx
static unsigned int getDrawerIdx(unsigned int ros, unsigned int drawer)
Returns a drawer hash.
Definition: TileCalibUtils.cxx:60
TileDigitsFromPulse::m_GNAmpOne
double m_GNAmpOne
Amplitude of first gaussian of double gaussian noise.
Definition: TileDigitsFromPulse.h:136
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
TileAANtupleConfig.rawChannelContainer
rawChannelContainer
Definition: TileAANtupleConfig.py:120
TileDigitsFromPulse::m_rChUnit
TileRawChannelUnit::UNIT m_rChUnit
Units used for the TileRawChannels (ADC, pCb, etc.)(see TileInfo.h)
Definition: TileDigitsFromPulse.h:109
TileDigitsFromPulse::m_rChType
TileFragHash::TYPE m_rChType
Type of TileRawChannels (Digitizar, OF1, OF2, Fit, etc.)(see TileFragHash.h)
Definition: TileDigitsFromPulse.h:110
TileDigitsFromPulse::m_ootFile
TFile * m_ootFile
File that holds the distribution of out-of-time amplitudes.
Definition: TileDigitsFromPulse.h:178
CaloNoise_fillDB.mu
mu
Definition: CaloNoise_fillDB.py:53
TileDigitsFromPulse::m_rawChannelContainerKey
SG::WriteHandleKey< TileRawChannelContainer > m_rawChannelContainerKey
Definition: TileDigitsFromPulse.h:118
TileDigitsFromPulse::m_inTimeAmp
double m_inTimeAmp
Amplitude of in-time pulse.
Definition: TileDigitsFromPulse.h:129
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
readCCLHist.float
float
Definition: readCCLHist.py:83
TilePulseShape::setPulseShape
void setPulseShape(const std::vector< double > &shapevec)
Definition: TilePulseShape.cxx:60
TileInfo::ADCmax
int ADCmax() const
Returns the maximum ADC output (10 bits --> 1023)
Definition: TileInfo.h:71
TileFragHash::Default
@ Default
Definition: TileFragHash.h:33
TileRawChannelUnit::ADCcounts
@ ADCcounts
Definition: TileRawChannelUnit.h:17
fitman.k
k
Definition: fitman.py:528
TileDigitsFromPulse::m_avgMuForPU
int m_avgMuForPU
Definition: TileDigitsFromPulse.h:166
TileDigitsFromPulse::m_randomStreamName
Gaudi::Property< std::string > m_randomStreamName
Random Stream Name.
Definition: TileDigitsFromPulse.h:123
ServiceHandle< ICondSvc >
TileDigitsFromPulse::m_ootOffsetFile
TFile * m_ootOffsetFile
File that holds the distribution of out-of-time timing offsets.
Definition: TileDigitsFromPulse.h:180
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37