141 #include <TParticle.h> 142 #include <TDatabasePDG.h> 143 #include <TMatrixD.h> 152 #include "TPolyMarker3D.h" 157 #include "TObjArray.h" 172 Float_t uniform = 1./(Float_t)n;
175 for (Int_t i=0; i<n; i++)
185 for (Int_t i=0; i<n; i++) dest[i] /= sum;
187 for (Int_t i=0; i<n; i++) dest[i] = uniform;
214 fCaloIndex(kEMCALNoMatch),
227 fCddTPC(0),fCdzTPC(0),fCzzTPC(0),
230 fCdd(0),fCdz(0),fCzz(0),
249 fTOFsignalTuned(99999),
250 fTOFsignalToT(99999),
251 fTOFsignalRaw(99999),
278 fPIDForTracking(
AliPID::kPion),
279 fPIDForTrackingIn(
AliPID::kPion),
281 fCacheNCrossedRows(-10),
282 fCacheChi2TPCConstrainedVsGlobal(-10),
283 fCacheChi2TPCConstrainedVsGlobalVertex(0),
285 fTrackPhiOnEMCal(-999),
286 fTrackEtaOnEMCal(-999),
287 fTrackPtOnEMCal(-999),
598 if (track->InheritsFrom(
"AliExternalTrackParam")) {
599 AliError(
"This is not a copy constructor. Use AliESDtrack(const AliESDtrack &) !");
600 AliWarning(
"Calling the default constructor...");
643 if (track->InheritsFrom(
"AliAODTrack")) {
644 Float_t ip[2], ipCov[3];
655 const Double_t *
pid = track->
PID();
681 for (
int ipl=kTRDnPlanes;ipl--;){
835 alpha = part->Phi()*180./TMath::Pi();
836 if (alpha<0) alpha+= 360.;
837 if (alpha>360) alpha -= 360.;
839 Int_t sector = (Int_t)(alpha/20.);
840 alpha = 10. + 20.*sector;
842 alpha *= TMath::Pi();
845 for (i=0; i<15; i++) covar[i]=0.;
848 TVector3 ver(part->Vx(),part->Vy(),part->Vz());
849 TVector3 mom(part->Px(),part->Py(),part->Pz());
858 Int_t pdgCode = part->GetPdgCode();
861 TDatabasePDG::Instance()->GetParticle(pdgCode)->Charge();
865 param[2] = TMath::Sin(mom.Phi());
866 param[3] = mom.Pz()/mom.Pt();
867 param[4] = TMath::Sign(1/mom.Pt(),charge);
870 Set(xref, alpha, param, covar);
874 if (pdgCode<0) pdgCode = -pdgCode;
928 if(&source ==
this)
return *
this;
1014 for(
int i = 0; i< 12;++i){
1021 for(
int i = 0; i< 3;++i){
1031 for(
int i = 0; i< 3;++i){
1040 else {
delete[]
fR;
fR = 0;}
1119 for(
int i = 0; i< 4;++i){
1150 for(
int i = 0;i<10;++i){
1207 if(
this==&obj)
return;
1413 for (Int_t i=0;i<10;i++)
fTOFInfo[i] = 0;
1444 const Double32_t *prob = 0;
1449 if (i == AliPID::kSPECIES-1) prob = 0;
1460 for (i=0; i<AliPID::kSPECIES; i++) if (prob[i]>max) {k=i; max=prob[i];}
1484 const double kSpacing = 25;
1487 return TMath::Nint(tdif/kSpacing);
1495 const double kps2ns = 1e-3;
1496 const double kNoInfo =
kTOFBCNA*25;
1508 const double kRTOF = 385.;
1509 const double kCSpeed = 3.e-2;
1511 if (p<0.01)
return kNoInfo;
1512 double m =
GetMass(pidTPConly);
1513 double curv =
GetC(b);
1515 2./curv*TMath::ASin(kRTOF*curv/2.)*TMath::Sqrt(1.+
GetTgl()*
GetTgl()) : kRTOF;
1516 tdif -= path/kCSpeed*TMath::Sqrt(1.+m*m/(p*p));
1525 const double kps2ns = 1e-3;
1526 const double kNoInfo =
kTOFBCNA*25;
1534 tdif -= times[specie];
1537 const double kRTOF = 385.;
1538 const double kCSpeed = 3.e-2;
1540 if (p<0.01)
return kNoInfo;
1542 double curv =
GetC(b);
1544 2./curv*TMath::ASin(kRTOF*curv/2.)*TMath::Sqrt(1.+
GetTgl()*
GetTgl()) : kRTOF;
1545 tdif -= path/kCSpeed*TMath::Sqrt(1.+m*m/(p*p));
1555 static Bool_t printerr=kTRUE;
1557 AliWarning(
"WARNING !!! ... THIS WILL BE PRINTED JUST ONCE !!!");
1559 AliWarning(
"This is the ESD mass. Use it with care !");
1572 return TMath::Sqrt(p*p + m*m);
1583 if (e != TMath::Abs(pz)) {
1584 return 0.5*TMath::Log((e+pz)/(e-pz));
1633 Int_t l=(indexITS[i] & 0xf0000000) >> 28;
1747 (Double_t &alpha, Double_t &x, Double_t
p[5])
const {
1751 if (!
fCp)
return kFALSE;
1764 if (!
fCp)
return kFALSE;
1771 (Double_t &alpha, Double_t &x, Double_t p[5])
const {
1776 if (!
fIp)
return kFALSE;
1789 if (!
fIp)
return kFALSE;
1816 (Double_t &alpha, Double_t &x, Double_t p[5])
const {
1821 if (!
fOp)
return kFALSE;
1830 (Double_t &alpha, Double_t &x, Double_t p[5])
const {
1848 if (!
fOp)
return kFALSE;
1941 if (nspec<1)
return;
1954 AliInfo(
"No AliESDEvent available here!\n");
1958 for (
int i=nspec; i--;) times[i]=
fTrackTime[i];
1964 for (
int i=nspec; i--;) times[i]=0.0;
2016 if ( (i>=
fITSncls) && (i<6) ) idx[i]=-1;
2030 Float_t &xloc,Float_t &zloc)
const {
2049 xloc=-99.; zloc=-99.;
2055 idet = Int_t(module/1000000);
2057 module -= idet*1000000;
2059 status = Int_t(module/100000);
2061 module -= status*100000;
2063 Int_t signs = Int_t(module/10000);
2065 module-=signs*10000;
2067 Int_t xInt = Int_t(module/100);
2070 Int_t zInt = module;
2072 if(signs==1) { xInt*=1; zInt*=1; }
2073 if(signs==2) { xInt*=1; zInt*=-1; }
2074 if(signs==3) { xInt*=-1; zInt*=1; }
2075 if(signs==4) { xInt*=-1; zInt*=-1; }
2077 xloc = 0.1*(Float_t)xInt;
2078 zloc = 0.1*(Float_t)zInt;
2080 if(status==4) idet = -1;
2139 Int_t last=-nNeighbours;
2143 Int_t upperBound=clusterMap.GetNbits();
2144 if (upperBound>row1) upperBound=row1;
2146 for (Int_t i=row0; i<upperBound; ++i){
2147 Int_t beforeAfter=0;
2148 if (clusterMap[i]) {
2154 if ((i-last)<=nNeighbours) {
2158 for (Int_t j=i+1; j<i+1+nNeighbours; ++j){
2164 if (beforeAfter>1) ++findable;
2166 if (type==3)
return Float_t(found)/Float_t(TMath::Max(findable,1));
2167 if (type==4)
return findable;
2171 for (Int_t i=row0; i<upperBound; ++i){
2173 if (clusterMap[i]) {
2180 if ((i-last)<=nNeighbours) {
2185 for (Int_t j=i+1; j<i+1+nNeighbours; ++j){
2192 if (type==2)
return found;
2193 if (type==1)
return findable;
2198 fraction=(Float_t)found/(Float_t)findable;
2227 Int_t upperBound=clusterMap.GetNbits();
2228 if (upperBound>row1) upperBound=row1;
2229 for (Int_t i=row0; i<upperBound; ++i){
2231 Bool_t isDown=kFALSE;
2232 for (Int_t idelta=1; idelta<=nNeighbours; idelta++){
2233 if (i-idelta>=0 && clusterMap[i-idelta]) isDown=kTRUE;
2234 if (i+idelta<upperBound && clusterMap[i+idelta]) isUp=kTRUE;
2238 if (clusterMap[i]) ++found;
2241 if (type==2)
return found;
2242 if (type==1)
return findable;
2247 fraction=(Float_t)found/(Float_t)findable;
2269 for (Int_t i=row0;i<=row1;i++){
2270 Int_t idx = index[i];
2271 if (idx!=-1) good++;
2274 Float_t density=0.5;
2275 if (good>TMath::Max((row1-row0)*0.5,0.0)) density = Float_t(found)/Float_t(good);
2329 if(index[i]>=0) n++;
2383 AliDebug(2,
"No TRD info allocated for this track.");
2387 AliWarning(Form(
"Request for TRD plane[%d] outside range.", plane));
2408 AliError(
"Info for TRD plane not available !");
2412 if ((slice<-1) || (slice>=ns)) {
2417 if(slice>=0)
return fTRDslices[plane*ns + slice];
2420 Double_t q=0.; Double32_t *s = &
fTRDslices[plane*ns];
2421 for (Int_t i=0; i<ns; i++, s++) if((*s)>0.) q+=(*s);
2442 AliError(
"No TRD slices allocated for this track !");
2446 AliError(
"Info for TRD plane not allocated !");
2450 if ((slice<0) || (slice>=ns)) {
2451 AliError(Form(
"Wrong TRD slice %d/%d, NSlices=%d",plane,slice,ns));
2454 Int_t n=plane*ns + slice;
2463 AliError(
"No TRD slices allocated for this track !");
2467 AliError(
"Info for TRD plane not allocated !");
2501 for (Int_t i=0; i<3; i++)
fTOFLabel[i]=p[i];
2518 for (Int_t i=0; i<3; i++) p[i]=tofcl->
GetLabel(i);
2522 else for (
int i=3;i--;) p[i] = -1;
2529 for (Int_t i=0; i<10; i++) info[i]=
fTOFInfo[i];
2535 for (Int_t i=0; i<10; i++)
fTOFInfo[i]=info[i];
2594 if (!vtx)
return kFALSE;
2596 Double_t dz[2],cov[3];
2607 Double_t c[3]={covar[2],0.,covar[5]};
2614 if (!cParam)
return kTRUE;
2617 if (!cParam->
Update(p,c))
return kFALSE;
2642 if (!vtx)
return kFALSE;
2644 Double_t dz[2],cov[3];
2655 Double_t c[3]={covar[2],0.,covar[5]};
2662 if (!cParam)
return kTRUE;
2665 if (!cParam->
Update(p,c))
return kFALSE;
2687 if (!vtx)
return kFALSE;
2689 Double_t dz[2],cov[3];
2700 Double_t c[3]={covar[2],0.,covar[5]};
2717 if (!cParam)
return kTRUE;
2720 if (!cParam->
Update(p,c))
return kFALSE;
2742 if (!vtx)
return kFALSE;
2744 Double_t dz[2],cov[3];
2755 Double_t c[3]={covar[2],0.,covar[5]};
2772 if (!cParam)
return kTRUE;
2775 if (!cParam->
Update(p,c))
return kFALSE;
2807 if (!vtx)
return kFALSE;
2809 Double_t dz[2],cov[3];
2820 Double_t c[3]={covar[2],0.,covar[5]};
2827 if (!cParam)
return kTRUE;
2830 if (!cParam->
Update(p,c))
return kFALSE;
2855 if (!vtx)
return kFALSE;
2857 Double_t dz[2],cov[3];
2868 Double_t c[3]={covar[2],0.,covar[5]};
2875 if (!cParam)
return kTRUE;
2878 if (!cParam->
Update(p,c))
return kFALSE;
2900 if (!vtx)
return kFALSE;
2902 Double_t dz[2],cov[3];
2913 Double_t c[3]={covar[2],0.,covar[5]};
2930 if (!cParam)
return kTRUE;
2933 if (!cParam->
Update(p,c))
return kFALSE;
2955 if (!vtx)
return kFALSE;
2957 Double_t dz[2],cov[3];
2968 Double_t c[3]={covar[2],0.,covar[5]};
2985 if (!cParam)
return kTRUE;
2988 if (!cParam->
Update(p,c))
return kFALSE;
2997 printf(
"ESD track info\n") ;
3004 printf(
"%f, ", p[index]) ;
3011 printf(
"%f, ", p[index]) ;
3018 printf(
"%f, ", p[index]) ;
3027 printf(
"%f, ", p[index]) ;
3034 printf(
"%f, ", p[index]) ;
3054 Double_t mpos[3]={0,0,0};
3055 Int_t entries=arrayRef.GetEntries();
3056 for (Int_t i=0;i<entries;i++){
3059 mpos[0]+=pos[0]/entries;
3060 mpos[1]+=pos[1]/entries;
3061 mpos[2]+=pos[2]/entries;
3065 Float_t fi= TMath::ATan2(mpos[1],mpos[0]);
3066 for (Int_t i=0;i<entries;i++){
3068 if (!res)
delete arrayRef.RemoveAt(i);
3071 for (Double_t r=minR; r<maxR; r+=stepR){
3073 Double_t mlpos[3]={0,0,0};
3074 for (Int_t i=0;i<entries;i++){
3075 Double_t point[3]={0,0,0};
3077 if (!param)
continue;
3078 if (param->
GetXYZAt(r,magF,point)){
3079 Double_t weight = 1./(10.+(r-param->
GetX())*(r-param->
GetX()));
3081 mlpos[0]+=point[0]*weight;
3082 mlpos[1]+=point[1]*weight;
3083 mlpos[2]+=point[2]*weight;
3090 pol->SetPoint(counter,mlpos[0],mlpos[1], mlpos[2]);
3154 AliWarning(
"Could not get TPC Inner Param.");
3161 AliWarning(
"Clone of TPCInnerParam failed.");
3171 AliWarning(
"Rotation/Propagation of track failed.") ;
3196 for (Int_t ipar=0; ipar<5; ipar++) {
3200 for (Int_t jpar=0; jpar<5; jpar++) {
3206 TMatrixD covarMInv = covarM.Invert();
3258 const Double_t rIn=85;
3259 const Double_t rOut=245;
3260 Double_t xyz[3], pxyz[3];
3268 Double_t dca = -paramT->
GetD(0,0,bz);
3269 Double_t radius= TMath::Abs(1/paramT->
GetC(bz));
3270 Double_t sign = paramT->
GetSign()*TMath::Sign(1.,bz)*(-1.);
3271 Double_t R0 = TMath::Sqrt(xyz[0]*xyz[0]+xyz[1]*xyz[1]);
3272 Double_t phiR0 = TMath::ATan2(xyz[1],xyz[0]);
3273 Double_t dPhiR0= -TMath::ASin((dca*dca-2*dca*radius*sign+R0*R0)/(2*R0*(dca-radius*sign)));
3274 Double_t phi0 = phiR0-(dPhiR0);
3279 for (Double_t R=rIn; R<=rOut; R++){
3280 Double_t sinPhi=(dca*dca-2*dca*radius*sign+R*R)/(2*R*(dca-radius*sign));
3281 if (TMath::Abs(sinPhi)>=1)
continue;
3282 Double_t dphi = -TMath::ASin(sinPhi);
3283 Double_t phi = phi0+dphi;
3284 Int_t sector = TMath::Nint(9*phi/(TMath::Pi()));
3285 Double_t dPhiEdge = phi-(sector*TMath::Pi()/9)+exbPhi;
3286 Double_t dX = R*TMath::Cos(phi)-xyz[0];
3287 Double_t
dY = R*TMath::Sin(phi)-xyz[1];
3288 Double_t deltaPhi = 2*TMath::ASin(0.5*TMath::Sqrt(dX*dX+dY*dY)/radius);
3289 Double_t z = xyz[2]+deltaPhi*radius*paramT->
GetTgl();
3290 if (TMath::Abs(dPhiEdge*R)>deltaY && TMath::Abs(z)<deltaZ){
3298 paramR.PropagateTo(R,bz);
3299 (*pcstream)<<
"debugEdge"<<
3303 "dphiEdge="<<dPhiEdge<<
3307 "pT.="<<¶mTcopy<<
3325 AliInfo(
"Method has to be implemented!");
3352 int last = tofclArray->GetEntriesFast()-1;
3359 tofclArray->RemoveAt(last);
3413 if(fNtofClusters-1)
delete[] old;
3450 if(hit) hit->
SetTOT(ToT);
3608 return tofcl->
GetDz(index);
3628 return tofcl->
GetDx(index);
3714 AliInfo(Form(
"TOF cluster re-mapping in AliESDtrack: out of range (%i > %i)\n",fTOFcluster[i],ncl));
3729 Double_t timedist1 = 10000;
3732 if(timec < timedist1) timedist1 = timec;
3735 Double_t radius1 = tofcl->
GetDx(index1)*tofcl->
GetDx(index1) + tofcl->
GetDz(index1)*tofcl->
GetDz(index1) + timedist1*timedist1;
3742 if(index1 == -1 || index2 == -1){
3744 Double_t timedist2 = 10000;
3747 if(timec < timedist2) timedist2 = timec;
3750 Double_t radius2 = tofcl2->
GetDx(index2)*tofcl2->
GetDx(index2) + tofcl2->
GetDz(index2)*tofcl2->
GetDz(index2) + timedist2*timedist2;
3752 if(radius2 < radius1){
3805 for (Int_t ibin=0; ibin<nSlicesAll; ibin++){
3809 if (method==1) sumAmp+=TMath::Log(TMath::Abs(
fTRDslices[ibin])+p0);
3810 if (method==2) sumAmp+=1/TMath::Sqrt(TMath::Abs(
fTRDslices[ibin])+p0);
3811 if (method==3) sumAmp+=TMath::Power(TMath::Abs(
fTRDslices[ibin])+p0,p1);
3813 if (sumW==0)
return 0;
3814 Double_t dEdx=sumAmp/sumW;
3815 if (method==1) dEdx= TMath::Exp(dEdx);
3816 if (method==2) dEdx= 1/(dEdx*dEdx);
3817 if (method==3) dEdx= TMath::Power(dEdx,1/p1);
3823 for (Int_t ibin=0; ibin<nSlicesAll; ibin++){
3825 Double_t time=(ibin%nSlicesPerLayer);
3827 if (method==5) weight=TMath::Log((weight+p0)/p0);
3828 if (method==6) weight=TMath::Power(weight+p0,p1);
3832 if (sumW<=0)
return 0;
3833 Double_t meanTime=sumWT/sumW;
void ReplaceTOFTrackID(int oldID, int newID)
void SetTOFInfo(Float_t *info)
TObject * GetCalibObject(Int_t index)
const AliTOFHeader * GetTOFHeader() const
Int_t GetNcls(Int_t idet) const
Bool_t GetITSModuleIndexInfo(Int_t ilayer, Int_t &idet, Int_t &status, Float_t &xloc, Float_t &zloc) const
virtual Int_t GetEMCALcluster() const
void ReplaceTOFClusterID(int oldID, int newID)
void SetOuterHmpParam(const AliExternalTrackParam *p, ULong_t flags)
Double_t GetTRDslice(Int_t plane, Int_t slice=-1) const
Double_t GetTRDmomentum(Int_t plane, Double_t *sp=0x0) const
void SetTRDsignal(Double_t sig)
Short_t GetTOFL0L1() const
printf("Chi2/npoints = %f\n", TMath::Sqrt(chi2/npoints))
Int_t GetHMPIDcluIdx() const
Bool_t GetPxPyPzAt(Double_t x, Double_t b, Double_t p[3]) const
Int_t fTOFCalChannel
TOF label.
Float_t GetTimeRaw(Int_t ihit=0) const
Bool_t RelateToVVertex(const AliVVertex *vtx, Double_t b, Double_t maxd, AliExternalTrackParam *cParam=0)
void SetTRDslice(Double_t q, Int_t plane, Int_t slice)
void SuppressMatchedTrack(Int_t id)
Double32_t fHMPIDtrkTheta
[0.,0.,8] "detector response probabilities" (for the PID)
void SetTOFsignalDz(Double_t dz)
virtual Int_t GetTrackletIndex(Int_t) const
void Print(Option_t *option="") const
UShort_t GetTPCnclsS(Int_t i0=0, Int_t i1=159) const
virtual Int_t GetNumberOfTRDslices() const
TClonesArray * GetESDTOFClusters() const
const TBits * GetTPCSharedMapPtr() const
Int_t GetDeltaBC(Int_t ihit=0) const
virtual Int_t GetClusterIndex(Int_t) const
Bool_t Rotate(Double_t alpha)
Double32_t fITSsignalTuned
Bool_t RelateToVVertexTPCBxByBz(const AliVVertex *vtx, Double_t b[3], Double_t maxd, AliExternalTrackParam *cParam=0)
UShort_t GetTPCclusters(Int_t *idx) const
Double_t GetdEdxInfoTRD(Int_t method, Double_t p0, Double_t p1, Double_t p2)
void SetOuterParam(const AliExternalTrackParam *p, ULong_t flags)
static bool fgkOnlineMode
AliExternalTrackParam * fHMPIDp
virtual void GetImpactParameters(Float_t[], Float_t[]) const
Bool_t Update(const Double_t p[2], const Double_t cov[3])
Double32_t fTOFsignalTuned
detector's PID signal [ps]
void Set(T x, T alpha, const T param[5], const T covar[15])
static Bool_t fgTrackEMuAsPi
indicate the online mode to skip some of the functionality
Bool_t GetOuterHmpExternalParameters(Double_t &alpha, Double_t &x, Double_t p[5]) const
Double32_t fTOFsignalDx
local z of track's impact on the TOF pad [cm]
void FixSelfReferences(int oldID, int newID)
void SetITSOut(const AliExternalTrackParam ¶m)
Int_t GetTOFBunchCrossing(Double_t b=0, Bool_t pidTPConly=kTRUE) const
void GetTOFpid(Double_t *p) const
Bool_t GetOuterExternalCovariance(Double_t cov[15]) const
Bool_t GetXYZ(Double_t *p) const
virtual void GetITSdEdxSamples(Double_t s[4]) const
Double32_t * fHMPIDr
[0.,0.,8] "detector response probabilities" (for the PID)
static Int_t GetIndex(Int_t i, Int_t j)
void SetIntegratedLength(Double_t l)
void GetIntegratedTimes(Double_t *times, Int_t nspec=AliPID::kSPECIESC) const
void SetImpactParametersTPC(const Float_t p[2], const Float_t cov[3], const Float_t chi2)
virtual void GetCovarianceMatrix(Double_t covmatrix[6]) const =0
void SetTPCSharedMap(const TBits &amap)
void GetExternalParameters(Double_t &x, Double_t p[5]) const
void GetESDpid(Double_t *p) const
void AddCalibObject(TObject *object)
virtual void SetTimeRaw(Double_t timeraw)
void SetTrackPhiEtaPtOnEMCal(Double_t phi, Double_t eta, Double_t pt)
void SetTPCFitMap(const TBits &amap)
Int_t GetL0L1Latency(Int_t ihit=0) const
Int_t GetPIDForTracking() const
Int_t GetTOFclusterN() const
virtual Double_t GetTOFsignal() const
static Float_t ParticleMass(Int_t iType)
Double_t GetIntegratedLength() const
AliESDfriendTrack * fFriendTrack
void SetTRDmomentum(Double_t p, Int_t plane, Double_t *sp=0x0)
virtual void SetTOFLabel(const Int_t label[3])
void SetTRDpid(const Double_t *p)
void SetLabel(Int_t label)
Bool_t FillTPCOnlyTrack(AliESDtrack &track)
Float_t GetTPCClusterInfo(Int_t nNeighbours=3, Int_t type=0, Int_t row0=0, Int_t row1=159, Int_t bitType=0) const
Double_t fTrackPhiOnEMCal
transient object to cache PID information
virtual void GetIntegratedTimes(Double_t *, Int_t nspec=AliPID::kSPECIESC) const
void SetStatus(ULong64_t flags)
Float_t GetDz(Int_t i=0) const
TTreeSRedirector * pcstream
virtual Int_t GetLabel() const =0
virtual void SetTOFchannel(Int_t tofch)
Double32_t fTPCsignalS
[0.,0.,10] detector's PID signal tuned on data when using MC
Double_t GetAlpha() const
void SetTOFsignal(Double_t tof)
const TBits * GetTPCFitMapPtr() const
virtual Double_t GetTrackEtaOnEMCal() const
Double32_t fTOFsignalDz
detector's uncorrected time signal [ps]
Double_t GetTOFsignalToT() const
Bool_t PropagateToDCABxByBz(const AliVVertex *vtx, Double_t b[3], Double_t maxd, Double_t dz[2]=0, Double_t cov[3]=0)
Bool_t GetConstrainedExternalCovariance(Double_t cov[15]) const
void ReMapTOFcluster(Int_t ncl, Int_t *mapping)
Bool_t HasPointOnITSLayer(Int_t i) const
AliExternalTrackParam * fCp
virtual Double_t GetTgl() const
void SetTPCpid(const Double_t *p)
Double_t GetTOFExpTDiff(Double_t b=0, Bool_t pidTPConly=kTRUE) const
Float_t GetLength(Int_t i=0) const
Double_t GetTOFsignalDz() const
virtual void SetDz(Double_t delta)
const AliDetectorPID * fDetectorPID
Vertex for which the cache is valid.
Double_t PropagateToDCA(AliExternalTrackParam *p, Double_t b)
const Double_t * GetParameter() const
void GetTOFInfo(Float_t *info) const
void SetTPCIndices(Int_t *indices, Int_t n)
virtual Double_t GetPIDsignal() const
#define AliWarning(message)
void SetTOFpid(const Double_t *p)
AliExternalTrackParam * fOp
void SetTOFclusterArray(Int_t ncluster, Int_t *TOFcluster)
Char_t GetITSclusters(Int_t *idx) const
virtual UShort_t GetTPCNcls() const
Double32_t * fITSr
[0.,0.,8] combined "detector response probability"
Double32_t fTOFInfo[10]
local x of track's impact on the TOF pad [cm]
Double_t GetIntegratedTime(Int_t iPart=0, Int_t i=0) const
void GetITSdEdxSamples(Double_t s[4]) const
virtual Bool_t IsStartedTimeIntegral() const
Double32_t * fTRDr
[0.,0.,8] "detector response probabilities" (for the PID)
Bool_t RelateToVertex(const AliESDVertex *vtx, Double_t b, Double_t maxd, AliExternalTrackParam *cParam=0)
Bool_t RelateToVVertexTPC(const AliVVertex *vtx, Double_t b, Double_t maxd, AliExternalTrackParam *cParam=0)
Bool_t GetConstrainedExternalParameters(Double_t &alpha, Double_t &x, Double_t p[5]) const
Double32_t fTOFsignalToT
detector's PID signal tuned on data when using MC
Bool_t IsTOFHitAlreadyMatched() const
TBits fTPCFitMap
All the complementary information.
Float_t fCacheNCrossedRows
Pointer back to event to which the track belongs.
AliESDTOFHit * GetTOFHit(Int_t i) const
void SetTOFsignalDx(Double_t dx)
UChar_t GetTRDntracklets() const
virtual Double_t GetITSsignal() const
Double_t GetHMPIDsignal() const
Double32_t fTrackLength
TOFs estimated by the tracking.
void SetESDpid(const Double_t *p)
Bool_t IsOn(ULong64_t mask) const
void GetTPCpid(Double_t *p) const
UChar_t GetTRDtracklets(Int_t *idx) const
virtual void SetTOT(Double_t tot)
Bool_t GetOuterHmpExternalCovariance(Double_t cov[15]) const
Float_t fCacheChi2TPCConstrainedVsGlobal
Cache for the number of crossed rows.
Double_t GetTOFsignalRaw() const
Double_t GetTPCsignal() const
void SetTOFsignalRaw(Double_t tof)
void SetTPCOut(const AliExternalTrackParam ¶m)
void SetHMPIDpid(const Double_t *p)
Float_t GetTime(Int_t ihit=0) const
Float_t GetTOT(Int_t ihit=0) const
Float_t GetTPCCrossedRows() const
Double_t GetChi2TPCConstrainedVsGlobal(const AliESDVertex *vtx) const
virtual void Print(Option_t *opt) const
void SetITSIndices(Int_t *indices, Int_t n)
Double_t GetdEdxInfo(Int_t regionID, Int_t calibID, Int_t qID, Int_t valueID)
Double32_t fITSdEdxSamples[4]
[0.,0.,10] detector's PID signal
Bool_t RelateToVertexBxByBz(const AliESDVertex *vtx, Double_t b[3], Double_t maxd, AliExternalTrackParam *cParam=0)
void SetIntegratedTimes(const Double_t *times)
void AddTOFcluster(Int_t icl)
void SetTPCdEdxInfo(AliTPCdEdxInfo *dEdxInfo)
void SetTPCClusterMap(const TBits &amap)
Bool_t ConstrainToVertex(const AliVVertex *vtx, Double_t b[3])
Int_t GetClusterIndex(Int_t ihit=0) const
virtual Int_t GetID() const =0
virtual void SetTime(Double_t time)
AliExternalTrackParam * fIp
Double32_t * fTOFr
[0.,0.,8] "detector response probabilities" (for the PID)
Double32_t fdTPC
Track length.
Double32_t * fTPCr
[0.,0.,8] "detector response probabilities" (for the PID)
virtual Double_t GetTrackPtOnEMCal() const
Int_t GetLabel(Int_t i=0, Int_t ihit=0) const
const Double_t * GetCovariance() const
virtual UShort_t GetTPCsignalN() const
Bool_t UpdateTrackParams(const AliKalmanTrack *t, ULong64_t flags)
void SetTOFLabel(const Int_t *p)
static void GetBxByBz(const Double_t r[3], Double_t b[3])
static void SetTrackEMuAsPi(Bool_t val)
Bool_t GetPxPyPz(Double_t *p) const
void GetITSpid(Double_t *p) const
virtual Double_t GetTrackPhiOnEMCal() const
void AddCalibObject(TObject *calibObject)
Double_t GetMass(Bool_t tpcOnly=kFALSE) const
virtual void SetL0L1Latency(Int_t latency)
Bool_t RelateToVVertexBxByBz(const AliVVertex *vtx, Double_t b[3], Double_t maxd, AliExternalTrackParam *cParam=0)
void SetTOFsignalToT(Double_t ToT)
virtual void SetDeltaBC(Int_t deltabc)
virtual const TBits * GetTPCClusterMapPtr() const
AliESDTOFMatch * GetTOFMatch(Int_t i) const
virtual void SetDx(Double_t delta)
static Double_t GetLengthInActiveZone(const AliExternalTrackParam *paramT, Double_t deltaY, Double_t deltaZ, Double_t bz, Double_t exbPhi=0, TTreeSRedirector *pcstream=0)
Double_t GetTRDsignal() const
virtual Bool_t GetTPCdEdxInfo(AliTPCdEdxInfo &) const
void GetTRDpid(Double_t *p) const
virtual Double_t GetITSsignalTunedOnData() const
Int_t GetTOFcluster() const
Int_t GetTOFchannel(Int_t ihit=0) const
virtual Double_t GetTRDchi2() const
void ReplaceTOFMatchID(int oldID, int newID)
virtual Double_t GetITSchi2() const
Double_t GetTOFsignalDx() const
virtual Double_t GetTPCsignal() const
const AliESDEvent * fESDEvent
void SuppressTOFMatches()
Double_t GetTPCdensity(Int_t row0, Int_t row1) const
Short_t fTOFdeltaBC
TOF informations.
#define AliInfoClassF(message,...)
void SetEMCALcluster(Int_t index)
void ReplaceMatchID(int oldID, int newID)
virtual Double_t GetTRDslice(Int_t, Int_t) const
AliESDtrack & operator=(const AliESDtrack &)
#define AliDebug(logLevel, message)
Int_t GetTOFCalChannel() const
Double_t GetITSsignal() const
Double_t GetIntegratedLength() const
AliTPCdEdxInfo * fTPCdEdxInfo
void SetTRDIn(const AliExternalTrackParam ¶m)
void FillPolymarker(TPolyMarker3D *pol, Float_t magf, Float_t minR, Float_t maxR, Float_t stepR)
void ReplaceMatchedTrackID(int oldID, int newID)
AliExternalTrackParam & operator=(const AliExternalTrackParam &trkPar)
Double_t GetPredictedChi2(const Double_t p[2], const Double_t cov[3]) const
virtual Double_t GetTPCchi2() const
Double_t GetdEdxInfo(AliExternalTrackParam *param, Int_t regionID, Int_t calibID, Int_t qID, Int_t valueID)
Int_t GetNumberOfTRDslices() const
Double_t GetTOFExpTDiffSpec(AliPID::EParticleType specie=AliPID::kPion, Double_t b=0) const
void SetTOFCalChannel(Int_t index)
Int_t GetNumberOfClusters() const
void SetTPCsignal(Float_t signal, Float_t sigma, UChar_t npoints)
Int_t GetTrackIndex(Int_t i=0) const
Int_t GetNMatchableTracks() const
Int_t fTOFindex
Channel Index of the TOF Signal.
TObject * GetCalibObject(Int_t index) const
Bool_t RelateToVertexTPCBxByBz(const AliESDVertex *vtx, Double_t b[3], Double_t maxd, AliExternalTrackParam *cParam=0)
void SetTOFL0L1(Short_t l0l1)
void GetTOFLabel(Int_t *p) const
virtual Double_t GetC(Double_t b) const
virtual Double_t GetTRDsignal() const
Char_t fTRDTimBin[kTRDnPlanes]
Double32_t fCaloDx
detector's L0L1 latency correction
Int_t GetPID(Bool_t tpcOnly=kFALSE) const
Short_t fTOFl0l1
detector's Delta Bunch Crossing correction
void SetTRDIndices(Int_t *indices, Int_t n)
void GetHMPIDpid(Double_t *p) const
void SetPIDValues(Double_t *dest, const Double_t *src, Int_t n)
Double_t fTrackEtaOnEMCal
Bool_t RelateToVertexTPC(const AliESDVertex *vtx, Double_t b, Double_t maxd, AliExternalTrackParam *cParam=0)
Bool_t GetOuterExternalParameters(Double_t &alpha, Double_t &x, Double_t p[5]) const
Bool_t GetInnerExternalParameters(Double_t &alpha, Double_t &x, Double_t p[5]) const
#define AliError(message)
UChar_t GetTRDNclusterdEdx() const
void SetNumberOfTRDslices(Int_t n)
virtual UChar_t GetTRDntrackletsPID() const
void GetCovMatrix(Double_t covmatrix[6]) const
virtual const Double_t * PID() const =0
void GetIntegratedTimes(Double_t *times, Int_t nspec=AliPID::kSPECIES) const
virtual void Copy(TObject &obj) const
static Int_t ParticleCode(Int_t iType)
Short_t GetTOFDeltaBC() const
Bool_t PropagateTo(Double_t p[3], Double_t covyz[3], Double_t covxyz[3], Double_t b)
Bool_t GetInnerExternalCovariance(Double_t cov[15]) const
virtual UShort_t GetTPCNclsF() const
const AliESDVertex * fCacheChi2TPCConstrainedVsGlobalVertex
Cache for the chi2 of constrained TPC vs global track.
for(Int_t itree=0;itree< arrInputTreesDistortionCalib->GetEntriesFast();++itree)
Int_t GetClusters(Int_t idet, Int_t *idx) const
Double32_t fITSchi2Std[kNITSchi2Std]
Double32_t fTPCsignalTuned
const AliESDEvent * GetESDEvent() const
void SetITSpid(const Double_t *p)
virtual UChar_t GetTRDncls() const
AliTOFHeader * GetTOFHeader() const
UChar_t GetTRDclusters(Int_t *idx) const
virtual ULong64_t GetStatus() const =0
AliExternalTrackParam * fTPCInner
Double_t GetD(Double_t xv, Double_t yv, Double_t b) const
UShort_t GetTPCncls(Int_t row0=0, Int_t row1=159) const
void SetITSdEdxSamples(const Double_t s[4])
class TMatrixT< Double_t > TMatrixD
Bool_t GetXYZAt(Double_t x, Double_t b, Double_t r[3]) const
Double32_t fTOFsignalRaw
detector's ToT signal [ns]
Double_t GetMassForTracking() const
UChar_t GetTRDNchamberdEdx() const
virtual void SetDetectorPID(const AliDetectorPID *pid)
Double_t GetTOFsignal() const
Float_t GetDx(Int_t i=0) const
void GetExternalCovariance(Double_t cov[15]) const
void SetImpactParameters(const Float_t p[2], const Float_t cov[3], const Float_t chi2, const AliExternalTrackParam *cParam)
virtual UChar_t GetITSClusterMap() const =0
void SetTOFDeltaBC(Short_t deltaBC)
Float_t GetTPCClusterDensity(Int_t nNeighbours=3, Int_t type=0, Int_t row0=0, Int_t row1=159, Int_t bitType=0) const
virtual Double_t GetTRDmomentum(Int_t, Double_t *=0x0) const