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

The L1CaloRampMaker creates a set of L1CaloRampData objects. More...

#include <L1CaloRampMaker.h>

Inheritance diagram for L1CaloRampMaker:
Collaboration diagram for L1CaloRampMaker:

Public Member Functions

 L1CaloRampMaker (const std::string &name, ISvcLocator *pSvcLocator)
 
virtual ~L1CaloRampMaker ()
 
StatusCode initialize ()
 
StatusCode execute ()
 
StatusCode finalize ()
 
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

void setupRampDataContainer (const xAOD::TriggerTowerContainer *triggerTowerContainer)
 
double getTriggerTowerEnergy (const xAOD::TriggerTower *tt, SG::ReadCondHandle< L1CaloPprChanCalibContainer > pprCond)
 
double getCaloEnergy (const xAOD::TriggerTower *tt)
 
void checkProvenance (const xAOD::TriggerTower *tt)
 
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_triggerTowerContainerName
 
std::string m_outputFolderName
 
std::string m_gainStrategyFolder
 
std::map< int, int > m_specialChannelRange
 
bool m_doLAr
 
bool m_doTile
 
bool m_isGain1
 
bool m_isOvEmb
 
bool m_isOvEmec
 
bool m_isFcalLowEta
 
bool m_isFcalHighEta
 
bool m_checkProvenance
 
unsigned int m_nEventsPerStep
 
unsigned int m_nSteps
 
int m_fadcSaturationCut
 
double m_tileSaturationCut
 
ToolHandle< LVL1::IL1TriggerTowerToolRun3m_ttTool
 
ToolHandle< LVL1::IL1CaloxAODOfflineTriggerTowerToolsm_xAODTTTools
 
ToolHandle< LVL1::IL1CaloOfflineTriggerTowerToolsm_jmTools
 
unsigned int m_nEvent
 
bool m_firstEvent
 
const CaloLVL1_IDm_lvl1Helper
 
std::unique_ptr< L1CaloRampDataContainerm_rampDataContainer
 
std::map< unsigned int, std::pair< unsigned int, double > > m_mapBadOFCIteration
 
SG::ReadCondHandleKey< CondAttrListCollectionm_strategy { this, "TRIGGER", "/TRIGGER/Receivers/Conditions/Strategy", "Strategy" }
 
SG::ReadCondHandleKey< L1CaloPprChanCalibContainerm_pprChanCalibContainer { this, "InputKeyCond", "L1CaloPprChanCalibContainer"}
 
SG::ReadCondHandleKey< L1CaloPprDisabledChannelContainerRun2m_pprDisabledChannelContainer { this, "InputKeyDisabledChannel", "L1CaloPprDisabledChannelContainerRun2"}
 
