ATLAS Offline Software
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
D3PD::CaloCellDetailsFillerTool Class Reference

Block filler tool for EM samplings from a CaloCluster. More...

#include <CaloCellDetailsFillerTool.h>

Inheritance diagram for D3PD::CaloCellDetailsFillerTool:
Collaboration diagram for D3PD::CaloCellDetailsFillerTool:

Public Member Functions

 CaloCellDetailsFillerTool (const std::string &type, const std::string &name, const IInterface *parent)
 Standard Gaudi tool constructor. More...
 
virtual StatusCode initialize () override
 
virtual StatusCode book () override
 Book variables for this block. More...
 
virtual StatusCode fill (const CaloCell &p) override
 Fill one block — type-safe version. More...
 
virtual StatusCode configureD3PD (IAddVariable *tree, const std::type_info &ti)
 Configure during initialization: type-check. More...
 
StatusCode configureD3PD (IAddVariable *tree)
 Configure the parent tree. More...
 
virtual StatusCode fillUntyped (const void *p, bool again=false)
 Fill one block. More...
 
virtual StatusCode fillAgain (const CaloCell &p)
 Fill one block, after AGAIN has been returned (type-safe). More...
 
virtual StatusCode addVariable (const std::string &name, const std::type_info &ti, void *&ptr, const std::string &docstring="", const void *defval=0)
 Add a variable to the tuple. More...
 
template<class T >
StatusCode addVariable (const std::string &name, T *&ptr, const std::string &docstring="")
 Make the template implementation from IAddVariable visible. More...
 
template<class T , class U >
StatusCode addVariable (const std::string &name, T *&ptr, const std::string &docstring, const U &defval)
 Make the template implementation from IAddVariable visible. More...
 
virtual StatusCode addVariable (const std::string &name, const std::type_info &ti, void *&ptr, const std::string &docstring="", const void *defval=0)=0
 Make the template implementation from IAddVariable visible. More...
 
template<class T >
StatusCode addVariable (const std::string &name, T *&ptr, const std::string &docstring="")
 Add a variable to the tuple. More...
 
template<class T , class U >
StatusCode addVariable (const std::string &name, T *&ptr, const std::string &docstring, const U &defval)
 Add a variable to the tuple. More...
 
virtual StatusCode addDimensionedVariable (const std::string &name, const std::type_info &ti, void *&ptr, const std::string &dim, const std::string &docstring="", const void *defval=0)
 Add a variable to the tuple. More...
 
template<class T >
StatusCode addDimensionedVariable (const std::string &name, T *&ptr, const std::string &dim, const std::string &docstring="")
 Add a variable to the tuple. More...
 
template<class T , class U >
StatusCode addDimensionedVariable (const std::string &name, T *&ptr, const std::string &dim, const std::string &docstring, const U &defval)
 Add a variable to the tuple. More...
 
virtual StatusCode addDimensionedVariable (const std::string &name, const std::type_info &ti, void *&ptr, const std::string &dim, const std::string &docstring="", const void *defval=0)=0
 Add a variable to the tuple. More...
 
template<class T >
StatusCode addDimensionedVariable (const std::string &name, T *&ptr, const std::string &dim, const std::string &docstring="")
 Add a variable to the tuple. More...
 
template<class T , class U >
StatusCode addDimensionedVariable (const std::string &name, T *&ptr, const std::string &dim, const std::string &docstring, const U &defval)
 Add a variable to the tuple. More...
 

Protected Member Functions

StatusCode configureImpl (IAddVariable *tree, const std::type_info &ti, const std::type_info &fill_ti)
 Configure during initialization: type-check. More...
 
StatusCode configureImpl (IAddVariable *tree, const std::type_info &ti, const std::vector< const std::type_info * > &tis, size_t &which)
 Configure during initialization: type-check. More...
 
StatusCode convert (void const *&p) const
 Do type conversion. More...
 

Protected Attributes

ObjectMetadata m_metadata
 Metadata about the variables created by this object. More...
 

Private Member Functions

unsigned int CaloCell_GetDetectorInfo (const CaloCell &cell) const
 

Private Attributes

bool m_saveCellGain
 
bool m_saveCellQuality
 
bool m_saveDetInfo
 
bool m_saveTimeInfo
 
bool m_saveCellStatus
 
bool m_saveId
 
bool m_savePosition
 
bool m_saveSigma
 
ToolHandle< ICaloBadChanToolm_pb_tool { this, "BadChannelTool", "CaloBadChanTool", "" }
 
SG::ReadCondHandleKey< CaloNoisem_caloNoiseKey
 Key of the CaloNoise Conditions data object. More...
 
float * m_xCells
 
float * m_yCells
 
float * m_zCells
 
int * m_detCells
 
float * m_timeCells
 
int * m_badCell
 
int * m_fitQCells
 
int * m_gainCells
 
unsigned int * m_offId
 
float * m_sigma
 
bool m_useNoise
 
std::string m_prefix
 Property: the variable prefix for this block. More...
 
std::string m_suffix
 Property: the variable prefix for this block. More...
 
std::string m_blockName
 Property: the name of this block. More...
 
TypeConverter m_converter
 Helper to do type conversions. More...
 
IAddVariablem_tree
 Reference to the block name. More...
 

Static Private Attributes

static const std::string s_emptyString
 Used to provide a default value for blockName. More...
 

Detailed Description

Block filler tool for EM samplings from a CaloCluster.

