1 /**************************************************************************
2 * Author: Paraskevi Ganoti, University of Athens (pganoti@phys.uoa.gr) *
3 * Contributors are mentioned in the code where appropriate. *
5 * Permission to use, copy, modify and distribute this software and its *
6 * documentation strictly for non-commercial purposes is hereby granted *
7 * without fee, provided that the above copyright notice appears in all *
8 * copies and that both the copyright notice and this permission notice *
9 * appear in the supporting documentation. The authors make no claims *
10 * about the suitability of this software for any purpose. It is *
11 * provided "as is" without express or implied warranty. *
12 **************************************************************************/
14 //----------------------------------------------------------------------------------------------------------------
15 // class AliAnalysisTaskKinkResonance
16 // Example of an analysis task for reconstructing resonances having at least one kaon-kink in their decay
18 //-----------------------------------------------------------------------------------------------------------------
22 #include "AliESDEvent.h"
23 #include "AliAnalysisTaskKinkResonance.h"
24 #include "AliResonanceKink.h"
26 ClassImp(AliAnalysisTaskKinkResonance)
28 //______________________________________________________________________________
29 AliAnalysisTaskKinkResonance::AliAnalysisTaskKinkResonance(const char *dname)
30 : AliAnalysisTaskSE(dname), fList(0), fKinkResonance(0)
35 // Define input and output slots here
36 // Input slot #0 works with a TChain
37 //DefineInput(0, TChain::Class());
38 DefineOutput(1, TList::Class());
41 //________________________________________________________________________
42 void AliAnalysisTaskKinkResonance::UserCreateOutputObjects()
47 fList= fKinkResonance->GetHistogramList();
51 //________________________________________________________________________
52 void AliAnalysisTaskKinkResonance::UserExec(Option_t *)
55 // Called for each event
57 AliVEvent *event = InputEvent();
59 Printf("ERROR: Could not retrieve event");
63 AliESDEvent* esd = dynamic_cast<AliESDEvent*>(event);
66 Printf("ERROR: Could not retrieve esd");
70 if((fKinkResonance->GetAnalysisType() == "MC")||(fKinkResonance->GetAnalysisType() == "ESD")) {
71 AliMCEvent* mcEvent = MCEvent();
73 Printf("ERROR: Could not retrieve MC event");
76 fKinkResonance->SetDebugLevel(fDebug);
77 fKinkResonance->Analyse(esd, mcEvent);
80 if(fKinkResonance->GetAnalysisType() == "DATA") {
81 fKinkResonance->SetDebugLevel(fDebug);
82 fKinkResonance->Analyse(esd);
89 //________________________________________________________________________
90 void AliAnalysisTaskKinkResonance::Terminate(Option_t *)
92 // Draw result to the screen
93 // Called once at the end of the query
95 fList = dynamic_cast<TList*> (GetOutputData(1));
98 Printf("ERROR: fList not available");
102 TH1D* h=(TH1D *) fList->At(1);
103 TCanvas *c1 = new TCanvas("AliAnalysisTaskKinkResonance","Inv mass",10,10,510,510);
105 if (h) h->DrawCopy("E");