47 fX =
MakeTH1(
'D',
"Position/Xfinal",
"Scatt sim x (nm)",1000,-1e7,1e+7);
48 fY =
MakeTH1(
'D',
"Position/Yfinal",
"Scatt sim y (nm)",1000,-1e7,1e+7);
49 fZ =
MakeTH1(
'D',
"Position/Zfinal",
"Scatt sim z (nm)",1000, 1., 1e+8);
51 fVX =
MakeTH1(
'D',
"Velocity/Vxfinal",
"Scatt sim vx (nm/ps)",10000, -5e+3,5e+3);
52 fVY =
MakeTH1(
'D',
"Velocity/Vyfinal",
"Scatt sim vy (nm/ps)",10000, -5e+3,5e+3);
53 fVZ =
MakeTH1(
'D',
"Velocity/Vzfinal",
"Scatt sim vz (nm/ps)",10000, 1.,3e+4);
54 fThetaX=
MakeTH1(
'D',
"Angle/thetax",
"Scatt sim x' (mrad)",10000, -5e+2,5e+2);
55 fThetaY=
MakeTH1(
'D',
"Angle/thetay",
"Scatt sim y' (mrad)",10000, -5e+2,5e+2);
56 fThetaR=
MakeTH1(
'D',
"Angle/thetaR",
"Scatt sim r' (mrad)",10000, 0,2e+3);
57 fNumScatt =
MakeTH1(
'D',
"Nscatt",
"Multiple scattering collisions",50000, 0, 50000.);
59 fXY =
MakeTH2(
'D',
"Position/X-Y",
"x versus y final",100,-1e7,1e+7,100,-1e+7,1e+7);
60 fVXVY =
MakeTH2(
'D',
"Velocity/Vx-Vy",
"vx versus vy final",1000,-5e+3,5e+3,1000,-5e+3,5e+3);
61 fXYCond =
MakeTH2(
'D',
"Position/X-Y-cond",
"x versus y final",1000,-1e+7,1e+7,1000,-1e+7,1e+7);
62 fVXVYCond =
MakeTH2(
'D',
"Velocity/Vx-Vy-cond",
"vx versus vy final",100,-1e+3,1e+3,100,-1e+3,1e+3);
64 fEmitX =
MakeTH2(
'D',
"X-X'",
"transverse emittance x",1000,-1e+7,1e+7,1000,-0.1,0.1);
65 fEmitY =
MakeTH2(
'D',
"Y-Y'",
"transverse emittance y",1000,-1e+7,1e+7,1000,-0.1,0.1);
66 fEmitDist =
MakeTH1(
'D',
"Emit4d",
"transverse emittance distribution",4000,0,2e+5);
75 Double_t cutpnts[3][2] = { {400, 800}, {700, 900}, {600, 1100} };
82 TCanvas *mycan =
new TCanvas(
"TestCanvas2",
"Does this work2?");
103 return cl->InheritsFrom(TYYYUnpackEvent::Class());
113 if (!inp || !poutevt) {
119 for (Int_t i = 0; i < 3; ++i) {
123 poutevt->
fdR[0]-=5e+6;
124 poutevt->
fdR[1]-=5e+6;
127 if(poutevt->
fdV[2]) poutevt->
fdGam[0]=poutevt->
fdV[0]/poutevt->
fdV[2];
128 if(poutevt->
fdV[2]) poutevt->
fdGam[1]=poutevt->
fdV[1]/poutevt->
fdV[2];
129 Double_t scalefact=1e-3;
134 fX->Fill(poutevt->
fdR[0]);
135 fY->Fill(poutevt->
fdR[1]);
136 fZ->Fill(poutevt->
fdR[2]);
137 fVX->Fill(poutevt->
fdV[0]);
138 fVY->Fill(poutevt->
fdV[1]);
139 fVZ->Fill(poutevt->
fdV[2]);
144 fThetaR->Fill(TMath::Sqrt(poutevt->
fdV[1]*poutevt->
fdV[1] + poutevt->
fdV[0]*poutevt->
fdV[0])/poutevt->
fdV[2] * 1000);
147 fXY->Fill(poutevt->
fdR[0],poutevt->
fdR[1]);
TH1 * MakeTH1(char type, const char *fullname, const char *title, Int_t nbinsx, Double_t xlow, Double_t xup, const char *xtitle=nullptr, const char *ytitle=nullptr)
TGo4PolyCond * fPolyConEmit
static void Info(const char *text,...) GO4_PRINTF_ARGS
Bool_t CheckEventClass(TClass *cl) override
Bool_t BuildEvent(TGo4EventElement *dest) override
TH2 * MakeTH2(char type, const char *fullname, const char *title, Int_t nbinsx, Double_t xlow, Double_t xup, Int_t nbinsy, Double_t ylow, Double_t yup, const char *xtitle=nullptr, const char *ytitle=nullptr, const char *ztitle=nullptr)
TCanvas * GetCanvas(const char *name)
void PrintCondition(Bool_t full=kTRUE) override
virtual void Disable(Bool_t result)
void Print(Option_t *opt="") const override
static void Error(const char *text,...) GO4_PRINTF_ARGS
TGo4EventElement * GetInputEvent()
TGo4Parameter * GetParameter(const char *name, const char *par_class=nullptr)
Bool_t AddCanvas(TCanvas *can, const char *subfolder=nullptr)
TGo4WinCond * MakeWinCond(const char *fullname, Double_t xmin, Double_t xmax, const char *HistoName=nullptr)
Bool_t Test(Double_t v1) override
TGo4PolyCond * MakePolyCond(const char *fullname, Int_t npoints, Double_t(*points) [2], const char *HistoName=nullptr)
virtual void Invert(Bool_t on)
virtual ~TYYYUnpackProc()
void PrintCondition(Bool_t points=kTRUE) override