Definition at line 32 of file CaloCellDetailsFillerTool.h.

Constructor & Destructor Documentation

◆ CaloCellDetailsFillerTool()

D3PD::CaloCellDetailsFillerTool::CaloCellDetailsFillerTool ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Standard Gaudi tool constructor.

Parameters
typeThe name of the tool type.
nameThe tool name.
parentThe tool's Gaudi parent.

Definition at line 37 of file CaloCellDetailsFillerTool.cxx.

41  : BlockFillerTool<CaloCell> (type, name, parent),
42  m_saveCellGain(false), m_saveCellQuality(false),
43  m_saveDetInfo(false),m_saveTimeInfo(false),m_saveCellStatus(false),
44  m_saveId(false),m_savePosition(false), m_saveSigma(false),
45  m_useNoise(false)
46 {
47 
48  declareProperty("SaveCellGain",m_saveCellGain);
49  declareProperty("SaveCellQuality",m_saveCellQuality);
50  declareProperty("SaveDetInfo",m_saveDetInfo);
51  declareProperty("SaveTimeInfo",m_saveTimeInfo);
52  declareProperty("SaveBadCellStatus",m_saveCellStatus);
53  declareProperty("SaveId",m_saveId);
54  declareProperty("SavePositionInfo",m_savePosition);
55  declareProperty("SaveSigma",m_saveSigma);
56 
57  m_fitQCells = 0;
58  m_gainCells = 0;
59  m_xCells = 0;
60  m_yCells = 0;
61  m_zCells = 0;
62  m_detCells = 0;
63  m_timeCells = 0;
64  m_badCell = 0;
65  m_offId = 0;
66  m_sigma = 0;
67 }

Member Function Documentation

◆ addDimensionedVariable() [1/6]

StatusCode D3PD::AddVariable::addDimensionedVariable ( const std::string &  name,
const std::type_info &  ti,
void *&  ptr,
const std::string &  dim,
const std::string &  docstring = "",
const void *  defval = 0 
)
virtualinherited

Add a variable to the tuple.

Parameters
nameThe name of the variable.
typeThe type of the variable.
ptrPointer to the type of the variable. The pointer need not be initialized; the D3PD software will set the pointer prior to calling fill().
dimDimension for the variable. (Presently unimplemented!)
docstringDocumentation string for this variable.
defvalPointer to the default value to use for this variable. Null for no default (generally means to fill with zeros). Of the type given by ti. Only works for basic types.

If called from the constructor, the only effect is to clear ptr.

Implements D3PD::IAddVariable.

Definition at line 123 of file AddVariable.cxx.

129 {
130  if (!m_tree) {
131  // Called from constructor --- just initialize pointer.
132  ptr = 0;
133  return StatusCode::SUCCESS;
134  }
135 
137  ti, ptr, dim,
138  docstring, defval ) );
140  ti, ptr, dim,
141  docstring, defval);
142 }

◆ addDimensionedVariable() [2/6]

virtual StatusCode D3PD::IAddVariable::addDimensionedVariable
inherited

Add a variable to the tuple.

Parameters
nameThe name of the variable.
typeThe type of the variable.
ptrPointer to the type of the variable. The pointer need not be initialized; the D3PD software will set the pointer prior to calling fill().
dimDimension for the variable. (Presently unimplemented!)
docstringDocumentation string for this variable.
defvalPointer to the default value to use for this variable. Null for no default (generally means to fill with zeros). Of the type given by ti. Only works for basic types.

If called from the constructor, the only effect is to clear ptr.

◆ addDimensionedVariable() [3/6]

template<class T , class U >
StatusCode D3PD::IAddVariable::addDimensionedVariable ( class T  ,
class U   
)
inherited

Add a variable to the tuple.

Parameters
nameThe name of the variable.
ptrPointer to the type of the variable. The pointer need not be initialized; the D3PD software will set the pointer prior to calling fill().
dimDimension for the variable. (Presently unimplemented!)
docstringDocumentation string for this variable.
defvalPointer to the default value to use for this variable. Only works for basic types.

If called from the constructor, the only effect is to clear ptr.

◆ addDimensionedVariable() [4/6]

template<class T , class U >
StatusCode D3PD::IAddVariable::addDimensionedVariable ( const std::string &  name,
T *&  ptr,
const std::string &  dim,
const std::string &  docstring,
const U &  defval 
)
inherited

Add a variable to the tuple.

Parameters
nameThe name of the variable.
ptrPointer to the type of the variable. The pointer need not be initialized; the D3PD software will set the pointer prior to calling fill().
dimDimension for the variable. (Presently unimplemented!)
docstringDocumentation string for this variable.
defvalPointer to the default value to use for this variable. Only works for basic types.

If called from the constructor, the only effect is to clear ptr.

◆ addDimensionedVariable() [5/6]

template<class T >
StatusCode D3PD::IAddVariable::addDimensionedVariable ( class T  )
inherited

Add a variable to the tuple.

Parameters
nameThe name of the variable.
ptrPointer to the type of the variable. The pointer need not be initialized; the D3PD software will set the pointer prior to calling fill().
dimDimension for the variable. (Presently unimplemented!)
docstringDocumentation string for this variable.

If called from the constructor, the only effect is to clear ptr.

◆ addDimensionedVariable() [6/6]

template<class T >
StatusCode D3PD::IAddVariable::addDimensionedVariable ( const std::string &  name,
T *&  ptr,
const std::string &  dim,
const std::string &  docstring = "" 
)
inherited

