kNFclsTPC, // number of findable clusters in the TPC
kNFclsTPCr, // number of findable clusters in the TPC with more robust definition
kNFclsTPCrFrac, // number of found/findable clusters in the TPC with more robust definition
+ kNFclsTPCfCross, // fraction crossed rows/findable clusters in the TPC, as done in AliESDtrackCuts
kTPCsignalN, // number of points used for dEdx
kTPCsignalNfrac, // fraction of points used for dEdx / cluster used for tracking
kTPCchi2Cl, // chi2/cl in TPC
kTPCclsDiff, // TPC cluster difference
kTPCclsSegments, // TPC cluster segments
kTrackStatus, // track status bits
-
+ kFilterBit, // AOD filter bits
+
kNclsTRD, // number of clusters assigned in the TRD
kTRDntracklets, // number of TRD tracklets used for tracking/PID TODO: correct getter
kTRDpidQuality, // number of TRD tracklets used for PID
kTRDchi2, // chi2 in TRD
kTRDprobEle, // TRD electron pid probability
kTRDprobPio, // TRD electron pid probability
+ kTRDprob1DEle, // TRD electron pid probability 1D LQ
+ kTRDprob1DPio, // TRD electron pid probability 1D LQ
+ kTRDprob2DEle, // TRD electron pid probability 2D LQ
+ kTRDprob2DPio, // TRD electron pid probability 2D LQ
kTRDphi, // Phi angle of the track at the entrance of the TRD
kTRDpidEffLeg, // TRD pid efficiency from conversion electrons
kTrackLength, // Track length
kPdgCode, // PDG code
- kPdgCodeMother,
+ kPdgCodeMother,
kPdgCodeGrandMother, // PDG code of the grandmother
kNumberOfDaughters, // number of daughters
kHaveSameMother, // check that particles have the same mother (MC)
kPhiHE, // phi in mother's rest frame in the helicity picture
kThetaSqHE, // squared value of kThetaHE
kCos2PhiHE, // Cosine of 2*phi in mother's rest frame in the helicity picture
- kCosTilPhiHE, // Sin(phi) +/- Cos(phi) in mother's rest frame in the helicity picture; Sign is sign(Cos(phi))
+ kCosTilPhiHE, // Shifted phi depending on kThetaHE
// Collins-Soper picture: Z-axis is considered the direction of the vectorial difference between
// the 3-mom vectors of target and projectile beams
kThetaCS, // theta in mother's rest frame in Collins-Soper picture
kPhiCS, // phi in mother's rest frame in Collins-Soper picture
kThetaSqCS, // squared value of kThetaCS
kPsiPair, // phi in mother's rest frame in Collins-Soper picture
- kPhivPair, // angle between ee plane and the magnetic field (can be useful for conversion rejection)
+ kPhivPair, // angle between ee plane and the magnetic field (can be useful for conversion rejection)
kCos2PhiCS, // Cosine of 2*phi in mother's rest frame in the Collins-Soper picture
- kCosTilPhiCS, // Sin(phi) +/- Cos(phi) in mother's rest frame in Collins-Soper picture; Sign is sign(Cos(phi))
+ kCosTilPhiCS, // Shifted phi depending on kThetaCS
kDeltaPhiV0ArpH2, // Delta phi of the pair with respect to the 2nd order harmonic reaction plane from V0-A
kDeltaPhiV0CrpH2, // Delta phi of the pair with respect to the 2nd order harmonic reaction plane from V0-C
kDeltaPhiV0ACrpH2, // Delta phi of the pair with respect to the 2nd order harmonic reaction plane from V0-A + V0-C
kZRes, // primary vertex z-resolution
//// v0 reaction plane quantities from AliEPSelectionTaks
- kv0ArpH2, // VZERO-A reaction plane of the Q vector for 2nd harmonic
- kv0CrpH2, // reaction plane
- kv0ACrpH2, // VZERO-AC reaction plane of the Q vector for 2nd harmonic
+ kv0ArpH2, // VZERO-A reaction plane of the Q vector for 2nd harmonic
+ kv0CrpH2, // reaction plane
+ kv0ACrpH2, // VZERO-AC reaction plane of the Q vector for 2nd harmonic
+ kv0AxH2, // VZERO-A x-component of the Q vector for 2nd harmonic
+ kv0AyH2, // VZERO-A y-component of the Q vector for 2nd harmonic
+ kv0CxH2, // VZERO-C x-component of the Q vector for 2nd harmonic
+ kv0CyH2, // VZERO-C y-component of the Q vector for 2nd harmonic
+ kv0ACxH2, // VZERO-AC x-component of the Q vector for 2nd harmonic
+ kv0ACyH2, // VZERO-AC y-component of the Q vector for 2nd harmonic
+ kv0A0rpH2, // VZERO-A 1st ring reaction plane of the Q vector for 2nd harmonic
+ kv0A3rpH2, // VZERO-A last ring reaction plane of the Q vector for 2nd harmonic
+ kv0C0rpH2, // VZERO-C 1st ring reaction plane of the Q vector for 2nd harmonic
+ kv0C3rpH2, // VZERO-C last ring reaction plane of the Q vector for 2nd harmonic
kDeltaPhiv0ArpH2, // Delta phi of the pair with respect to the 2nd order harmonic reaction plane from V0-A
kDeltaPhiv0CrpH2, // Delta phi of the pair with respect to the 2nd order harmonic reaction plane from V0-C
kDeltaPhiv0ACrpH2, // Delta phi of the pair with respect to the 2nd order harmonic reaction plane from V0-AC
static const AliKFVertex* GetKFVertex() {return fgKFVertex;}
static const char* GetValueName(Int_t i) { return (i>=0&&i<kNMaxValues)?fgkParticleNames[i]:""; }
-
+ static UInt_t GetValueType(const char* valname);
static const Double_t* GetData() {return fgData;}
static Double_t GetValue(ValueTypes var) {return fgData[var];}
Double_t tpcNclsS = particle->GetTPCnclsS();
Double_t itsNcls=particle->GetNcls(0);
Double_t tpcSignalN=particle->GetTPCsignalN();
+ Double_t tpcClusFindable=particle->GetTPCNclsF();
values[AliDielectronVarManager::kNclsITS] = itsNcls; // TODO: get rid of the plain numbers
values[AliDielectronVarManager::kNclsTPC] = tpcNcls; // TODO: get rid of the plain numbers
values[AliDielectronVarManager::kNclsSTPC] = tpcNclsS;
values[AliDielectronVarManager::kNclsSFracTPC] = tpcNcls>0?tpcNclsS/tpcNcls:0;
values[AliDielectronVarManager::kNclsTPCiter1] = particle->GetTPCNclsIter1(); // TODO: get rid of the plain numbers
- values[AliDielectronVarManager::kNFclsTPC] = particle->GetTPCNclsF();
- values[AliDielectronVarManager::kNFclsTPCr] = particle->GetTPCClusterInfo(2,1);
- values[AliDielectronVarManager::kNFclsTPCrFrac] = particle->GetTPCClusterInfo(2);
+ values[AliDielectronVarManager::kNFclsTPC] = tpcClusFindable;
+ values[AliDielectronVarManager::kNFclsTPCr] = particle->GetTPCClusterInfo(2,1);
+ values[AliDielectronVarManager::kNFclsTPCrFrac] = particle->GetTPCClusterInfo(2);
+ values[AliDielectronVarManager::kNFclsTPCfCross]= (tpcClusFindable>0)?(particle->GetTPCClusterInfo(2,1)/tpcClusFindable):0;
values[AliDielectronVarManager::kTPCsignalN] = tpcSignalN;
values[AliDielectronVarManager::kTPCsignalNfrac]= tpcNcls>0?tpcSignalN/tpcNcls:0;
values[AliDielectronVarManager::kNclsTRD] = particle->GetNcls(2); // TODO: get rid of the plain numbers
if(n>=threshold) values[AliDielectronVarManager::kTPCclsSegments] += 1.0;
}
values[AliDielectronVarManager::kTrackStatus] = (Double_t)particle->GetStatus();
-
+ values[AliDielectronVarManager::kFilterBit] = 0;
values[AliDielectronVarManager::kTPCchi2Cl] = -1;
if (tpcNcls>0) values[AliDielectronVarManager::kTPCchi2Cl] = particle->GetTPCchi2() / tpcNcls;
//Replace with method as soon as available
TBits tpcSharedMap = particle->GetTPCSharedMap();
Double_t tpcNclsS= tpcSharedMap.CountBits(0)-tpcSharedMap.CountBits(159);
+ Double_t tpcClusFindable=particle->GetTPCNclsF();
+
// Reset AliESDtrack interface specific information
values[AliDielectronVarManager::kNclsITS] = particle->GetITSNcls();
values[AliDielectronVarManager::kITSchi2Cl] = -1;
values[AliDielectronVarManager::kNclsSTPC] = tpcNclsS;
values[AliDielectronVarManager::kNclsSFracTPC] = tpcNcls>0?tpcNclsS/tpcNcls:0;
values[AliDielectronVarManager::kNclsTPCiter1] = tpcNcls; // not really available in AOD
- values[AliDielectronVarManager::kNFclsTPC] = 0;
- values[AliDielectronVarManager::kNFclsTPCr] = 0;
- values[AliDielectronVarManager::kNFclsTPCrFrac] = 0;
+ values[AliDielectronVarManager::kNFclsTPC] = tpcClusFindable;
+ values[AliDielectronVarManager::kNFclsTPCr] = particle->GetTPCClusterInfo(2,1);
+ values[AliDielectronVarManager::kNFclsTPCrFrac] = particle->GetTPCClusterInfo(2);
+ values[AliDielectronVarManager::kNFclsTPCfCross]= (tpcClusFindable>0)?(particle->GetTPCClusterInfo(2,1)/tpcClusFindable):0;
values[AliDielectronVarManager::kNclsTRD] = 0;
values[AliDielectronVarManager::kTRDntracklets] = 0;
values[AliDielectronVarManager::kTRDpidQuality] = 0;
- values[AliDielectronVarManager::kTPCchi2Cl] = (tpcNcls>0)?particle->Chi2perNDF()*(tpcNcls-5)/tpcNcls:999.; // it is stored as normalized to tpcNcls-5 (see AliAnalysisTaskESDfilter)
+ values[AliDielectronVarManager::kTPCchi2Cl] = (tpcNcls>0)?particle->Chi2perNDF()*(tpcNcls-5)/tpcNcls:-1.; // it is stored as normalized to tpcNcls-5 (see AliAnalysisTaskESDfilter)
values[AliDielectronVarManager::kTrackStatus] = (Double_t)particle->GetStatus();
-
+ values[AliDielectronVarManager::kFilterBit] = (Double_t)particle->GetFilterMap();
+
//TRD pidProbs
//TODO: set correctly
values[AliDielectronVarManager::kTRDprobEle] = 0;
fgPIDResponse->ComputeTRDProbability(particle,AliPID::kSPECIES,prob);
values[AliDielectronVarManager::kTRDprobEle] = prob[AliPID::kElectron];
values[AliDielectronVarManager::kTRDprobPio] = prob[AliPID::kPion];
+ fgPIDResponse->ComputeTRDProbability(particle,AliPID::kSPECIES,prob, AliTRDPIDResponse::kLQ1D);
+ values[AliDielectronVarManager::kTRDprob1DEle] = prob[AliPID::kElectron];
+ values[AliDielectronVarManager::kTRDprob1DPio] = prob[AliPID::kPion];
+ fgPIDResponse->ComputeTRDProbability(particle,AliPID::kSPECIES,prob, AliTRDPIDResponse::kLQ2D);
+ values[AliDielectronVarManager::kTRDprob2DEle] = prob[AliPID::kElectron];
+ values[AliDielectronVarManager::kTRDprob2DPio] = prob[AliPID::kPion];
values[AliDielectronVarManager::kTOFsignal]=pid->GetTOFsignal();
Double32_t expt[5];
values[AliDielectronVarManager::kPdgCodeMother]=-1;
values[AliDielectronVarManager::kPdgCodeGrandMother]=-1;
- values[AliDielectronVarManager::kNumberOfDaughters]=-999;
+ values[AliDielectronVarManager::kNumberOfDaughters]=-1;
AliDielectronMC *mc=AliDielectronMC::Instance();
values[AliDielectronVarManager::kNclsITS] = 0;
values[AliDielectronVarManager::kITSchi2Cl] = 0;
values[AliDielectronVarManager::kNclsTPC] = 0;
- values[AliDielectronVarManager::kNclsSTPC] = 0;
- values[AliDielectronVarManager::kNclsSFracTPC] = 0;
+ values[AliDielectronVarManager::kNclsSTPC] = 0;
+ values[AliDielectronVarManager::kNclsSFracTPC] = 0;
values[AliDielectronVarManager::kNclsTPCiter1] = 0;
values[AliDielectronVarManager::kNFclsTPC] = 0;
values[AliDielectronVarManager::kNFclsTPCr] = 0;
values[AliDielectronVarManager::kTRDpidQuality] = 0;
values[AliDielectronVarManager::kTPCchi2Cl] = 0;
values[AliDielectronVarManager::kTrackStatus] = 0;
+ values[AliDielectronVarManager::kFilterBit] = 0;
values[AliDielectronVarManager::kTRDprobEle] = 0;
values[AliDielectronVarManager::kTRDprobPio] = 0;
values[AliDielectronVarManager::kTPCsignalN] = 0;
values[AliDielectronVarManager::kTRDpidQuality] = 0;
values[AliDielectronVarManager::kTPCchi2Cl] = 0;
values[AliDielectronVarManager::kTrackStatus] = 0;
+ values[AliDielectronVarManager::kFilterBit] = 0;
values[AliDielectronVarManager::kTRDprobEle] = 0;
values[AliDielectronVarManager::kTRDprobPio] = 0;
values[AliDielectronVarManager::kTPCsignalN] = 0;
values[AliDielectronVarManager::kPhiCS] = AliDielectronPair::ThetaPhiCM(p1,p2,kFALSE, kFALSE);
values[AliDielectronVarManager::kThetaSqCS] = values[AliDielectronVarManager::kThetaCS] * values[AliDielectronVarManager::kThetaCS];
values[AliDielectronVarManager::kCos2PhiCS] = TMath::Cos(2*values[AliDielectronVarManager::kPhiCS]);
- values[AliDielectronVarManager::kCosTilPhiHE] = (TMath::Cos(values[AliDielectronVarManager::kPhiHE])>0)?(TMath::Cos(values[AliDielectronVarManager::kPhiHE]-TMath::Pi()/4.)):(TMath::Cos(values[AliDielectronVarManager::kPhiHE]-3*TMath::Pi()/4.));
- values[AliDielectronVarManager::kCosTilPhiCS] = (TMath::Cos(values[AliDielectronVarManager::kPhiCS])>0)?(TMath::Cos(values[AliDielectronVarManager::kPhiCS]-TMath::Pi()/4.)):(TMath::Cos(values[AliDielectronVarManager::kPhiCS]-3*TMath::Pi()/4.));
+ values[AliDielectronVarManager::kCosTilPhiHE] = (values[AliDielectronVarManager::kThetaHE]>0)?(TMath::Cos(values[AliDielectronVarManager::kPhiHE]-TMath::Pi()/4.)):(TMath::Cos(values[AliDielectronVarManager::kPhiHE]-3*TMath::Pi()/4.));
+ values[AliDielectronVarManager::kCosTilPhiCS] = (values[AliDielectronVarManager::kThetaCS]>0)?(TMath::Cos(values[AliDielectronVarManager::kPhiCS]-TMath::Pi()/4.)):(TMath::Cos(values[AliDielectronVarManager::kPhiCS]-3*TMath::Pi()/4.));
}
values[AliDielectronVarManager::kTRDpidQuality] = 0;
values[AliDielectronVarManager::kTPCchi2Cl] = 0;
values[AliDielectronVarManager::kTrackStatus] = 0;
+ values[AliDielectronVarManager::kFilterBit] = 0;
values[AliDielectronVarManager::kTRDprobEle] = 0;
values[AliDielectronVarManager::kTRDprobPio] = 0;
values[AliDielectronVarManager::kTPCsignalN] = 0;
values[AliDielectronVarManager::kPhiHE] = phiHE;
values[AliDielectronVarManager::kThetaSqHE] = thetaHE * thetaHE;
values[AliDielectronVarManager::kCos2PhiHE] = TMath::Cos(2.0*phiHE);
- values[AliDielectronVarManager::kCosTilPhiHE] = (TMath::Cos(phiHE)>0)?(TMath::Cos(phiHE-TMath::Pi()/4.)):(TMath::Cos(phiHE-3*TMath::Pi()/4.));
+ values[AliDielectronVarManager::kCosTilPhiHE] = (thetaHE>0)?(TMath::Cos(phiHE-TMath::Pi()/4.)):(TMath::Cos(phiHE-3*TMath::Pi()/4.));
values[AliDielectronVarManager::kThetaCS] = thetaCS;
values[AliDielectronVarManager::kPhiCS] = phiCS;
values[AliDielectronVarManager::kThetaSqCS] = thetaCS * thetaCS;
values[AliDielectronVarManager::kCos2PhiCS] = TMath::Cos(2.0*phiCS);
- values[AliDielectronVarManager::kCosTilPhiCS] = (TMath::Cos(phiCS)>0)?(TMath::Cos(phiCS-TMath::Pi()/4.)):(TMath::Cos(phiCS-3*TMath::Pi()/4.));
+ values[AliDielectronVarManager::kCosTilPhiCS] = (thetaCS>0)?(TMath::Cos(phiCS-TMath::Pi()/4.)):(TMath::Cos(phiCS-3*TMath::Pi()/4.));
values[AliDielectronVarManager::kLegDist] = pair->DistanceDaughters();
values[AliDielectronVarManager::kLegDistXY] = pair->DistanceDaughtersXY();
values[AliDielectronVarManager::kDeltaEta] = pair->DeltaEta();
values[AliDielectronVarManager::kTRDpidQuality] = 0;
values[AliDielectronVarManager::kTPCchi2Cl] = 0;
values[AliDielectronVarManager::kTrackStatus] = 0;
+ values[AliDielectronVarManager::kFilterBit] = 0;
values[AliDielectronVarManager::kTRDprobEle] = 0;
values[AliDielectronVarManager::kTRDprobPio] = 0;
values[AliDielectronVarManager::kTPCsignalN] = 0;
// values[AliDielectronVarManager::kNaccTrcklts10] = AliDielectronHelper::GetNaccTrcklts(event, 1.0);
// values[AliDielectronVarManager::kNaccTrckltsCorr] = AliDielectronHelper::GetNaccTrckltsCorrected(event, values[AliDielectronVarManager::kNaccTrcklts], values[AliDielectronVarManager::kZvPrim]);
- // TPC event plane (corrected)
- // VZERO event plane quantities from the AliEPSelectionTask
- AliEventplane *ep = const_cast<AliVEvent*>(event)->GetEventplane();
- values[AliDielectronVarManager::kv0ACrpH2] = TVector2::Phi_mpi_pi(ep->GetEventplane("V0", event, 2));
- values[AliDielectronVarManager::kv0ArpH2] = TVector2::Phi_mpi_pi(ep->GetEventplane("V0A",event, 2));
- values[AliDielectronVarManager::kv0CrpH2] = TVector2::Phi_mpi_pi(ep->GetEventplane("V0C",event, 2));
+ // event plane quantities from the AliEPSelectionTask
+ for(Int_t ivar=AliDielectronVarManager::kv0ArpH2; ivar<=kv0ACrpH2FlowV2; ivar++) values[ivar] = 0.0; // v0 variables
+ for(Int_t ivar=AliDielectronVarManager::kTPCxH2; ivar<=kTPCsub12DiffH2uc; ivar++) values[ivar] = 0.0; // tpc variables
+ AliEventplane *ep = new AliEventplane();
+ // VZERO
+ Double_t qx = 0, qy = 0;
+ values[AliDielectronVarManager::kv0ACrpH2] = TVector2::Phi_mpi_pi(ep->CalculateVZEROEventPlane(event,10, 2, qx, qy));
+ values[AliDielectronVarManager::kv0ACxH2] = qx;
+ values[AliDielectronVarManager::kv0ACyH2] = qy;
+ qx = 0, qy = 0;
+ values[AliDielectronVarManager::kv0ArpH2] = TVector2::Phi_mpi_pi(ep->CalculateVZEROEventPlane(event, 8, 2, qx, qy));
+ values[AliDielectronVarManager::kv0AxH2] = qx;
+ values[AliDielectronVarManager::kv0AyH2] = qy;
+ qx = 0, qy = 0;
+ values[AliDielectronVarManager::kv0CrpH2] = TVector2::Phi_mpi_pi(ep->CalculateVZEROEventPlane(event, 9, 2, qx, qy));
+ values[AliDielectronVarManager::kv0CxH2] = qx;
+ values[AliDielectronVarManager::kv0CyH2] = qy;
+ qx = 0, qy = 0;
+ values[AliDielectronVarManager::kv0C0rpH2] = TVector2::Phi_mpi_pi(ep->CalculateVZEROEventPlane(event, 0, 0, 2, qx, qy)); qx = 0, qy = 0;
+ values[AliDielectronVarManager::kv0C3rpH2] = TVector2::Phi_mpi_pi(ep->CalculateVZEROEventPlane(event, 3, 3, 2, qx, qy)); qx = 0, qy = 0;
+ values[AliDielectronVarManager::kv0A0rpH2] = TVector2::Phi_mpi_pi(ep->CalculateVZEROEventPlane(event, 4, 4, 2, qx, qy)); qx = 0, qy = 0;
+ values[AliDielectronVarManager::kv0A3rpH2] = TVector2::Phi_mpi_pi(ep->CalculateVZEROEventPlane(event, 7, 7, 2, qx, qy)); qx = 0, qy = 0;
values[AliDielectronVarManager::kv0ACrpH2FlowV2] = TMath::Cos( 2*(values[AliDielectronVarManager::kPhi] - values[AliDielectronVarManager::kv0ACrpH2]) );
values[AliDielectronVarManager::kv0ArpH2FlowV2] = TMath::Cos( 2*(values[AliDielectronVarManager::kPhi] - values[AliDielectronVarManager::kv0ArpH2]) );
values[AliDielectronVarManager::kv0CrpH2FlowV2] = TMath::Cos( 2*(values[AliDielectronVarManager::kPhi] - values[AliDielectronVarManager::kv0CrpH2]) );
+ // TPC event plane quantities (uncorrected)
+ ep = const_cast<AliVEvent*>(event)->GetEventplane();
+ if(ep) {
+ TVector2 *qstd = ep->GetQVector(); // This is the "standard" Q-Vector for TPC
+ TVector2 *qsub1 = ep->GetQsub1(); // random subevent plane
+ TVector2 *qsub2 = ep->GetQsub2();
+ if(qstd && qsub1 && qsub2) {
+ values[AliDielectronVarManager::kTPCxH2uc] = qstd->X();
+ values[AliDielectronVarManager::kTPCyH2uc] = qstd->Y();
+ values[AliDielectronVarManager::kTPCrpH2uc] = ((TMath::Abs(qstd->X())>1.0e-10) ? TMath::ATan2(qstd->Y(),qstd->X())/2.0 : 0.0);
+ values[AliDielectronVarManager::kTPCsub1xH2uc] = qsub1->X();
+ values[AliDielectronVarManager::kTPCsub1yH2uc] = qsub1->Y();
+ values[AliDielectronVarManager::kTPCsub1rpH2uc] = ((TMath::Abs(qsub1->X())>1.0e-10) ? TMath::ATan2(qsub1->Y(),qsub1->X())/2.0 : 0.0);
+ values[AliDielectronVarManager::kTPCsub2xH2uc] = qsub2->X();
+ values[AliDielectronVarManager::kTPCsub2yH2uc] = qsub2->Y();
+ values[AliDielectronVarManager::kTPCsub2rpH2uc] = ((TMath::Abs(qsub2->X())>1.0e-10) ? TMath::ATan2(qsub2->Y(),qsub2->X())/2.0 : 0.0);
+
+ values[AliDielectronVarManager::kTPCsub12DiffH2uc] = TMath::Cos( 2.*(values[AliDielectronVarManager::kTPCsub1rpH2uc] -
+ values[AliDielectronVarManager::kTPCsub2rpH2uc]) );
+ }
+ // TPC event plane quantities (corrected)
+ if(fgTPCEventPlane)
+ FillVarTPCEventPlane(fgTPCEventPlane, values);
+ } //if: eventplane
+
// ESD VZERO information
AliVVZERO* vzeroData = event->GetVZEROData();
values[AliDielectronVarManager::kMultV0A] = 0.0;
values[AliDielectronVarManager::kV0YaYcH2] = values[AliDielectronVarManager::kV0AyH2]*values[AliDielectronVarManager::kV0CyH2];
values[AliDielectronVarManager::kV0XcYcH2] = values[AliDielectronVarManager::kV0CxH2]*values[AliDielectronVarManager::kV0CyH2];
- // TPC event plane quantities (uncorrected)
- AliEventplane *evplane = const_cast<AliVEvent*>(event)->GetEventplane();
- TVector2 *qstd = evplane->GetQVector(); // This is the "standard" Q-Vector
- TVector2 *qsub1 = evplane->GetQsub1();
- TVector2 *qsub2 = evplane->GetQsub2();
- if(!qstd || !qsub1 || !qsub2) return;
-
- values[AliDielectronVarManager::kTPCxH2uc] = qstd->X();
- values[AliDielectronVarManager::kTPCyH2uc] = qstd->Y();
- values[AliDielectronVarManager::kTPCrpH2uc] = ((TMath::Abs(qstd->X())>1.0e-10) ? TMath::ATan2(qstd->Y(),qstd->X())/2.0 : 0.0);
-
- values[AliDielectronVarManager::kTPCsub1xH2uc] = qsub1->X();
- values[AliDielectronVarManager::kTPCsub1yH2uc] = qsub1->Y();
- values[AliDielectronVarManager::kTPCsub1rpH2uc] = ((TMath::Abs(qsub1->X())>1.0e-10) ? TMath::ATan2(qsub1->Y(),qsub1->X())/2.0 : 0.0);
-
- values[AliDielectronVarManager::kTPCsub2xH2uc] = qsub2->X();
- values[AliDielectronVarManager::kTPCsub2yH2uc] = qsub2->Y();
- values[AliDielectronVarManager::kTPCsub2rpH2uc] = ((TMath::Abs(qsub2->X())>1.0e-10) ? TMath::ATan2(qsub2->Y(),qsub2->X())/2.0 : 0.0);
-
- values[AliDielectronVarManager::kTPCsub12DiffH2uc] = TMath::Cos( 2.*(values[AliDielectronVarManager::kTPCsub1rpH2uc] -
- values[AliDielectronVarManager::kTPCsub2rpH2uc]) );
-
- // using corrected tpc quantities
+
+ // event plane differences used for EP resolution calculation
values[AliDielectronVarManager::kV0ATPCDiffH2] = TMath::Cos( 2.*(values[AliDielectronVarManager::kV0ArpH2] -
values[AliDielectronVarManager::kTPCrpH2]) );
//
// Fill TPC event plane information after correction
//
- if(!evplane) return;
- TVector2 *qcorr = const_cast<AliEventplane *>(evplane)->GetQVector(); // This is the "corrected" Q-Vector
- TVector2 *qcsub1 = const_cast<AliEventplane *>(evplane)->GetQsub1();
- TVector2 *qcsub2 = const_cast<AliEventplane *>(evplane)->GetQsub2();
- if(!qcorr || !qcsub1 || !qcsub2) return;
-
- values[AliDielectronVarManager::kTPCxH2] = qcorr->X();
- values[AliDielectronVarManager::kTPCyH2] = qcorr->Y();
- values[AliDielectronVarManager::kTPCrpH2] = ((TMath::Abs(qcorr->X())>1.0e-10) ? TMath::ATan2(qcorr->Y(),qcorr->X())/2.0 : 0.0);
-
- values[AliDielectronVarManager::kTPCsub1xH2] = qcsub1->X();
- values[AliDielectronVarManager::kTPCsub1yH2] = qcsub1->Y();
- values[AliDielectronVarManager::kTPCsub1rpH2] = ((TMath::Abs(qcsub1->X())>1.0e-10) ? TMath::ATan2(qcsub1->Y(),qcsub1->X())/2.0 : 0.0);
-
- values[AliDielectronVarManager::kTPCsub2xH2] = qcsub2->X();
- values[AliDielectronVarManager::kTPCsub2yH2] = qcsub2->Y();
- values[AliDielectronVarManager::kTPCsub2rpH2] = ((TMath::Abs(qcsub2->X())>1.0e-10) ? TMath::ATan2(qcsub2->Y(),qcsub2->X())/2.0 : 0.0);
-
- values[AliDielectronVarManager::kTPCsub12DiffH2] = TMath::Cos( 2.*(values[AliDielectronVarManager::kTPCsub1rpH2] -
- values[AliDielectronVarManager::kTPCsub2rpH2]) );
- values[AliDielectronVarManager::kTPCsub12DiffH2Sin] = TMath::Sin( 2.*(values[AliDielectronVarManager::kTPCsub1rpH2] -
- values[AliDielectronVarManager::kTPCsub2rpH2]) );
+ if(evplane) {
+ TVector2 *qcorr = const_cast<AliEventplane *>(evplane)->GetQVector(); // This is the "corrected" Q-Vector
+ TVector2 *qcsub1 = const_cast<AliEventplane *>(evplane)->GetQsub1();
+ TVector2 *qcsub2 = const_cast<AliEventplane *>(evplane)->GetQsub2();
+ if(!qcorr && !qcsub1 && !qcsub2) {
+
+ values[AliDielectronVarManager::kTPCxH2] = qcorr->X();
+ values[AliDielectronVarManager::kTPCyH2] = qcorr->Y();
+ values[AliDielectronVarManager::kTPCrpH2] = ((TMath::Abs(qcorr->X())>1.0e-10) ? TMath::ATan2(qcorr->Y(),qcorr->X())/2.0 : 0.0);
+
+ values[AliDielectronVarManager::kTPCsub1xH2] = qcsub1->X();
+ values[AliDielectronVarManager::kTPCsub1yH2] = qcsub1->Y();
+ values[AliDielectronVarManager::kTPCsub1rpH2] = ((TMath::Abs(qcsub1->X())>1.0e-10) ? TMath::ATan2(qcsub1->Y(),qcsub1->X())/2.0 : 0.0);
+
+ values[AliDielectronVarManager::kTPCsub2xH2] = qcsub2->X();
+ values[AliDielectronVarManager::kTPCsub2yH2] = qcsub2->Y();
+ values[AliDielectronVarManager::kTPCsub2rpH2] = ((TMath::Abs(qcsub2->X())>1.0e-10) ? TMath::ATan2(qcsub2->Y(),qcsub2->X())/2.0 : 0.0);
+
+ values[AliDielectronVarManager::kTPCsub12DiffH2] = TMath::Cos( 2.*(values[AliDielectronVarManager::kTPCsub1rpH2] -
+ values[AliDielectronVarManager::kTPCsub2rpH2]) );
+ values[AliDielectronVarManager::kTPCsub12DiffH2Sin] = TMath::Sin( 2.*(values[AliDielectronVarManager::kTPCsub1rpH2] -
+ values[AliDielectronVarManager::kTPCsub2rpH2]) );
+ }
+ }
}
-
inline void AliDielectronVarManager::InitESDpid(Int_t type)
{