21 from basf2
import set_log_level, register_module, process, LogLevel, \
22 set_random_seed, print_params, create_path, statistics, conditions
23 from modularAnalysis
import fillParticleList
24 from modularAnalysis
import cutAndCopyList
25 from modularAnalysis
import matchMCTruth
26 from modularAnalysis
import rankByHighest
27 from modularAnalysis
import applyEventCuts
28 from simulation
import add_simulation
29 from reconstruction
import add_reconstruction
30 from variables
import variables
35 print(
"Job arguments: nEvents name newGeom; ", narg-1,
"provided")
41 nevt = int(sys.argv[1])
42 outputFileName =
"ntuples/" + sys.argv[2] +
".root"
45 newGeom = int(sys.argv[3])
47 conditions.globaltags = [
'ecl_alignment']
49 conditions.prepend_testing_payloads(
"localdb/database.txt")
50 print(conditions.globaltags)
54 particlegun = register_module(
'ParticleGun')
56 particlegun.param(
'pdgCodes', [13])
57 particlegun.param(
'nTracks', 1)
58 particlegun.param(
'varyNTracks',
False)
59 particlegun.param(
'momentumGeneration',
'uniform')
60 particlegun.param(
'momentumParams', [4.15, 4.5])
61 particlegun.param(
'thetaGeneration',
'uniform')
62 particlegun.param(
'thetaParams', [127.5, 131.5])
63 particlegun.param(
'phiGeneration',
'uniform')
64 particlegun.param(
'phiParams', [0., 360.])
65 particlegun.param(
'vertexGeneration',
'fixed')
66 particlegun.param(
'xVertexParams', [-0.05])
67 particlegun.param(
'yVertexParams', [0.015])
68 particlegun.param(
'zVertexParams', [0.])
69 particlegun.param(
'independentVertices',
False)
71 print_params(particlegun)
77 main.add_module(
"EventInfoSetter", expList=experiment, runList=run, evtNumList=nevt)
78 main.add_module(
"Progress")
79 main.add_module(particlegun)
82 add_reconstruction(main)
87 fillParticleList(
'mu-:highp',
'useCMSFrame(p) > 3.5 and abs(d0) < 0.5 and abs(z0) < 4 and nCDCHits>0 and nVXDHits>0', path=main)
88 cutAndCopyList(
'mu-:highE',
'mu-:highp',
'clusterE>1.', path=main)
90 variables.addAlias(
'nhighp',
'nParticlesInList(mu-:highp)')
91 variables.addAlias(
'nhighE',
'nParticlesInList(mu-:highE)')
92 applyEventCuts(
'[nhighE==0] and [nhighp==1]', main)
96 variables.addAlias(
'muThetaLab',
'formula(57.2957795*theta)')
97 variables.addAlias(
'muPhiLab',
'formula(57.2957795*phi)')
98 variables.addAlias(
'muPcms',
'useCMSFrame(p)')
99 variables.addAlias(
'muptLab',
'pt')
100 variables.addAlias(
'e1Uncorr',
'formula(clusterHighestE * clusterUncorrE / clusterE)')
101 variables.addAlias(
'clustThetaLab',
'formula(57.2957795*clusterTheta)')
102 variables.addAlias(
'clustPhiLab',
'formula(57.2957795*clusterPhi)')
105 variables.addAlias(
'bestMuonID',
'muonID')
106 variables.addAlias(
'worstMuonID',
'muonID')
124 main.add_module(
'VariablesToNtuple', particleList=
'mu-:highp', variables=varsToStore, fileName=outputFileName)