JepJemMonitorAlgorithm.h 2.05 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/*
  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
*/
#ifndef TRIGT1CALOMONITORING_JEPJEMMONITORALGORITHM_H
#define TRIGT1CALOMONITORING_JEPJEMMONITORALGORITHM_H

#include "AthenaMonitoring/AthMonitorAlgorithm.h"
#include "AthenaMonitoringKernel/Monitored.h"
#include "StoreGate/ReadHandleKey.h"

#include "xAODTrigL1Calo/JEMEtSumsContainer.h"
#include "xAODTrigL1Calo/JetElementContainer.h"
#include "xAODTrigL1Calo/JEMTobRoIContainer.h"
#include "TrigT1CaloUtils/DataError.h"
#include "TrigT1CaloUtils/CoordToHardware.h"

// maybe??
#include "TrigT1Interfaces/JEPRoIDecoder.h"
#include "TrigT1Interfaces/TrigT1CaloDefs.h"

class JepJemMonitorAlgorithm : public AthMonitorAlgorithm {
public:JepJemMonitorAlgorithm( const std::string& name, ISvcLocator* pSvcLocator );
  virtual ~JepJemMonitorAlgorithm()=default;
  virtual StatusCode initialize() override;
  virtual StatusCode fillHistograms( const EventContext& ctx ) const override;

  struct MonitorJepJemJE {
Shaun Roe's avatar
Shaun Roe committed
28
    const xAOD::JetElement* jelement{};
29
30

    // some modified/derived information
Shaun Roe's avatar
Shaun Roe committed
31
32
33
    double eta{};
    double phi{};
   
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
  };


private:

  StringProperty m_packageName{this,"PackageName","JepJemMonitor","group name for histograming"};

  // The following enums are set in the python in order to get consistent histogram bins
  // only add here if they are used in the .cxx
  Gaudi::Property<int> m_maxSlices{this,"s_maxSlices", 5,  "Maximum number of slices"};

  // container keys including steering parameter and description
  SG::ReadHandleKey<xAOD::TriggerTowerContainer> m_xAODTriggerTowerContainerName{this, "BS_xAODTriggerTowerContainer",LVL1::TrigT1CaloDefs::xAODTriggerTowerLocation,"Trigger Tower Container"};
  SG::ReadHandleKey<xAOD::JetElementContainer> m_JetElementLocation{this, "JetElementLocation" ,LVL1::TrigT1CaloDefs::JetElementLocation,"Jet Element Container"};
  
  StatusCode fillJepJemJEVectors(SG::ReadHandle<xAOD::JetElementContainer> &jetElements,
						    std::vector<MonitorJepJemJE> &monJepJemJEs_em, std::vector<MonitorJepJemJE> &monJepJemJEs_had
						    ) const;

};
#endif