Presentation is loading. Please wait.

Presentation is loading. Please wait.

Namespace Smear {…} Michael Savastio. Tree Format Original Tree Event KS=1 Particles E,p,theta,phi KS!=1 Particles Smeared Tree EventS particlesS E,p,theta,phi.

Similar presentations


Presentation on theme: "Namespace Smear {…} Michael Savastio. Tree Format Original Tree Event KS=1 Particles E,p,theta,phi KS!=1 Particles Smeared Tree EventS particlesS E,p,theta,phi."— Presentation transcript:

1 namespace Smear {…} Michael Savastio

2 Tree Format Original Tree Event KS=1 Particles E,p,theta,phi KS!=1 Particles Smeared Tree EventS particlesS E,p,theta,phi NULL* 1 to 1 Currently ParticleS stores E, p, theta, phi, pz, pT ONLY!

3 The Device Class Smears exactly 1 particle-wise variable (E,p,theta,phi,pz,pT) using up to 2 of these variables to parametrize the smearing. Each device has it’s own “acceptance” in (E,p,theta,phi) space. Theta P P E E p p p p E E phi IP Particles passing through here will have smeared p and theta Particles passing through here will have smeared E only These particles will be smeared only by “innermost” (last added) device EventS Will output only 1 EventS with only 1 instance of each particle.

4 Building a “Detector” (1) Device EMCal_front; EMCal_front.SetGenre(1); //this detects photons/leptons EMCal_front.SetSmearedKinematics(kE); //set kinematics to be smeared by device EMCal_front.SetParametrization("0.18*sqrt(E)"); //set parametrization EMCal_front.Accept.SetTheta(0.,pi/4.); //set acceptance in theta //similarly, you can do SetAcceptPhi(min,max), SetAcceptE(min,max) and SetAcceptP(min,max) Device EMCal_back; EMCal_back.SetGenre(1); EMCal_back.SetSmearedKinematics(kE); EMCal_back.SetParametrization("0.25*sqrt(E)"); EMCal_back.Accept.SetTheta(3.*pi/4.,pi); //set acceptance in theta Device HCal; HCal.SetGenre(2); //this detects hadrons HCal.SetSmearedKinematics(kE); HCal.SetParametrization("0.35*sqrt(E)");

5 Building a “Detector” (2) Device ThetaD; //by default devices don't care whether hadron/lepton/gauge boson ThetaD.SetSmearedKinematics(kTheta); ThetaD.SetParametrization(”sqrt(9.e-8+pow(9.e-4/P,2))/sqrt(sin(theta))"); //can use 2d parametrizations Device Tracker; Tracker.SetSmearedKinematics(kP); Tracker.SetParametrization("0.0085*P+0.0025*P*P"); Detector Test; Test.AddDevice(EMCal_front); //add the EMCal to the detector Test.AddDevice(EMCal_back); Test.AddDevice(HCal); Test.AddDevice(ThetaD); Test.AddDevice(Tracker); Test.SetPID(true); //turn on PID (still limited but works!) Test.SetEventKinematicsCalculator("NM JB DA"); //set how to calculate event kinematcs. Can use scattered electron (null momentum approximation NM), Jacquet-Blondel or Double Angle. Now in root: gSystem->Load(“BuildTree.so”);.L MyDetector.cxx SmearTree(MyDetector(),”filename”) To view in interpreter, for example: TTree t; t.AddFriend(“EICTree”,”originaltree.root”) t.AddFriend(“Smeared”,”smearedtree.smear.root”) t.Draw(“EICTree.x:Smeared.x”,”EICTree.QSquared>10”)

6 Currently Available Smear::Detector Setups ZEUS EMCal "0.18*sqrt(E)" HCal "0.35*sqrt(E)" Tracking "0.0085*p+0.0025*p*p" Polar Angle "0.0005*p+0.003" STAR EMCal "0.015*E+0.14*sqrt(E)" Tracking "0.005*p+0.004*p*p" Polar Angle "sqrt(0.0003*0.0003+(0.0009/p,2)^2)/sqrt(sin(θ))" All with default 4*pi acceptance.

7 E ZEUS STAR Pythia 20x250