Add a variable to the tuple.

Parameters
nameThe name of the variable.
ptrPointer to the type of the variable. The pointer need not be initialized; the D3PD software will set the pointer prior to calling fill().
dimDimension for the variable. (Presently unimplemented!)
docstringDocumentation string for this variable.

If called from the constructor, the only effect is to clear ptr.

◆ addVariable() [1/6]

StatusCode D3PD::AddVariable::addVariable ( const std::string &  name,
const std::type_info &  ti,
void *&  ptr,
const std::string &  docstring = "",
const void *  defval = 0 
)
virtualinherited

Add a variable to the tuple.

Parameters
nameThe name of the variable.
typeThe type of the variable.
ptrPointer to the type of the variable. The pointer need not be initialized; the D3PD software will set the pointer prior to calling fill().
docstringDocumentation string for this variable.
defvalPointer to the default value to use for this variable. Null for no default (generally means to fill with zeros). Of the type given by ti. Only works for basic types.

If called from the constructor, the only effect is to clear ptr.

Implements D3PD::IAddVariable.

Definition at line 85 of file AddVariable.cxx.

90 {
91  if (!m_tree) {
92  // Called from constructor --- just initialize pointer.
93  ptr = 0;
94  return StatusCode::SUCCESS;
95  }
96 
98  ti, ptr, docstring, defval ) );
100  ti, ptr, docstring, defval);
101 }

◆ addVariable() [2/6]

virtual StatusCode D3PD::IAddVariable::addVariable
inherited

Make the template implementation from IAddVariable visible.

◆ addVariable() [3/6]

template<class T , class U >
StatusCode D3PD::IAddVariable::addVariable ( class T  ,
class U   
)
inherited

Make the template implementation from IAddVariable visible.

◆ addVariable() [4/6]

template<class T , class U >
StatusCode D3PD::IAddVariable::addVariable ( const std::string &  name,
T *&  ptr,
const std::string &  docstring,
const U &  defval 
)
inherited

Add a variable to the tuple.

Parameters
nameThe name of the variable.
ptrPointer to the type of the variable. The pointer need not be initialized; the D3PD software will set the pointer prior to calling fill().
docstringDocumentation string for this variable.
defvalPointer to the default value to use for this variable. Only works for basic types.

If called from the constructor, the only effect is to clear ptr.

◆ addVariable() [5/6]

template<class T >
StatusCode D3PD::IAddVariable::addVariable ( class T  )
inherited

Make the template implementation from IAddVariable visible.

◆ addVariable() [6/6]

template<class T >
StatusCode D3PD::IAddVariable::addVariable ( const std::string &  name,
T *&  ptr,
const std::string &  docstring = "" 
)
inherited

Add a variable to the tuple.

Parameters
nameThe name of the variable.
ptrPointer to the type of the variable. The pointer need not be initialized; the D3PD software will set the pointer prior to calling fill().
docstringDocumentation string for this variable.

If called from the constructor, the only effect is to clear ptr.

◆ book()

StatusCode D3PD::CaloCellDetailsFillerTool::book ( )
overridevirtual

Book variables for this block.

Implements D3PD::BlockFillerTool< CaloCell >.

Definition at line 93 of file CaloCellDetailsFillerTool.cxx.

94 {
95  if (m_saveCellQuality) CHECK( addVariable ("QCells",m_fitQCells) ) ;
96  if (m_saveCellGain) CHECK( addVariable ("GainCells",m_gainCells) );
97 
98 
99  if (m_savePosition) {
100  CHECK( addVariable ("xCells", m_xCells) );
101  CHECK( addVariable ("yCells", m_yCells) );
102  CHECK( addVariable ("zCells", m_zCells) );
103  }
104 
105  if (m_saveDetInfo) CHECK( addVariable ("DetCells",m_detCells));
106  if (m_saveTimeInfo) CHECK( addVariable ("TimeCells",m_timeCells));
107  if (m_saveCellStatus) CHECK( addVariable ("BadCells",m_badCell));
108  if (m_saveId) CHECK( addVariable ("IdCells",m_offId) );
109 
110  if (m_saveSigma) CHECK( addVariable ("Sigma", m_sigma) );
111 
112 
113  return StatusCode::SUCCESS;
114 
115 }

◆ CaloCell_GetDetectorInfo()

unsigned D3PD::CaloCellDetailsFillerTool::CaloCell_GetDetectorInfo ( const CaloCell cell) const
private

Definition at line 161 of file CaloCellDetailsFillerTool.cxx.

