1 #include "SpinIUHistos.h"
7 #include "TDirectory.h"
13 SpinIUHistos::SpinIUHistos(
const Char_t *name,
const Char_t *title):TDirectory(name,title,
"SpinIUHistos")
26 hMass =
new TH1F(TString(
"hMass") +name,
"diphoton invariant mass", nmass,min,max );
28 hPT =
new TH2F(TString(
"hPT") +name,
"Diphoton transverse momentum vs mass", nmass,min,max,50,0.0, 25.0);
29 hZgg =
new TH2F(TString(
"hZgg") +name,
"Diphoton energy sharing vs mass", nmass,min,max,50,0.,1.);
30 hZvert=
new TH2F(TString(
"hZvert") +name,
"Event z-vertex vs mass", nmass,min,max,150,-150.,150.);
31 hEta =
new TH2F(TString(
"hEta") +name,
"Reconstructed #eta of #pi^{0} candidate vs mass",nmass,min,max,180,1.0,2.5);
32 hEEmcEta =
new TH2F(TString(
"hEEmcEta") +name,
"Detector #eta of #pi^{0} candidate vs mass",nmass,min,max,180,1.0,2.5);
33 hPhi =
new TH2F(TString(
"hPhi") +name,
"Detector #Phi of #pi^{0} candidate vs mass",nmass,min,max,360,-180.,180.);
34 hRGeo=
new TH2F(TString(
"hRGeo")+name,
"Reconstructed pi0 track; Recon phi / deg;ReconEta",360,-180.,180,20,1.,2.);
36 hYX[0]=
new TH2F(TString(
"hYX_0") +name,
"#pi^{0} position at z=280cm", 120,-240.,240.,120,-240.,240.);
37 hYX[1]=
new TH2F(TString(
"hYX_1") +name,
"higher energy gamma at z=280 cm", 240,-240.,240.,240,-240.,240.);
38 hYX[2]=
new TH2F(TString(
"hYX_2") +name,
"lower energy gamma at z=280 cm", 240,-240.,240.,240,-240.,240.);
40 hE1E2 =
new TH2F(TString(
"hE1E2") +name,
"E1 vs E2", 100,0.,50.,100,0.,50.);
42 hPhiggVsEnergy =
new TH2F(TString(
"hPhiggVsEnergy")+name,
"#phi_{#gamma #gamma} vs energy",100,0.,50.,100,0.,0.2);
44 hEpi =
new TH2F(TString(
"hEpi") +name,
"Reconstructed energy of #pi^{0} candidate vs mass",nmass,min,max,60,0.0,60.);
45 hEsmd=
new TH2F(TString(
"hEsmd")+name,
"E_{smd} / E_{#pi^{0}} vs E_{#pi^{0}}", 60,0.,30.,60,0.,0.12);
46 hEpre1=
new TH2F(TString(
"hEpre1")+name,
"E_{pre1} [MeV] / E_{#pi^{0}} [GeV] vs E_{#pi^{0}}", 60,0.,30.,60,0.,6.);
47 hEpre2=
new TH2F(TString(
"hEpre2")+name,
"E_{pre2} [MeV] / E_{#pi^{0}} [GeV] vs E_{#pi^{0}}", 60,0.,30.,60,0.,12.);
48 hEpost=
new TH2F(TString(
"hEpost")+name,
"E_{post} [MeV] / E_{#pi^{0}} [GeV] vs E_{#pi^{0}}", 60,0.,30.,60,0.,1.2);
50 hEpre12=
new TH2F(TString(
"hEpre12")+name,
"E_{pre2} vs E_{pre1} [MeV]",75,0.,150.,75,0.,150.);
58 Float_t mass = pair.
mass();
59 hMass -> Fill( mass );
60 hPT -> Fill( mass, pair.
pt() );
61 hZgg -> Fill( mass, pair.
zgg() );
64 hEpi->Fill(mass,pair.
energy());
67 float hHeight=pair.
pt()*(270.0-pair.
vertex().Z())/pair.pz()+Rxy;
68 float etatheta=TMath::ATan(hHeight/270.0);
70 float mideta=TMath::Tan(etatheta/2.0);
71 float eemceta=-TMath::Log(mideta);
72 hEEmcEta->Fill(mass,eemceta);
73 hPhi->Fill(mass,pair.
momentum().Phi()*180./3.14159265);
74 hRGeo->Fill(pair.
momentum().Phi()*180./3.14159265,eemceta);
102 hEsmd->Fill( epi0, esmd/epi0 );
103 hEpre1->Fill( epi0, epre1*1000./epi0 );
104 hEpre2->Fill( epi0, epre2*1000./epi0 );
105 hEpost->Fill( epi0, epost*1000./epi0 );
106 hEpre12->Fill( epre1*1000, epre2*1000 );
109 TVector3 pp = (e1*p1 + e2*p2) * ( 1/(e1+e2) );
110 hYX[0] -> Fill( pp.X(), pp.Y() );
111 hYX[1] -> Fill( p1.X(), p1.Y() );
112 hYX[2] -> Fill( p2.X(), p2.Y() );
113 hE1E2 -> Fill( e2, e1 );
133 for ( Int_t i=0;i<3;i++ )
hYX[i]->Reset();
Float_t phigg()
Returns opening-angle of pair.
void Clear(Option_t *opts="")
Float_t pt()
Returns pt of pair.
TVector3 vertex()
Returns vertex of pair.
void energy(Float_t e, Int_t layer=0)
Set the energy of this point.
void position(TVector3 p)
Set the position of this point at the SMD plane.
void cluster(StEEmcIUSmdCluster c, Int_t plane)
Add an smd cluster to this point.
Float_t mass()
Returns invariant mass of pair.
Float_t energy()
Returns energy of pair.
StEEmcIUPoint point(Int_t index)
Spin sorted pi0 histograms.
TVector3 momentum()
Returns momentum of pair.
Float_t zgg()
Returns energy-sharing of pair.