- By
**jenn** - Follow User

- 70 Views
- Uploaded on

Download Presentation
## PowerPoint Slideshow about ' namespace Smear {…}' - jenn

**An Image/Link below is provided (as is) to download presentation**

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

### namespace Smear {…}

Michael Savastio

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.

Particles passing through here will have smeared p and theta

Particles passing through here will have smeared E only

E

p

p

P

Theta

These particles will be smeared only by “innermost” (last added) device

IP

EventS

E

Will output only 1 EventS with only 1 instance of each particle.

phi

Building a “Detector” (1)

DeviceEMCal_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)

DeviceEMCal_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

DeviceHCal;

HCal.SetGenre(2); //this detects hadrons

HCal.SetSmearedKinematics(kE);

HCal.SetParametrization("0.35*sqrt(E)");

Building a “Detector” (2)

DeviceThetaD; //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”)

Currently Available Smear::Detector Setups

All with default 4*pi acceptance.

Event-Wise Kinematics

Pythia 20x250

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)

Particle ID

π+

π-

PID not Generated:

Momentum outside range of validity

p+

K+

K-

unidentified

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

TO DO

- Thoroughly test event-wise kinematics (NM, JB and DA). Determine appropriate phasespace 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

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.

Building a “Detector” (Update,1)

EMCalorimeterEMCal(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)

HCalorimeterHCal(0.35); //this has parametrization “0.35*sqrt(E)”

DeviceThetaD(kTheta,”sqrt(9.e-8+pow(9.e-4/P,2))/sqrt(sin(theta))”);

Device Tracking(kP,”0.001*P+0.001*P*P”);

ParticleIDIdent(“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

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

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 Presentation

Connecting to Server..