162 {
163  const CaloDetDescriptor& desc = *cell.caloDDE()->descriptor();
164  const CaloCell_Base_ID& calo_id = *desc.get_calo_helper();
165  Identifier cellID = cell.ID();
166 
167  // AtlasID bit (4)
168  // 1 : lar_em
169  // 2 : lar_hec
170  // 3 : lar_fcal
171  // 4 : tile
172  unsigned ATbit1 = desc.is_lar_em() ? (1<<0) : 0;
173  unsigned ATbit2 = desc.is_lar_hec() ? (1<<1) : 0;
174  unsigned ATbit3 = desc.is_lar_fcal() ? (1<<2) : 0;
175  unsigned ATbit4 = desc.is_tile() ? (1<<3) : 0;
176  unsigned ATbit = (ATbit1 | ATbit2 | ATbit3 | ATbit4);
177 
178  //std::cout << "ATLAS Calo(EM,HEC,FCal,Tile) : " << ATbit1 << " " << ATbit2 << " " << ATbit3 << " " << ATbit4 << std::endl;
179 
180  // EM bit (5)
181  // 1-2 : sampling
182  // 0,1,2,3
183  // 0 presampler
184  // 1,2,3 each layer
185  // 3 : barrel
186  // 4 : endcap_inner
187  // 5 : endcap_outer
188  unsigned EMbit1 = 0;
189  unsigned EMbit3 = 0;
190  unsigned EMbit4 = 0;
191  unsigned EMbit5 = 0;
192  if (ATbit1) {
193  const LArEM_Base_ID& emid = *calo_id.em_idHelper();
194  EMbit1 = unsigned(emid.sampling(cellID));
195  EMbit3 = emid.is_em_barrel(cellID) ? (1<<2) : 0;
196  EMbit4 = emid.is_em_endcap_inner(cellID) ? (1<<3) : 0;
197  EMbit5 = emid.is_em_endcap_outer(cellID) ? (1<<4) : 0;
198  }
199  unsigned EMbit = (EMbit1 | EMbit3 | EMbit4 | EMbit5);
200 
201  //std::cout << "EM : " << EMbit1 << " " << EMbit3 << " " << EMbit4 << " " << EMbit5 << std::endl;
202 
203  // HEC (2)
204  // 1-2: sampling
205  // 0,1 = first wheel
206  // 2,3 = second wheel
207  unsigned HCbit1 = 0;
208  if (ATbit2) {
209  const LArHEC_Base_ID& hecid = *calo_id.hec_idHelper();
210  HCbit1 = unsigned(hecid.sampling(cellID));
211  }
212  unsigned HCbit = HCbit1;
213 
214  //std::cout << "HEC : " << HCbit1 << std::endl;
215 
216  // FCal (2)
217  // 1-2 : module
218  // 1,2,3
219  // 1 EM
220  // 2,3 Hadronic
221  //
222  unsigned FCbit1 = 0;
223  if (ATbit3) {
224  const LArFCAL_Base_ID& fcalid = *calo_id.fcal_idHelper();
225  FCbit1 = unsigned(fcalid.module(cellID));
226  }
227  unsigned FCbit = FCbit1;
228 
229  //std::cout << "FCal : " << FCbit1 << std::endl;
230 
231  // Tile bit (8)
232  // 1-3 : sample
233  // 0 = SAMP_A
234  // 1 = SAMP_B, SAMP_BC, SAMP_C
235  // 2 = SAMP_D
236  // 3 = SAMP_E
237  // 4 = SAMP_X
238  // 4 : barrel
239  // 5 : extbarrel
240  // 6 : gap
241  // 7 : gapscin
242  unsigned TLbit1 = 0;
243  unsigned TLbit4 = 0;
244  unsigned TLbit5 = 0;
245  unsigned TLbit6 = 0;
246  unsigned TLbit7 = 0;
247  if (ATbit4) {
248  const Tile_Base_ID& tileid = *calo_id.tile_idHelper();
249  TLbit1 = unsigned(tileid.sample(cellID));
250  TLbit4 = tileid.is_tile_barrel(cellID) ? (1<<3) : 0;
251  TLbit5 = tileid.is_tile_extbarrel(cellID) ? (1<<4) : 0;
252  TLbit6 = tileid.is_tile_gap(cellID) ? (1<<5) : 0;
253  TLbit7 = tileid.is_tile_gapscin(cellID) ? (1<<6) : 0;
254  }
255  unsigned TLbit = (TLbit1 | TLbit4 | TLbit5 | TLbit6 | TLbit7);
256 
257  //std::cout << "Tile : " << TLbit1 << " " << TLbit4 << " " << TLbit5 << " " << TLbit6 << " " << TLbit7 << std::endl;
258 
259  unsigned CombBit = (ATbit | (EMbit<<4) | (HCbit<<9) |
260  (FCbit<<11) | (TLbit<<13));
261 
262  return CombBit;
263 }

◆ configureD3PD() [1/2]

StatusCode D3PD::AddVariable::configureD3PD ( IAddVariable tree)
inherited

Configure the parent tree.

Parameters
treeThe parent IAddVariable instance.

Definition at line 61 of file AddVariable.cxx.

62 {
63  m_tree = tree;
64  m_metadata.clear();
65  return StatusCode::SUCCESS;
66 }

◆ configureD3PD() [2/2]

virtual StatusCode D3PD::BlockFillerTool< CaloCell >::configureD3PD ( IAddVariable tree,
const std::type_info &  ti 
)
virtualinherited

Configure during initialization: type-check.

Parameters
treeOur parent for tuple making.
tiGives the type of the object being passed to fillUntyped.

configureD3PD should check that the type of the object coming as input is compatible with what it expects, and raise an error otherwise.

◆ configureImpl() [1/2]

StatusCode D3PD::BlockFillerToolImpl::configureImpl ( IAddVariable tree,
const std::type_info &  ti,
const std::type_info &  fill_ti 
)
protectedinherited

Configure during initialization: type-check.

Parameters
treeOur parent for tuple making.
tiGives the type of the object being passed to fillUntyped.
fill_tiis the type of object that the user code will expect.

This is the common implementation for the configureD3PD method of IBlockFillerTool. It checks that the type of the object coming as input is compatible with what the user code is expecting, and raises an error otherwise.

Definition at line 55 of file BlockFillerToolImpl.cxx.

