50def TileCTBGeoG4SDCalcCfg(flags, hit_collection_name, name="TileCTBGeoG4SDCalc", **kwargs):
51 result = ComponentAccumulator()
52
53 kwargs.setdefault("TileTB", True)
54 kwargs.setdefault("DoCalibHitParticleID", flags.Sim.ParticleID )
55 kwargs.setdefault("OutputCollectionNames", hit_collection_name)
56
57 if flags.Tile.Sim.DeltaTHit != 'NONE':
58 kwargs.setdefault("DeltaTHit", flags.Tile.Sim.DeltaTHit)
59 if flags.Tile.Sim.TimeCut != 'NONE':
60 kwargs.setdefault("TimeCut", flags.Tile.Sim.TimeCut)
61 if flags.Tile.Sim.PlateToCell != 'NONE':
62 kwargs.setdefault("PlateToCell", flags.Tile.Sim.PlateToCell)
63 if flags.Tile.Sim.doTileRow != 'NONE':
64 kwargs.setdefault("DoTileRow", flags.Tile.Sim.doTileRow)
65 if flags.Tile.Sim.doTOFCorrection != 'NONE':
66 kwargs.setdefault("DoTOFCorrection", flags.Tile.Sim.doTOFCorrection)
67 if flags.Tile.Sim.doBirk != 'NONE':
68 kwargs.setdefault("DoBirk", flags.Tile.Sim.doBirk)
69 if any([flags.Tile.Sim.OldBirk != 'NONE', flags.Tile.Sim.Birk1 != 'NONE', flags.Tile.Sim.Birk2 != 'NONE']):
71 gramsPerMeVcmSq = Units.g / (Units.MeV * Units.cm2)
72 if flags.Tile.Sim.OldBirk != 'NONE':
73 kwargs.setdefault("birk1", 0.0130 * gramsPerMeVcmSq)
74 kwargs.setdefault("birk2", 9.6e-6 * gramsPerMeVcmSq * gramsPerMeVcmSq)
75 if flags.Tile.Sim.Birk1 != 'NONE':
76 kwargs.setdefault("birk1", flags.Tile.Sim.Birk1 * gramsPerMeVcmSq)
77 if flags.Tile.Sim.Birk2 != 'NONE':
78 kwargs.setdefault("birk2", flags.Tile.Sim.Birk2 *gramsPerMeVcmSq * gramsPerMeVcmSq)
79
80 result.addService(CompFactory.TileGeoG4SDCalc(name, **kwargs), primary=True)
81 return result