SG::ReadCondHandleKey< LArOnOffIdMappingm_cablingKey {this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"}
 
SG::ReadHandleKey< CaloCellContainerm_caloCellsKey { this, "CaloCellsKey", "AllCalo", "CaloCellContainer key" }
 
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

The L1CaloRampMaker creates a set of L1CaloRampData objects.

Author
Veit Scharf veit..nosp@m.scha.nosp@m.rf@ki.nosp@m.p.un.nosp@m.i-hei.nosp@m.delb.nosp@m.erg.d.nosp@m.e

Definition at line 47 of file L1CaloRampMaker.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

◆ L1CaloRampMaker()

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

Definition at line 42 of file L1CaloRampMaker.cxx.

43  : AthAlgorithm(name, pSvcLocator),
45  m_outputFolderName("/L1CaloRampMaker/L1CaloRampDataContainer"),
46  m_gainStrategyFolder("/TRIGGER/Receivers/Conditions/Strategy"),
47  m_doLAr(false),
48  m_doTile(false),
49  m_isGain1(true),
50  m_isOvEmb(false),
51  m_isOvEmec(false),
52  m_isFcalLowEta(false),
53  m_isFcalHighEta(false),
54  m_checkProvenance(false),
55  m_nEventsPerStep(200),
56  m_nSteps(9),
58  m_tileSaturationCut(150.),
59  m_ttTool("LVL1::L1TriggerTowerToolRun3/L1TriggerTowerToolRun3"),
60  m_xAODTTTools("LVL1::L1CaloxAODOfflineTriggerTowerTools/L1CaloxAODOfflineTriggerTowerTools", this),
61  m_jmTools("LVL1::L1CaloOfflineTriggerTowerTools/L1CaloOfflineTriggerTowerTools", this),
62  m_nEvent(1),
63  m_firstEvent(true),
64  m_lvl1Helper(nullptr),
65  m_rampDataContainer(nullptr)
66 
67 {
68  declareProperty("TriggerTowerCollectionName", m_triggerTowerContainerName);
69  declareProperty("OutputFolderName", m_outputFolderName);
70  declareProperty("GainStrategyFolder", m_gainStrategyFolder);
71  declareProperty("DoLAr", m_doLAr);
72  declareProperty("DoTile", m_doTile);
73  declareProperty("IsGain1", m_isGain1);
74  declareProperty("IsOvEmb", m_isOvEmb);
75  declareProperty("IsOvEmec", m_isOvEmec);
76  declareProperty("IsFcalLowEta", m_isFcalLowEta);
77  declareProperty("IsFcalHighEta", m_isFcalHighEta);
78  declareProperty("CheckProvenance", m_checkProvenance);
79  declareProperty("EventsPerEnergyStep", m_nEventsPerStep);
80  declareProperty("NumberOfEnergySteps", m_nSteps);
81  declareProperty("FADCSaturationCut", m_fadcSaturationCut);
82  declareProperty("TileSaturationCut", m_tileSaturationCut);
83  declareProperty("L1TriggerTowerToolRun3", m_ttTool);
84  declareProperty("SpecialChannelRange", m_specialChannelRange);
85 }

◆ ~L1CaloRampMaker()

L1CaloRampMaker::~L1CaloRampMaker ( )
virtual

Definition at line 87 of file L1CaloRampMaker.cxx.

88 {
89 }

Member Function Documentation

◆ checkProvenance()

void L1CaloRampMaker::checkProvenance ( const xAOD::TriggerTower tt)
private

Definition at line 377 of file L1CaloRampMaker.cxx.

377  {
378  const std::vector<const CaloCell*>& cells(m_xAODTTTools->getCaloCells(*tt));
379  double oneOverNCells = 1./double(cells.size());
380  for(const auto *cell : cells) {
381  auto it = m_mapBadOFCIteration.find(tt->coolId());
382  if(it == m_mapBadOFCIteration.end()) {
383  m_mapBadOFCIteration.insert(std::make_pair(tt->coolId(), std::make_pair(!(cell->provenance() & 0x100),
384  (cell->time()*oneOverNCells))));
385  continue;
386  }
387  if(!(cell->provenance() & 0x100)) {
388  it->second.first += 1;
389  }
390  it->second.second += (cell->time()*oneOverNCells);
391  }
392 }

◆ 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 L1CaloRampMaker::execute ( )

Definition at line 116 of file L1CaloRampMaker.cxx.

117 {
118  // Skip spurious events
119  unsigned int wantedEvents = m_nEventsPerStep*m_nSteps;
120  if (m_nEvent > wantedEvents) {
121  if (m_nEvent == wantedEvents+1) {
122  ATH_MSG_INFO( "Processed " << wantedEvents
123  << " events, skipping the rest" );
124  }
125  ++m_nEvent;
126  return StatusCode::SUCCESS;
127  }
128 
129  const xAOD::EventInfo* eventInfo = nullptr;
130  CHECK(evtStore()->retrieve(eventInfo));
131  if (eventInfo->eventNumber() == 0 && m_nEvent > 1) {
132  // Only allow event 0 as first event
133  ATH_MSG_WARNING( "Skipping spurious event number 0" );
134  return StatusCode::SUCCESS;
135  }
136 
137  const xAOD::TriggerTowerContainer *tts = nullptr;
138  auto sc = evtStore()->retrieve(tts, m_triggerTowerContainerName);
139  if(!sc.isSuccess()) {
140  ATH_MSG_ERROR( "Cannot retrieve TriggerTowerCollection '"
141  << m_triggerTowerContainerName << "' from StoreGate." );
142  return StatusCode::RECOVERABLE;
143  }
144 
145 
146  const EventContext& ctx = getContext();
147 
149 
150  const unsigned evt=ctx.eventID().event_number();
151  ATH_MSG_DEBUG("Event " << evt << " contains " << cells->size() << " CaloCells" );
152  const CaloCellContainer* cellCont = cells.get();
153 
154 
155 
156  m_jmTools->caloCells(cellCont);
157 
158  // init trigger tower to cell mapping
159  CHECK(m_xAODTTTools->initCaloCells());
160  ATH_MSG_DEBUG("GAIN STRATEGY " << m_strategy);
161 
162 
163 
164  if(m_firstEvent) {
165  unsigned int runNumber = eventInfo->runNumber();
166  std::string gainStrategy("");
167  const CondAttrListCollection* gainStrategyColl = 0;
168  sc = detStore()->retrieve(gainStrategyColl, m_gainStrategyFolder);
169  if(sc.isSuccess()) {
170  CondAttrListCollection::const_iterator itr = gainStrategyColl->begin();
171  CondAttrListCollection::const_iterator itrE = gainStrategyColl->end();
172  bool consistent(true);
173  for (; itr != itrE; ++itr) {
174  const unsigned int channel = itr->first;
175  if (channel != 1 && channel != 2) continue;
176  const coral::AttributeList& attrList = itr->second;
177  const std::string strategy(attrList["name"].data<std::string>());
178  const std::string status(attrList["status"].data<std::string>());
179  ATH_MSG_INFO( "Gain Strategy: channel = " << channel
180  << ", name = " << strategy
181  << ", status = " << status );
182  if (gainStrategy == "") gainStrategy = strategy;
183  else if (gainStrategy != strategy) consistent = false;
184  }
185  std::string newStrategy("");
186  if (runNumber == 219978) newStrategy = "GainOneOvEmecFcalLowEta";
187  if (runNumber == 219979) newStrategy = "GainOneOvEmbFcalHighEta";
188  if (runNumber == 219980) newStrategy = "CalibGainsEt";
189  if (runNumber == 220013) newStrategy = "GainOneOvEmecFcalLowEta";
190  if (runNumber == 220014) newStrategy = "GainOneOvEmbFcalHighEta";
191  if (runNumber == 220015) newStrategy = "CalibGainsEt";
192  if (runNumber == 222871) newStrategy = "GainOne";
193  if (runNumber == 222872) newStrategy = "GainOne";
194  if (runNumber == 222873) newStrategy = "GainOne";
195  if (runNumber == 223073) newStrategy = "GainOne";
196  if (runNumber == 223074) newStrategy = "GainOne";
197  if (runNumber == 223075) newStrategy = "GainOne";
198  if (newStrategy != "") {
199  ATH_MSG_INFO( "Changing Gain Strategy to " << newStrategy);
200  gainStrategy = newStrategy;
201  }
202  if (gainStrategy != "" && consistent) {
203  m_isGain1 = (gainStrategy.find("GainOne") != std::string::npos);
204  m_isOvEmb = (gainStrategy.find("OvEmb") != std::string::npos);
205  m_isOvEmec = (gainStrategy.find("OvEmec") != std::string::npos);
206  m_isFcalLowEta = (gainStrategy.find("FcalLowEta") != std::string::npos);
207  m_isFcalHighEta = (gainStrategy.find("FcalHighEta") != std::string::npos);
208  } else if (gainStrategy == "") {
209  ATH_MSG_WARNING( "Gain Strategy collection empty" );
210  } else {
211  ATH_MSG_WARNING( "Inconsistent Gain Strategies" );
212  }
213  } else {
214  ATH_MSG_WARNING( "No Gain Strategy collection found" );
215  }
216  ATH_MSG_INFO( "isGain1 = " << m_isGain1
217  << ", isOvEmb = " << m_isOvEmb
218  << ", isOvEmec = " << m_isOvEmec
219  << ", isFcalLowEta = " << m_isFcalLowEta
220  << ", isFcalHighEta = " << m_isFcalHighEta );
221 
223  m_rampDataContainer->setRunNumber(runNumber);
224  m_rampDataContainer->setGainStrategy(gainStrategy);
225  m_firstEvent = false;
226  }
227 
228 
229 
230 
231  // Reading L1Calo conditions
234 
235 
236 
237  auto specialChannelRangeEnd = m_specialChannelRange.end();
238  bool nextStep = (m_nEvent % m_nEventsPerStep == 0);
239  for(auto *tt : *tts) {
240  // skip saturated towers
241  if(tt->isJepSaturated()) continue;
242 
243  // isSaturated flag is not enough to check - test FADC for saturation, too
244  auto max = std::max_element(tt->adc().begin(), tt->adc().end());
245  if(*max >= m_fadcSaturationCut) continue;
246 
247 
248 
249  // skip disabled channels
250  if(m_ttTool->disabledChannel(tt->coolId())) continue;
251 
252 
253 
254  bool isTile = m_xAODTTTools->isTile(*tt);
255 
256  if((m_doLAr && !isTile) || (m_doTile && isTile)) {
258  double level1Energy = getTriggerTowerEnergy(tt,pprChanCalib);
259  double caloEnergy = getCaloEnergy(tt);
260 
261  // cut on 150 GeV ADC for Tile, lots of saturating calibration signals
262  if(isTile && level1Energy > m_tileSaturationCut) continue;
263 
264  // see if we have a special channel and cut on level1 energy
265  auto specialChannelIt = m_specialChannelRange.find(tt->coolId());
266  if(specialChannelIt == specialChannelRangeEnd || level1Energy < specialChannelIt->second) {
267  ATH_MSG_DEBUG("Adding Energy for " << tt->coolId() << ":" << caloEnergy << " vs. " << level1Energy);
268  m_rampDataContainer->rampData(tt->coolId())->addData(caloEnergy, level1Energy);
269  } else {
270  // make sure we don't accidently miss the threshold again
271  specialChannelIt->second = -1000;
272  }
273  if(nextStep) m_rampDataContainer->rampData(tt->coolId())->nextStep();
274  }
275  }
276 
277  ++m_nEvent;
278 
279  return StatusCode::SUCCESS;
280 }

◆ 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 L1CaloRampMaker::finalize ( )

Definition at line 394 of file L1CaloRampMaker.cxx.

395 {
396  CHECK(detStore()->record(std::move(m_rampDataContainer), m_outputFolderName));
397 
398  if(m_checkProvenance) {
399  std::ofstream bad_ofciter("bad-ofciter.txt");
400  std::map<unsigned int, std::pair<unsigned int, double> >::const_iterator it(m_mapBadOFCIteration.begin()), itE(m_mapBadOFCIteration.end());
401  for(;it != itE; ++it) {
402  bad_ofciter << "0x" << std::hex << it->first << " "
403  << std::dec << double(it->second.first) / double(m_nEvent)
404  << " " << it->second.second / double(m_nEvent) << std::endl;
405  }
406  bad_ofciter.close();
407  }
408 
409  return StatusCode::SUCCESS;
410 }

◆ getCaloEnergy()

double L1CaloRampMaker::getCaloEnergy ( const xAOD::TriggerTower tt)
private

Definition at line 300 of file L1CaloRampMaker.cxx.

301 {
302  double et(0.);
303  auto id = m_ttTool->identifier(tt->eta(), tt->phi(), tt->sampling());
304 
305  if(m_lvl1Helper->is_fcal(id)) {
306  if(tt->sampling() == 0) { // fcal em - use decorated value
307  et = ttCellsET(*tt);
308  } else { // had
309  LVL1::TriggerTowerKey K(tt->phi(), tt->eta());
310  LVL1::TriggerTower T(tt->phi(), tt->eta(), K.ttKey(tt->phi(), tt->eta()));
311  std::vector<float> etRec = m_jmTools->hadTTCellsEtByReceiver(&T);
312  if (etRec.size() == 2) {
313  if (m_isFcalLowEta) et = etRec[1];//FCAL high and low eta receivers swapped here due to LAr baseplane misrouting
314  else if (m_isFcalHighEta) et = etRec[0];
315  else et = etRec[0] + etRec[1];
316  } else if (etRec.size() == 1) et = etRec[0];
317  }
318  } else {
320  LVL1::TriggerTowerKey K(tt->phi(), tt->eta());
321  LVL1::TriggerTower T(tt->phi(), tt->eta(), K.ttKey(tt->phi(), tt->eta()));
322  std::vector<float> energyRec = m_jmTools->emTTCellsEnergyByReceiver(&T);
323  if (energyRec.size() == 2) {
324  double energy(0.);
325  if (m_isOvEmec) energy = energyRec[0];
326  else energy = energyRec[1];
327  et = energy / std::cosh(tt->eta());
328  } else et = energyRec[0] / std::cosh(tt->eta());
329  } else {
330  et = ttCellsEnergy(*tt) / std::cosh(tt->eta());
331  }
332  }
333  return et;
334 }

