coverity fix
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / Kinks / AliAnalysisTaskKinkResonance.cxx
1 /**************************************************************************
2  * Author: Paraskevi Ganoti, University of Athens (pganoti@phys.uoa.gr)   *
3  * Contributors are mentioned in the code where appropriate.              *
4  *                                                                        *
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  **************************************************************************/
13  
14 //----------------------------------------------------------------------------------------------------------------
15 //                        class AliAnalysisTaskKinkResonance
16 //        Example of an analysis task for reconstructing resonances having at least one kaon-kink in their decay 
17 //        products. 
18 //-----------------------------------------------------------------------------------------------------------------
19 #include "TCanvas.h"
20 #include "TH1.h"
21
22 #include "AliESDEvent.h"
23 #include "AliAnalysisTaskKinkResonance.h"
24 #include "AliResonanceKink.h"
25
26 ClassImp(AliAnalysisTaskKinkResonance)
27
28 //______________________________________________________________________________
29 AliAnalysisTaskKinkResonance::AliAnalysisTaskKinkResonance(const char *dname) 
30   : AliAnalysisTaskSE(dname), fList(0), fKinkResonance(0)
31
32 {
33   // Constructor
34
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());
39 }
40
41 //________________________________________________________________________
42 void AliAnalysisTaskKinkResonance::UserCreateOutputObjects() 
43 {
44   // Create histograms
45   // Called once
46   
47   fList= fKinkResonance->GetHistogramList();
48    
49 }
50
51 //________________________________________________________________________
52 void AliAnalysisTaskKinkResonance::UserExec(Option_t *) 
53 {
54   // Main loop
55   // Called for each event
56    
57   AliVEvent *event = InputEvent();
58   if (!event) {
59      Printf("ERROR: Could not retrieve event");
60      return;
61   }
62
63   AliESDEvent* esd = dynamic_cast<AliESDEvent*>(event);
64   
65   if (!esd) {
66      Printf("ERROR: Could not retrieve esd");
67      return;
68   }
69  
70   if((fKinkResonance->GetAnalysisType() == "MC")||(fKinkResonance->GetAnalysisType() == "ESD")) {
71     AliMCEvent* mcEvent = MCEvent();
72     if (!mcEvent) {
73        Printf("ERROR: Could not retrieve MC event");
74        return;
75     }
76     fKinkResonance->SetDebugLevel(fDebug);
77     fKinkResonance->Analyse(esd, mcEvent);
78   }
79   
80   if(fKinkResonance->GetAnalysisType() == "DATA") {
81     fKinkResonance->SetDebugLevel(fDebug);
82     fKinkResonance->Analyse(esd);
83   }
84    
85   PostData(1, fList);
86    
87 }      
88
89 //________________________________________________________________________
90 void AliAnalysisTaskKinkResonance::Terminate(Option_t *) 
91 {
92   // Draw result to the screen 
93   // Called once at the end of the query
94
95   fList = dynamic_cast<TList*> (GetOutputData(1));
96
97   if (!fList) {
98     Printf("ERROR: fList not available");
99     return;
100   }
101   
102   TH1D* h=(TH1D *) fList->At(1);
103   TCanvas *c1 = new TCanvas("AliAnalysisTaskKinkResonance","Inv mass",10,10,510,510);
104   c1->cd(1);
105   if (h) h->DrawCopy("E");
106   
107 }
108