-
- TH1F *hITSz1 = new TH1F("hITSz1","",100,-14.35,14.35);
- TTree *TR = ITSloader->TreeR();
- for(i=g2->GetStartSPD();i<=g2->GetLastSPD();i++)
- {
- fITS->ResetRecPoints();
- TR->GetEvent(i);
- npoints = recpoints->GetEntries();
- for (ipoint=0;ipoint<npoints;ipoint++) {
- pnt = (AliITSRecPoint*)recpoints->UncheckedAt(ipoint);
- l[0]=pnt->GetX();
- l[1]=0;
- l[2]=pnt->GetZ();
- g2->LtoG(i, l, p);
- if(i<80 && TMath::Abs(p[2])<14.35) {
- if(p[0]>0) mxpiu++;
- if(p[0]<0) mxmeno++;
- if(p[1]>0) mypiu++;
- if(p[1]<0) mymeno++;
- hITSz1->Fill(p[2]);
- }
- if(i>=80 && TMath::Abs(p[2])<14.35) NoPoints2++;
- }
- }
-
- NoPoints1 = (Int_t)(hITSz1->GetEntries());
-
- AsPar[0] = (mxpiu-mxmeno)/(mxpiu+mxmeno);
- AsPar[1] = (mypiu-mymeno)/(mypiu+mymeno);
-
- Vzero[0] = 5.24441*AsPar[0];
- Vzero[1] = 5.24441*AsPar[1];
-
- ZCentroid= TMath::Abs(hITSz1->GetMean());
- Vzero[2] = -5.31040e-02+1.42198*ZCentroid+7.44718e-01*TMath::Power(ZCentroid,2)
- -5.73426e-01*TMath::Power(ZCentroid,3)+2.01500e-01*TMath::Power(ZCentroid,4)
- -3.34118e-02*TMath::Power(ZCentroid,5)+2.20816e-03*TMath::Power(ZCentroid,6);
-
- if(hITSz1->GetMean()<0) Vzero[2] = -Vzero[2];
-
- /*cout << "\nXvzero: " << Vzero[0] << " cm" << "";
- cout << "\nYvzero: " << Vzero[1] << " cm" << "";
- cout << "\nZvzero: " << Vzero[2] << " cm" << "\n";*/
-
- delete hITSz1;
-
- Double_t dphi,r,DeltaZ,a,b;
- Int_t np1=0;
- Int_t np2=0;
- Int_t niter=0;
-
- Double_t DeltaPhiZ = 0.08;
-
- Float_t B[3];
- Float_t origin[3];
- for(Int_t okm=0;okm<3;okm++) origin[okm]=0;
- gAlice->Field()->Field(origin,B);
-
- DeltaPhiZ = DeltaPhiZ*B[2]/2;
- Double_t DeltaPhiXY = 1.0;
-
- // cout << "\nDeltaPhiZ: " << DeltaPhiZ << " deg" << "\n";
- // cout << "DeltaPhiXY: " << DeltaPhiXY << " deg" << "\n";
-
- Double_t *Z1, *Z2, *Y1, *Y2, *X1, *X2, *phi1, *phi2, *r1, *r2;
- Z1=new Double_t[NoPoints1];
- Z2=new Double_t[NoPoints2];
- Y1=new Double_t[NoPoints1];
- Y2=new Double_t[NoPoints2];
- X1=new Double_t[NoPoints1];
- X2=new Double_t[NoPoints2];
- phi1=new Double_t[NoPoints1];
- phi2=new Double_t[NoPoints2];
- r1=new Double_t[NoPoints1];
- r2=new Double_t[NoPoints2];
-
- DeltaZ = 4.91617e-01+2.67567e-02*Vzero[2]+1.49626e-02*TMath::Power(Vzero[2],2);
- Float_t MulFactorZ = 28000./(Float_t)NoPoints1;
- Int_t nbin=(Int_t)((DeltaZ/0.005)/MulFactorZ);
- Int_t nbinxy=250;
- Int_t *VectorBinZ,*VectorBinXY;
- VectorBinZ=new Int_t[nbin];
- VectorBinXY=new Int_t[nbinxy];
- Float_t f1= 0;
- Float_t f2= 0;
- Double_t sigma,MediaFondo;
-
- TH1D *hITSZv = new TH1D("hITSZv","",nbin,Vzero[2]-DeltaZ,Vzero[2]+DeltaZ);
- TH1D *hITSXv = new TH1D("hITSXv","",nbinxy,-3,3);
- TH1D *hITSYv = new TH1D("hITSYv","",nbinxy,-3,3);
-
- // cout << "DeltaZeta: " << DeltaZ << " cm" << "\n";
-
-
- start:
-
- hITSZv->Add(hITSZv,-1.);
- hITSXv->Add(hITSXv,-1.);
- hITSYv->Add(hITSYv,-1.);
-
- np1=np2=0;
-
-
-
- for(i=g2->GetStartSPD();i<=g2->GetLastSPD();i++)
- {
- fITS->ResetRecPoints();
- ITSloader->TreeR()->GetEvent(i);
- npoints = recpoints->GetEntries();
- for (ipoint=0;ipoint<npoints;ipoint++) {
-
- pnt = (AliITSRecPoint*)recpoints->UncheckedAt(ipoint);
- l[0]=pnt->GetX();
- l[1]=0;
- l[2]=pnt->GetZ();
- g2->LtoG(i, l, p);
-
- if(i<80 && TMath::Abs(p[2])<14.35) {
- p[0]=p[0]-Vzero[0];
- p[1]=p[1]-Vzero[1];
- r=TMath::Sqrt(TMath::Power(p[0],2)+TMath::Power(p[1],2));
- Y1[np1]=p[1];
- X1[np1]=p[0];
- Z1[np1]=p[2];
- r1[np1]=r;
- phi1[np1]=PhiFunc(p);
- np1++;
- }
-
- if(i>=80 && TMath::Abs(p[2])<14.35) {
- p[0]=p[0]-Vzero[0];
- p[1]=p[1]-Vzero[1];
- r=TMath::Sqrt(TMath::Power(p[0],2)+TMath::Power(p[1],2));
- Y2[np2]=p[1];
- X2[np2]=p[0];
- Z2[np2]=p[2];
- r2[np2]=r;
- phi2[np2]=PhiFunc(p);
- np2++;
- }
-