58 {
60  CHECK( m_converter.init (ti, fill_ti) );
61 
62  return StatusCode::SUCCESS;
63 }

◆ configureImpl() [2/2]

StatusCode D3PD::BlockFillerToolImpl::configureImpl ( IAddVariable tree,
const std::type_info &  ti,
const std::vector< const std::type_info * > &  tis,
size_t &  which 
)
protectedinherited

Configure during initialization: type-check.

Parameters
treeOur parent for tuple making.
tiGives the type of the object being passed to fillUntyped.
tisList of possible input types that we can accept.
[out]whichIndex of the accepted type.

This is the common implementation for the configureD3PD method of IBlockFillerTool. It checks that the type of the object coming as input is compatible with what the user code is expecting, and raises an error otherwise.

This version allows for one of a set of types to match. If successful, WHICH is set to the index (0-based) of the matching type.

Definition at line 83 of file BlockFillerToolImpl.cxx.

87 {
89  CHECK( m_converter.init (ti, tis, which) );
90  return StatusCode::SUCCESS;
91 }

◆ convert()

StatusCode D3PD::BlockFillerToolImpl::convert ( void const *&  p) const
protectedinherited

Do type conversion.

Parameters
p[in,out]Pointer to convert.

On entry, p is a pointer to an object of the type that was passed into configureImpl as ti. Convert the pointer to point to an object of the type that was given as fill_ti. If the conversion fails, the pointer is set to 0 (and FAILURE is returned).

Definition at line 105 of file BlockFillerToolImpl.cxx.

106 {
108  if (!p) {
109  REPORT_MESSAGE (MSG::ERROR)
110  << "Pointer conversion from " << m_converter.srcName() << " to "
111  << m_converter.dstName() << "failed.";
112  return StatusCode::FAILURE;
113  }
114  return StatusCode::SUCCESS;
115 }

◆ fill()

StatusCode D3PD::CaloCellDetailsFillerTool::fill ( const CaloCell p)
overridevirtual

Fill one block — type-safe version.

Parameters
pThe input object.

This is called once per object. The caller is responsible for arranging that all the pointers for booked variables are set appropriately upon entry.

Implements D3PD::BlockFillerTool< CaloCell >.

Definition at line 119 of file CaloCellDetailsFillerTool.cxx.

120 {
121  const CaloCell* cell = &c;
122 
123 
124  Identifier id = cell->ID();
125 
126  if (m_savePosition) {
127  *m_xCells = cell->x() ;
128  *m_yCells = cell->y() ;
129  *m_zCells = cell->z() ;
130  if (std::abs (*m_zCells) < 1e-8) *m_zCells = 0;
131  }
132 
133 // pack into one work the quality and provenance information
134 
135  if (m_saveCellQuality) {
136  int quality = ( (cell->quality()&0xFFFF) | ((cell->provenance()&0xFFFF) <<16));
137  *m_fitQCells = quality;
138  }
139  if (m_saveCellGain) *m_gainCells = cell->gain();
140  if (m_saveTimeInfo) *m_timeCells =cell->time() ;
141 
142  if (m_saveDetInfo)
144 
145 
146  if (m_saveId) *m_offId = id.get_identifier32().get_compact() ;
147  if (m_saveCellStatus) *m_badCell = m_pb_tool->caloStatus(id).packedData() ;
148 
149  if (!m_caloNoiseKey.empty()) {
151  *m_sigma = caloNoise-> getNoise(cell->ID(), cell->gain());
152  }
153 
154  return StatusCode::SUCCESS ;
155 }

◆ fillAgain()

virtual StatusCode D3PD::BlockFillerTool< CaloCell >::fillAgain ( const CaloCell p)
virtualinherited

Fill one block, after AGAIN has been returned (type-safe).

Parameters
pThe input object.

Once fill returns AGAIN, the parent should call fillAgain with the same arguments. This continues until fillAgain returns something other than AGAIN.

By default, this just calls fill().

◆ fillUntyped()

virtual StatusCode D3PD::BlockFillerTool< CaloCell >::fillUntyped ( const void *  p,
bool  again = false 
)
virtualinherited

Fill one block.

Parameters
pThe input object.
againSet if this is a subsequent call requested by an AGAIN return

This is called once per object. The type of the object at which p points is given by the ti argument to configureD3PD. The caller is responsible for arranging that all the pointers for booked variables are set appropriately upon entry.

If the return status is the special code AGAIN (defined above), then this filler tool wants to make multiple entries. The parent should set up to capture a new ‘row’ and run through the list of block filler tools again, but for this tool call fillAgainUntyped instead of fillUntyped. This should be repeated as long as fillAgainUntyped returns AGAIN.

Once fillUntyped returns AGAIN, the parent should call fillUntyped with the same p argument and again set to true. This continues until fillUntyped returns something other than AGAIN.

Not all parents may support this. In that case, returning AGAIN will be treated as an error.

◆ initialize()

StatusCode D3PD::CaloCellDetailsFillerTool::initialize ( )
overridevirtual

Definition at line 70 of file CaloCellDetailsFillerTool.cxx.

71 {
72  if (m_saveCellStatus) {
73  CHECK( m_pb_tool.retrieve());
74  }
75 
76 
77  // retrieve the noise tool
78  if(m_saveSigma) m_useNoise = true;
79  if (m_useNoise) {
81  }
82  else {
83  CHECK( m_caloNoiseKey.initialize (false) );
84  }
85 
86  return StatusCode::SUCCESS;
87 }

