ATLAS Offline Software
Loading...
Searching...
No Matches
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
75 StatusCode initialize();
76 StatusCode execute();
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
85 StatusCode initializeCabling(const LArOnOffIdMapping* cabling, const LArCalibLineMapping *clCont);
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
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
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
LArCaliWaveBuilderXtalk(const std::string &name, ISvcLocator *pSvcLocator)
std::vector< std::string > m_keylistproperty
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
std::map< int, LArCaliWave > WaveMap
SG::ReadCondHandleKey< LArCalibLineMapping > m_CLKey
const LArOnlineID * m_onlineHelper
StatusCode initializeCabling(const LArOnOffIdMapping *cabling, const LArCalibLineMapping *clCont)
std::vector< std::string > m_keylist
LArConditionsContainer< WaveMap > WaveContainer
std::vector< HWIdentifier > m_CalibLineHW