20 #include "AliAnalysisTask.h" 21 #include "AliAnalysisManager.h" 23 #include "AliVEvent.h" 24 #include "AliESDEvent.h" 25 #include "AliMCEvent.h" 26 #include "AliAODEvent.h" 29 #include "TGraphErrors.h" 32 #include "AliGenEventHeader.h" 33 #include "AliGenPythiaEventHeader.h" 37 #include "AliGenDPMjetEventHeader.h" 53 fHistPtFeeddownXic0(0),
54 fHistPtInclusiveD0(0),
55 fHistPtInclusiveLc(0),
56 fHistPtInclusiveXic0(0),
57 fHistPtvsRapidityPromptD0(0),
58 fHistPtvsRapidityPromptLc(0),
59 fHistPtvsRapidityPromptXic0(0),
60 fHistPtvsRapidityFeeddownD0(0),
61 fHistPtvsRapidityFeeddownLc(0),
62 fHistPtvsRapidityFeeddownXic0(0),
63 fHistPtvsRapidityInclusiveD0(0),
64 fHistPtvsRapidityInclusiveLc(0),
65 fHistPtvsRapidityInclusiveXic0(0)
83 fHistPtFeeddownXic0(0),
84 fHistPtInclusiveD0(0),
85 fHistPtInclusiveLc(0),
86 fHistPtInclusiveXic0(0),
87 fHistPtvsRapidityPromptD0(0),
88 fHistPtvsRapidityPromptLc(0),
89 fHistPtvsRapidityPromptXic0(0),
90 fHistPtvsRapidityFeeddownD0(0),
91 fHistPtvsRapidityFeeddownLc(0),
92 fHistPtvsRapidityFeeddownXic0(0),
93 fHistPtvsRapidityInclusiveD0(0),
94 fHistPtvsRapidityInclusiveLc(0),
95 fHistPtvsRapidityInclusiveXic0(0)
102 AliPDG::AddParticlesToPdgDataBase();
104 DefineOutput(1, TList::Class());
132 AliLog::SetGlobalLogLevel(AliLog::kError);
140 fHistEvt =
new TH1F(
"fHistEvt",
"Number of events", 1, -0.5, 0.5);
142 fHistMult =
new TH1F(
"fHistMult",
"Multiplicity", 100, 0.0, 1000.);
195 AliMCEvent* mcEvent = MCEvent();
199 Printf(
"ERROR: Could not retrieve MC event");
204 fHistMult->Fill(mcEvent->GetNumberOfTracks());
207 for (
Int_t iTrack = 0; iTrack < mcEvent->GetNumberOfTracks(); iTrack++) {
208 AliMCParticle *track = (AliMCParticle*)mcEvent->GetTrack(iTrack);
210 Printf(
"ERROR: Could not receive track %d", iTrack);
214 Int_t pdgcode = abs(track->PdgCode());
216 if(pdgcode==421 || pdgcode==4122 || pdgcode==4132){
217 Int_t pdgarray_chad[100];
218 Int_t labelarray_chad[100];
220 GetHistory(track,mcEvent,pdgarray_chad,labelarray_chad,ngen_chad);
238 if(TMath::Abs(track->Y())<0.5){
290 for(
Int_t i=0;i<100;i++){
292 labelarray[i] = -9999;
296 AliMCParticle *mcprim = part;
297 while(mcprim->GetMother()>=0) {
298 Int_t lab_prim=mcprim->GetMother();
300 AliMCParticle *tmcprim = (AliMCParticle*)mcevt->GetTrack(lab_prim);
304 if((TMath::Abs(tmcprim->PdgCode())<10) || (TMath::Abs(tmcprim->PdgCode())==21))
break;
308 pdgarray[ngen] = mcprim->PdgCode();
309 labelarray[ngen] = lab_prim;
312 if(ngen == 100)
break;
320 if(TMath::Abs(a-b)<0.00001)
return kTRUE;
321 if(TMath::Abs(a+b)<0.00001)
return kTRUE;
328 if((a-b) == 0)
return kTRUE;
329 if((a+b) == 0)
return kTRUE;
337 for(
int i=0;i<10;i++){
338 if(
Match(hitory[i],511))
return kTRUE;
339 if(
Match(hitory[i],521))
return kTRUE;
340 if(
Match(hitory[i],531))
return kTRUE;
341 if(
Match(hitory[i],5122))
return kTRUE;
342 if(
Match(hitory[i],5232))
return kTRUE;
343 if(
Match(hitory[i],5132))
return kTRUE;
344 if(
Match(hitory[i],5332))
return kTRUE;
TH2D * fHistPtvsRapidityFeeddownLc
! Lc pT distribution in |y|<0.5
TH1D * fHistPtFeeddownXic0
! Xic0 pT distribution in |y|<0.5
virtual void Terminate(Option_t *)
void GetHistory(AliMCParticle *part, AliMCEvent *mcevt, Int_t *pdgarray, Int_t *labelarray, Int_t &ngen)
TH1D * fHistPtFeeddownLc
! Lc pT distribution in |y|<0.5
TH2D * fHistPtvsRapidityInclusiveXic0
! Xic0 pT distribution in |y|<0.5
Bool_t Match(Int_t a, Int_t b)
TH2D * fHistPtvsRapidityPromptXic0
! Xic0 pT distribution in |y|<0.5
TH1D * fHistPtPromptLc
! Lc pT distribution in |y|<0.5
virtual ~AliAnalysisTaskCharmBaryonsMC()
TH1F * fHistEvt
! number of events
virtual void UserExec(Option_t *option)
TH1D * fHistPtFeeddownD0
! D0 pT distribution in |y|<0.5
TH1F * fHistMult
! multiplicity
TH1D * fHistPtPromptD0
! D0 pT distribution in |y|<0.5
TH1D * fHistPtPromptXic0
! Xic0 pT distribution in |y|<0.5
AliAnalysisTaskCharmBaryonsMC()
Bool_t FromBottom(Int_t *hitory)
TH2D * fHistPtvsRapidityPromptLc
! Lc pT distribution in |y|<0.5
virtual void UserCreateOutputObjects()
TH1D * fHistPtInclusiveXic0
! Xic0 pT distribution in |y|<0.5
TH1D * fHistPtInclusiveLc
! Lc pT distribution in |y|<0.5
TH2D * fHistPtvsRapidityFeeddownD0
! D0 pT distribution in |y|<0.5
TH1D * fHistPtInclusiveD0
! D0 pT distribution in |y|<0.5
TH2D * fHistPtvsRapidityInclusiveLc
! Lc pT distribution in |y|<0.5
TH2D * fHistPtvsRapidityFeeddownXic0
! Xic0 pT distribution in |y|<0.5
TH2D * fHistPtvsRapidityInclusiveD0
! D0 pT distribution in |y|<0.5
TH2D * fHistPtvsRapidityPromptD0
! D0 pT distribution in |y|<0.5
TList * fMyOut
! list of output histos