17from modularAnalysis
import inputMdst, fillParticleList, matchMCTruth, variablesToNtuple
18from variables
import variables
20charged_path = basf2.Path()
22variables.addAlias(
'kBinaryID',
'pidPairProbabilityExpert(321,211,ALL)')
23variables.addAlias(
'eBinaryID',
'pidPairProbabilityExpert(11,211,ALL)')
24variables.addAlias(
'muBinaryID',
'pidPairProbabilityExpert(13,211,ALL)')
25variables.addAlias(
'pBinaryID',
'pidPairProbabilityExpert(2212,211,ALL)')
27if len(sys.argv)
not in [2, 3]:
28 sys.exit(
'Must provide an input file and (optionally) an output file')
34 outFile =
'./truth_charged.root'
36inputMdst(inFile, path=charged_path)
41trackQuality =
'thetaInCDCAcceptance and nCDCHits > 20'
42ipCut =
'd0 < 0.5 and abs(z0) < 2'
43mcCharged =
'(abs(mcPDG)==11 or abs(mcPDG)==13 or abs(mcPDG)==211 or abs(mcPDG)==321 or abs(mcPDG)==2212)'
44goodTrack = trackQuality +
' and ' + ipCut
46fillParticleList(
'pi+:any', goodTrack, path=charged_path)
47matchMCTruth(
'pi+:any', path=charged_path)
49fillParticleList(
'K+:any', goodTrack, path=charged_path)
50matchMCTruth(
'K+:any', path=charged_path)
52fillParticleList(
'e+:any', goodTrack, path=charged_path)
53matchMCTruth(
'e+:any', path=charged_path)
55fillParticleList(
'mu+:any', goodTrack, path=charged_path)
56matchMCTruth(
'mu+:any', path=charged_path)
58fillParticleList(
'p+:any', goodTrack, path=charged_path)
59matchMCTruth(
'p+:any', path=charged_path)
64ntupleOfInterest = [
'px',
'py',
'pz',
'E',
'p',
'pt',
'theta',
'phi',
65 'mcPX',
'mcPY',
'mcPZ',
'mcE',
'mcP',
'mcPT',
'mcTheta',
'mcPhi',
66 'pionID',
'kaonID',
'electronID',
'muonID',
'protonID',
67 'kBinaryID',
'eBinaryID',
'muBinaryID',
'pBinaryID',
68 'thetaInTOPAcceptance',
'thetaInECLAcceptance',
'thetaInKLMAcceptance',
69 'ptInTOPAcceptance',
'ptInBECLAcceptance',
'ptInBKLMAcceptance',
75variablesToNtuple(
'e+:any', ntupleOfInterest,
'electron', outFile, path=charged_path)
77variablesToNtuple(
'p+:any', ntupleOfInterest,
'proton', outFile, path=charged_path)
82basf2.process(charged_path)