ATLAS Offline Software
Loading...
Searching...
No Matches
SCD3PDObject.py
Go to the documentation of this file.
1# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2
3from D3PDMakerCoreComps.D3PDObject import D3PDObject, make_SG_D3PDObject
4from AthenaConfiguration.ComponentFactory import CompFactory
5
6D3PD = CompFactory.D3PD
7
8
9AllSCD3PDObject = make_SG_D3PDObject( "CaloCellContainer",
10 "AllCalo",
11 "sc_",
12 "SCD3PDObject" )
13AllSCD3PDObject.defineBlock( 0, 'Basic', D3PD.SCFillerTool )
14
15
16def _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
42def _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
66def 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
81SCD3PDObject = make_SCD3PDObject( typeName="CaloCellContainer",
82 sgKey = "AllCalo",
83 prefix = "sc_",
84 CaloEtaCut=[],
85 CaloPhiCut=[],
86 CaloLayers=[],
87 CaloDetectors=[],
88 TileDLayerOption=False )
void print(char *figname, TCanvas *c1)
Object filler tool for a single object.
Block filler tool for EM samplings from a CaloCluster.
Getter tool to retrieve single objects from StoreGate.
_hookForSCD3PDObject_(c, flags, acc, *args, **kw)
make_SCD3PDObject(typeName="CaloCellContainer", sgKey="AllCalo", prefix="sc_", object_name="SCD3PDObject", *args, **kw)
_makeSC_obj_(name, prefix, object_name, getter=None, sgKey=None, typeName=None)