ATLAS Offline Software
Loading...
Searching...
No Matches
L1CaloRampMaker.h
Go to the documentation of this file.
1// -*- C++ -*-
2
3/*
4 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
5*/
6
7#ifndef L1CALORAMPMAKER_H
8#define L1CALORAMPMAKER_H
13#include "GaudiKernel/ServiceHandle.h"
14#include "GaudiKernel/ToolHandle.h"
18
19
23#include <string>
24#include <map>
25#include <memory>
26
27// forward declarations
28class Identifier;
29class CaloLVL1_ID;
31class L1CaloRampMaker;
32namespace LVL1{
36}
37
45
46
48{
49 public:
50 L1CaloRampMaker(const std::string& name, ISvcLocator* pSvcLocator);
51 virtual ~L1CaloRampMaker();
52
53 StatusCode initialize();
54 StatusCode execute();
55 StatusCode finalize();
56
57 private:
58 // properties
59 std::string m_triggerTowerContainerName; // name of transient TriggerTower container
60 std::string m_outputFolderName;
62 std::map<int, int> m_specialChannelRange; // upper limit for coolIds (sick TBB)
63 bool m_doLAr; // LAr calibration run
64 bool m_doTile; // Tile calibration run
65 bool m_isGain1; // correct energy for gain 1 runs
66 bool m_isOvEmb; // Overlap Barrel
67 bool m_isOvEmec; // Overlap EndCap
68 bool m_isFcalLowEta; // FCAL low eta run
69 bool m_isFcalHighEta; // FCAL high eta run
70 bool m_checkProvenance; // check if OFC iteration failed
71 unsigned int m_nEventsPerStep; // events per energy step
72 unsigned int m_nSteps; // number of energy steps
73 int m_fadcSaturationCut; // cut on FADC counts
74 double m_tileSaturationCut; // cut on Tile TT Et in GeV
75 ToolHandle<LVL1::IL1TriggerTowerToolRun3> m_ttTool; // Handle to L1TriggerTowerTool.
76
77
78 ToolHandle<LVL1::IL1CaloxAODOfflineTriggerTowerTools> m_xAODTTTools;
79 ToolHandle<LVL1::IL1CaloOfflineTriggerTowerTools> m_jmTools;
80
81
82 unsigned int m_nEvent;
84 unsigned int m_nTTs;
85
87
88 std::unique_ptr<L1CaloRampDataContainer> m_rampDataContainer;
89
90 void setupRampDataContainer(const xAOD::TriggerTowerContainer* triggerTowerContainer);
92 double getCaloEnergy(const xAOD::TriggerTower* tt);
93 void checkProvenance(const xAOD::TriggerTower* tt);
94
95 bool validTower(const bool& isTile );
96
97 // stores coolid vs. number of failed ofc iterations
98 std::map<unsigned int, std::pair<unsigned int, double> > m_mapBadOFCIteration;
99
100 SG::ReadCondHandleKey<CondAttrListCollection> m_strategy{ this, "TRIGGER", "/TRIGGER/Receivers/Conditions/Strategy", "Strategy" };
101
102 SG::ReadCondHandleKey<L1CaloPprChanCalibContainer> m_pprChanCalibContainer{ this, "InputKeyCond", "L1CaloPprChanCalibContainer"};
103 SG::ReadCondHandleKey<L1CaloPprDisabledChannelContainerRun2> m_pprDisabledChannelContainer{ this, "InputKeyDisabledChannel", "L1CaloPprDisabledChannelContainerRun2"};
104
105
106 SG::ReadCondHandleKey<LArOnOffIdMapping> m_cablingKey{this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"};
107 SG::ReadHandleKey<CaloCellContainer> m_caloCellsKey{ this, "CaloCellsKey", "AllCalo", "CaloCellContainer key" };
108
109
110
111
112
113
114
115
116
117
118
119
120};
121
122#endif //L1CALORAMPMAKER_H
Property holding a SG store/key/clid from which a ReadHandle is made.
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
Helper class for offline TT identifiers.
Definition CaloLVL1_ID.h:66
Container of L1CaloRampData objects.
ToolHandle< LVL1::IL1CaloxAODOfflineTriggerTowerTools > m_xAODTTTools
const CaloLVL1_ID * m_lvl1Helper
double getCaloEnergy(const xAOD::TriggerTower *tt)
std::string m_gainStrategyFolder
ToolHandle< LVL1::IL1CaloOfflineTriggerTowerTools > m_jmTools
std::string m_triggerTowerContainerName
std::map< unsigned int, std::pair< unsigned int, double > > m_mapBadOFCIteration
std::unique_ptr< L1CaloRampDataContainer > m_rampDataContainer
SG::ReadCondHandleKey< CondAttrListCollection > m_strategy
unsigned int m_nTTs
bool validTower(const bool &isTile)
SG::ReadHandleKey< CaloCellContainer > m_caloCellsKey
StatusCode finalize()
unsigned int m_nEventsPerStep
std::string m_outputFolderName
void setupRampDataContainer(const xAOD::TriggerTowerContainer *triggerTowerContainer)
double getTriggerTowerEnergy(const xAOD::TriggerTower *tt, SG::ReadCondHandle< L1CaloPprChanCalibContainer > pprCond)
void checkProvenance(const xAOD::TriggerTower *tt)
ToolHandle< LVL1::IL1TriggerTowerToolRun3 > m_ttTool
unsigned int m_nEvent
SG::ReadCondHandleKey< L1CaloPprChanCalibContainer > m_pprChanCalibContainer
SG::ReadCondHandleKey< L1CaloPprDisabledChannelContainerRun2 > m_pprDisabledChannelContainer
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
std::map< int, int > m_specialChannelRange
unsigned int m_nSteps
Property holding a SG store/key/clid from which a ReadHandle is made.
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
TriggerTowerContainer_v2 TriggerTowerContainer
Define the latest version of the TriggerTower container.
TriggerTower_v2 TriggerTower
Define the latest version of the TriggerTower class.
void initialize()