+ // for the resolution of the combined vzero event plane, use two tpc halves as uncorrelated subdetectors
+ Double_t qx2a(0), qy2a(0); // for psi2a, negative eta
+ Double_t qx3a(0), qy3a(0); // for psi3a, negative eta
+ Double_t qx2b(0), qy2b(0); // for psi2a, positive eta
+ Double_t qx3b(0), qy3b(0); // for psi3a, positive eta
+ if(fTracks) {
+ Int_t iTracks(fTracks->GetEntriesFast());
+ for(Int_t iTPC(0); iTPC < iTracks; iTPC++) {
+ AliVTrack* track = static_cast<AliVTrack*>(fTracks->At(iTPC));
+ if(!PassesCuts(track) || track->Pt() < fSoftTrackMinPt || track->Pt() > fSoftTrackMaxPt) continue;
+ if(track->Eta() < 0 ) {
+ qx2a+= TMath::Cos(2.*track->Phi());
+ qy2a+= TMath::Sin(2.*track->Phi());
+ qx3a+= TMath::Cos(3.*track->Phi());
+ qy3a+= TMath::Sin(3.*track->Phi());
+ } else if (track->Eta() > 0) {
+ qx2b+= TMath::Cos(2.*track->Phi());
+ qy2b+= TMath::Sin(2.*track->Phi());
+ qx3b+= TMath::Cos(3.*track->Phi());
+ qy3b+= TMath::Sin(3.*track->Phi());
+ }
+ }
+ }
+ Double_t tpca2(.5*TMath::ATan2(qy2a, qx2a));
+ Double_t tpca3((1./3.)*TMath::ATan2(qy3a, qx3a));
+ Double_t tpcb2(.5*TMath::ATan2(qy2b, qx2b));
+ Double_t tpcb3((1./3.)*TMath::ATan2(qy3b, qx3b));
+ fProfV2Resolution[fInCentralitySelection]->Fill(8., TMath::Cos(2.*(vzeroComb[0] - tpca2)));
+ fProfV2Resolution[fInCentralitySelection]->Fill(9., TMath::Cos(2.*(vzeroComb[0] - tpcb2)));
+ fProfV2Resolution[fInCentralitySelection]->Fill(10., TMath::Cos(2.*(tpca2 - tpcb2)));
+ fProfV3Resolution[fInCentralitySelection]->Fill(8., TMath::Cos(3.*(vzeroComb[1] - tpca3)));
+ fProfV3Resolution[fInCentralitySelection]->Fill(9., TMath::Cos(3.*(vzeroComb[1] - tpcb3)));
+ fProfV3Resolution[fInCentralitySelection]->Fill(10., TMath::Cos(3.*(tpca3 - tpcb3)));
+}