|
ATLAS Offline Software
|
Go to the documentation of this file.
51 return StatusCode::FAILURE;
95 return StatusCode::SUCCESS;
106 return StatusCode::SUCCESS;
114 return StatusCode::SUCCESS;
121 std::set<Identifier> usedCells;
128 <<
", eta " <<
jet->eta()
129 <<
", phi " <<
jet->phi()
130 <<
", constituents " <<
jet->numConstituents());
134 <<
", eta " <<
jet->eta()
135 <<
", phi " <<
jet->phi()
136 <<
", constituents " <<
jet->numConstituents());
147 return StatusCode::SUCCESS;
157 if(
jet.numConstituents() == 0 || !
jet.getConstituents().isValid())
return StatusCode::SUCCESS;
161 ToolHandle<GenericMonitoringTool> tileJetChannTimeDQTool =
getGroup(
"TileJetChanTimeDQ");
163 std::array<std::string, 2> gainName{
"LG",
"HG"};
164 std::array<std::string, 5>
partitionName{
"AUX",
"LBA",
"LBC",
"EBA",
"EBC"};
176 if (usedCells.find(
id) == usedCells.end()) {
177 usedCells.insert(
id);
194 unsigned int qbit1 = tilecell->
qbit1();
195 unsigned int qbit2 = tilecell->
qbit2();
218 float ene1 = is_good1 ? tilecell->
ene1() : -1;
219 float ene2 = is_good2 ? tilecell->
ene2() : -1;
224 <<
", qbit " << qbit1 <<
"/" << qbit2
225 <<
", is_bad " << bad1 <<
"/" << bad2
226 <<
", isGood " << is_good1
228 <<
", ene " << tilecell->
energy());
238 fill(
"TileJetChanTime1D", channelTime);
257 <<
", time: " << tilecell->
time1());
261 fill(
"TileJetChanTime", channelTime);
264 std::string nameNoScint(
"channelTime" +
partitionName[ros1] +
"_NoScint");
266 fill(
"TileJetChanTime", channelTimeNoScint);
276 fill(
"TileJetChanTime1D", channelTime);
295 <<
", time: " << tilecell->
time2()
296 <<
" (qbit2 " << qbit2 <<
", ch1 " <<
chan1 <<
", ene1 " << ene1 <<
", bad1 " << bad1 <<
", qbit1 " << qbit1 <<
")" );
300 fill(
"TileJetChanTime", channelTime);
303 std::string nameNoScint(
"channelTime" +
partitionName[ros2] +
"_NoScint");
305 fill(
"TileJetChanTime", channelTimeNoScint);
321 int evenChannnel = (
chan1 % 2 == 0) ?
chan1 : chan2;
325 fill(
"TileJetEnergyDiff", energyDifference);
328 if ((bad1 < 2) && (bad2 < 2)) {
335 <<
", ene " << tilecell->
energy()
336 <<
", index " <<
index
337 <<
", time: " << tilecell->
time());
342 fill(
"TileJetCellTime", cellTime1);
352 fill(
"TileJetCellEnergyProfile", energyIndex1, cellEnergy1);
357 fill(
"TileJetCellEnergy", cellEnergy1);
369 return StatusCode::SUCCESS;
375 std::array<std::string, 3> sample_Name_LB{
"A",
"BC",
"D"};
376 std::array<std::string, 4> sample_Name_EB{
"A",
"B",
"D",
"E"};
379 s_name = sample_Name_LB[
sample];
384 s_name = sample_Name_EB[
sample];
458 if (
bad > 2)
return false;
492 std::unique_ptr< xAOD::JetContainer > jetsCopy(jetsSC.first);
493 std::unique_ptr< xAOD::ShallowAuxContainer > jetsCopyAux(jetsSC.second);
501 for (
auto jet : *jetsCopy) {
ToolHandle< IJetSelector > m_jetCleaningTool
def retrieve(aClass, aKey=None)
IdentifierHash onl2() const
cell online identifier 2
float time1(void) const
get time of first PMT
Gaudi::Property< float > m_jetTrackingEtaLimit
bool passesJvt(const xAOD::Jet &jet) const
bool TileGap_connected(const Identifier &id) const
Gaudi::Property< float > m_energyE3Max
Gaudi::Property< float > m_energyE4Min
Gaudi::Property< float > m_energyChanMax
float time2(void) const
get time of second PMT
Gaudi::Property< float > m_energyE3Min
Gaudi::Property< float > m_gainE1
Gaudi::Property< float > m_jetEtaMax
StatusCode accept(const xAOD::Muon *mu)
float ene1(void) const
get energy of first PMT
This class groups all DetDescr information related to a CaloCell. Provides a generic interface for al...
const TileHWID * m_tileHWID
int sample(const Identifier &id) const
Gaudi::Property< std::vector< float > > m_cellEnergyUpperLimitsLG
Gaudi::Property< bool > m_doJetCleaning
int tower(const Identifier &id) const
StatusCode fillTimeHistograms(const xAOD::Jet &jet, uint32_t lumiBlock, std::set< Identifier > &usedCells) const
#define ATH_MSG_VERBOSE(x)
float time() const
get time (data member)
@ LAr
The LAr calorimeter.
int channel(const HWIdentifier &id) const
extract channel field from HW identifier
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
SG::ReadHandleKey< CaloCellContainer > m_caloCellContainerKey
def timer(name, disabled=False)
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
static const unsigned int MAX_DRAWER
Number of drawers in ROS 1-4.
bool isGoodChannel(int part, int module, int channel, uint32_t bad, unsigned int qbit, Identifier id) const
double energy() const
get energy (data member)
@ Error
The sub-detector issued an error.
int ros(const HWIdentifier &id) const
extract ros field from HW identifier
Base class for Athena Monitoring Algorithms.
IdentifierHash onl1() const
cell online identifier 1
Gaudi::Property< float > m_gainE3
Gaudi::Property< float > m_energyDiffThreshold
Description of a calorimeter cluster.
Gaudi::Property< float > m_jetPtMin
unsigned int findIndex(const int gain, const float energy) const
bool isGoodEvent(const EventContext &ctx) const
int module(const Identifier &id) const
Helper class to provide type-safe access to aux data.
SG::ReadHandleKey< xAOD::JetContainer > m_jetContainerKey
Gaudi::Property< float > m_energyE2Min
::StatusCode StatusCode
StatusCode definition for legacy code.
const TileCablingService * m_cabling
TileCabling instance.
const CaloDetDescrElement * caloDDE() const
get pointer to CaloDetDescrElement (data member)
Gaudi::Property< bool > m_do1DHistograms
ToolHandle< IJetUpdateJvt > m_jvt
#define CHECK(...)
Evaluate an expression and check for errors.
uint8_t qbit1(void) const
get quality bits of first PMT (data member)
Gaudi::Property< float > m_energyE2Max
void fill(const ToolHandle< GenericMonitoringTool > &groupHandle, std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &&variables) const
Fills a vector of variables to a group by reference.
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
static const unsigned int MAX_ROS
Number of ROSs
Gaudi::Property< float > m_energyE4Max
SG::ReadHandle< xAOD::EventInfo > GetEventInfo(const EventContext &) const
Return a ReadHandle for an EventInfo object (get run/event numbers, etc.)
int gain1(void) const
get gain of first PMT
void fill(const ToolHandle< GenericMonitoringTool > &tool, T &&... variables)
float eneDiff(void) const
all get methods
const CaloClusterCellLink * getCellLinks() const
Get a pointer to the CaloClusterCellLink object (const version)
virtual bool isValid() override final
Can the handle be successfully dereferenced?
Gaudi::Property< float > m_energyE1Min
virtual StatusCode initialize() override
initialize
Gaudi::Property< bool > m_doEnergyDiffHistograms
Gaudi::Property< bool > m_doEventCleaning
Gaudi::Property< float > m_gainE4
std::string to_string(const DetectorType &type)
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
Identifier ID() const
get ID (from cached data member) non-virtual and inline for fast access
Gaudi::Property< float > m_energyE1Max
Gaudi::Property< bool > m_do2DHistograms
std::pair< std::unique_ptr< T >, std::unique_ptr< ShallowAuxContainer > > shallowCopyContainer(const T &cont, [[maybe_unused]] const EventContext &ctx)
Function making a shallow copy of a constant container.
virtual StatusCode initialize() override
initialize
Gaudi::Property< float > m_jvtThreshold
HWIdentifier adc_id(int ros, int drawer, int channel, int adc) const
adc HWIdentifer
uint8_t qbit2(void) const
get quality bits of second PMT (data member)
static std::string getDrawerString(unsigned int ros, unsigned int drawer)
Return the drawer name, e.g.
int gain2(void) const
get gain of second PMT
@ Tile
The Tile calorimeter.
float ene2(void) const
get energy of second PMT
bool isDisconnected(int ros, int drawer, int channel) const
Data object for each calorimeter readout cell.
#define ATH_MSG_WARNING(x)
Gaudi::Property< float > m_gainE2
Gaudi::Property< float > m_energyChanMin
ToolHandle< ITileBadChanTool > m_tileBadChanTool
EventFlagErrorState errorState(EventFlagSubDet subDet) const
Get the error state for a particular sub-detector.
std::string sampleName(const int ros, const int sample, const int tower) const
Gaudi::Property< float > m_gain
4-vector of jet constituent at the scale used during jet finding.
virtual ~TileJetMonitorAlgorithm()
Declare a monitored scalar variable.
Handle class for reading from StoreGate.
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
Gaudi::Property< float > m_jetPtMax
bool isGoodJet(const xAOD::Jet &jet) const
Gaudi::Property< std::vector< float > > m_cellEnergyUpperLimitsHG
const T * get(const ReadHandleKey< T > &key)
Convenience function to retrieve an object given a ReadHandleKey.
TileJetMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Gaudi::Property< bool > m_doEnergyProfiles
bool matchesEnergyRange(const int sample, const int tower, const float energy, const int gain) const
ToolHandle< ECUtils::IEventCleaningTool > m_eventCleaningTool
const ToolHandle< GenericMonitoringTool > & getGroup(const std::string &name) const
Get a specific monitoring tool from the tool handle array.