ATLAS Offline Software
LArCaliWaveBuilderXtalk.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 /************************************************************
6 
7  This algorithm produces a LArCaliWaveContainer
8  out of a LArCalibDigitContainer. They key of the
9  containers that are to be processed is defined
10  by the jobOption 'KeyList'. The resulting
11  containers are put in the DetectorStore with the
12  same keys.
13 
14  This algorithm was largely inspired from the LArCaliWaveBuilder
15  algorithm; it however allows to reconstruct channels
16  that were not pulsed,in order to study cross talk
17  The definition of the desired pattern is given in the job
18  options
19 
20  Different calibration pattern are available :
21  - EM Barrel : StripSingle[1-4] / MiddleSingle[1-8] / BackSingle[1-4]
22  - EM Endcap : StripSingle[1-4] / MiddleSingle[1-4] / BackSingle[1-4]
23  and MiddleSingle[1-4] / BackSingle[1-4] for inner wheel
24  For EM endcap special crates studies, set SpecialCrate to true and
25  SpecialRegion to InnerWheel or OuterWheel.
26 
27  FeedthroughPul is used to find the relevant calibration pattern. Empty
28  ntuples/histograms may be produced with badly set FeedthroughPul, or if
29  there are bad channels or disconnected FEBs in FeedthroughPul.
30 
31 
32  NB.
33  Currently the calibration patterns are tested for one particular channel,
34  hard-coded in initializeCabling(), and taken in the feed-through FeedthroughPul.
35  The algorithm should be runnned for each calibration pattern and each
36  subdetectors.
37  This could, for example, be improved by:
38  (1) Using directly calibration line channels to detect the pattern. This
39  would avoid to specify, and look at, a particular feed-through.
40  One could also set dynamicaly the different patterns, with job options
41  (for example in the same way that they are set for calibration runs:
42  four words of 32 bits).
43  (2) Create one LArCaliWaveContainer per pattern (gathered inside a vector
44  for exemple). This should permit to reconstruct all patterns in one pass.
45 
46 
47 ************************************************************/
48 
49 #ifndef LARCALIWAVEBUILDERXTALK_H
50 #define LARCALIWAVEBUILDERXTALK_H
52 #include "GaudiKernel/ToolHandle.h"
59 
60 
63 
64 #include <vector>
65 #include <string>
66 #include <map>
67 
69 {
70  public:
71  LArCaliWaveBuilderXtalk(const std::string & name, ISvcLocator * pSvcLocator);
73 
74  //standard algorithm methods
77  StatusCode stop();
78  StatusCode finalize(){ return StatusCode::SUCCESS;}
79 
80  private:
81 
82  SG::ReadCondHandleKey<LArOnOffIdMapping> m_cablingKey{this, "OnOffMap", "LArOnOffIdMap", "SG key for mapping object"};
83  SG::ReadCondHandleKey<LArCalibLineMapping> m_CLKey{this, "CalibLineKey", "LArCalibLineMap", "SG calib line key"};
84 
86 
87  std::vector<std::string> m_keylist;
88  std::vector<std::string> m_keylistproperty;
89  std::string m_keyoutput;
90  std::string m_groupingType;
91 
92  // Intermediate caching objects
93  typedef std::map<int, LArCaliWave> WaveMap;
96 
98 
99  std::vector<HWIdentifier> m_CalibLineHW;
100 
101  int m_feedthroughNumber; // FT which is used to check the calibration pattern
102  int m_posOrNeg; // A/C side
103  int m_barrelEndcap; // Barrel / Endcap
104 
105  std::string m_calibPattern;
106  std::string m_partition;
107 
108  bool m_isSpecialCrate; // for special crates
109  std::string m_emecSpecialRegion; // OuterWheel / InnerWheel
110  bool m_isInnerWheel; // for EMEC inner wheel
111 
112  unsigned m_event_counter;
113  int m_NStep;
115  float m_dt;
116  int m_ADCsatur; // Saturation check
117 
118  int m_cutOnSample; // Cut waves (0 = no cut)
119 };
120 
121 #endif
122 
LArCaliWaveBuilderXtalk::m_barrelEndcap
int m_barrelEndcap
Definition: LArCaliWaveBuilderXtalk.h:145
LArCaliWaveBuilderXtalk::m_emecSpecialRegion
std::string m_emecSpecialRegion
Definition: LArCaliWaveBuilderXtalk.h:151
LArEM_ID.h
LArCaliWaveBuilderXtalk::execute
StatusCode execute()
Definition: LArCaliWaveBuilderXtalk.cxx:357
LArCaliWaveBuilderXtalk::LArCaliWaveBuilderXtalk
LArCaliWaveBuilderXtalk(const std::string &name, ISvcLocator *pSvcLocator)
Definition: LArCaliWaveBuilderXtalk.cxx:25
LArCaliWaveBuilderXtalk::WaveMap
std::map< int, LArCaliWave > WaveMap
Definition: LArCaliWaveBuilderXtalk.h:135
LArCaliWaveContainer.h
LArCaliWaveBuilderXtalk::m_feedthroughNumber
int m_feedthroughNumber
Definition: LArCaliWaveBuilderXtalk.h:143
LArCaliWaveBuilderXtalk::m_isSpecialCrate
bool m_isSpecialCrate
Definition: LArCaliWaveBuilderXtalk.h:150
LArCalibLineMapping
Definition: LArCalibLineMapping.h:17
ReadCellNoiseFromCool.cabling
cabling
Definition: ReadCellNoiseFromCool.py:154
LArCaliWaveBuilderXtalk::m_dt
float m_dt
Definition: LArCaliWaveBuilderXtalk.h:157
LArCaliWaveBuilderXtalk::m_posOrNeg
int m_posOrNeg
Definition: LArCaliWaveBuilderXtalk.h:144
LArCaliWaveBuilderXtalk::m_keylistproperty
std::vector< std::string > m_keylistproperty
Definition: LArCaliWaveBuilderXtalk.h:130
LArCaliWaveBuilderXtalk::finalize
StatusCode finalize()
Definition: LArCaliWaveBuilderXtalk.h:120
LArCaliWaveBuilderXtalk::m_isInnerWheel
bool m_isInnerWheel
Definition: LArCaliWaveBuilderXtalk.h:152
LArCaliWaveBuilderXtalk::m_waves
WaveContainer m_waves
Definition: LArCaliWaveBuilderXtalk.h:137
LArCaliWaveBuilderXtalk::m_NStep
int m_NStep
Definition: LArCaliWaveBuilderXtalk.h:155
LArConditionsContainer< WaveMap >
LArCaliWaveBuilderXtalk::m_cablingKey
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
Definition: LArCaliWaveBuilderXtalk.h:124
AthAlgorithm.h
LArCaliWaveBuilderXtalk::m_event_counter
unsigned m_event_counter
Definition: LArCaliWaveBuilderXtalk.h:154
LArCaliWaveBuilderXtalk::m_SamplingPeriod
float m_SamplingPeriod
Definition: LArCaliWaveBuilderXtalk.h:156
LArOnOffIdMapping.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
LArCaliWaveBuilderXtalk::m_ADCsatur
int m_ADCsatur
Definition: LArCaliWaveBuilderXtalk.h:158
LArAccumulatedCalibDigitContainer.h
LArCaliWaveBuilderXtalk::m_partition
std::string m_partition
Definition: LArCaliWaveBuilderXtalk.h:148
LArCaliWaveBuilderXtalk::m_CLKey
SG::ReadCondHandleKey< LArCalibLineMapping > m_CLKey
Definition: LArCaliWaveBuilderXtalk.h:125
AthAlgorithm
Definition: AthAlgorithm.h:47
LArCaliWaveBuilderXtalk::m_CalibLineHW
std::vector< HWIdentifier > m_CalibLineHW
Definition: LArCaliWaveBuilderXtalk.h:141
ReadCondHandleKey.h
LArCaliWaveBuilderXtalk
Definition: LArCaliWaveBuilderXtalk.h:69
LArCaliWaveBuilderXtalk::~LArCaliWaveBuilderXtalk
~LArCaliWaveBuilderXtalk()
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
LArCaliWaveBuilderXtalk::initializeCabling
StatusCode initializeCabling(const LArOnOffIdMapping *cabling, const LArCalibLineMapping *clCont)
Definition: LArCaliWaveBuilderXtalk.cxx:169
LArOnlineID
Definition: LArOnlineID.h:20
LArCaliWaveBuilderXtalk::initialize
StatusCode initialize()
Definition: LArCaliWaveBuilderXtalk.cxx:73
SG::ReadCondHandleKey< LArOnOffIdMapping >
LArCaliWaveBuilderXtalk::m_calibPattern
std::string m_calibPattern
Definition: LArCaliWaveBuilderXtalk.h:147
ILArPedestal.h
LArCaliWaveBuilderXtalk::m_groupingType
std::string m_groupingType
Definition: LArCaliWaveBuilderXtalk.h:132
LArCaliWaveBuilderXtalk::m_keylist
std::vector< std::string > m_keylist
Definition: LArCaliWaveBuilderXtalk.h:129
LArCaliWaveBuilderXtalk::m_keyoutput
std::string m_keyoutput
Definition: LArCaliWaveBuilderXtalk.h:131
LArCalibLineMapping.h
LArCaliWaveBuilderXtalk::m_onlineHelper
const LArOnlineID * m_onlineHelper
Definition: LArCaliWaveBuilderXtalk.h:139
LArCaliWaveBuilderXtalk::stop
StatusCode stop()
Definition: LArCaliWaveBuilderXtalk.cxx:565
LArOnlineID.h
LArOnOffIdMapping
Definition: LArOnOffIdMapping.h:20
LArCaliWaveBuilderXtalk::WaveContainer
LArConditionsContainer< WaveMap > WaveContainer
Definition: LArCaliWaveBuilderXtalk.h:136
LArCaliWaveBuilderXtalk::m_cutOnSample
int m_cutOnSample
Definition: LArCaliWaveBuilderXtalk.h:160