#include <cmath>
#include "TFile.h"
#include "TH1.h"
#include "TGraph.h"
#include "AliESDVZERO.h"
#include "AliESDEvent.h"
#include "AliMultiplicity.h"
#include "AliUnicorEventAliceESD.h"
ClassImp(AliUnicorEventAliceESD)
AliUnicorEventAliceESD::AliUnicorEventAliceESD(AliESDEvent *esd) : AliUnicorEvent(), fViper(0), fESD(esd)
{
if (!fESD) fESD = new AliESDEvent();
TFile::Open("$ALICE_ROOT/ANALYSIS/macros/AliCentralityBy1D_137366_v2.root","read");
const TH1F *hi = (const TH1F*) gFile->Get("hmultV0_percentile");
fViper = new TGraph((const TH1*) hi);
gFile->Close();
}
AliUnicorEventAliceESD::~AliUnicorEventAliceESD() {
}
Bool_t AliUnicorEventAliceESD::Good() const
{
const AliESDVertex *vtx = fESD->GetPrimaryVertex();
if (!vtx->GetStatus()) return kFALSE;
if (fabs(Zver())>1) return kFALSE;
if (NGoodParticles()<9) return kFALSE;
return kTRUE;
}
Double_t AliUnicorEventAliceESD::Centrality() const {
AliESDVZERO *v0 = fESD->GetVZEROData();
float multa = v0->GetMTotV0A();
float multc = v0->GetMTotV0C();
double cent = fViper->Eval(multa+multc)/100.0;
return cent;
}
Bool_t AliUnicorEventAliceESD::ParticleGood(Int_t i, Int_t pidi) const
{
AliESDtrack *track = fESD->GetTrack(i);
if (!track->IsOn(AliESDtrack::kTPCrefit)) return 0;
if (!track->IsOn(AliESDtrack::kITSrefit)) return 0;
if (track->GetTPCNcls() < 90) return 0;
if (track->GetKinkIndex(0) > 0) return 0;
const AliExternalTrackParam *tp = GetTrackParam(i);
if (!tp) return 0;
if (fabs(tp->Eta())>0.8) return 0;
Float_t r,z;
track->GetImpactParametersTPC(r,z);
if (fabs(z)>1.0) return 0;
if (fabs(r)>1.0) return 0;
if (r==0) return 0;
if (pidi==0) return 1;
if (!track->IsOn(AliESDtrack::kTPCpid)) return 0;
Double_t p[AliPID::kSPECIES];
track->GetTPCpid(p);
Int_t q = tp->Charge();
if (pidi == -211) return p[AliPID::kPion]+p[AliPID::kMuon]>0.5 && q==-1;
else if (pidi == 211) return p[AliPID::kPion]+p[AliPID::kMuon]>0.5 && q==1;
else if (pidi == -321) return p[AliPID::kKaon]>0.5 && q==-1;
else if (pidi == 321) return p[AliPID::kKaon]>0.5 && q==1;
else if (pidi == -2212) return p[AliPID::kProton]>0.5 && q==-1;
else if (pidi == 2212) return p[AliPID::kProton]>0.5 && q==1;
else if (pidi == -11) return p[AliPID::kElectron]>0.5 && q==1;
else if (pidi == 11) return p[AliPID::kElectron]>0.5 && q==-1;
else return 0;
}
Bool_t AliUnicorEventAliceESD::PairGood(double p0, double the0, double phi0, double z0,
double p1, double the1, double phi1, double z1) const {
double dthe = the1-the0;
if (fabs(dthe)>0.010) return kTRUE;
double B = -0.5;
double pt0 = p0*sin(the0);
double pt1 = p1*sin(the1);
double r = 1.2;
double si0 = -0.3*B*z0*r/2/pt0;
double si1 = -0.3*B*z1*r/2/pt1;
if (fabs(si0)>=1.0) return kTRUE;
if (fabs(si1)>=1.0) return kTRUE;
double dphi = phi1 - phi0 + asin(si1) - asin(si0);
dphi = TVector2::Phi_mpi_pi(dphi);
if (fabs(dphi)<0.020) return kFALSE;
return kTRUE;
}
AliUnicorEventAliceESD.cxx:1 AliUnicorEventAliceESD.cxx:2 AliUnicorEventAliceESD.cxx:3 AliUnicorEventAliceESD.cxx:4 AliUnicorEventAliceESD.cxx:5 AliUnicorEventAliceESD.cxx:6 AliUnicorEventAliceESD.cxx:7 AliUnicorEventAliceESD.cxx:8 AliUnicorEventAliceESD.cxx:9 AliUnicorEventAliceESD.cxx:10 AliUnicorEventAliceESD.cxx:11 AliUnicorEventAliceESD.cxx:12 AliUnicorEventAliceESD.cxx:13 AliUnicorEventAliceESD.cxx:14 AliUnicorEventAliceESD.cxx:15 AliUnicorEventAliceESD.cxx:16 AliUnicorEventAliceESD.cxx:17 AliUnicorEventAliceESD.cxx:18 AliUnicorEventAliceESD.cxx:19 AliUnicorEventAliceESD.cxx:20 AliUnicorEventAliceESD.cxx:21 AliUnicorEventAliceESD.cxx:22 AliUnicorEventAliceESD.cxx:23 AliUnicorEventAliceESD.cxx:24 AliUnicorEventAliceESD.cxx:25 AliUnicorEventAliceESD.cxx:26 AliUnicorEventAliceESD.cxx:27 AliUnicorEventAliceESD.cxx:28 AliUnicorEventAliceESD.cxx:29 AliUnicorEventAliceESD.cxx:30 AliUnicorEventAliceESD.cxx:31 AliUnicorEventAliceESD.cxx:32 AliUnicorEventAliceESD.cxx:33 AliUnicorEventAliceESD.cxx:34 AliUnicorEventAliceESD.cxx:35 AliUnicorEventAliceESD.cxx:36 AliUnicorEventAliceESD.cxx:37 AliUnicorEventAliceESD.cxx:38 AliUnicorEventAliceESD.cxx:39 AliUnicorEventAliceESD.cxx:40 AliUnicorEventAliceESD.cxx:41 AliUnicorEventAliceESD.cxx:42 AliUnicorEventAliceESD.cxx:43 AliUnicorEventAliceESD.cxx:44 AliUnicorEventAliceESD.cxx:45 AliUnicorEventAliceESD.cxx:46 AliUnicorEventAliceESD.cxx:47 AliUnicorEventAliceESD.cxx:48 AliUnicorEventAliceESD.cxx:49 AliUnicorEventAliceESD.cxx:50 AliUnicorEventAliceESD.cxx:51 AliUnicorEventAliceESD.cxx:52 AliUnicorEventAliceESD.cxx:53 AliUnicorEventAliceESD.cxx:54 AliUnicorEventAliceESD.cxx:55 AliUnicorEventAliceESD.cxx:56 AliUnicorEventAliceESD.cxx:57 AliUnicorEventAliceESD.cxx:58 AliUnicorEventAliceESD.cxx:59 AliUnicorEventAliceESD.cxx:60 AliUnicorEventAliceESD.cxx:61 AliUnicorEventAliceESD.cxx:62 AliUnicorEventAliceESD.cxx:63 AliUnicorEventAliceESD.cxx:64 AliUnicorEventAliceESD.cxx:65 AliUnicorEventAliceESD.cxx:66 AliUnicorEventAliceESD.cxx:67 AliUnicorEventAliceESD.cxx:68 AliUnicorEventAliceESD.cxx:69 AliUnicorEventAliceESD.cxx:70 AliUnicorEventAliceESD.cxx:71 AliUnicorEventAliceESD.cxx:72 AliUnicorEventAliceESD.cxx:73 AliUnicorEventAliceESD.cxx:74 AliUnicorEventAliceESD.cxx:75 AliUnicorEventAliceESD.cxx:76 AliUnicorEventAliceESD.cxx:77 AliUnicorEventAliceESD.cxx:78 AliUnicorEventAliceESD.cxx:79 AliUnicorEventAliceESD.cxx:80 AliUnicorEventAliceESD.cxx:81 AliUnicorEventAliceESD.cxx:82 AliUnicorEventAliceESD.cxx:83 AliUnicorEventAliceESD.cxx:84 AliUnicorEventAliceESD.cxx:85 AliUnicorEventAliceESD.cxx:86 AliUnicorEventAliceESD.cxx:87 AliUnicorEventAliceESD.cxx:88 AliUnicorEventAliceESD.cxx:89 AliUnicorEventAliceESD.cxx:90 AliUnicorEventAliceESD.cxx:91 AliUnicorEventAliceESD.cxx:92 AliUnicorEventAliceESD.cxx:93 AliUnicorEventAliceESD.cxx:94 AliUnicorEventAliceESD.cxx:95 AliUnicorEventAliceESD.cxx:96 AliUnicorEventAliceESD.cxx:97 AliUnicorEventAliceESD.cxx:98 AliUnicorEventAliceESD.cxx:99 AliUnicorEventAliceESD.cxx:100 AliUnicorEventAliceESD.cxx:101 AliUnicorEventAliceESD.cxx:102 AliUnicorEventAliceESD.cxx:103 AliUnicorEventAliceESD.cxx:104 AliUnicorEventAliceESD.cxx:105 AliUnicorEventAliceESD.cxx:106 AliUnicorEventAliceESD.cxx:107 AliUnicorEventAliceESD.cxx:108 AliUnicorEventAliceESD.cxx:109 AliUnicorEventAliceESD.cxx:110 AliUnicorEventAliceESD.cxx:111 AliUnicorEventAliceESD.cxx:112 AliUnicorEventAliceESD.cxx:113 AliUnicorEventAliceESD.cxx:114 AliUnicorEventAliceESD.cxx:115 AliUnicorEventAliceESD.cxx:116 AliUnicorEventAliceESD.cxx:117 AliUnicorEventAliceESD.cxx:118 AliUnicorEventAliceESD.cxx:119 AliUnicorEventAliceESD.cxx:120 AliUnicorEventAliceESD.cxx:121 AliUnicorEventAliceESD.cxx:122 AliUnicorEventAliceESD.cxx:123 AliUnicorEventAliceESD.cxx:124 AliUnicorEventAliceESD.cxx:125 AliUnicorEventAliceESD.cxx:126 AliUnicorEventAliceESD.cxx:127 AliUnicorEventAliceESD.cxx:128 AliUnicorEventAliceESD.cxx:129 AliUnicorEventAliceESD.cxx:130 AliUnicorEventAliceESD.cxx:131 AliUnicorEventAliceESD.cxx:132 AliUnicorEventAliceESD.cxx:133 AliUnicorEventAliceESD.cxx:134 AliUnicorEventAliceESD.cxx:135 AliUnicorEventAliceESD.cxx:136 AliUnicorEventAliceESD.cxx:137 AliUnicorEventAliceESD.cxx:138 AliUnicorEventAliceESD.cxx:139 AliUnicorEventAliceESD.cxx:140 AliUnicorEventAliceESD.cxx:141 AliUnicorEventAliceESD.cxx:142 AliUnicorEventAliceESD.cxx:143 AliUnicorEventAliceESD.cxx:144 AliUnicorEventAliceESD.cxx:145 AliUnicorEventAliceESD.cxx:146 AliUnicorEventAliceESD.cxx:147 AliUnicorEventAliceESD.cxx:148 AliUnicorEventAliceESD.cxx:149 AliUnicorEventAliceESD.cxx:150 AliUnicorEventAliceESD.cxx:151 AliUnicorEventAliceESD.cxx:152 AliUnicorEventAliceESD.cxx:153 AliUnicorEventAliceESD.cxx:154 AliUnicorEventAliceESD.cxx:155 AliUnicorEventAliceESD.cxx:156 AliUnicorEventAliceESD.cxx:157 AliUnicorEventAliceESD.cxx:158 AliUnicorEventAliceESD.cxx:159 AliUnicorEventAliceESD.cxx:160 AliUnicorEventAliceESD.cxx:161 AliUnicorEventAliceESD.cxx:162 AliUnicorEventAliceESD.cxx:163 AliUnicorEventAliceESD.cxx:164 AliUnicorEventAliceESD.cxx:165 AliUnicorEventAliceESD.cxx:166 AliUnicorEventAliceESD.cxx:167 AliUnicorEventAliceESD.cxx:168 AliUnicorEventAliceESD.cxx:169 AliUnicorEventAliceESD.cxx:170 AliUnicorEventAliceESD.cxx:171 AliUnicorEventAliceESD.cxx:172 AliUnicorEventAliceESD.cxx:173