1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
19 #include <TInterpreter.h>
22 #include <Riostream.h>
25 #include "AliAnalysisTaskGamma.h"
26 #include "AliAnalysisManager.h"
27 #include "AliESDInputHandler.h"
28 #include "AliMCEventHandler.h"
29 #include "AliMCEvent.h"
30 #include "AliAnaGamma.h"
31 #include "AliGammaReader.h"
32 #include "AliESDEvent.h"
33 #include "AliAODEvent.h"
34 #include "AliAODHandler.h"
38 ClassImp(AliAnalysisTaskGamma)
40 ////////////////////////////////////////////////////////////////////////
42 AliAnalysisTaskGamma::AliAnalysisTaskGamma():
45 fOutputContainer(0x0),
48 // Default constructor
51 //_____________________________________________________
52 AliAnalysisTaskGamma::AliAnalysisTaskGamma(const char* name):
53 AliAnalysisTaskSE(name),
55 fOutputContainer(0x0),
56 fConfigName("ConfigGammaAnalysis")
58 // Default constructor
60 DefineOutput(1, TList::Class());
64 //_____________________________________________________
65 AliAnalysisTaskGamma::~AliAnalysisTaskGamma()
67 // Remove all pointers
70 fOutputContainer->Clear() ;
71 delete fOutputContainer ;
76 //_____________________________________________________
77 void AliAnalysisTaskGamma::UserCreateOutputObjects()
79 // Create the output container
83 fAna->ConnectAOD(AODEvent());
85 //Histograms container
87 fOutputContainer = fAna->GetOutputContainer();
91 //_____________________________________________________
92 void AliAnalysisTaskGamma::Init()
97 // Call configuration file
99 if(fConfigName == ""){
100 fConfigName="ConfigGammaAnalysis";
103 AliInfo(Form("### Configuration file is %s.C ###", fConfigName.Data()));
104 gROOT->LoadMacro(fConfigName+".C");
105 fAna = (AliAnaGamma*) gInterpreter->ProcessLine("ConfigGammaAnalysis()");
108 AliFatal("Analysis pointer not initialized, abort analysis!");
110 // Initialise Gamma Analysis
118 //_____________________________________________________
119 void AliAnalysisTaskGamma::UserExec(Option_t */*option*/)
121 // Execute analysis for current event
124 //Get the type of data, check if type is correct
125 Int_t datatype = fAna->GetReader()->GetDataType();
126 if(datatype != AliGammaReader::kData &&
127 datatype != AliGammaReader::kMC &&
128 datatype != AliGammaReader::kMCData){
129 AliFatal("Wrong type of data");
133 fAna->SetData(InputEvent());
135 //In case of montecarlo analysis, pass the stack also.
136 if((datatype == AliGammaReader::kMC || datatype == AliGammaReader::kMCData ) && MCEvent())
137 fAna -> SetKine(MCEvent()->Stack());
140 fAna->ProcessEvent();
142 PostData(1, fOutputContainer);
146 //_____________________________________________________
147 void AliAnalysisTaskGamma::Terminate(Option_t */*option*/)
149 // Terminate analysis
151 AliDebug(1,"Do nothing in Terminate");