fHistMLaPt(0),
fHistMLbPt(0),
fHistPtArm(0),
+ fHistPtV0Z(0),
fHistRZ(0),
fHistXZ(0),
fHistYZ(0) // The last in the above list should not have a comma after it
fHistMK0Pt(0),
fHistMLaPt(0),
fHistMLbPt(0),
- fHistPtArm(0),
+ fHistPtArm(0),
+ fHistPtV0Z(0),
fHistRZ(0),
fHistXZ(0),
fHistYZ(0) // The last in the above list should not have a comma after it
if (!mcEvent)
{
Printf("ERROR: Could not retrieve MC event");
- //return;
+ return;
}
else
{
bool isprimaryMC = false;
AliMCParticle *mcPart = dynamic_cast<AliMCParticle *>(mcEvent->GetTrack(iMCtrack));
-
+ if (!mcPart) continue;
+
if(mcPart->PdgCode() == kLambda0)
{
lambdaMC = true;
Int_t motherLabel = mcPart->GetMother();
AliMCParticle *mcMother = dynamic_cast<AliMCParticle *>(mcEvent->GetTrack(motherLabel));
double motherType = -1;
- if(motherLabel >= 0)
+ if(motherLabel >= 0 && mcMother)
{motherType = mcMother->PdgCode();}
// this block of code is used to include primary Sigma0 decays as primary lambda/antilambda
if(realParticle == true)
{
AliMCParticle *mcPart2 = dynamic_cast<AliMCParticle *>(mcEvent->GetTrack(negParticleMotherLabel));
+ if (mcPart2) {
if(mcPart2->PdgCode() != kLambda0)
{mcLambdaCandidate = false;}
fHistMcV0MK0Pt->Fill(v0->Pt(),v0->GetEffMass(2,2));
}
}
+ }
if(mcLambdaCandidate && lambdaCandidate)
{
//________________________________________________________________________
AliAnalysisTaskPerformanceStrange::AliAnalysisTaskPerformanceStrange()
-: AliAnalysisTaskSE(), fAnalysisMC(0), fAnalysisType("infoType"), fCollidingSystems(0), fUsePID("infoPID"), fUseCut("infoCut"),fDown(0),fUp(0), fESD(0), fListHist(0),fCentrSelector(0),fTracksCuts(0),fPIDResponse(0),
+: AliAnalysisTaskSE(),
+ fCuts(),
+ fAnalysisMC(0), fAnalysisType("infoType"), fCollidingSystems(0), fUsePID("infoPID"), fUseCut("infoCut"),fDown(0),fUp(0), fESD(0), fListHist(0),fCentrSelector(0),fTracksCuts(0),fPIDResponse(0),
fHistMCPrimaryVertexX(0),
fHistMCPrimaryVertexY(0),
//________________________________________________________________________
AliAnalysisTaskPerformanceStrange::AliAnalysisTaskPerformanceStrange(const char *name)
- : AliAnalysisTaskSE(name), fAnalysisMC(0), fAnalysisType("infoType"), fCollidingSystems(0), fUsePID("infoPID"), fUseCut("infocut"),fDown(0),fUp(0), fESD(0), fListHist(),fCentrSelector(0), fTracksCuts(0),fPIDResponse(0),
+ : AliAnalysisTaskSE(name),
+ fCuts(),
+ fAnalysisMC(0), fAnalysisType("infoType"), fCollidingSystems(0), fUsePID("infoPID"), fUseCut("infocut"),fDown(0),fUp(0), fESD(0), fListHist(),fCentrSelector(0), fTracksCuts(0),fPIDResponse(0),
fHistMCPrimaryVertexX(0),
fHistMCPrimaryVertexY(0),
// Best Primary Vertex:
const AliESDVertex *myBestPrimaryVertex = ((AliESDEvent*)fESD)->GetPrimaryVertex();
- myBestPrimaryVertex = ((AliESDEvent*)fESD)->GetPrimaryVertex();
if (!myBestPrimaryVertex) return;
if (!myBestPrimaryVertex->GetStatus()) return;
fHistNumberEvents->Fill(3.5);
//***********************
// AliKF Primary Vertex
+ if (myPrimaryVertex) {
AliKFVertex primaryVtxKF( *myPrimaryVertex );
AliKFParticle::SetField(lMagneticField);
negAPKF = new AliKFParticle( *(v0->GetParamP()) ,-2212);
}
-
- lLabelTrackPos = (UInt_t)TMath::Abs(myTrackPos->GetLabel());
- lLabelTrackNeg = (UInt_t)TMath::Abs(myTrackNeg->GetLabel());
+
+ if (myTrackPos)
+ lLabelTrackPos = (UInt_t)TMath::Abs(myTrackPos->GetLabel());
+ if (myTrackNeg)
+ lLabelTrackNeg = (UInt_t)TMath::Abs(myTrackNeg->GetLabel());
// Daughters Pt and P:
lPtPos = TMath::Sqrt(lMomPos[0]*lMomPos[0] + lMomPos[1]*lMomPos[1]);
lPNeg = TMath::Sqrt(lMomNeg[0]*lMomNeg[0] + lMomNeg[1]*lMomNeg[1] + lMomNeg[2]*lMomNeg[2]);
// Inner Wall parameter:
- const AliExternalTrackParam *myInnerWallTrackPos = myTrackPos->GetInnerParam();
+ const AliExternalTrackParam *myInnerWallTrackPos = 0x0;
+ if (myTrackPos) myInnerWallTrackPos = myTrackPos->GetInnerParam();
if(myInnerWallTrackPos) lMomInnerWallPos = myInnerWallTrackPos->GetP();
- const AliExternalTrackParam *myInnerWallTrackNeg = myTrackNeg->GetInnerParam();
+ const AliExternalTrackParam *myInnerWallTrackNeg = 0x0;
+ if (myTrackNeg) myInnerWallTrackNeg = myTrackNeg->GetInnerParam();
if(myInnerWallTrackNeg) lMomInnerWallNeg = myInnerWallTrackNeg->GetP();
// DCA between daughter and Primary Vertex:
if ((LambdaPID==1 && V0momentum <=1) || (V0momentum>1) || !(fUsePID.Contains("withPID"))){
if ((TMath::Abs(lRapK0s) < lCutRap) && lOnFlyStatus==0) {
- fHistTPCsignalPt->Fill(V0momentum,myTrackPos->GetTPCsignal());
- // fHistTPCsignalPt->Fill(V0momentum,myTrackNeg->GetTPCsignal());
+ if (myTrackPos)
+ fHistTPCsignalPt->Fill(V0momentum,myTrackPos->GetTPCsignal());
+ // if (myTrackNeg)
+ // fHistTPCsignalPt->Fill(V0momentum,myTrackNeg->GetTPCsignal());
}
}
} // end V0 loop
// if (primaryVtxKF) delete primaryVtxKF;primaryVtxKF=NULL ;
+ } // Protection in case myPrimaryVertex is 0x0
fHistV0Multiplicity->Fill(nv0s);