◆ getTriggerTowerEnergy()

double L1CaloRampMaker::getTriggerTowerEnergy ( const xAOD::TriggerTower tt,
SG::ReadCondHandle< L1CaloPprChanCalibContainer pprCond 
)
private

Definition at line 338 of file L1CaloRampMaker.cxx.

338  {
339  // calibration is against ADC energy "(adc peak value - pedestal) / 4"
340  auto max = std::max_element(tt->adc().begin(), tt->adc().end());
341 
342  if(!pprChanCalib->pprChanCalib(tt->coolId())) {
343  ATH_MSG_WARNING("Empty PPrChanCalib for 0x "
344  << std::hex << tt->coolId() << std::dec << "!");
345  return 0.;
346  }
347 
348  double energy = (*max - int( pprChanCalib->pprChanCalib(tt->coolId())->pedValue())) * 0.25;
349  ATH_MSG_DEBUG("PedValue " << tt->coolId() << ":" << int( pprChanCalib->pprChanCalib(tt->coolId())->pedValue()) );
350 
351 
352  if (energy < 0.) energy = 0.;
353 
354  // no corrections if gain is set correctly
355  if(!m_isGain1) return energy;
356 
357  // correct hec and tile if gain 1
358  auto id = m_ttTool->identifier(tt->eta(), tt->phi(), tt->sampling());
359  if(m_lvl1Helper->is_hec(id)) {
360  energy /= std::cosh(tt->eta());
361  if(fabs(tt->eta()) > 2.5) {
362  energy *= 10.;
363  } else if(fabs(tt->eta()) > 1.9) {
364  energy *= 5.;
365  } else {
366  energy *= 3.125;
367  }
368  } else if(m_lvl1Helper->is_tile(id)) {
369  energy /= std::cosh(tt->eta());
370  }
371 
372  return energy;
373 }

