ATLAS Offline Software
SCD3PDObject.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
3 from D3PDMakerCoreComps.D3PDObject import D3PDObject, make_SG_D3PDObject
4 from AthenaConfiguration.ComponentFactory import CompFactory
5 
6 D3PD = CompFactory.D3PD
7 
8 
9 AllSCD3PDObject = make_SG_D3PDObject( "CaloCellContainer",
10  "AllCalo",
11  "sc_",
12  "SCD3PDObject" )
13 AllSCD3PDObject.defineBlock( 0, 'Basic', D3PD.SCFillerTool )
14 
15 
16 def _hookForSCD3PDObject_(c, flags, acc, *args, **kw):
17 
18  basFiller = c.BlockFillers[0]
19  print("getattr(c, c.name()) / Type= ", type(basFiller))
20  if "CaloEtaCut" in list(kw.keys()):
21  basFiller.CaloEtaCut = kw["CaloEtaCut"]
22  if "CaloPhiCut" in list(kw.keys()):
23  basFiller.CaloPhiCut = kw["CaloPhiCut"]
24  if "CaloLayers" in list(kw.keys()):
25  basFiller.CaloLayers = kw["CaloLayers"]
26  if "CaloDetectors" in list(kw.keys()):
27  basFiller.CaloDetectors = kw["CaloDetectors"]
28  if "TileDLayerOption" in list(kw.keys()):
29  basFiller.TileDLayerOption = kw["TileDLayerOption"]
30 
31  print("%s - CaloEtaCut = " % (basFiller.name), basFiller.CaloEtaCut)
32  print("%s - CaloPhiCut = " % (basFiller.name), basFiller.CaloPhiCut)
33  print("%s - CaloLayersCut = " % (basFiller.name), basFiller.CaloLayers)
34  print("%s - CaloDetectors = " % (basFiller.name), basFiller.CaloDetectors)
35  #print "%s - TileDLayerOption = " % (basFiller.name), basFiller.TileDLayerOption
36 
37  from LArCabling.LArCablingConfig import LArOnOffIdMappingCfg, LArOnOffIdMappingSCCfg
38  acc.merge (LArOnOffIdMappingCfg (flags))
39  acc.merge (LArOnOffIdMappingSCCfg (flags))
40  return
41 
42 def _makeSC_obj_(name, prefix, object_name,
43  getter=None,
44  sgKey=None,
45  typeName=None,
46  ):
47  from D3PDMakerConfig.D3PDMakerFlags import D3PDMakerFlags
48  if not typeName:
49  typeName = "CaloCellContainer"
50  if not sgKey:
51  sgKey="AllCalo"
52  if not getter:
53  getter = D3PD.SGObjGetterTool(
54  name + '_Getter',
55  TypeName = typeName,
56  SGKey = sgKey)
57 
58  return D3PD.ObjFillerTool( name,
59  Prefix = prefix,
60  Getter = getter,
61  ObjectName = object_name,
62  SaveMetadata = \
63  D3PDMakerFlags.SaveObjectMetadata
64  )
65 
66 def make_SCD3PDObject( typeName="CaloCellContainer",
67  sgKey="AllCalo",
68  prefix="sc_",
69  object_name="SCD3PDObject",
70  *args, **kw ):
71 
72  obj = D3PDObject(_makeSC_obj_, prefix, object_name,
73  allow_args=["CaloEtaCut","CaloPhiCut",
74  "CaloLayers","CaloDetectors","TileDLayerOption"],
75  sgkey=sgKey,
76  typename=typeName)
77  obj.defineBlock( 0, 'Basic', D3PD.SCFillerTool)
78  obj.defineHook( _hookForSCD3PDObject_ )
79  return obj
80 
81 SCD3PDObject = make_SCD3PDObject( typeName="CaloCellContainer",
82  sgKey = "AllCalo",
83  prefix = "sc_",
84  CaloEtaCut=[],
85  CaloPhiCut=[],
86  CaloLayers=[],
87  CaloDetectors=[],
88  TileDLayerOption=False )
D3PD::SGObjGetterTool
Getter tool to retrieve single objects from StoreGate.
Definition: SGObjGetterTool.h:48
python.D3PDObject.make_SG_D3PDObject
def make_SG_D3PDObject(default_typeName, default_sgkey, default_prefix, default_object_name=None, default_allowMissing=False, default_getterClass=D3PD.SGObjGetterTool, allow_args=[])
Definition: D3PDObject.py:646
python.SCD3PDObject._makeSC_obj_
def _makeSC_obj_(name, prefix, object_name, getter=None, sgKey=None, typeName=None)
Definition: SCD3PDObject.py:42
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
D3PD::ObjFillerTool
Object filler tool for a single object.
Definition: ObjFillerTool.h:52
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
python.SCD3PDObject._hookForSCD3PDObject_
def _hookForSCD3PDObject_(c, flags, acc, *args, **kw)
Definition: SCD3PDObject.py:16
dbg::print
void print(std::FILE *stream, std::format_string< Args... > fmt, Args &&... args)
Definition: SGImplSvc.cxx:70
D3PD::SCFillerTool
Block filler tool for EM samplings from a CaloCluster.
Definition: SCFillerTool.h:46
python.SCD3PDObject.make_SCD3PDObject
def make_SCD3PDObject(typeName="CaloCellContainer", sgKey="AllCalo", prefix="sc_", object_name="SCD3PDObject", *args, **kw)
Definition: SCD3PDObject.py:66