AliCodeTimerAuto("",0);
- AliAODHeader* header = AODEvent()->GetHeader();
+ AliAODHeader* header = dynamic_cast<AliAODHeader*>(AODEvent()->GetHeader());
+ if(!header) AliFatal("Not a standard AOD");
header->SetRunNumber(esd.GetRunNumber());
header->SetOfflineTrigger(fInputHandler->IsEventSelected()); // propagate the decision of the physics selection
Double_t covVtx[6] = { 0. };
Double_t momBach[3]={0.};
Double_t covTr[21]={0.};
- Double_t pid[10]={0.};
+ // Double_t pid[10]={0.};
AliAODPid* detpid(0x0);
AliAODVertex* vV0FromCascade(0x0);
AliAODv0* aodV0(0x0);
esdCascadeBach->GetPxPyPz(momBach);
esdCascadeBach->GetXYZ(pos);
esdCascadeBach->GetCovarianceXYZPxPyPz(covTr);
- esdCascadeBach->GetESDpid(pid);
+ // esdCascadeBach->GetESDpid(pid);
esdCascadeBach->GetTOFLabel(tofLabel);
fUsedTrack[idxBachFromCascade] = kTRUE;
covTr,
(Short_t)esdCascadeBach->GetSign(),
esdCascadeBach->GetITSClusterMap(),
- pid,
+ // pid,
vCascade,
kTRUE, // usedForVtxFit = kFALSE ? FIXME
vtx->UsesTrack(esdCascadeBach->GetID()),
- AliAODTrack::kSecondary,
+ AliAODTrack::kFromDecayVtx,
selectInfo);
+ aodTrack->SetPIDForTracking(esdCascadeBach->GetPIDForTracking());
aodTrack->SetTPCFitMap(esdCascadeBach->GetTPCFitMap());
aodTrack->SetTPCClusterMap(esdCascadeBach->GetTPCClusterMap());
aodTrack->SetTPCSharedMap (esdCascadeBach->GetTPCSharedMap());
esdCascadePos->GetPxPyPz(momPos);
esdCascadePos->GetXYZ(pos);
esdCascadePos->GetCovarianceXYZPxPyPz(covTr);
- esdCascadePos->GetESDpid(pid);
+ // esdCascadePos->GetESDpid(pid);
esdCascadePos->GetTOFLabel(tofLabel);
if (!fUsedTrack[idxPosFromV0Dghter]) {
covTr,
(Short_t)esdCascadePos->GetSign(),
esdCascadePos->GetITSClusterMap(),
- pid,
+ //pid,
vV0FromCascade,
kTRUE, // usedForVtxFit = kFALSE ? FIXME
vtx->UsesTrack(esdCascadePos->GetID()),
- AliAODTrack::kSecondary,
+ AliAODTrack::kFromDecayVtx,
selectInfo);
+ aodTrack->SetPIDForTracking(esdCascadePos->GetPIDForTracking());
aodTrack->SetTPCFitMap(esdCascadePos->GetTPCFitMap());
aodTrack->SetTPCClusterMap(esdCascadePos->GetTPCClusterMap());
aodTrack->SetTPCSharedMap (esdCascadePos->GetTPCSharedMap());
esdCascadeNeg->GetPxPyPz(momNeg);
esdCascadeNeg->GetXYZ(pos);
esdCascadeNeg->GetCovarianceXYZPxPyPz(covTr);
- esdCascadeNeg->GetESDpid(pid);
+ // esdCascadeNeg->GetESDpid(pid);
esdCascadeNeg->GetTOFLabel(tofLabel);
if (!fUsedTrack[idxNegFromV0Dghter]) {
covTr,
(Short_t)esdCascadeNeg->GetSign(),
esdCascadeNeg->GetITSClusterMap(),
- pid,
+ // pid,
vV0FromCascade,
kTRUE, // usedForVtxFit = kFALSE ? FIXME
vtx->UsesTrack(esdCascadeNeg->GetID()),
- AliAODTrack::kSecondary,
+ AliAODTrack::kFromDecayVtx,
selectInfo);
+ aodTrack->SetPIDForTracking(esdCascadeNeg->GetPIDForTracking());
aodTrack->SetTPCFitMap(esdCascadeNeg->GetTPCFitMap());
aodTrack->SetTPCClusterMap(esdCascadeNeg->GetTPCClusterMap());
aodTrack->SetTPCSharedMap (esdCascadeNeg->GetTPCSharedMap());
Double_t covVtx[6] = { 0. };
Double_t momPos[3]={0.};
Double_t covTr[21]={0.};
- Double_t pid[10]={0.};
+ // Double_t pid[10]={0.};
AliAODTrack* aodTrack(0x0);
AliAODPid* detpid(0x0);
Double_t momNeg[3]={0.};
esdV0Pos->GetPxPyPz(momPos);
esdV0Pos->GetXYZ(pos);
esdV0Pos->GetCovarianceXYZPxPyPz(covTr);
- esdV0Pos->GetESDpid(pid);
+ // esdV0Pos->GetESDpid(pid);
esdV0Pos->GetTOFLabel(tofLabel);
const AliESDVertex *vtx = esd.GetPrimaryVertex();
covTr,
(Short_t)esdV0Pos->GetSign(),
esdV0Pos->GetITSClusterMap(),
- pid,
+ // pid,
vV0,
kTRUE, // check if this is right
vtx->UsesTrack(esdV0Pos->GetID()),
- AliAODTrack::kSecondary,
+ AliAODTrack::kFromDecayVtx,
selectInfo);
+ aodTrack->SetPIDForTracking(esdV0Pos->GetPIDForTracking());
aodTrack->SetTPCFitMap(esdV0Pos->GetTPCFitMap());
aodTrack->SetTPCClusterMap(esdV0Pos->GetTPCClusterMap());
aodTrack->SetTPCSharedMap (esdV0Pos->GetTPCSharedMap());
esdV0Neg->GetPxPyPz(momNeg);
esdV0Neg->GetXYZ(pos);
esdV0Neg->GetCovarianceXYZPxPyPz(covTr);
- esdV0Neg->GetESDpid(pid);
+ // esdV0Neg->GetESDpid(pid);
esdV0Neg->GetTOFLabel(tofLabel);
if (!fUsedTrack[negFromV0]) {
covTr,
(Short_t)esdV0Neg->GetSign(),
esdV0Neg->GetITSClusterMap(),
- pid,
+ // pid,
vV0,
kTRUE, // check if this is right
vtx->UsesTrack(esdV0Neg->GetID()),
- AliAODTrack::kSecondary,
+ AliAODTrack::kFromDecayVtx,
selectInfo);
+ aodTrack->SetPIDForTracking(esdV0Neg->GetPIDForTracking());
aodTrack->SetTPCFitMap(esdV0Neg->GetTPCFitMap());
aodTrack->SetTPCClusterMap(esdV0Neg->GetTPCClusterMap());
aodTrack->SetTPCSharedMap (esdV0Neg->GetTPCSharedMap());
Double_t pos[3] = { 0. };
Double_t covTr[21]={0.};
- Double_t pid[10]={0.};
+ // Double_t pid[10]={0.};
Double_t p[3] = { 0. };
Double_t pDCA[3] = { 0. }; // momentum at DCA
Double_t rDCA[3] = { 0. }; // position at DCA
track->GetXYZ(pos);
track->GetCovarianceXYZPxPyPz(covTr);
- esdTrack->GetESDpid(pid);// original PID
+ // esdTrack->GetESDpid(pid);// original PID
esdTrack->GetTOFLabel(tofLabel);
if(fMChandler)fMChandler->SelectParticle(esdTrack->GetLabel());
fUsedTrackCopy[nTrack] |= selectInfo;
covTr,
(Short_t)track->GetSign(),
track->GetITSClusterMap(),
- pid,
+ // pid,
fPrimaryVertex,
kTRUE, // check if this is right
vtx->UsesTrack(track->GetID()),
AliAODTrack::kPrimary,
selectInfo);
+ aodTrack->SetPIDForTracking(track->GetPIDForTracking());
aodTrack->SetIsHybridTPCConstrainedGlobal(isHybridITSTPC);
aodTrack->SetTPCFitMap(track->GetTPCFitMap());
aodTrack->SetTPCClusterMap(track->GetTPCClusterMap());
Double_t pos[3] = { 0. };
Double_t covTr[21]={0.};
- Double_t pid[10]={0.};
+ // Double_t pid[10]={0.};
Double_t p[3] = { 0. };
Double_t pDCA[3] = { 0. }; // momentum at DCA
esdTrack->GetConstrainedXYZ(pos);
exParamGC->GetCovarianceXYZPxPyPz(covTr);
- esdTrack->GetESDpid(pid);
+ // esdTrack->GetESDpid(pid);
esdTrack->GetTOFLabel(tofLabel);
if(fMChandler)fMChandler->SelectParticle(esdTrack->GetLabel());
fUsedTrackCopy[nTrack] |= selectInfo;
covTr,
(Short_t)esdTrack->GetSign(),
esdTrack->GetITSClusterMap(),
- pid,
+ // pid,
fPrimaryVertex,
kTRUE, // check if this is right
vtx->UsesTrack(esdTrack->GetID()),
AliAODTrack::kPrimary,
selectInfo);
+ aodTrack->SetPIDForTracking(esdTrack->GetPIDForTracking());
aodTrack->SetIsHybridGlobalConstrainedGlobal(isHybridGC);
aodTrack->SetIsGlobalConstrained(kTRUE);
aodTrack->SetTPCFitMap(esdTrack->GetTPCFitMap());
Double_t p[3] = { 0. };
Double_t pos[3] = { 0. };
Double_t covTr[21] = { 0. };
- Double_t pid[10] = { 0. };
+ // Double_t pid[10] = { 0. };
Int_t tofLabel[3] = {0};
AliAODTrack* aodTrack(0x0);
AliAODPid* detpid(0x0);
esdTrack->GetPxPyPz(p);
esdTrack->GetXYZ(pos);
esdTrack->GetCovarianceXYZPxPyPz(covTr);
- esdTrack->GetESDpid(pid);
+ // esdTrack->GetESDpid(pid);
esdTrack->GetTOFLabel(tofLabel);
if(fMChandler)fMChandler->SelectParticle(esdTrack->GetLabel());
fUsedTrack[nTrack] = kTRUE;
covTr,
(Short_t)esdTrack->GetSign(),
esdTrack->GetITSClusterMap(),
- pid,
+ // pid,
fPrimaryVertex,
kTRUE, // check if this is right
vtx->UsesTrack(esdTrack->GetID()),
AliAODTrack::kPrimary,
selectInfo);
fPrimaryVertex->AddDaughter(aodTrack);
+ aodTrack->SetPIDForTracking(esdTrack->GetPIDForTracking());
aodTrack->SetTPCFitMap(esdTrack->GetTPCFitMap());
aodTrack->SetTPCClusterMap(esdTrack->GetTPCClusterMap());
aodTrack->SetTPCSharedMap (esdTrack->GetTPCSharedMap());
aodEMcells.SetType(AliAODCaloCells::kEMCALCell);
for (Int_t iCell = 0; iCell < nEMcell; iCell++) {
aodEMcells.SetCell(iCell,esdEMcells.GetCellNumber(iCell),esdEMcells.GetAmplitude(iCell),
- esdEMcells.GetTime(iCell), esdEMcells.GetMCLabel(iCell), esdEMcells.GetEFraction(iCell));
+ esdEMcells.GetTime(iCell), esdEMcells.GetMCLabel(iCell), esdEMcells.GetEFraction(iCell),
+ esdEMcells.GetHighGain(iCell) );
}
aodEMcells.Sort();
}
aodPHcells.SetType(AliAODCaloCells::kPHOSCell);
for (Int_t iCell = 0; iCell < nPHcell; iCell++) {
aodPHcells.SetCell(iCell,esdPHcells.GetCellNumber(iCell),esdPHcells.GetAmplitude(iCell),
- esdPHcells.GetTime(iCell), esdPHcells.GetMCLabel(iCell), esdPHcells.GetEFraction(iCell));
+ esdPHcells.GetTime(iCell), esdPHcells.GetMCLabel(iCell), esdPHcells.GetEFraction(iCell),
+ esdPHcells.GetHighGain(iCell) );
}
aodPHcells.Sort();
}
AliAODTracklets &SPDTracklets = *(AODEvent()->GetTracklets());
const AliMultiplicity *mult = esd.GetMultiplicity();
if (mult) {
- if (mult->GetNumberOfTracklets()>0) {
+ if (mult->GetNumberOfTracklets()>0) {
SPDTracklets.CreateContainer(mult->GetNumberOfTracklets());
+ SPDTracklets.SetScaleDThetaBySin2T(mult->GetScaleDThetaBySin2T());
for (Int_t n=0; n<mult->GetNumberOfTracklets(); n++) {
if(fMChandler){
fMChandler->SelectParticle(mult->GetLabel(n, 0));
// The loop is on the tracks in order to find the mother and daugther of each kink
Double_t covTr[21]={0.};
- Double_t pid[10]={0.};
+ // Double_t pid[10]={0.};
AliAODPid* detpid(0x0);
Int_t tofLabel[3] = {0};
esdTrackM->GetPxPyPz(p);
esdTrackM->GetXYZ(pos);
esdTrackM->GetCovarianceXYZPxPyPz(covTr);
- esdTrackM->GetESDpid(pid);
+ // esdTrackM->GetESDpid(pid);
esdTrackM->GetTOFLabel(tofLabel);
if(fMChandler)fMChandler->SelectParticle(esdTrackM->GetLabel());
mother = new(Tracks()[fNumberOfTracks++]) AliAODTrack(esdTrackM->GetID(),
covTr,
(Short_t)esdTrackM->GetSign(),
esdTrackM->GetITSClusterMap(),
- pid,
+ // pid,
fPrimaryVertex,
kTRUE, // check if this is right
vtx->UsesTrack(esdTrack->GetID()),
AliAODTrack::kPrimary,
selectInfo);
+ mother->SetPIDForTracking(esdTrackM->GetPIDForTracking());
mother->SetTPCFitMap(esdTrackM->GetTPCFitMap());
mother->SetTPCClusterMap(esdTrackM->GetTPCClusterMap());
mother->SetTPCSharedMap (esdTrackM->GetTPCSharedMap());
esdTrackD->GetPxPyPz(p);
esdTrackD->GetXYZ(pos);
esdTrackD->GetCovarianceXYZPxPyPz(covTr);
- esdTrackD->GetESDpid(pid);
+ // esdTrackD->GetESDpid(pid);
esdTrackD->GetTOFLabel(tofLabel);
selectInfo = 0;
if (fTrackFilter) selectInfo = fTrackFilter->IsSelected(esdTrackD);
covTr,
(Short_t)esdTrackD->GetSign(),
esdTrackD->GetITSClusterMap(),
- pid,
+ // pid,
vkink,
kTRUE, // check if this is right
vtx->UsesTrack(esdTrack->GetID()),
- AliAODTrack::kSecondary,
+ AliAODTrack::kFromDecayVtx,
selectInfo);
+ daughter->SetPIDForTracking(esdTrackD->GetPIDForTracking());
daughter->SetTPCFitMap(esdTrackD->GetTPCFitMap());
daughter->SetTPCClusterMap(esdTrackD->GetTPCClusterMap());
daughter->SetTPCSharedMap (esdTrackD->GetTPCSharedMap());
Int_t idxOfFirstPmtA = -1, idxOfFirstPmtC = -1;
Float_t timeOfFirstPmtA = 9999, timeOfFirstPmtC = 9999;
for(int ipmt=0; ipmt<12; ipmt++){
- if( rawTime[ipmt] > -200 && rawTime[ipmt] < timeOfFirstPmtC && rawTime[ipmt]!=0){
+ if( rawTime[ipmt] > -2 && rawTime[ipmt] < timeOfFirstPmtC && rawTime[ipmt]!=0){
timeOfFirstPmtC = rawTime[ipmt];
idxOfFirstPmtC = ipmt;
}
}
for(int ipmt=12; ipmt<24; ipmt++){
- if( rawTime[ipmt] > -200 && rawTime[ipmt] < timeOfFirstPmtA && rawTime[ipmt]!=0 ){
+ if( rawTime[ipmt] > -2 && rawTime[ipmt] < timeOfFirstPmtA && rawTime[ipmt]!=0 ){
timeOfFirstPmtA = rawTime[ipmt];
idxOfFirstPmtA = ipmt;
}
Double_t mom[3]={0.};
Double_t pos[3]={0.};
Double_t covTr[21]={0.};
- Double_t pid[10]={0.};
+ // Double_t pid[10]={0.};
esdTrkMatch->GetPxPyPz(mom);
esdTrkMatch->GetXYZ(pos);
esdTrkMatch->GetCovarianceXYZPxPyPz(covTr);
- esdTrkMatch->GetESDpid(pid);
+ // esdTrkMatch->GetESDpid(pid);
const AliESDVertex* vtx = esd.GetPrimaryVertex();
fUsedTrack[idx] = kTRUE;
covTr,
(Short_t)esdTrkMatch->GetSign(),
esdTrkMatch->GetITSClusterMap(),
- pid,
+ // pid,
fPrimaryVertex,
kTRUE,
vtx->UsesTrack(esdTrkMatch->GetID()),
AliAODTrack::kUndef,
selectInfo);
+ aodTrkMatch->SetPIDForTracking(esdTrkMatch->GetPIDForTracking());
aodTrkMatch->SetTPCFitMap(esdTrkMatch->GetTPCFitMap());
aodTrkMatch->SetTPCClusterMap(esdTrkMatch->GetTPCClusterMap());
aodTrkMatch->SetTPCSharedMap (esdTrkMatch->GetTPCSharedMap());
AliCodeTimerAuto("",0);
- if (fRefitVertexTracks) AliESDUtils::RefitESDVertexTracks(esd,fRefitVertexTracks,
- fRefitVertexTracksNCuts ? fRefitVertexTracksCuts:0);
+ if (fRefitVertexTracks>=0) AliESDUtils::RefitESDVertexTracks(esd,fRefitVertexTracks,
+ fRefitVertexTracksNCuts ? fRefitVertexTracksCuts:0);
fOldESDformat = ( esd->GetAliESDOld() != 0x0 );
// loop over events and fill them
// Multiplicity information needed by the header (to be revised!)
Int_t nTracks = esd->GetNumberOfTracks();
- for (Int_t iTrack=0; iTrack<nTracks; ++iTrack) esd->GetTrack(iTrack)->SetESDEvent(esd);
+
+// The line below should not be needed anymore (tracks already connected)
+// for (Int_t iTrack=0; iTrack<nTracks; ++iTrack) esd->GetTrack(iTrack)->SetESDEvent(esd);
// Update the header
Int_t nV0s = esd->GetNumberOfV0s();
delete fESDpid;
fESDpid = 0x0;
}
+ AODEvent()->ConnectTracks();
}
//______________________________________________________________________________
aodpid->SetTRDChi2(track->GetTRDchi2());
//TOF PID
- Double_t times[AliPID::kSPECIESC]; track->GetIntegratedTimes(times);
+ Double_t times[AliPID::kSPECIESC]; track->GetIntegratedTimes(times,AliPID::kSPECIESC);
aodpid->SetIntegratedTimes(times);
// Float_t tzeroTrack = fESDpid->GetTOFResponse().GetStartTime(track->P());