Member Data Documentation

◆ m_badCell

int* D3PD::CaloCellDetailsFillerTool::m_badCell
private

Definition at line 93 of file CaloCellDetailsFillerTool.h.

◆ m_blockName

std::string D3PD::BlockFillerToolImpl::m_blockName
privateinherited

Property: the name of this block.

Definition at line 118 of file BlockFillerToolImpl.h.

◆ m_caloNoiseKey

SG::ReadCondHandleKey<CaloNoise> D3PD::CaloCellDetailsFillerTool::m_caloNoiseKey
private
Initial value:
{this,
"CaloNoise", "", "Calo noise object name"}

Key of the CaloNoise Conditions data object.

Typical values are '"electronicNoise', 'pileupNoise', or '"totalNoise'

Definition at line 83 of file CaloCellDetailsFillerTool.h.

◆ m_converter

TypeConverter D3PD::BlockFillerToolImpl::m_converter
privateinherited

Helper to do type conversions.

Definition at line 121 of file BlockFillerToolImpl.h.

◆ m_detCells

int* D3PD::CaloCellDetailsFillerTool::m_detCells
private

Definition at line 91 of file CaloCellDetailsFillerTool.h.

◆ m_fitQCells

int* D3PD::CaloCellDetailsFillerTool::m_fitQCells
private

Definition at line 94 of file CaloCellDetailsFillerTool.h.

◆ m_gainCells

int* D3PD::CaloCellDetailsFillerTool::m_gainCells
private

Definition at line 95 of file CaloCellDetailsFillerTool.h.

◆ m_metadata

ObjectMetadata D3PD::AddVariable::m_metadata
protectedinherited

Metadata about the variables created by this object.

Definition at line 129 of file AddVariable.h.

◆ m_offId

unsigned int* D3PD::CaloCellDetailsFillerTool::m_offId
private

Definition at line 96 of file CaloCellDetailsFillerTool.h.

◆ m_pb_tool

ToolHandle<ICaloBadChanTool> D3PD::CaloCellDetailsFillerTool::m_pb_tool { this, "BadChannelTool", "CaloBadChanTool", "" }
private

Definition at line 76 of file CaloCellDetailsFillerTool.h.

◆ m_prefix

std::string D3PD::BlockFillerToolImpl::m_prefix
privateinherited

Property: the variable prefix for this block.

Definition at line 112 of file BlockFillerToolImpl.h.

◆ m_saveCellGain

bool D3PD::CaloCellDetailsFillerTool::m_saveCellGain
private

Definition at line 67 of file CaloCellDetailsFillerTool.h.

◆ m_saveCellQuality

bool D3PD::CaloCellDetailsFillerTool::m_saveCellQuality
private

Definition at line 68 of file CaloCellDetailsFillerTool.h.

◆ m_saveCellStatus

bool D3PD::CaloCellDetailsFillerTool::m_saveCellStatus
private

Definition at line 71 of file CaloCellDetailsFillerTool.h.

◆ m_saveDetInfo

bool D3PD::CaloCellDetailsFillerTool::m_saveDetInfo
private

Definition at line 69 of file CaloCellDetailsFillerTool.h.

◆ m_saveId

bool D3PD::CaloCellDetailsFillerTool::m_saveId
private

Definition at line 72 of file CaloCellDetailsFillerTool.h.

◆ m_savePosition

bool D3PD::CaloCellDetailsFillerTool::m_savePosition
private

Definition at line 73 of file CaloCellDetailsFillerTool.h.

◆ m_saveSigma

bool D3PD::CaloCellDetailsFillerTool::m_saveSigma
private

Definition at line 74 of file CaloCellDetailsFillerTool.h.

◆ m_saveTimeInfo

bool D3PD::CaloCellDetailsFillerTool::m_saveTimeInfo
private

Definition at line 70 of file CaloCellDetailsFillerTool.h.

◆ m_sigma

float* D3PD::CaloCellDetailsFillerTool::m_sigma
private

Definition at line 97 of file CaloCellDetailsFillerTool.h.

◆ m_suffix

std::string D3PD::BlockFillerToolImpl::m_suffix
privateinherited

Property: the variable prefix for this block.

Definition at line 115 of file BlockFillerToolImpl.h.

◆ m_timeCells

float* D3PD::CaloCellDetailsFillerTool::m_timeCells
private

Definition at line 92 of file CaloCellDetailsFillerTool.h.

◆ m_tree

IAddVariable* D3PD::AddVariable::m_tree
privateinherited

Reference to the block name.

The parent IAddVariable instance.

Definition at line 143 of file AddVariable.h.

◆ m_useNoise

bool D3PD::CaloCellDetailsFillerTool::m_useNoise
private

Definition at line 99 of file CaloCellDetailsFillerTool.h.

◆ m_xCells

float* D3PD::CaloCellDetailsFillerTool::m_xCells
private

Definition at line 88 of file CaloCellDetailsFillerTool.h.

◆ m_yCells

float* D3PD::CaloCellDetailsFillerTool::m_yCells
private

Definition at line 89 of file CaloCellDetailsFillerTool.h.

◆ m_zCells

float* D3PD::CaloCellDetailsFillerTool::m_zCells
private

Definition at line 90 of file CaloCellDetailsFillerTool.h.

◆ s_emptyString

const std::string D3PD::AddVariable::s_emptyString
staticprivateinherited

