Int_t ntracks=event->GetNumberOfTracks();
UInt_t specie = event->GetEventSpecie(); // skip laser events
if (specie==AliRecoParam::kCalib) return;
-
+ Int_t ntracksFriend = esdFriend ? esdFriend->GetNumberOfTracks() : 0;
for (Int_t itrack0=0;itrack0<ntracks;itrack0++) {
//if (TMath::Abs(dcaTPC[1])<kMaxDelta[0]*2) continue;
// const AliExternalTrackParam * trackIn0 = track0->GetInnerParam();
AliESDfriendTrack* friendTrack0=NULL;
- if (esdFriend) {if (!esdFriend->TestSkipBit()) friendTrack0 = esdFriend->GetTrack(itrack0);} //this guy can be NULL
+ if (esdFriend &&!esdFriend->TestSkipBit()){
+ if (itrack0<ntracksFriend){
+ friendTrack0 = esdFriend->GetTrack(itrack0);
+ } //this guy can be NULL
+ }
for (Int_t itrack1=itrack0+1;itrack1<ntracks;itrack1++) {
AliESDtrack *track1 = event->GetTrack(itrack1);
AliESDfriendTrack* friendTrack1=NULL;
- if (esdFriend) {if (!esdFriend->TestSkipBit()) friendTrack1 = esdFriend->GetTrack(itrack1);} //this guy can be NULL
+ if (esdFriend &&!esdFriend->TestSkipBit()){
+ if (itrack1<ntracksFriend){
+ friendTrack1 = esdFriend->GetTrack(itrack1);
+ } //this guy can be NULL
+ }
+
//
AliESDfriendTrack *friendTrackStore0=friendTrack0; // store friend track0 for later processing
AliESDfriendTrack *friendTrackStore1=friendTrack1; // store friend track1 for later processing
if(!vtxSPD) return;
Bool_t isEventOK = evtCuts->AcceptEvent(esdEvent,mcEvent,vtxESD);
- //printf("isEventOK %d, isEventTriggered %d, status %d, vz %f \n",isEventOK, isEventTriggered, vtxESD->GetStatus(), vtxESD->GetZv());
+ //printf("isEventOK %d, isEventTriggered %d, status %d, vz %f \n",isEventOK, isEventTriggered, vtxESD->GetStatus(), vtxESD->GetZ());
//printf("GetAnalysisMode() %d \n",GetAnalysisMode());
Int_t ntracks = esdEvent->GetNumberOfTracks();
//
//Double_t vert[3] = {0};
- //vert[0] = vtxESD->GetXv();
- //vert[1] = vtxESD->GetYv();
- //vert[2] = vtxESD->GetZv();
+ //vert[0] = vtxESD->GetX();
+ //vert[1] = vtxESD->GetY();
+ //vert[2] = vtxESD->GetZ();
Int_t mult = vtxESD->GetNContributors();
Int_t multSPD = vtxSPD->GetNContributors();
Int_t multTPC = vtxTPC->GetNContributors();
//
Double_t vert[3] = {0};
- vert[0] = vtxESD->GetXv();
- vert[1] = vtxESD->GetYv();
- vert[2] = vtxESD->GetZv();
+ vert[0] = vtxESD->GetX();
+ vert[1] = vtxESD->GetY();
+ vert[2] = vtxESD->GetZ();
Int_t mult = vtxESD->GetNContributors();
Float_t bz = esdEvent->GetMagneticField();
Int_t runNumber = esdEvent->GetRunNumber();
// reco event info
Double_t vert[3] = {0};
- vert[0] = vtxESD->GetXv();
- vert[1] = vtxESD->GetYv();
- vert[2] = vtxESD->GetZv();
+ vert[0] = vtxESD->GetX();
+ vert[1] = vtxESD->GetY();
+ vert[2] = vtxESD->GetZ();
Int_t mult = vtxESD->GetNContributors();
Double_t bz = esdEvent->GetMagneticField();
Double_t runNumber = esdEvent->GetRunNumber();
AliESDfriendTrack* friendTrack1=NULL;
if (esdFriend) {
if (!esdFriend->TestSkipBit()){
- friendTrack0 = esdFriend->GetTrack(v0->GetIndex(0)); //this guy can be NULL
- friendTrack1 = esdFriend->GetTrack(v0->GetIndex(1)); //this guy can be NULL
+ Int_t ntracksFriend = esdFriend->GetNumberOfTracks();
+ if (v0->GetIndex(0)<ntracksFriend){
+ friendTrack0 = esdFriend->GetTrack(v0->GetIndex(0)); //this guy can be NULL
+ }
+ if (v0->GetIndex(1)<ntracksFriend){
+ friendTrack1 = esdFriend->GetTrack(v0->GetIndex(1)); //this guy can be NULL
+ }
}
}
if (track0->GetSign()<0) {
if(isEventOK && isEventTriggered)
{
Double_t vert[3] = {0};
- vert[0] = vtxESD->GetXv();
- vert[1] = vtxESD->GetYv();
- vert[2] = vtxESD->GetZv();
+ vert[0] = vtxESD->GetX();
+ vert[1] = vtxESD->GetY();
+ vert[2] = vtxESD->GetZ();
Int_t mult = vtxESD->GetNContributors();
Double_t bz = esdEvent->GetMagneticField();
Double_t runNumber = esdEvent->GetRunNumber();
AliESDtrack *track = esdEvent->GetTrack(iTrack);
if(!track) continue;
AliESDfriendTrack* friendTrack=NULL;
- if (esdFriend) {if (!esdFriend->TestSkipBit()) friendTrack = esdFriend->GetTrack(iTrack);} //this guy can be NULL
+ if (esdFriend && !esdFriend->TestSkipBit()) {
+ Int_t ntracksFriend = esdFriend->GetNumberOfTracks();
+ if (iTrack<ntracksFriend){
+ friendTrack = esdFriend->GetTrack(iTrack);
+ } //this guy can be NULL
+ }
+
if(track->Charge()==0) continue;
if(!esdTrackCuts->AcceptTrack(track)) continue;
if(!accCuts->AcceptTrack(track)) continue;