8 p ZEUS STAR Pythia 20x250

9 θ ZEUS STAR Pythia 20x250

10 Event-Wise Kinematics ZEUSSTAR Methods Available: NM (using scattered electron in the Null Momentum approximation) JB (Jacquet-Blondel, using hadronic system) DA (Double Angle, using hadronic system) Pythia 20x250

11 Particle ID p+ K+ K- unidentified π+π+ π-π- PID not Generated: Momentum outside range of validity Based on HERMES RICH P-matrices (shown on grid above)

12 TO DO Thoroughly test event-wise kinematics (NM, JB and DA). Determine appropriate phase space cuts. Fix anomalous (but very minor) stability issues. These may be CINT memory management issues. Overhaul PID to be far more flexible. Currently based on HERMES RICH format. Software-wise, this is the most labor intensive remaining task. Improvements and testing for exception handling (especially with limited acceptance). Make more educated decisions about default conventions. Gather parametrizations (help welcome!). Electron bremsstrahlung

13 UPDATE Event Kinematics are fixed, all methods now work reliably (using scattered electron, or hadronic system). Improved exception handling, especially for event kinematics. Particle ID has been completely rewritten and is now much more versatile. Specialized “Devices” (tracking, calorimetry). Arbitrary acceptance cuts. Acceptance of specific particles. Smearing of arbitrary functions of particle kinematics. Many improvements to make scripting simpler.

14 Building a “Detector” (Update,1) EMCalorimeter EMCal(0.18); EMCal.Accept.SetTheta(0.,pi/4.); //set acceptance in theta EMCal.Accept.AddZone(); EMCal.Accept.SetTheta(3.*pi/4.,pi,1); //similarly, you can do Accept.SetPhi(min,max), Accept.SetE(min,max) and Accept.SetP(min,max) HCalorimeter HCal(0.35); //this has parametrization “0.35*sqrt(E)” Device ThetaD(kTheta,”sqrt(9.e-8+pow(9.e-4/P,2))/sqrt(sin(theta))”); Device Tracking(kP,”0.001*P+0.001*P*P”); ParticleID Ident(“Pmatrixfile.dat”); Ident.GetAcceptanceFromDevice(EMCal); //ParticleID is now declared like a device, and has its own acceptance. You can use arbitrarily many. Detector Example; Example = Example << EMCal << HCal << ThetaD << Tracking << Ident; Example = Example << “NM JB DA”; //use all 3 event methods

15 Some New Features Devious Arbitrary(“1./P”,”0.0085*P+0.0025*P*P”); //the Devious class allows you to smear a function of kinematics. This smears 1/p Arbitrary.Accept.SetPt(0.,50.); //this cut requires p_{T}\in[0,50] GeV Arbitrary.Accept.AddCustomAcceptance(“P*sin(theta)”,0.,50.); //equivalent to the above Arbitrary.Accept.AddParticle(321); //now this accepts K^+ ONLY Arbitrary.Accept.AddParticle(-321); //now it accepts K^+ and K^- only Tracker Track; Track.SetRadii(0.01,3.); //this is a tracker with inner radius 1cm, outer radius 3m Track.SetLength(6.); //and length 6m Track.SetDimensions(0.01,2.,6.); //this is equivalent to the above two lines Device CrazyExample(kE,”0.01*E”); CrazyExample.SetDistribution("pow(sin([1]*x+[0]),2)"); //smears according to arbitrary distribution. [0] is original value of E and [1] is given by parametrization. Example = Example << Arbitrary << Track; Now with extensive documentation: https://wiki.bnl.gov/eic/index.php/Namespace_Smear

16 Event Kinematics: Proof of Concept

17 x STAR 20x100

18 Q2Q2 STAR 20x100

19 Why it’s so screwed up STAR 20x100 Smearing goes as p 2

20 What Now? Where does Smearing end and GEANT begin? What can Smear be used for, what can it not be used for? From now on, code will be maintained by Thomas Burton.


Download ppt "Namespace Smear {…} Michael Savastio. Tree Format Original Tree Event KS=1 Particles E,p,theta,phi KS!=1 Particles Smeared Tree EventS particlesS E,p,theta,phi."

Similar presentations


Ads by Google