10 #include <TPolyLine.h>
14 #include "StFgtUtil/geometry/StFgtGeom.h"
16 #include "StFgtSlowSimuMaker.h"
21 StFgtSlowSimuMaker::InitHisto1( ){
26 Int_t digNx=2000, digNy=digNx;
28 quadDigitizationXY=
new TH2F(
"digXY",
" 2D digitization, z=charge (a.u); quadrant local X(cm); quadrant local Y (cm)",digNx,0.,maxR,digNy,0.,maxR);
30 quadDigitizationRad=
new TH1F(
"digRad",
"rad-strips ADC; radial-strip ID",kFgtNumStrips,0.,kFgtNumStrips);
31 quadDigitizationPhi=
new TH1F(
"digPhi",
"phi-strips ADC; phi-strip ID",kFgtNumStrips,0.,kFgtNumStrips);
34 #ifdef __FGT_QA_HISTO__
35 HList->Add(quadDigitizationXY);
36 HList->Add(quadDigitizationRad);
37 HList->Add(quadDigitizationPhi);
40 digXYAll=
new TH2F(
"digXYAll",
" 2D charge , sens vol; local X(cm); local Y (cm)",digNx,0.,maxR,digNy,0.,maxR); HList->Add(digXYAll);
42 digPadcAll=
new TH2F(
"digPadcAll",
" 2D ADC/bin, P-plane; local X(cm); local Y (cm)",digNx,0.,maxR,digNy,0.,maxR); HList->Add(digPadcAll);
43 digRadcAll=
new TH2F(
"digRadcAll",
" 2D ADC/bin, R-plane; local X(cm); local Y (cm)",digNx,0.,maxR,digNy,0.,maxR); HList->Add(digRadcAll);
45 digRAll=
new TH1F(
"digRAll",
"rad-strips ADC, all events; radial-strip ID",kFgtNumStrips,0.,kFgtNumStrips); HList->Add(digRAll);
46 digPAll=
new TH1F(
"digPAll",
"phi-strips ADC, all events; phi-strip ID",kFgtNumStrips,0.,kFgtNumStrips); HList->Add(digPAll);
51 #ifdef __FGT_QA_HISTO__
55 StFgtSlowSimuMaker::InitHisto2(){
58 hA[0]=
new TH1F(
"ss_inDE",
"g2t DE of hit; Elos (keV)",100,0.,5.);
59 hA[1]=
new TH1F(
"ss_inDS",
"g2t path length of hit; DS (cm)",60,0.,9.);
60 hA[2]=
new TH1F(
"ss_inZ",
"g2t Z of hit (entrance); Z(cm)",100,50.,250.);
63 hA[3]=
new TH1F(
"ss_hitStat",
"Where G-hits are lost, 1-10 general; x=10+5*disk+quad",45, 0.5,45.5);
64 hA[4]=
new TH2F(
"ss_inXY",
"Entrance X-Y , accepted G-hits, all disks",450,-45.,45.,450,-45.,45.);
67 hA[5]=
new TH1F(
"ss_cTof",
"g2t TOF of hit (before cut); TOF(ns)",1000,0.,200.);
68 hA[6]=
new TH1F(
"ss_inR",
"g2t Rxy of hit, w=1.; Rxy (cm)",10*(
int)maxRb,0.,maxRb);
69 hA[7]=
new TH1F(
"ss_cPmag",
"g2t P.Mag of hit (before cut); log10(momentum/MeV)",160,-2,6.);
76 for(i=0;i<kFgtNumDiscs;i++) {
77 char tt1[100], tt2[500];
78 sprintf(tt1,
"ss_gXY%d",i+1);
79 sprintf(tt2,
" G-hits accepted in Disk=%d; LAB X (cm) ; LAB Y (cm) ",i+1);
80 hA[11+i]=
new TH2F(tt1,tt2,25,-maxRb,maxRb,25,-maxRb,maxRb);
82 hA[20]=
new TH1F(
"fr_pairEne",
"Energy of pair per collision; Energy Loss per collision [eV]", 100, 0, 100);
83 hA[21]=
new TH1F(
"fr_nPrimPair", Form(
"No. of prim pairs per track, use %.1f ions/mm; # of pairs",par_pairsPerCm/10.), 35, -0.5, 34.5);
84 hA[22]=
new TH1F(
"fr_totEne",
"Total energy deposit per track,F.model; Energy Loss [keV]", 250, 0, 5.);
86 hA[23]=
new TH1F(
"fr_nTotPair",
"Total No. of pairs per track; # of pairs", 250, -0.5, 249.5);
87 hA[24]=
new TH1F(
"fr_pathL",
"Total path length in gas per track; path (mm)",50, 0., 10.);
88 hA[25]=
new TH1F(
"fr_avrPath",
"Average path length , w=nAnyEle; path (mm)",50, 0., 10.);
89 hA[26]=
new TH1F(
"fr_avrTPath",
"Average transverse path length , w=nAnyEle; path (mm)",250, 0., 10.);
90 hA[27]=
new TH1F(
"fr_Zdrf",
"Zdrift of prim ele ; Z(mm)",100,0.,5.);
91 hA[28]=
new TH2F(
"fr_Rdiff",
"Transverse diffusion; relative X(um); relative Y(um)",50,-250,250,50,-250,250);
94 hA[29]=
new TH1F(
"dg_Radc",
"R-plane ADC sum per quad per eve; ADC sum ",200,0,3000);
95 hA[30]=
new TH1F(
"dg_Padc",
"P-plane ADC sum per quad per eve; ADC sum ",200,0,3000);
96 hA[31]=
new TH2F(
"dg_PRadc",
"ADC sum per quad per eve; P-plane sum; R-plane sum", 100,0,2000,100,0,2000);
100 TList *Lx; TCrown *cr;
103 Lx=hA[4]->GetListOfFunctions();
106 for(iq=0;iq<kFgtNumQuads;iq++) {
107 Float_t phi1=StFgtGeom::phiQuadXaxis(iq)/3.1416*180.;
108 cr=
new TCrown(0.,0.,StFgtGeom::rIn(),StFgtGeom::rOut(),phi1,phi1+90);
109 cr->SetLineColor(kRed); Lx->Add(cr);
111 cr=
new TCrown(0.,0.,StFgtGeom::rMid(),StFgtGeom::rMid(),0,360);
115 if(hA[i]) HList->Add(hA[i]);
125 StFgtSlowSimuMaker::CloseHisto(){
128 TList *Lx; TCrown *cr;
130 for(Int_t ih=0;ih<3;ih++) {
132 if( ih==0) Lx=quadDigitizationXY->GetListOfFunctions();
133 if( ih==1) Lx=digXYAll->GetListOfFunctions();
134 if( ih==2) Lx=digPadcAll->GetListOfFunctions();
138 for(iqq=0;iqq<2;iqq++) {
141 cr=
new TCrown(0.,0.,StFgtGeom::rMid(),StFgtGeom::rOut(),phi1,phi1+90);
143 cr=
new TCrown(0.,0.,StFgtGeom::rIn(),StFgtGeom::rMid(),phi1,phi1+90);
147 cr=
new TCrown(0.,0.,StFgtGeom::rMid(),StFgtGeom::rMid(),0,90);
150 TLine *ln=
new TLine(0,0,30,30);
151 ln->SetLineStyle(2); Lx->Add(ln);