◆ initialize()

StatusCode L1CaloRampMaker::initialize ( )

Definition at line 91 of file L1CaloRampMaker.cxx.

92 {
93 
95 
96  const CaloIdManager *caloMgr = nullptr;
97  CHECK(detStore()->retrieve(caloMgr));
98  m_lvl1Helper = caloMgr->getLVL1_ID();
99  if(!m_lvl1Helper) {
100  ATH_MSG_FATAL( "Cannot access CaloLVL1_ID helper." );
101  return StatusCode::FAILURE;
102  }
103 
105  ATH_CHECK(m_ttTool.retrieve());
106  ATH_CHECK(m_xAODTTTools.retrieve());
107  ATH_CHECK(m_jmTools.retrieve());
108 
112 
113  return StatusCode::SUCCESS;
114 }

◆ 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.

◆ 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  }

◆ setupRampDataContainer()

void L1CaloRampMaker::setupRampDataContainer ( const xAOD::TriggerTowerContainer triggerTowerContainer)
private

Definition at line 286 of file L1CaloRampMaker.cxx.

287 {
289 
290  L1CaloRampData rd;
291  for(auto* tt: *tts) {
292  bool isTile = m_xAODTTTools->isTile(*tt);
293  if((m_doLAr && !isTile) || (m_doTile && isTile)) {
294  m_rampDataContainer->addRampData(tt->coolId(), rd);
295  }
296  }
297 }

