147def CosmicGeneratorCfg(flags, name="CosmicGenerator", **kwargs):
148
149 result = ComponentAccumulator()
150
151
152 from RngComps.RngCompsConfig import AthRNGSvcCfg
153 kwargs.setdefault('RndmSvc', result.getPrimaryAndMerge(AthRNGSvcCfg(flags)))
154
155 from CosmicGenerator.CosmicGeneratorConfig import CavernPropertyCalculator
156 theCavern = CavernPropertyCalculator()
157
158
170
171 kwargs.setdefault('emin', theCavern.CosmicEmin(flags))
172 kwargs.setdefault('emax', theCavern.CosmicEmax(flags))
173
174
175
176 kwargs.setdefault('xvert_low', theCavern.CosmicLowVertex_X(flags) )
177 kwargs.setdefault('xvert_hig', theCavern.CosmicHighVertex_X(flags))
178 kwargs.setdefault('zvert_low', theCavern.CosmicLowVertex_Z(flags) )
179 kwargs.setdefault('zvert_hig', theCavern.CosmicHighVertex_Z(flags))
180 kwargs.setdefault('Radius', theCavern.CosmicRadius(flags))
181 kwargs.setdefault('yvert_val', 57300.+41000.)
182 kwargs.setdefault('ctcut', 0.)
183 kwargs.setdefault('OptimizeForCavern', True)
184 kwargs.setdefault('IPx', 0.)
185 kwargs.setdefault('IPy', 0.)
186 kwargs.setdefault('IPz', 0.)
187
188 if len(flags.Sim.CosmicFilterVolumeNames)>0:
189 print ('Using %s Volume setup of Cosmic Generator...' % flags.Sim.CosmicFilterVolumeNames[0])
190
191 if 'Pixel' in flags.Sim.CosmicFilterVolumeNames:
192 kwargs.setdefault('doPathLengthCut', True)
193 kwargs.setdefault('energyCutThreshold', 100.)
194 kwargs.setdefault('doAimedAtPixelsCut', True)
195 kwargs.setdefault('pixelplane_maxx', 1150.)
196 kwargs.setdefault('pixelplane_maxz', 1650.)
197 kwargs.setdefault('doReweighting', True)
198 kwargs.setdefault('rvert_max', 300000.)
199
200
201 kwargs.setdefault("Dsid", flags.Input.RunNumbers[0])
202
203
204 result.addEventAlgo(CompFactory.CosmicGenerator('CosmicGenerator', **kwargs))
205 return result
206
207