#include <TROOT.h>
#include <TMath.h>
#include <TRandom2.h>
#include "AliUnicorEvent.h"
#include "AliUnicorHN.h"
#include "AliUnicorAnalCorrel.h"
ClassImp(AliUnicorAnalCorrel)
AliUnicorAnalCorrel::AliUnicorAnalCorrel(const char *nam, Double_t emi, Double_t ema,
Int_t pid0, Int_t pid1, AnalysisFrame frame):
AliUnicorAnal(nam), fPid0(pid0), fPid1(pid1), fMass0(0), fMass1(0), fZ0(0), fZ1(0),
fFrame(frame), fPa() {
TParticlePDG *part0 = AliUnicorAnal::fgPDG.GetParticle(fPid0);
TParticlePDG *part1 = AliUnicorAnal::fgPDG.GetParticle(fPid1);
fMass0 = part0? part0->Mass() : 0;
fMass1 = part1? part1->Mass() : 0;
fZ0 = part0? part0->Charge()/3.0 : 0;
fZ1 = part1? part1->Charge()/3.0 : 0;
double pi = TMath::Pi();
int nce = 6; double cebins[]={0,0.05,0.1,0.2,0.4,0.6,1.0};
int npt = 10; double ptbins[]={0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,1.0,2.0};
double qbins[200] = {0};
for (int i=0;i<60;i++) qbins[i]=i*0.005;
for (int i=0;i<35;i++) qbins[60+i]=0.3+i*0.02;
for (int i=0;i<20;i++) qbins[95+i]=1.0+i*0.05;
for (int i=0;i<11;i++) qbins[115+i]=2.0+i*0.20;
TAxis *ax[8];
ax[0] = new TAxis(4,-0.5,3.5);ax[0]->SetTitle("trumixrot");
ax[1] = new TAxis(nce,cebins);ax[1]->SetTitle("centrality");
ax[2] = new TAxis(3,emi,ema); ax[2]->SetTitle("y");
ax[3] = new TAxis(1,-pi,pi); ax[3]->SetTitle("phi");
ax[4] = new TAxis(npt,ptbins);ax[4]->SetTitle("kt (GeV/c)");
ax[5] = new TAxis(8,0,pi); ax[5]->SetTitle("q-theta");
ax[6] = new TAxis(16,-pi,pi); ax[6]->SetTitle("q-phi");
ax[7] = new TAxis(125,qbins); ax[7]->SetTitle("q (GeV/c)");
AliUnicorHN *pair = new AliUnicorHN("pair",8,ax);
fHistos.Add(pair);
TAxis *bx[3]={0};
bx[0] = new TAxis(ax[1]->GetNbins(), ax[1]->GetXmin(), ax[1]->GetXmax()); bx[0]->SetTitle("centrality");
bx[1] = new TAxis(10*ax[2]->GetNbins(),emi,ema); bx[1]->SetTitle("y");
bx[2] = new TAxis(100,0,2); bx[2]->SetTitle("kt (GeV/c)");
AliUnicorHN *bimo = new AliUnicorHN("bimo",3,bx);
for (int i=0; i<8; i++) delete ax[i];
for (int i=0; i<3; i++) delete bx[i];
fHistos.Add(bimo);
ax[0] = new TAxis(3,-0.5,2.5); ax[0]->SetTitle("trumixrot");
ax[1] = new TAxis(2,-0.5,1.5); ax[1]->SetTitle("cut applied");
ax[2] = new TAxis(npt,ptbins); ax[2]->SetTitle("(pair pt)/2 (GeV)");
ax[3] = new TAxis(80,-0.08,0.08); ax[3]->SetTitle("dtheta");
ax[4] = new TAxis(80,-0.20,0.20); ax[4]->SetTitle("dphi");
AliUnicorHN *twot = new AliUnicorHN("twot",5,ax);
for (int i=0; i<5; i++) delete ax[i];
fHistos.Add(twot);
gROOT->cd();
printf("%s object named %s created\n",ClassName(),GetName());
}
void AliUnicorAnalCorrel::Process(Int_t tmr, const AliUnicorEvent * const ev0, const AliUnicorEvent * const ev1, Double_t phirot)
{
static TRandom2 ran;
AliUnicorHN *pair = (AliUnicorHN*) fHistos.At(0);
AliUnicorHN *bimo = (AliUnicorHN*) fHistos.At(1);
AliUnicorHN *twot = (AliUnicorHN*) fHistos.At(2);
double cent = (ev0->Centrality()+ev1->Centrality())/2.0;
double q0x=0,q0y=0,q1x=0,q1y=0;
ev0->RP(q0x,q0y);
ev1->RP(q1x,q1y);
double rpphi = atan2(q0y+q1y,q0x+q1x);
for (int i=0; i<ev0->NParticles(); i++) {
if (!ev0->ParticleGood(i,fPid0)) continue;
for (int j=0; j<ev1->NParticles(); j++) {
if (ev0==ev1 && j<i && fPid0==fPid1 ) continue;
if (ev0==ev1 && j==i) continue;
if (!ev1->ParticleGood(j,fPid1)) continue;
fPa.Set0(fMass0,ev0->ParticleP(i),ev0->ParticleTheta(i),ev0->ParticlePhi(i));
fPa.Set1(fMass1,ev1->ParticleP(j),ev1->ParticleTheta(j),ev1->ParticlePhi(j)+phirot);
if (ev0==ev1 && fPid0==fPid1 && ran.Rndm()>=0.5) fPa.Swap();
twot->Fill((double) tmr, 0.0, fPa.Pt()/2.0, fPa.DTheta(), fPa.DPhi(),1.0);
if (!ev0->PairGood(ev0->ParticleP(i),ev0->ParticleTheta(i),ev0->ParticlePhi(i),fZ0,
ev1->ParticleP(j),ev1->ParticleTheta(j),ev1->ParticlePhi(j)+phirot,fZ1)) continue;
twot->Fill((double) tmr, 1.0, fPa.Pt()/2.0, fPa.DTheta(), fPa.DPhi(),1.0);
fPa.CalcLAB();
fPa.CalcPairCM();
double qcm = fPa.QCM();
fPa.CalcLAB();
if (fFrame == kPairFrame) fPa.CalcPairCM();
if (fFrame == kLCMS) fPa.CalcLcmsCM();
if (fPa.QCM()==0) {printf("AliUnicorAnalCorrel: Q=0\n"); return;}
double phi = TVector2::Phi_mpi_pi(fPa.Phi()-rpphi);
double weigth = 1.0;
pair->Fill((double) tmr,
cent,
fPa.Rapidity(),
phi,
fPa.Pt()/2.0,
fPa.QCMTheta(),
fPa.QCMPhiOut(),
fPa.QCM(),
weigth);
if (tmr==0 && fPa.QCM()<0.2) bimo->Fill(cent, fPa.Rapidity(), fPa.Pt()/2.0, weigth);
if (tmr==0) pair->Fill((double) 3,
cent,
fPa.Rapidity(),
phi,
fPa.Pt()/2.0,
fPa.QCMTheta(),
fPa.QCMPhiOut(),
fPa.QCM(),
weigth*qcm);
}
}
}
AliUnicorAnalCorrel.cxx:1 AliUnicorAnalCorrel.cxx:2 AliUnicorAnalCorrel.cxx:3 AliUnicorAnalCorrel.cxx:4 AliUnicorAnalCorrel.cxx:5 AliUnicorAnalCorrel.cxx:6 AliUnicorAnalCorrel.cxx:7 AliUnicorAnalCorrel.cxx:8 AliUnicorAnalCorrel.cxx:9 AliUnicorAnalCorrel.cxx:10 AliUnicorAnalCorrel.cxx:11 AliUnicorAnalCorrel.cxx:12 AliUnicorAnalCorrel.cxx:13 AliUnicorAnalCorrel.cxx:14 AliUnicorAnalCorrel.cxx:15 AliUnicorAnalCorrel.cxx:16 AliUnicorAnalCorrel.cxx:17 AliUnicorAnalCorrel.cxx:18 AliUnicorAnalCorrel.cxx:19 AliUnicorAnalCorrel.cxx:20 AliUnicorAnalCorrel.cxx:21 AliUnicorAnalCorrel.cxx:22 AliUnicorAnalCorrel.cxx:23 AliUnicorAnalCorrel.cxx:24 AliUnicorAnalCorrel.cxx:25 AliUnicorAnalCorrel.cxx:26 AliUnicorAnalCorrel.cxx:27 AliUnicorAnalCorrel.cxx:28 AliUnicorAnalCorrel.cxx:29 AliUnicorAnalCorrel.cxx:30 AliUnicorAnalCorrel.cxx:31 AliUnicorAnalCorrel.cxx:32 AliUnicorAnalCorrel.cxx:33 AliUnicorAnalCorrel.cxx:34 AliUnicorAnalCorrel.cxx:35 AliUnicorAnalCorrel.cxx:36 AliUnicorAnalCorrel.cxx:37 AliUnicorAnalCorrel.cxx:38 AliUnicorAnalCorrel.cxx:39 AliUnicorAnalCorrel.cxx:40 AliUnicorAnalCorrel.cxx:41 AliUnicorAnalCorrel.cxx:42 AliUnicorAnalCorrel.cxx:43 AliUnicorAnalCorrel.cxx:44 AliUnicorAnalCorrel.cxx:45 AliUnicorAnalCorrel.cxx:46 AliUnicorAnalCorrel.cxx:47 AliUnicorAnalCorrel.cxx:48 AliUnicorAnalCorrel.cxx:49 AliUnicorAnalCorrel.cxx:50 AliUnicorAnalCorrel.cxx:51 AliUnicorAnalCorrel.cxx:52 AliUnicorAnalCorrel.cxx:53 AliUnicorAnalCorrel.cxx:54 AliUnicorAnalCorrel.cxx:55 AliUnicorAnalCorrel.cxx:56 AliUnicorAnalCorrel.cxx:57 AliUnicorAnalCorrel.cxx:58 AliUnicorAnalCorrel.cxx:59 AliUnicorAnalCorrel.cxx:60 AliUnicorAnalCorrel.cxx:61 AliUnicorAnalCorrel.cxx:62 AliUnicorAnalCorrel.cxx:63 AliUnicorAnalCorrel.cxx:64 AliUnicorAnalCorrel.cxx:65 AliUnicorAnalCorrel.cxx:66 AliUnicorAnalCorrel.cxx:67 AliUnicorAnalCorrel.cxx:68 AliUnicorAnalCorrel.cxx:69 AliUnicorAnalCorrel.cxx:70 AliUnicorAnalCorrel.cxx:71 AliUnicorAnalCorrel.cxx:72 AliUnicorAnalCorrel.cxx:73 AliUnicorAnalCorrel.cxx:74 AliUnicorAnalCorrel.cxx:75 AliUnicorAnalCorrel.cxx:76 AliUnicorAnalCorrel.cxx:77 AliUnicorAnalCorrel.cxx:78 AliUnicorAnalCorrel.cxx:79 AliUnicorAnalCorrel.cxx:80 AliUnicorAnalCorrel.cxx:81 AliUnicorAnalCorrel.cxx:82 AliUnicorAnalCorrel.cxx:83 AliUnicorAnalCorrel.cxx:84 AliUnicorAnalCorrel.cxx:85 AliUnicorAnalCorrel.cxx:86 AliUnicorAnalCorrel.cxx:87 AliUnicorAnalCorrel.cxx:88 AliUnicorAnalCorrel.cxx:89 AliUnicorAnalCorrel.cxx:90 AliUnicorAnalCorrel.cxx:91 AliUnicorAnalCorrel.cxx:92 AliUnicorAnalCorrel.cxx:93 AliUnicorAnalCorrel.cxx:94 AliUnicorAnalCorrel.cxx:95 AliUnicorAnalCorrel.cxx:96 AliUnicorAnalCorrel.cxx:97 AliUnicorAnalCorrel.cxx:98 AliUnicorAnalCorrel.cxx:99 AliUnicorAnalCorrel.cxx:100 AliUnicorAnalCorrel.cxx:101 AliUnicorAnalCorrel.cxx:102 AliUnicorAnalCorrel.cxx:103 AliUnicorAnalCorrel.cxx:104 AliUnicorAnalCorrel.cxx:105 AliUnicorAnalCorrel.cxx:106 AliUnicorAnalCorrel.cxx:107 AliUnicorAnalCorrel.cxx:108 AliUnicorAnalCorrel.cxx:109 AliUnicorAnalCorrel.cxx:110 AliUnicorAnalCorrel.cxx:111 AliUnicorAnalCorrel.cxx:112 AliUnicorAnalCorrel.cxx:113 AliUnicorAnalCorrel.cxx:114 AliUnicorAnalCorrel.cxx:115 AliUnicorAnalCorrel.cxx:116 AliUnicorAnalCorrel.cxx:117 AliUnicorAnalCorrel.cxx:118 AliUnicorAnalCorrel.cxx:119 AliUnicorAnalCorrel.cxx:120 AliUnicorAnalCorrel.cxx:121 AliUnicorAnalCorrel.cxx:122 AliUnicorAnalCorrel.cxx:123 AliUnicorAnalCorrel.cxx:124 AliUnicorAnalCorrel.cxx:125 AliUnicorAnalCorrel.cxx:126 AliUnicorAnalCorrel.cxx:127 AliUnicorAnalCorrel.cxx:128 AliUnicorAnalCorrel.cxx:129 AliUnicorAnalCorrel.cxx:130 AliUnicorAnalCorrel.cxx:131 AliUnicorAnalCorrel.cxx:132 AliUnicorAnalCorrel.cxx:133 AliUnicorAnalCorrel.cxx:134 AliUnicorAnalCorrel.cxx:135 AliUnicorAnalCorrel.cxx:136 AliUnicorAnalCorrel.cxx:137 AliUnicorAnalCorrel.cxx:138 AliUnicorAnalCorrel.cxx:139 AliUnicorAnalCorrel.cxx:140 AliUnicorAnalCorrel.cxx:141 AliUnicorAnalCorrel.cxx:142 AliUnicorAnalCorrel.cxx:143 AliUnicorAnalCorrel.cxx:144 AliUnicorAnalCorrel.cxx:145 AliUnicorAnalCorrel.cxx:146 AliUnicorAnalCorrel.cxx:147 AliUnicorAnalCorrel.cxx:148 AliUnicorAnalCorrel.cxx:149 AliUnicorAnalCorrel.cxx:150 AliUnicorAnalCorrel.cxx:151 AliUnicorAnalCorrel.cxx:152 AliUnicorAnalCorrel.cxx:153 AliUnicorAnalCorrel.cxx:154 AliUnicorAnalCorrel.cxx:155 AliUnicorAnalCorrel.cxx:156 AliUnicorAnalCorrel.cxx:157 AliUnicorAnalCorrel.cxx:158 AliUnicorAnalCorrel.cxx:159 AliUnicorAnalCorrel.cxx:160 AliUnicorAnalCorrel.cxx:161 AliUnicorAnalCorrel.cxx:162 AliUnicorAnalCorrel.cxx:163 AliUnicorAnalCorrel.cxx:164 AliUnicorAnalCorrel.cxx:165 AliUnicorAnalCorrel.cxx:166 AliUnicorAnalCorrel.cxx:167 AliUnicorAnalCorrel.cxx:168 AliUnicorAnalCorrel.cxx:169 AliUnicorAnalCorrel.cxx:170 AliUnicorAnalCorrel.cxx:171 AliUnicorAnalCorrel.cxx:172 AliUnicorAnalCorrel.cxx:173 AliUnicorAnalCorrel.cxx:174 AliUnicorAnalCorrel.cxx:175 AliUnicorAnalCorrel.cxx:176 AliUnicorAnalCorrel.cxx:177 AliUnicorAnalCorrel.cxx:178 AliUnicorAnalCorrel.cxx:179 AliUnicorAnalCorrel.cxx:180 AliUnicorAnalCorrel.cxx:181 AliUnicorAnalCorrel.cxx:182 AliUnicorAnalCorrel.cxx:183 AliUnicorAnalCorrel.cxx:184 AliUnicorAnalCorrel.cxx:185 AliUnicorAnalCorrel.cxx:186 AliUnicorAnalCorrel.cxx:187 AliUnicorAnalCorrel.cxx:188 AliUnicorAnalCorrel.cxx:189 AliUnicorAnalCorrel.cxx:190 AliUnicorAnalCorrel.cxx:191 AliUnicorAnalCorrel.cxx:192 AliUnicorAnalCorrel.cxx:193 AliUnicorAnalCorrel.cxx:194 AliUnicorAnalCorrel.cxx:195 AliUnicorAnalCorrel.cxx:196