namespace smear {…}

20
namespace Smear {…} Michael Savastio

Upload: jenn

Post on 22-Feb-2016

70 views

Category:

Documents


0 download

DESCRIPTION

namespace Smear {…}. Michael Savastio. Tree Format. 1 to 1. 1 to 1. 1 to 1. Currently ParticleS stores E, p, theta, phi, pz , pT ONLY !. 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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: namespace  Smear {…}

namespace Smear {…}Michael Savastio

Page 2: namespace  Smear {…}

Tree Format

Original TreeEvent•KS=1 Particles•E,p,theta,phi•KS!=1 Particles

1 to 1

1 to 1

1 to 1

Currently ParticleS stores E, p, theta, phi, pz, pT ONLY!

Page 3: namespace  Smear {…}

The Device ClassSmears 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.

ThetaP

E

pp

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 EventSWill output only 1 EventS with only 1 instance of each particle.

Page 4: namespace  Smear {…}

Building a “Detector” (1)Device EMCal_front;EMCal_front.SetGenre(1); //this detects photons/leptonsEMCal_front.SetSmearedKinematics(kE); //set kinematics to be smeared by deviceEMCal_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 hadronsHCal.SetSmearedKinematics(kE);HCal.SetParametrization("0.35*sqrt(E)");

Page 5: namespace  Smear {…}

Building a “Detector” (2)Device ThetaD; //by default devices don't care whether hadron/lepton/gauge bosonThetaD.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 detectorTest.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.cxxSmearTree(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”)

Page 6: namespace  Smear {…}

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.

Page 7: namespace  Smear {…}

EZEUS ZEUS

STAR STAR

Pythia 20x250

Page 8: namespace  Smear {…}

pZEUS ZEUS

STAR STAR

Pythia 20x250

Page 9: namespace  Smear {…}

θZEUS ZEUS

STAR STAR

Pythia 20x250

Page 10: namespace  Smear {…}

Event-Wise Kinematics

ZEUS STAR

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

Page 11: namespace  Smear {…}

Particle ID

p+K+K-

unidentified

π+π-

PID not Generated:Momentum outside range of validity

Based on HERMES RICH P-matrices (shown on grid above)

Page 12: namespace  Smear {…}

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

Page 13: namespace  Smear {…}

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.

Page 14: namespace  Smear {…}

Building a “Detector” (Update,1)EMCalorimeter EMCal(0.18);

EMCal.Accept.SetTheta(0.,pi/4.); //set acceptance in thetaEMCal.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

Page 15: namespace  Smear {…}

Some New FeaturesDevious Arbitrary(“1./P”,”0.0085*P+0.0025*P*P”); //the Devious class allows you to smear a function of kinematics. This smears 1/pArbitrary.Accept.SetPt(0.,50.); //this cut requires p_{T}\in[0,50] GeVArbitrary.Accept.AddCustomAcceptance(“P*sin(theta)”,0.,50.); //equivalent to the above

Arbitrary.Accept.AddParticle(321); //now this accepts K^+ ONLYArbitrary.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 3mTrack.SetLength(6.); //and length 6mTrack.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

Page 16: namespace  Smear {…}

Event Kinematics: Proof of Concept

Page 17: namespace  Smear {…}

x STAR20x100

Page 18: namespace  Smear {…}

Q2

STAR20x100

Page 19: namespace  Smear {…}

Why it’s so screwed upSTAR20x100Smearing goes as p2

Page 20: namespace  Smear {…}

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.