◆ 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_cablingKey

SG::ReadCondHandleKey<LArOnOffIdMapping> L1CaloRampMaker::m_cablingKey {this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"}
private

Definition at line 104 of file L1CaloRampMaker.h.

◆ m_caloCellsKey

SG::ReadHandleKey<CaloCellContainer> L1CaloRampMaker::m_caloCellsKey { this, "CaloCellsKey", "AllCalo", "CaloCellContainer key" }
private

Definition at line 105 of file L1CaloRampMaker.h.

◆ m_checkProvenance

bool L1CaloRampMaker::m_checkProvenance
private

Definition at line 70 of file L1CaloRampMaker.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_doLAr

bool L1CaloRampMaker::m_doLAr
private

Definition at line 63 of file L1CaloRampMaker.h.

◆ m_doTile

bool L1CaloRampMaker::m_doTile
private

Definition at line 64 of file L1CaloRampMaker.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_fadcSaturationCut

int L1CaloRampMaker::m_fadcSaturationCut
private

Definition at line 73 of file L1CaloRampMaker.h.

◆ m_firstEvent

bool L1CaloRampMaker::m_firstEvent
private

Definition at line 83 of file L1CaloRampMaker.h.

◆ m_gainStrategyFolder

std::string L1CaloRampMaker::m_gainStrategyFolder
private

Definition at line 61 of file L1CaloRampMaker.h.

◆ m_isFcalHighEta

bool L1CaloRampMaker::m_isFcalHighEta
private

Definition at line 69 of file L1CaloRampMaker.h.

◆ m_isFcalLowEta

bool L1CaloRampMaker::m_isFcalLowEta
private

Definition at line 68 of file L1CaloRampMaker.h.

◆ m_isGain1

bool L1CaloRampMaker::m_isGain1
private

Definition at line 65 of file L1CaloRampMaker.h.

◆ m_isOvEmb

bool L1CaloRampMaker::m_isOvEmb
private

Definition at line 66 of file L1CaloRampMaker.h.

◆ m_isOvEmec

bool L1CaloRampMaker::m_isOvEmec
private

Definition at line 67 of file L1CaloRampMaker.h.

◆ m_jmTools

ToolHandle<LVL1::IL1CaloOfflineTriggerTowerTools> L1CaloRampMaker::m_jmTools
private

Definition at line 79 of file L1CaloRampMaker.h.

◆ m_lvl1Helper

const CaloLVL1_ID* L1CaloRampMaker::m_lvl1Helper
private

Definition at line 85 of file L1CaloRampMaker.h.

◆ m_mapBadOFCIteration

std::map<unsigned int, std::pair<unsigned int, double> > L1CaloRampMaker::m_mapBadOFCIteration
private

Definition at line 96 of file L1CaloRampMaker.h.

◆ m_nEvent

unsigned int L1CaloRampMaker::m_nEvent
private

Definition at line 82 of file L1CaloRampMaker.h.

◆ m_nEventsPerStep

unsigned int L1CaloRampMaker::m_nEventsPerStep
private

Definition at line 71 of file L1CaloRampMaker.h.

◆ m_nSteps

unsigned int L1CaloRampMaker::m_nSteps
private

Definition at line 72 of file L1CaloRampMaker.h.

◆ m_outputFolderName

std::string L1CaloRampMaker::m_outputFolderName
private

Definition at line 60 of file L1CaloRampMaker.h.

◆ m_pprChanCalibContainer

SG::ReadCondHandleKey<L1CaloPprChanCalibContainer> L1CaloRampMaker::m_pprChanCalibContainer { this, "InputKeyCond", "L1CaloPprChanCalibContainer"}
private

Definition at line 100 of file L1CaloRampMaker.h.

◆ m_pprDisabledChannelContainer

SG::ReadCondHandleKey<L1CaloPprDisabledChannelContainerRun2> L1CaloRampMaker::m_pprDisabledChannelContainer { this, "InputKeyDisabledChannel", "L1CaloPprDisabledChannelContainerRun2"}
private

Definition at line 101 of file L1CaloRampMaker.h.

◆ m_rampDataContainer

std::unique_ptr<L1CaloRampDataContainer> L1CaloRampMaker::m_rampDataContainer
private

Definition at line 87 of file L1CaloRampMaker.h.

◆ m_specialChannelRange

std::map<int, int> L1CaloRampMaker::m_specialChannelRange
private

Definition at line 62 of file L1CaloRampMaker.h.

◆ m_strategy

SG::ReadCondHandleKey<CondAttrListCollection> L1CaloRampMaker::m_strategy { this, "TRIGGER", "/TRIGGER/Receivers/Conditions/Strategy", "Strategy" }
private

Definition at line 98 of file L1CaloRampMaker.h.

◆ m_tileSaturationCut

double L1CaloRampMaker::m_tileSaturationCut
private

Definition at line 74 of file L1CaloRampMaker.h.

◆ m_triggerTowerContainerName

std::string L1CaloRampMaker::m_triggerTowerContainerName
private

Definition at line 59 of file L1CaloRampMaker.h.

◆ m_ttTool

ToolHandle<LVL1::IL1TriggerTowerToolRun3> L1CaloRampMaker::m_ttTool
private

Definition at line 75 of file L1CaloRampMaker.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.

◆ m_xAODTTTools

ToolHandle<LVL1::IL1CaloxAODOfflineTriggerTowerTools> L1CaloRampMaker::m_xAODTTTools
private

Definition at line 78 of file L1CaloRampMaker.h.


The documentation for this class was generated from the following files:
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
xAOD::strategy
strategy
Definition: L2CombinedMuon_v1.cxx:107
RunTileCalibRec.cells
cells
Definition: RunTileCalibRec.py:271
python.SystemOfUnits.second
int second
Definition: SystemOfUnits.py:120
CondAttrListCollection::end
const_iterator end() const
Definition: CondAttrListCollection.h:315
et
Extra patterns decribing particle interation process.
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
L1CaloRampMaker::m_strategy
SG::ReadCondHandleKey< CondAttrListCollection > m_strategy
Definition: L1CaloRampMaker.h:98
ReadCellNoiseFromCool.cell
cell
Definition: ReadCellNoiseFromCool.py:53
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
max
#define max(a, b)
Definition: cfImp.cxx:41
L1CaloRampMaker::m_isOvEmb
bool m_isOvEmb
Definition: L1CaloRampMaker.h:66
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:28
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
xAOD::EventInfo_v1::eventNumber
uint64_t eventNumber() const
The current event's event number.
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
CaloLVL1_ID::is_fcal
bool is_fcal(const Identifier id) const
Test wether given tower or layer is part of the FCAL.
Definition: CaloLVL1_ID.h:710
L1CaloRampMaker::m_lvl1Helper
const CaloLVL1_ID * m_lvl1Helper
Definition: L1CaloRampMaker.h:85
xAOD::et
et
Definition: TrigEMCluster_v1.cxx:25
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
L1CaloRampMaker::m_doTile
bool m_doTile
Definition: L1CaloRampMaker.h:64
skel.it
it
Definition: skel.GENtoEVGEN.py:423
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
CondAttrListCollection::begin
const_iterator begin() const
Access to Chan/AttributeList pairs via iterators.
Definition: CondAttrListCollection.h:309
L1CaloRampMaker::m_doLAr
bool m_doLAr
Definition: L1CaloRampMaker.h:63
CaloLVL1_ID::is_barrel_end
bool is_barrel_end(const Identifier id) const
Test wether given tower or layer is part of the EM barrel END.
Definition: CaloLVL1_ID.h:690
LArG4FSStartPointFilter.evt
evt
Definition: LArG4FSStartPointFilter.py:42
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
python.PyKernel.AttributeList
AttributeList
Definition: PyKernel.py:36
L1CaloRampMaker::m_mapBadOFCIteration
std::map< unsigned int, std::pair< unsigned int, double > > m_mapBadOFCIteration
Definition: L1CaloRampMaker.h:96
CondAttrListCollection
This class is a collection of AttributeLists where each one is associated with a channel number....
Definition: CondAttrListCollection.h:52
xAOD::EventInfo_v1::runNumber
uint32_t runNumber() const
The current event's run number.
TruthTest.itE
itE
Definition: TruthTest.py:25
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
CaloLVL1_ID::is_hec
bool is_hec(const Identifier id) const
Test wether given tower or layer is part of the HEC.
Definition: CaloLVL1_ID.h:703
L1CaloRampMaker::checkProvenance
void checkProvenance(const xAOD::TriggerTower *tt)
Definition: L1CaloRampMaker.cxx:377
L1CaloRampMaker::m_nEvent
unsigned int m_nEvent
Definition: L1CaloRampMaker.h:82
L1CaloRampMaker::m_specialChannelRange
std::map< int, int > m_specialChannelRange
Definition: L1CaloRampMaker.h:62
AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
L1CaloRampMaker::m_pprDisabledChannelContainer
SG::ReadCondHandleKey< L1CaloPprDisabledChannelContainerRun2 > m_pprDisabledChannelContainer
Definition: L1CaloRampMaker.h:101
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
CaloIdManager
This class initializes the Calo (LAr and Tile) offline identifiers.
Definition: CaloIdManager.h:45
ParticleGun_FastCalo_ChargeFlip_Config.energy
energy
Definition: ParticleGun_FastCalo_ChargeFlip_Config.py:78
L1CaloRampMaker::m_caloCellsKey
SG::ReadHandleKey< CaloCellContainer > m_caloCellsKey
Definition: L1CaloRampMaker.h:105
AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
L1CaloRampMaker::m_tileSaturationCut
double m_tileSaturationCut
Definition: L1CaloRampMaker.h:74
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
L1CaloRampMaker::m_nSteps
unsigned int m_nSteps
Definition: L1CaloRampMaker.h:72
L1CaloRampMaker::m_isGain1
bool m_isGain1
Definition: L1CaloRampMaker.h:65
CaloIdManager::getLVL1_ID
const CaloLVL1_ID * getLVL1_ID(void) const
Definition: CaloIdManager.cxx:75
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
L1CaloRampMaker::m_fadcSaturationCut
int m_fadcSaturationCut
Definition: L1CaloRampMaker.h:73
L1CaloRampDataContainer
Container of L1CaloRampData objects.
Definition: L1CaloRampDataContainer.h:23
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
xAOD::double
double
Definition: CompositeParticle_v1.cxx:159
L1CaloRampMaker::getTriggerTowerEnergy
double getTriggerTowerEnergy(const xAOD::TriggerTower *tt, SG::ReadCondHandle< L1CaloPprChanCalibContainer > pprCond)
Definition: L1CaloRampMaker.cxx:338
L1CaloRampMaker::m_ttTool
ToolHandle< LVL1::IL1TriggerTowerToolRun3 > m_ttTool
Definition: L1CaloRampMaker.h:75
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
L1CaloRampMaker::m_isFcalHighEta
bool m_isFcalHighEta
Definition: L1CaloRampMaker.h:69
L1CaloRampMaker::m_pprChanCalibContainer
SG::ReadCondHandleKey< L1CaloPprChanCalibContainer > m_pprChanCalibContainer
Definition: L1CaloRampMaker.h:100
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
LVL1::TriggerTower
Trigger towers are the inputs to all other parts of the calorimeter trigger.
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/TriggerTower.h:45
L1CaloRampMaker::m_firstEvent
bool m_firstEvent
Definition: L1CaloRampMaker.h:83
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
L1CaloRampMaker::m_checkProvenance
bool m_checkProvenance
Definition: L1CaloRampMaker.h:70
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
L1CaloRampMaker::m_outputFolderName
std::string m_outputFolderName
Definition: L1CaloRampMaker.h:60
CaloCellContainer
Container class for CaloCell.
Definition: CaloCellContainer.h:55
L1CaloRampMaker::m_gainStrategyFolder
std::string m_gainStrategyFolder
Definition: L1CaloRampMaker.h:61
LVL1::TrigT1CaloDefs::xAODTriggerTowerLocation
static const std::string xAODTriggerTowerLocation
Definition: TrigT1CaloDefs.h:36
xAOD::EventInfo_v1
Class describing the basic event information.
Definition: EventInfo_v1.h:43
DeMoAtlasDataLoss.runNumber
string runNumber
Definition: DeMoAtlasDataLoss.py:64
L1CaloRampMaker::setupRampDataContainer
void setupRampDataContainer(const xAOD::TriggerTowerContainer *triggerTowerContainer)
Definition: L1CaloRampMaker.cxx:286
AthAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Definition: AthAlgorithm.h:79
L1CaloRampMaker::m_rampDataContainer
std::unique_ptr< L1CaloRampDataContainer > m_rampDataContainer
Definition: L1CaloRampMaker.h:87
a
TList * a
Definition: liststreamerinfos.cxx:10
h
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
CondAttrListCollection::const_iterator
ChanAttrListMap::const_iterator const_iterator
Definition: CondAttrListCollection.h:63
L1CaloRampMaker::m_isFcalLowEta
bool m_isFcalLowEta
Definition: L1CaloRampMaker.h:68
L1CaloRampMaker::m_cablingKey
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
Definition: L1CaloRampMaker.h:104
L1CaloRampMaker::m_isOvEmec
bool m_isOvEmec
Definition: L1CaloRampMaker.h:67
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
AthAlgorithm::AthAlgorithm
AthAlgorithm()
Default constructor:
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
merge.status
status
Definition: merge.py:17
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
L1CaloRampMaker::m_xAODTTTools
ToolHandle< LVL1::IL1CaloxAODOfflineTriggerTowerTools > m_xAODTTTools
Definition: L1CaloRampMaker.h:78
L1CaloRampMaker::m_nEventsPerStep
unsigned int m_nEventsPerStep
Definition: L1CaloRampMaker.h:71
CaloLVL1_ID::is_tile
bool is_tile(const Identifier id) const
Test wether given tower or layer is part of the Tile Calorimeter.
Definition: CaloLVL1_ID.h:672
TileDCSDataPlotter.tt
tt
Definition: TileDCSDataPlotter.py:874
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
L1CaloRampMaker::m_jmTools
ToolHandle< LVL1::IL1CaloOfflineTriggerTowerTools > m_jmTools
Definition: L1CaloRampMaker.h:79
L1CaloRampMaker::getCaloEnergy
double getCaloEnergy(const xAOD::TriggerTower *tt)
Definition: L1CaloRampMaker.cxx:300
L1CaloRampData
Transient class to store the RampData calculated from calibration runs.
Definition: L1CaloRampData.h:42
LVL1::TriggerTowerKey
The TriggerTowerKey object provides the key for each trigger tower depending on its eta-phi coords.
Definition: TriggerTowerKey.h:56
L1CaloRampMaker::m_triggerTowerContainerName
std::string m_triggerTowerContainerName
Definition: L1CaloRampMaker.h:59
TSU::T
unsigned long long T
Definition: L1TopoDataTypes.h:35
fitman.k
k
Definition: fitman.py:528
ServiceHandle< ICondSvc >