Par$cleBomb: ¡a ¡model ¡ independent ¡event ¡generator ¡ Andy ¡Furmanski ¡ Sim ¡mee$ng ¡Feb ¡21 ¡2017 ¡ Andy ¡Furmanski ¡ 1 ¡
Model ¡dependency ¡ • A ¡common ¡discussion ¡within ¡the ¡neutrino ¡xsec ¡ community: ¡ – How ¡model-‑dependent ¡is ¡this ¡measurement? ¡ – Oh, ¡it’s ¡completely ¡model-‑independent ¡ – So ¡how ¡do ¡you ¡es$mate ¡the ¡efficiency? ¡ – Oh, ¡we ¡use ¡MC ¡with ¡the ¡default ¡GENIE ¡model ¡ – so ¡your ¡data ¡depends ¡on ¡the ¡GENIE ¡model… ¡ • One ¡problem ¡is ¡that ¡GENIE ¡only ¡produces ¡events ¡ in ¡parts ¡of ¡phase ¡space ¡that ¡GENIE ¡wants ¡to ¡ – Different ¡models ¡can ¡cover ¡different ¡phase-‑spaces ¡ – What ¡if ¡nature ¡fills ¡some ¡part ¡of ¡phase ¡space ¡that ¡no ¡ generator ¡does? ¡ Andy ¡Furmanski ¡ 2 ¡
But ¡what ¡can ¡we ¡do ¡about ¡it? ¡ • Instead ¡of ¡relying ¡on ¡GENIE’s ¡predic$ons, ¡just ¡put ¡ events ¡everywhere ¡in ¡the ¡phase ¡space ¡you ¡care ¡ about! ¡ • Use ¡a ¡par$cle ¡bomb ¡ – Like ¡a ¡par$cle ¡gun, ¡but ¡with ¡more ¡than ¡one ¡par$cle… ¡ • SingleGen ¡currently ¡can ¡generate ¡mul$ple ¡ par$cles, ¡but ¡their ¡loca$ons ¡are ¡either: ¡ – all ¡random ¡within ¡an ¡event ¡ – fixed ¡event-‑to-‑event ¡ Andy ¡Furmanski ¡ 3 ¡
Task ¡#1 ¡ • Modify ¡SingleGen ¡ to ¡be ¡able ¡to ¡generate ¡ mul$ple ¡par$cles ¡all ¡in ¡a ¡single, ¡random ¡ loca$on ¡ • new ¡fcl ¡parameter ¡– ¡ SingleVertex: true • If ¡set ¡to ¡true, ¡it ¡selects ¡a ¡loca$on ¡first, ¡then ¡ picks ¡par$cle ¡kinema$cs ¡for ¡each ¡par$cle ¡ individually ¡ • I ¡believe ¡this ¡is ¡a ¡non-‑breaking ¡change ¡ Andy ¡Furmanski ¡ 4 ¡
Did ¡I ¡do ¡it ¡right? ¡ • Generated ¡10k ¡mu+p ¡events ¡in ¡uBooNE ¡ 120 10000 100 8000 number ¡of ¡ 80 GEANT ¡ muon ¡start ¡point ¡(x) ¡ 6000 60 primaries ¡ 40 4000 20 2000 0 0 50 100 150 200 250 10000 0 distance ¡from ¡muon ¡start ¡to ¡ 0 1 2 3 4 5 6 7 8 9 10 8000 proton ¡start ¡(x) ¡ 6000 • Plots ¡look ¡the ¡same ¡for ¡y ¡and ¡z ¡ posi$ons ¡ 4000 • I ¡seem ¡to ¡be ¡genera$ng ¡pairs ¡of ¡ 2000 par$cles ¡in ¡a ¡single, ¡random ¡loca$on ¡ 0 − 10 − 8 − 6 − 4 − 2 0 2 4 6 8 10 Andy ¡Furmanski ¡ 5 ¡
Awesome, ¡sounds ¡perfect! ¡ • It’s ¡not . ¡ • Sta3s3cs ¡will ¡become ¡your ¡enemy. ¡ ¡Quickly ¡ • You ¡have ¡to ¡ be ¡a ¡bit ¡ smart ¡about ¡it. ¡ – This ¡is ¡up ¡to ¡each ¡analyser ¡to ¡do ¡ – But, ¡for ¡example, ¡how ¡much ¡do ¡you ¡care ¡about ¡the ¡proton ¡ efficiency ¡for ¡a ¡4GeV/c ¡proton? ¡ • So ¡maybe ¡you ¡don’t ¡need ¡so ¡many ¡events ¡produced ¡over ¡there? ¡ • Useful ¡idea: ¡ – Generate ¡events ¡according ¡to ¡input ¡histogram ¡distribu$ons ¡ – Decouple ¡angle, ¡momentum, ¡mul$plicity, ¡etc ¡ – But ¡s$ck ¡to ¡“realis$c” ¡areas ¡of ¡phase ¡space, ¡and ¡weight ¡ according ¡to ¡how ¡much ¡you ¡care ¡ Andy ¡Furmanski ¡ 6 ¡
I ¡need ¡an ¡example! ¡ • GENIE ¡couples ¡muon ¡ • But ¡if ¡we ¡take ¡away ¡ angle ¡and ¡momentum ¡ the ¡correla$on: ¡ implicitly: ¡ 400 1 900 θ muon cos 350 800 60 0.8 300 700 600 250 0.6 50 500 200 0.4 400 150 300 40 0.2 100 200 50 0 100 30 0 0 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 − 1 − 0.8 − 0.6 − 0.4 − 0.2 0 0.2 0.4 0.6 0.8 1 − 0.2 muon momentum (GeV/c) muon cos θ 1 θ muon cos 0.4 20 − 0.8 0.6 − 0.6 10 0.4 0.8 − 0.2 1 0 − 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 0 muon momentum (GeV/c) 0.2 − − 0.4 − 0.6 We’ve ¡filled ¡in ¡this ¡area ¡whilst ¡s$ll ¡retaining ¡ − 0.8 the ¡general ¡shape ¡of ¡the ¡distribu$on ¡ ¡ − 1 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 muon momentum (GeV/c) Andy ¡Furmanski ¡ 7 ¡
Task ¡#2 ¡ • Modify ¡SingleGen ¡ to ¡accept ¡input ¡histograms ¡ for ¡par$cle ¡momenta/angles ¡ • Simply ¡set ¡Pdist ¡and ¡AngleDist ¡to ¡2 ¡ • fcl ¡parameters: ¡ Note ¡– ¡the ¡angular ¡ histogram ¡is ¡a ¡2D ¡ – HistogramFile: “filename.root” histogram ¡in ¡ thetaxz ¡,thetayz ¡ – Phist: [“h_muonmom”, “h_protonmom”] – ThetaXzYzHist: [“h_muonangle”,”h_protonangle”] • Just ¡need ¡a ¡file ¡with ¡histograms ¡in ¡ • Can ¡re-‑use ¡histograms ¡for ¡mul$ple ¡par$cles ¡ Andy ¡Furmanski ¡ 8 ¡
And ¡did ¡I ¡do ¡this ¡one ¡right? ¡ • 10k ¡muon+proton ¡events ¡generated ¡ • Simple ¡toy ¡input ¡histograms ¡– ¡SetBinContent(i, ¡i) ¡ – i.e. ¡linearly ¡increasing ¡ • Generated ¡events ¡match ¡input ¡histograms ¡ pp pp phimu phimu thetamu thetamu 700 700 700 input histogram input histogram input histogram 600 600 600 generated events generated events generated events 500 500 500 400 400 400 300 300 300 200 200 200 100 100 100 0 0 0 0 0.5 1 1.5 2 2.5 3 0 100 200 300 400 500 600 700 800 900 1000 0 1 2 3 4 5 6 Andy ¡Furmanski ¡ 9 ¡
Wait, ¡I ¡want ¡to ¡vary ¡my ¡mul$plicity! ¡ • I ¡didn’t ¡implement ¡a ¡mul$plicity ¡varia$on ¡ – Mainly ¡because ¡it’s ¡slightly ¡more ¡complex ¡ – Also ¡because ¡of ¡the ¡sta$s$cs ¡problem ¡ • Phase ¡space ¡just ¡grows ¡and ¡grows ¡ • My ¡(Wes’s) ¡solu$on: ¡ – Use ¡a ¡histogram ¡with ¡a ¡large ¡bin ¡at ¡0 ¡ – 0 ¡momentum ¡par$cles ¡won’t ¡get ¡tracked ¡by ¡G4 ¡ – Therefore ¡the ¡mul$plicity ¡will ¡be ¡less ¡at ¡random ¡ • Alterna$ve ¡solu$on ¡ – Think ¡about ¡the ¡exact ¡topologies ¡you ¡care ¡about, ¡and ¡ produce ¡separate ¡samples ¡ Andy ¡Furmanski ¡ 10 ¡
Conclusions ¡ • I ¡have ¡ changes ¡available ¡for ¡larsim , ¡that ¡enable ¡2 ¡ things: ¡ – Producing ¡mul3ple ¡par3cles ¡ in ¡a ¡single, ¡random ¡ loca$on ¡ – Selec3ng ¡momenta ¡and ¡angles ¡from ¡input ¡ histograms ¡ • I ¡believe ¡this ¡is ¡all ¡non-‑breaking ¡ • This ¡is ¡poten$ally ¡useful, ¡but ¡analysers ¡s$ll ¡need ¡ to ¡ think ¡carefully ¡about ¡the ¡sta3s3cs ¡available ¡ – Most ¡useful ¡when ¡ restric3ng ¡yourself ¡to ¡a ¡specific ¡ topology ¡ • Code ¡is ¡ready ¡to ¡merge ¡ Andy ¡Furmanski ¡ 11 ¡
Recommend
More recommend