#include <Rtypes.h>
#include "TClonesArray.h"
+#include "TObjArray.h"
#include "TTree.h"
#include "TTreeStream.h"
#include "AliTOFtrackerMI.h"
#include "AliTOFtrack.h"
+#include "AliMathBase.h"
+
class TGeoManager;
extern TGeoManager *gGeoManager;
fDy(0),
fDz(0),
fTracks(new TClonesArray("AliTOFtrack")),
- fSeeds(new TClonesArray("AliESDtrack")),
+ fSeeds(new TObjArray(100)),
fDebugStreamer(0x0)
{
//AliTOFtrackerMI main Ctor
Int_t ntrk=event->GetNumberOfTracks();
fNseeds = ntrk;
- TClonesArray &aESDTrack = *fSeeds;
-
//Load ESD tracks into a local Array of ESD Seeds
-
- for (Int_t i=0; i<fNseeds; i++) {
- AliESDtrack *t=event->GetTrack(i);
- new(aESDTrack[i]) AliESDtrack(*t);
- }
+ for (Int_t i=0; i<fNseeds; i++)
+ fSeeds->AddLast(event->GetTrack(i));
//Prepare ESD tracks candidates for TOF Matching
CollectESD();
for (Int_t i=0; i<ntrk; i++) {
AliESDtrack *t=event->GetTrack(i);
- AliESDtrack *seed =(AliESDtrack*)fSeeds->UncheckedAt(i);
+ AliESDtrack *seed =(AliESDtrack*)fSeeds->At(i);
if ( (seed->GetStatus()&AliESDtrack::kTOFin)!=0 ) {
t->SetStatus(AliESDtrack::kTOFin);
t->SetIntegratedLength(seed->GetIntegratedLength());
t->SetTOFsignalToT(seed->GetTOFsignalToT());
t->SetTOFCalChannel(seed->GetTOFCalChannel());
+ t->SetTOFDeltaBC(seed->GetTOFDeltaBC());
+ t->SetTOFL0L1(seed->GetTOFL0L1());
//
// Make attention, please:
// AliESDtrack::fTOFInfo array does not be stored in the AliESDs.root file
//Make TOF PID
fSeeds->Clear();
- fTracks->Clear();
+ fTracks->Delete();
return 0;
}
Int_t c1=0;
for (Int_t i=0; i<fNseeds; i++) {
- AliESDtrack *t =(AliESDtrack*)fSeeds->UncheckedAt(i);
+ AliESDtrack *t =(AliESDtrack*)fSeeds->At(i);
if ((t->GetStatus()&AliESDtrack::kTPCout)==0)continue;
AliTOFtrack *track = new AliTOFtrack(*t); // New
Int_t nSteps=(Int_t)(fTOFHeigth/0.1);
- //AliTOFcalib *calib = new AliTOFcalib(); // AdC
-
//PH Arrays (moved outside of the loop)
Float_t * trackPos[4];
for (Int_t ii=0; ii<4; ii++) trackPos[ii] = new Float_t[nSteps];
for (Int_t i=0; i<fNseedsTOF; i++) {
AliTOFtrack *track =(AliTOFtrack*)fTracks->UncheckedAt(i);
- AliESDtrack *t =(AliESDtrack*)fSeeds->UncheckedAt(track->GetSeedIndex());
+ AliESDtrack *t =(AliESDtrack*)fSeeds->At(track->GetSeedIndex());
Bool_t hasTime = ( (t->GetStatus()& AliESDtrack::kTIME)>0) ? kTRUE:kFALSE; // did we integrate time
Float_t trdquality = t->GetTRDQuality();
//
t->SetTOFInfo(info);
t->SetTOFsignal(tof2);
t->SetTOFcluster(cgold->GetIndex());
+ t->SetTOFDeltaBC(cgold->GetDeltaBC());
+ t->SetTOFL0L1(cgold->GetL0L1Latency());
AliDebug(2, Form("%7i %7i %10i %10i %10i %10i %7i",
i,
Float_t normwidth, normd, p0,p1;
- Float_t sigmay = TMath::Max(TMath::Sqrt(cov[0]+kMeanSigmaY*kMeanSigmaY),kMaxSigmaY);
- Float_t sigmaz = TMath::Max(TMath::Sqrt(cov[2]+kMeanSigmaZ*kMeanSigmaZ),kMaxSigmaZ);
+ Float_t sigmay = TMath::Max(TMath::Sqrt(TMath::Abs(cov[0])+kMeanSigmaY*kMeanSigmaY),kMaxSigmaY);
+ Float_t sigmaz = TMath::Max(TMath::Sqrt(TMath::Abs(cov[2])+kMeanSigmaZ*kMeanSigmaZ),kMaxSigmaZ);
py=0;
pz=0;
//
normwidth = fDy/sigmay;
normd = dy/sigmay;
- p0 = 0.5*(1+TMath::Erf(normd-normwidth*0.5));
- p1 = 0.5*(1+TMath::Erf(normd+normwidth*0.5));
+ p0 = 0.5*(1+AliMathBase::ErfFast(normd-normwidth*0.5));
+ p1 = 0.5*(1+AliMathBase::ErfFast(normd+normwidth*0.5));
py+= 0.75*(p1-p0);
//
normwidth = fDy/(3.*sigmay);
normd = dy/(3.*sigmay);
- p0 = 0.5*(1+TMath::Erf(normd-normwidth*0.5));
- p1 = 0.5*(1+TMath::Erf(normd+normwidth*0.5));
+ p0 = 0.5*(1+AliMathBase::ErfFast(normd-normwidth*0.5));
+ p1 = 0.5*(1+AliMathBase::ErfFast(normd+normwidth*0.5));
py+= 0.25*(p1-p0);
//
// pz calculation - 75% admixture of original sigma - 25% tails
//
normwidth = fDz/sigmaz;
normd = dz/sigmaz;
- p0 = 0.5*(1+TMath::Erf(normd-normwidth*0.5));
- p1 = 0.5*(1+TMath::Erf(normd+normwidth*0.5));
+ p0 = 0.5*(1+AliMathBase::ErfFast(normd-normwidth*0.5));
+ p1 = 0.5*(1+AliMathBase::ErfFast(normd+normwidth*0.5));
pz+= 0.75*(p1-p0);
//
normwidth = fDz/(3.*sigmaz);
normd = dz/(3.*sigmaz);
- p0 = 0.5*(1+TMath::Erf(normd-normwidth*0.5));
- p1 = 0.5*(1+TMath::Erf(normd+normwidth*0.5));
+ p0 = 0.5*(1+AliMathBase::ErfFast(normd-normwidth*0.5));
+ p1 = 0.5*(1+AliMathBase::ErfFast(normd+normwidth*0.5));
pz+= 0.25*(p1-p0);
}
//_________________________________________________________________________