Used to provide a default value for blockName.

Definition at line 41 of file AddVariable.h.


The documentation for this class was generated from the following files:
D3PD::CaloCellDetailsFillerTool::m_fitQCells
int * m_fitQCells
Definition: CaloCellDetailsFillerTool.h:94
D3PD::CaloCellDetailsFillerTool::m_saveId
bool m_saveId
Definition: CaloCellDetailsFillerTool.h:72
LArFCAL_Base_ID
Definition: LArFCAL_Base_ID.h:19
D3PD::ObjectMetadata::addDimensionedVariable
virtual StatusCode addDimensionedVariable(const std::string &name, const std::type_info &ti, void *&ptr, const std::string &dim, const std::string &docstring="", const void *defval=0)
The object doesn't support dimensioned variables at the moment, like most of the D3PDMaker code doesn...
Definition: ObjectMetadata.cxx:157
yodamerge_tmp.dim
dim
Definition: yodamerge_tmp.py:239
ReadCellNoiseFromCool.cell
cell
Definition: ReadCellNoiseFromCool.py:53
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
D3PD::CaloCellDetailsFillerTool::m_saveDetInfo
bool m_saveDetInfo
Definition: CaloCellDetailsFillerTool.h:69
D3PD::CaloCellDetailsFillerTool::m_savePosition
bool m_savePosition
Definition: CaloCellDetailsFillerTool.h:73
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
LArHEC_Base_ID
This class factors out code common between LArEM_ID and LArEM_SuperCell_ID.
Definition: LArHEC_Base_ID.h:44
LArEM_Base_ID
This class factors out code common between LArEM_ID and LArEM_SuperCell_ID.
Definition: LArEM_Base_ID.h:38
Tile_Base_ID::is_tile_gap
bool is_tile_gap(const Identifier &id) const
Definition: Tile_Base_ID.cxx:223
LArEM_Base_ID::is_em_endcap_outer
bool is_em_endcap_outer(const Identifier id) const
test if the id belongs to the EM Endcap outer wheel
D3PD::TypeConverter::dstName
std::string dstName() const
Return the name of the destination type, or an empty string.
Definition: TypeConverter.cxx:151
D3PD::AddVariable::configureD3PD
StatusCode configureD3PD(IAddVariable *tree)
Configure the parent tree.
Definition: AddVariable.cxx:61
D3PD::AddVariable::m_suffix
const std::string & m_suffix
Reference to the variable suffix.
Definition: AddVariable.h:137
tree
TChain * tree
Definition: tile_monitor.h:30
D3PD::AddVariable::m_prefix
const std::string & m_prefix
Reference to the variable prefix.
Definition: AddVariable.h:134
Tile_Base_ID::sample
int sample(const Identifier &id) const
Definition: Tile_Base_ID.cxx:171
LArFCAL_Base_ID::module
int module(const Identifier id) const
module [1,3]
Tile_Base_ID::is_tile_extbarrel
bool is_tile_extbarrel(const Identifier &id) const
Definition: Tile_Base_ID.cxx:214
LArEM_Base_ID::sampling
int sampling(const Identifier id) const
return sampling according to :
D3PD::AddVariable::addVariable
virtual StatusCode addVariable(const std::string &name, const std::type_info &ti, void *&ptr, const std::string &docstring="", const void *defval=0)
Add a variable to the tuple.
Definition: AddVariable.cxx:85
SG::VarHandleKey::empty
bool empty() const
Test if the key is blank.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:150
D3PD::AddVariable::m_tree
IAddVariable * m_tree
Reference to the block name.
Definition: AddVariable.h:143
xAOD::unsigned
unsigned
Definition: RingSetConf_v1.cxx:662
D3PD::TypeConverter::init
StatusCode init(const std::type_info &src_ti, const std::type_info &dst_ti)
Initialize the converter.
Definition: TypeConverter.cxx:51
CaloCell_Base_ID::fcal_idHelper
const LArFCAL_Base_ID * fcal_idHelper() const
access to FCAL idHelper
Definition: CaloCell_Base_ID.h:343
D3PD::CaloCellDetailsFillerTool::m_sigma
float * m_sigma
Definition: CaloCellDetailsFillerTool.h:97
D3PD::CaloCellDetailsFillerTool::m_detCells
int * m_detCells
Definition: CaloCellDetailsFillerTool.h:91
D3PD::TypeConverter::srcName
std::string srcName() const
Return the name of the source type, or an empty string.
Definition: TypeConverter.cxx:141
D3PD::AddVariable::m_metadata
ObjectMetadata m_metadata
Metadata about the variables created by this object.
Definition: AddVariable.h:129
CaloCell_Base_ID::em_idHelper
const LArEM_Base_ID * em_idHelper() const
access to EM idHelper
Definition: CaloCell_Base_ID.h:332
D3PD::CaloCellDetailsFillerTool::m_saveSigma
bool m_saveSigma
Definition: CaloCellDetailsFillerTool.h:74
D3PD::TypeConverter::convertUntyped
const void * convertUntyped(const void *p) const
Convert pointer.
Definition: TypeConverter.cxx:116
CaloCondBlobAlgs_fillNoiseFromASCII.desc
desc
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:54
Tile_Base_ID::is_tile_gapscin
bool is_tile_gapscin(const Identifier &id) const
Definition: Tile_Base_ID.cxx:268
D3PD::CaloCellDetailsFillerTool::m_xCells
float * m_xCells
Definition: CaloCellDetailsFillerTool.h:88
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
D3PD::CaloCellDetailsFillerTool::m_offId
unsigned int * m_offId
Definition: CaloCellDetailsFillerTool.h:96
Tile_Base_ID
This class factors out code common between TileID and Tile_SuperCell_ID.
Definition: Tile_Base_ID.h:39
test_pyathena.parent
parent
Definition: test_pyathena.py:15
D3PD::CaloCellDetailsFillerTool::m_saveCellGain
bool m_saveCellGain
Definition: CaloCellDetailsFillerTool.h:67
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
D3PD::ObjectMetadata::clear
void clear()
Function clearing the object.
Definition: ObjectMetadata.cxx:352
D3PD::CaloCellDetailsFillerTool::m_saveTimeInfo
bool m_saveTimeInfo
Definition: CaloCellDetailsFillerTool.h:70
python.Utils.unixtools.which
def which(filename, env=os.environ)
UNIX-style which ---------------------------------------------------------—.
Definition: unixtools.py:39
D3PD::CaloCellDetailsFillerTool::m_gainCells
int * m_gainCells
Definition: CaloCellDetailsFillerTool.h:95
D3PD::CaloCellDetailsFillerTool::m_zCells
float * m_zCells
Definition: CaloCellDetailsFillerTool.h:90
D3PD::BlockFillerToolImpl::m_converter
TypeConverter m_converter
Helper to do type conversions.
Definition: BlockFillerToolImpl.h:121
D3PD::CaloCellDetailsFillerTool::m_caloNoiseKey
SG::ReadCondHandleKey< CaloNoise > m_caloNoiseKey
Key of the CaloNoise Conditions data object.
Definition: CaloCellDetailsFillerTool.h:83
D3PD::CaloCellDetailsFillerTool::m_useNoise
bool m_useNoise
Definition: CaloCellDetailsFillerTool.h:99
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
D3PD::CaloCellDetailsFillerTool::m_badCell
int * m_badCell
Definition: CaloCellDetailsFillerTool.h:93
D3PD::ObjectMetadata::addVariable
virtual StatusCode addVariable(const std::string &name, const std::type_info &ti, void *&ptr, const std::string &docstring="", const void *defval=0)
This function can be used to save the metadata about a D3PD variable.
Definition: ObjectMetadata.cxx:109
D3PD::CaloCellDetailsFillerTool::m_saveCellQuality
bool m_saveCellQuality
Definition: CaloCellDetailsFillerTool.h:68
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
D3PD::CaloCellDetailsFillerTool::m_saveCellStatus
bool m_saveCellStatus
Definition: CaloCellDetailsFillerTool.h:71
LArEM_Base_ID::is_em_endcap_inner
bool is_em_endcap_inner(const Identifier id) const
test if the id belongs to the EM Endcap inner wheel
REPORT_MESSAGE
#define REPORT_MESSAGE(LVL)
Report a message.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:365
D3PD::CaloCellDetailsFillerTool::m_timeCells
float * m_timeCells
Definition: CaloCellDetailsFillerTool.h:92
D3PD::CaloCellDetailsFillerTool::CaloCell_GetDetectorInfo
unsigned int CaloCell_GetDetectorInfo(const CaloCell &cell) const
Definition: CaloCellDetailsFillerTool.cxx:161
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
CaloCell
Data object for each calorimeter readout cell.
Definition: CaloCell.h:57
CaloDetDescriptor
This is a base class for LAr and Tile Descriptors The primary goal is to speed up loops over all the ...
Definition: CaloDetDescriptor.h:58
LArEM_Base_ID::is_em_barrel
bool is_em_barrel(const Identifier id) const
test if the id belongs to the EM barrel
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
LArHEC_Base_ID::sampling
int sampling(const Identifier id) const
return sampling [0,3] (only 0 for supercells)
D3PD::CaloCellDetailsFillerTool::m_yCells
float * m_yCells
Definition: CaloCellDetailsFillerTool.h:89
D3PD::IAddVariable::addVariable
StatusCode addVariable(const std::string &name, T *&ptr, const std::string &docstring="")
Add a variable to the tuple.
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
D3PD::IAddVariable::addDimensionedVariable
StatusCode addDimensionedVariable(const std::string &name, T *&ptr, const std::string &dim, const std::string &docstring="")
Add a variable to the tuple.
Tile_Base_ID::is_tile_barrel
bool is_tile_barrel(const Identifier &id) const
Test of an Identifier to see if it belongs to a particular part of the calorimeter.
Definition: Tile_Base_ID.cxx:205
CaloCell_Base_ID
Helper base class for offline cell identifiers.
Definition: CaloCell_Base_ID.h:41
SG::AllowEmpty
@ AllowEmpty
Definition: StoreGate/StoreGate/VarHandleKey.h:30
python.compressB64.c
def c
Definition: compressB64.py:93
CaloCell_Base_ID::tile_idHelper
const Tile_Base_ID * tile_idHelper() const
access to Tile idHelper
Definition: CaloCell_Base_ID.h:355
CaloCell_Base_ID::hec_idHelper
const LArHEC_Base_ID * hec_idHelper() const
access to HEC idHelper
Definition: CaloCell_Base_ID.h:337
D3PD::CaloCellDetailsFillerTool::m_pb_tool
ToolHandle< ICaloBadChanTool > m_pb_tool
Definition: CaloCellDetailsFillerTool.h:77