namespace Smear {}

  • View

  • Download

Embed Size (px)


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

Text of namespace Smear {}

namespace Smear {}

namespace Smear {}Michael SavastioTree Format1 to 11 to 11 to 1Currently ParticleS stores E, p, theta, phi, pz, pT ONLY!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 its own acceptance in (E,p,theta,phi) space.ThetaPEppEphiIPParticles passing through here will have smeared p and thetaParticles passing through here will have smeared E onlyThese particles will be smeared only by innermost (last added) deviceEventSWill output only 1 EventS with only 1 instance of each particle.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 thetaDevice HCal;HCal.SetGenre(2); //this detects hadronsHCal.SetSmearedKinematics(kE);HCal.SetParametrization("0.35*sqrt(E)"); 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 parametrizationsDevice 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(;.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)Currently Available Smear::Detector SetupsAll with default 4*pi acceptance.E


STARSTARPythia 20x250p


STARSTARPythia 20x250


STARSTARPythia 20x250Event-Wise Kinematics

ZEUSSTARMethods Available:NM (using scattered electron in the Null Momentum approximation)JB (Jacquet-Blondel, using hadronic system)DA (Double Angle, using hadronic system)Pythia 20x250Particle ID

p+K+K-unidentified+-PID not Generated:Momentum outside range of validityBased on HERMES RICH P-matrices (shown on grid above)

TO DOThoroughly 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

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