//---------------------------------------------------------------
- Double_t mom = aodtrack->GetDetPid()->GetTPCmomentum();
+ // Double_t mom = aodtrack->GetDetPid()->GetTPCmomentum();
+ Double_t mom = aodtrack->P();
if(mom<0.150)continue;
-
+
+
+
Double_t nSigmaNegPion = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(aodtrack,(AliPID::EParticleType)fpartType1));
// cout<<"%%% nsigma Pi: "<<nSigmaNegPion<<endl;
// Double_t nSigmaNegPion = TMath::Abs((aodtrack->GetTPCsignal() - foPion->Eval(mom))/foPion->Eval(mom))/0.07;
//cout<<"%%% nsigma Nuclei: "<<nSigmaNuclei<<endl;
if(nSigmaNuclei>-fnSigmaTrk2 && aodtrack->GetTPCsignal()<1000 && mom>0.2){
-
- //Double_t triggerDeDx = 4*AliExternalTrackParam::BetheBlochAleph((mom*2)/(0.938*3),1.0288,31.9806,5.04114e-11,2.13096,2.38541);
+
+ //Double_t triggerDeDx = 4*AliExternalTrackParam::BetheBlochAleph((mom*2)/(0.938*3),1.0288,31.9806,5.04114e-11,2.13096,2.38541);
//if(aodtrack->GetTPCsignal() > triggerDeDx && aodtrack->GetTPCsignal()<5000 && mom>0.2 /*&& aodtrack->Charge()==1*/){
Track1[nTrack1++]=j;
// cout<<"pointing angle "<<io2Prong->CosPointingAngle()<<endl;
- AliAODTrack *trk0 = (AliAODTrack*)io2Prong->GetDaughter(0);
- AliAODTrack *trk1 = (AliAODTrack*)io2Prong->GetDaughter(1);
+ // AliAODTrack *trk0 = (AliAODTrack*)io2Prong->GetDaughter(0);
+ // AliAODTrack *trk1 = (AliAODTrack*)io2Prong->GetDaughter(1);
// cout<<"**********************************************"<<endl;
// cout<<trk0/*->GetID()*/<<" "<<negtrackAOD->GetID()<<endl;
}
//----------------------------------------------------------
-
+
assert(fVertices!=0x0);
fVertices->Clear("C");
TIter nextV(source.GetVertices());
while ( ( v = static_cast<AliAODVertex*>(nextV()) ) )
{
- if ( v->GetType() == AliAODVertex::kPrimary ||
- v->GetType() == AliAODVertex::kMainSPD ||
- v->GetType() == AliAODVertex::kPileupSPD ||
- v->GetType() == AliAODVertex::kPileupTracks||
- v->GetType() == AliAODVertex::kMainTPC )
- {
+ if ( v->GetType() == AliAODVertex::kPrimary ||
+ v->GetType() == AliAODVertex::kMainSPD ||
+ v->GetType() == AliAODVertex::kPileupSPD ||
+ v->GetType() == AliAODVertex::kPileupTracks||
+ v->GetType() == AliAODVertex::kMainTPC )
+ {
AliAODVertex* tmp = v->CloneWithoutRefs();
AliAODVertex* copiedVertex = new((*fVertices)[nvertices++]) AliAODVertex(*tmp);
Float_t vett2[40];
for(Int_t i=0;i<40;i++) vett2[i]=0;
- Double_t ITSsample[4];
- for(Int_t i=0;i<4;i++)ITSsample[i]=0;
- Double_t ITSsamplePos[4];
- for(Int_t i=0;i<4;i++)ITSsamplePos[i]=0;
-
- Double_t ITSsampleNeg[4];
- for(Int_t i=0;i<4;i++)ITSsampleNeg[i]=0;
-
- Double_t pinTPC=0.,poutTPC=0.,TPCSignal=0.;
+ Double_t pinTPC=0.,TPCSignal=0.;
Double_t xPrimaryVertex=0.,yPrimaryVertex=0.,zPrimaryVertex=0.;
ULong_t status=0;
ULong_t statusT=0;
ULong_t statusPi=0;
- Bool_t isTPC=kFALSE,isTOF=kFALSE,isTOFHe3=kFALSE,isTOFPi=kFALSE;
+ Bool_t isTPC=kFALSE,isTOFHe3=kFALSE,isTOFPi=kFALSE;
Double_t fPos[3]={0.,0.,0.};
Double_t runNumber=0.;
Double_t lEtaCurrentPart =0., lPtCurrentPart = 0.,lThetaCurrentPart = 0., lPhiCurrentPart = 0.;
Int_t iCurrentMother = 0;
- Double_t mcPosX = 0., mcPosY = 0.,mcPosZ = 0., mcPosR = 0.;
+ Double_t mcPosX = 0., mcPosY = 0.,mcPosZ = 0.;
- Double_t lPdgCurrentDaughter0 = 0, lPdgCurrentDaughter1= 0., lPdgCurrentMother=0.,lPdgCurrentDaughter =0;
+ Double_t lPdgCurrentDaughter0 = 0, lPdgCurrentDaughter1= 0., /*lPdgCurrentMother=0.,*/lPdgCurrentDaughter =0;
Double_t PxD0 = 0, PyD0 = 0,PzD0 = 0;
Double_t PxD1 = 0, PyD1 = 0,PzD1 = 0;
- Int_t lNbMCPrimary = 0;
Int_t lNbMCPart = 0;
Int_t lPdgcodeCurrentPart = 0;
//!----------------------------------------------------------------
Info("AliAnalysisTaskHelium3PiMC","Starting UserExec");
SetDataType("SIM");
- AliStack *stack=0;
-
+ AliStack *stack = 0;
if(fDataType == "SIM") {
// Main loop
if( !stack ) { Printf( "Stack not available"); return; }
}
-
- AliESDEvent *lESDevent = 0x0;
+ else{
+ Printf( "This Task Works Only on Simulation");
+ return;
+ }
+ AliESDEvent *lESDevent = 0;
//********************************** Connect to the InputEvent ******//
}
}
+ else{
+ Printf("This Analysis Works Only for ESD\n");
+ return;
+ }
+
//*****************//
//* Centrality *//
//*****************//
- AliCentrality *centrality = lESDevent->GetCentrality();
+ AliCentrality *centrality = (AliCentrality*)lESDevent->GetCentrality();
Float_t percentile=centrality->GetCentralityPercentile("V0M");
// Int_t primary = stack->GetNprimary();
Int_t label =-1;
- lNbMCPrimary = stack->GetNprimary();
lNbMCPart = stack->GetNtrack();
fHistMCMultiplicityTracks->Fill(lNbMCPart); //histo
fHistMCPt->Fill(lPtCurrentPart);
fHistMCTheta->Fill(lThetaCurrentPart);
- if (iCurrentMother == -1){lPdgCurrentMother=0; } else {lPdgCurrentMother = stack->Particle(iCurrentMother)->GetPdgCode();}
+ // if (iCurrentMother == -1){lPdgCurrentMother=0; } else {lPdgCurrentMother = stack->Particle(iCurrentMother)->GetPdgCode();}
mcPosX = p0->Vx();
mcPosY = p0->Vy();
mcPosZ = p0->Vz();
- mcPosR = TMath::Sqrt(mcPosX*mcPosX+mcPosY*mcPosY);
isTwoBody=kFALSE;
Int_t motherPDGNeg=0;
Int_t motherPDGPos=0;
- Int_t mumpdg=-100;
-
//! SELECTIONS:
//! - No ITSpureSA
//! - ITSrefit
status = (ULong_t)esdtrack->GetStatus();
isTPC = (((status) & (AliESDtrack::kTPCin)) != 0);
- isTOF = ((((status) & (AliESDtrack::kTOFout)) != 0) && (((status) & (AliESDtrack::kTIME)) != 0));
Bool_t IsTrackAcceptedTPC = esdtrackCutsTPC->AcceptTrack(esdtrack);
Bool_t IsTrackAcceptedITS = esdtrackCutsITS->AcceptTrack(esdtrack);
AliExternalTrackParam trackIn(*esdtrack->GetInnerParam());
pinTPC = trackIn.GetP();
- poutTPC=pinTPC;
-
fhBBTPC->Fill(pinTPC*esdtrack->GetSign(),TPCSignal);
d=esdtrack->GetD(xPrimaryVertex,yPrimaryVertex,lMagneticField);
TParticle * part = stack->Particle(label);
Int_t PDGCode=part->GetPdgCode();
- Int_t mumid = part->GetFirstMother();
-
- if(mumid>-1){
- TParticle *mother=(TParticle*)stack->Particle(mumid);
- mumpdg = mother->GetPdgCode();
- }
if(PDGCode==-211)
fhBBTPCNegativePions->Fill(esdtrack->GetSign()*esdtrack->P(),esdtrack->GetTPCsignal());
impactXY=-999, impactZ=-999;
impactXYpi=-999, impactZpi=-999;
- // Track
-
- AliESDtrack *PionTrack = 0x0;
- AliESDtrack *HeTrack = 0x0;
// Vettori per il PxPyPz
Int_t PionIdx=PionsTPC[k];
- PionTrack=lESDevent->GetTrack(PionIdx);
+ AliESDtrack *PionTrack=lESDevent->GetTrack(PionIdx);
statusPi = (ULong_t)PionTrack->GetStatus();
IsPiITSRefit = ((statusPi) & (AliESDtrack::kITSrefit));
Int_t HeIdx=HeTPC[i];
- HeTrack=lESDevent->GetTrack(HeIdx);
+ AliESDtrack *HeTrack=lESDevent->GetTrack(HeIdx);
statusT= (ULong_t)HeTrack->GetStatus();
IsHeITSRefit = ((statusT) & (AliESDtrack::kITSrefit));