AliMCEvent* mcEvent = MCEvent();
if (mcEvent && mcEvent->GenEventHeader()) {
AliGenHijingEventHeader* headerH = dynamic_cast<AliGenHijingEventHeader*>(mcEvent->GenEventHeader());
- fRP = headerH->ReactionPlaneAngle();
+ if (headerH) fRP = headerH->ReactionPlaneAngle();
}
}
if (esd){
for (int iter = 0; iter<NT;iter++){
AliESDtrack* track = dynamic_cast<AliESDtrack*> (ftracklist->At(iter));
- float delta = track->Phi()-fEventplaneQ;
- while (delta < 0) delta += TMath::Pi();
- while (delta > TMath::Pi()) delta -= TMath::Pi();
- fHOutPTPsi->Fill(track->Pt(),delta);
- fHOutPhi->Fill(track->Phi());
- fHOutPhiCorr->Fill(track->Phi(),GetPhiWeight(track));
+ if (track) {
+ float delta = track->Phi()-fEventplaneQ;
+ while (delta < 0) delta += TMath::Pi();
+ while (delta > TMath::Pi()) delta -= TMath::Pi();
+ fHOutPTPsi->Fill(track->Pt(),delta);
+ fHOutPhi->Fill(track->Phi());
+ fHOutPhiCorr->Fill(track->Phi(),GetPhiWeight(track));
+ }
}
AliESDtrack* trmax = esd->GetTrack(0);
for (int iter = 1; iter<NT;iter++){
AliESDtrack* track = dynamic_cast<AliESDtrack*> (ftracklist->At(iter));
- if (track->Pt() > trmax->Pt()) trmax = track;
+ if (track && (track->Pt() > trmax->Pt())) trmax = track;
}
fHOutleadPTPsi->Fill(trmax->Phi(),fEventplaneQ);
}
for (int i=0; i<NT; i++){
weight = 1;
track = dynamic_cast<AliESDtrack*> (tracklist->At(i));
- weight = GetWeight(track);
- if (fSaveTrackContribution){
- EP->GetQContributionXArray()->AddAt(weight*cos(2*track->Phi()),track->GetID());
- EP->GetQContributionYArray()->AddAt(weight*sin(2*track->Phi()),track->GetID());
+ if (track) {
+ weight = GetWeight(track);
+ if (fSaveTrackContribution){
+ EP->GetQContributionXArray()->AddAt(weight*cos(2*track->Phi()),track->GetID());
+ EP->GetQContributionYArray()->AddAt(weight*sin(2*track->Phi()),track->GetID());
+ }
+ mQx += (weight*cos(2*track->Phi()));
+ mQy += (weight*sin(2*track->Phi()));
}
- mQx += (weight*cos(2*track->Phi()));
- mQy += (weight*sin(2*track->Phi()));
}
mQ.Set(mQx,mQy);
return mQ;
for (Int_t i = 0; i < NT; i++) {
weight = 1;
track = dynamic_cast<AliESDtrack*> (tracklist->At(i));
+ if (!track) continue;
weight = GetWeight(track);
// This loop splits the track set into 2 random subsets
TFile f(infilename);
TObject* list = f.Get(listname);
fPhiDist = (TH1F*)list->FindObject("fHOutPhi");
- if (!fPhiDist) cout << "Phi Distribution not found!!!" << endl;
+ if (!fPhiDist) {
+ cout << "Phi Distribution not found!!!" << endl;
+ return;
+ }
Bool_t emptybins;
{
Double_t phiweight=1;
- if (fUsePhiWeight) {
+ if (fUsePhiWeight && fPhiDist && track) {
Double_t nParticles = fPhiDist->Integral();
Double_t nPhibins = fPhiDist->GetNbinsX();