#include "Riostream.h" //needed as include
class TFile;
class TList;
class AliAnalysisTaskSE;
#include "TProfile.h" //needed as include
#include "AliAnalysisManager.h"
#include "AliFlowEventSimple.h"
#include "AliAnalysisTaskScalarProduct.h"
#include "AliFlowAnalysisWithScalarProduct.h"
#include "AliFlowCommonHist.h"
#include "AliFlowCommonHistResults.h"
#include "AliLog.h"
using std::endl;
using std::cout;
ClassImp(AliAnalysisTaskScalarProduct)
AliAnalysisTaskScalarProduct::AliAnalysisTaskScalarProduct(const char *name, Bool_t usePhiWeights) :
AliAnalysisTaskSE(name),
fEvent(NULL),
fSP(NULL),
fListHistos(NULL),
fMinimalBook(kFALSE),
fUsePhiWeights(usePhiWeights),
fListWeights(NULL),
fRelDiffMsub(1.0),
fApplyCorrectionForNUA(kFALSE),
fHarmonic(2),
fNormalizationType(1),
fTotalQvector(NULL)
{
AliDebug(2,"AliAnalysisTaskScalarProduct::AliAnalysisTaskScalarProduct(const char *name)");
DefineInput(0, AliFlowEventSimple::Class());
if(usePhiWeights) {
DefineInput(1, TList::Class()); }
DefineOutput(1, TList::Class());
fTotalQvector = new TString("QaQb");
}
AliAnalysisTaskScalarProduct::AliAnalysisTaskScalarProduct() :
AliAnalysisTaskSE(),
fEvent(NULL),
fSP(NULL),
fListHistos(NULL),
fMinimalBook(kFALSE),
fUsePhiWeights(kFALSE),
fListWeights(NULL),
fRelDiffMsub(1.0),
fApplyCorrectionForNUA(kFALSE),
fHarmonic(0),
fNormalizationType(1),
fTotalQvector(NULL)
{
AliDebug(2,"AliAnalysisTaskScalarProduct::AliAnalysisTaskScalarProduct()");
}
AliAnalysisTaskScalarProduct::~AliAnalysisTaskScalarProduct()
{
}
void AliAnalysisTaskScalarProduct::UserCreateOutputObjects()
{
AliDebug(2,"AliAnalysisTaskScalarProduct::CreateOutputObjects()");
fSP = new AliFlowAnalysisWithScalarProduct();
fSP->SetBookOnlyBasicCCH(fMinimalBook);
if (fApplyCorrectionForNUA) {
AliDebug(2,"Corrections for non-uniform acceptance applied in the Scalar Product method");
}
fSP->SetApplyCorrectionForNUA(fApplyCorrectionForNUA);
fSP->SetHarmonic(fHarmonic);
fSP->SetNormalizationType( fNormalizationType );
Int_t totalQ = 0;
if( fTotalQvector->Contains("Qa") ) totalQ += 1;
if( fTotalQvector->Contains("Qb") ) totalQ += 2;
fSP->SetTotalQvector( totalQ );
if(fUsePhiWeights) {
fSP->SetUsePhiWeights(fUsePhiWeights);
if(GetNinputs()==2) {
fListWeights = (TList*)GetInputData(1);
}
if(fListWeights) fSP->SetWeightsList(fListWeights);
}
fSP-> Init();
if (fSP->GetHistList()) {
fListHistos = fSP->GetHistList();
}
else {Printf("ERROR: Could not retrieve histogram list"); }
PostData(1,fListHistos);
}
void AliAnalysisTaskScalarProduct::UserExec(Option_t *)
{
fEvent = dynamic_cast<AliFlowEventSimple*>(GetInputData(0));
if (fEvent){
fSP->ProcessEvent(fEvent);
}
else {
cout << "Warning no input data for Scalar Product task!!!" << endl;
}
PostData(1,fListHistos);
}
void AliAnalysisTaskScalarProduct::Terminate(Option_t *)
{
AliFlowAnalysisWithScalarProduct* fSPTerm = new AliFlowAnalysisWithScalarProduct() ;
fListHistos = (TList*)GetOutputData(1);
if (fListHistos) {
fSPTerm -> GetOutputHistograms(fListHistos);
fSPTerm -> Finish();
PostData(1,fListHistos);
}
else { cout << "histgram list pointer is empty in Scalar Product" << endl; }
}
AliAnalysisTaskScalarProduct.cxx:1 AliAnalysisTaskScalarProduct.cxx:2 AliAnalysisTaskScalarProduct.cxx:3 AliAnalysisTaskScalarProduct.cxx:4 AliAnalysisTaskScalarProduct.cxx:5 AliAnalysisTaskScalarProduct.cxx:6 AliAnalysisTaskScalarProduct.cxx:7 AliAnalysisTaskScalarProduct.cxx:8 AliAnalysisTaskScalarProduct.cxx:9 AliAnalysisTaskScalarProduct.cxx:10 AliAnalysisTaskScalarProduct.cxx:11 AliAnalysisTaskScalarProduct.cxx:12 AliAnalysisTaskScalarProduct.cxx:13 AliAnalysisTaskScalarProduct.cxx:14 AliAnalysisTaskScalarProduct.cxx:15 AliAnalysisTaskScalarProduct.cxx:16 AliAnalysisTaskScalarProduct.cxx:17 AliAnalysisTaskScalarProduct.cxx:18 AliAnalysisTaskScalarProduct.cxx:19 AliAnalysisTaskScalarProduct.cxx:20 AliAnalysisTaskScalarProduct.cxx:21 AliAnalysisTaskScalarProduct.cxx:22 AliAnalysisTaskScalarProduct.cxx:23 AliAnalysisTaskScalarProduct.cxx:24 AliAnalysisTaskScalarProduct.cxx:25 AliAnalysisTaskScalarProduct.cxx:26 AliAnalysisTaskScalarProduct.cxx:27 AliAnalysisTaskScalarProduct.cxx:28 AliAnalysisTaskScalarProduct.cxx:29 AliAnalysisTaskScalarProduct.cxx:30 AliAnalysisTaskScalarProduct.cxx:31 AliAnalysisTaskScalarProduct.cxx:32 AliAnalysisTaskScalarProduct.cxx:33 AliAnalysisTaskScalarProduct.cxx:34 AliAnalysisTaskScalarProduct.cxx:35 AliAnalysisTaskScalarProduct.cxx:36 AliAnalysisTaskScalarProduct.cxx:37 AliAnalysisTaskScalarProduct.cxx:38 AliAnalysisTaskScalarProduct.cxx:39 AliAnalysisTaskScalarProduct.cxx:40 AliAnalysisTaskScalarProduct.cxx:41 AliAnalysisTaskScalarProduct.cxx:42 AliAnalysisTaskScalarProduct.cxx:43 AliAnalysisTaskScalarProduct.cxx:44 AliAnalysisTaskScalarProduct.cxx:45 AliAnalysisTaskScalarProduct.cxx:46 AliAnalysisTaskScalarProduct.cxx:47 AliAnalysisTaskScalarProduct.cxx:48 AliAnalysisTaskScalarProduct.cxx:49 AliAnalysisTaskScalarProduct.cxx:50 AliAnalysisTaskScalarProduct.cxx:51 AliAnalysisTaskScalarProduct.cxx:52 AliAnalysisTaskScalarProduct.cxx:53 AliAnalysisTaskScalarProduct.cxx:54 AliAnalysisTaskScalarProduct.cxx:55 AliAnalysisTaskScalarProduct.cxx:56 AliAnalysisTaskScalarProduct.cxx:57 AliAnalysisTaskScalarProduct.cxx:58 AliAnalysisTaskScalarProduct.cxx:59 AliAnalysisTaskScalarProduct.cxx:60 AliAnalysisTaskScalarProduct.cxx:61 AliAnalysisTaskScalarProduct.cxx:62 AliAnalysisTaskScalarProduct.cxx:63 AliAnalysisTaskScalarProduct.cxx:64 AliAnalysisTaskScalarProduct.cxx:65 AliAnalysisTaskScalarProduct.cxx:66 AliAnalysisTaskScalarProduct.cxx:67 AliAnalysisTaskScalarProduct.cxx:68 AliAnalysisTaskScalarProduct.cxx:69 AliAnalysisTaskScalarProduct.cxx:70 AliAnalysisTaskScalarProduct.cxx:71 AliAnalysisTaskScalarProduct.cxx:72 AliAnalysisTaskScalarProduct.cxx:73 AliAnalysisTaskScalarProduct.cxx:74 AliAnalysisTaskScalarProduct.cxx:75 AliAnalysisTaskScalarProduct.cxx:76 AliAnalysisTaskScalarProduct.cxx:77 AliAnalysisTaskScalarProduct.cxx:78 AliAnalysisTaskScalarProduct.cxx:79 AliAnalysisTaskScalarProduct.cxx:80 AliAnalysisTaskScalarProduct.cxx:81 AliAnalysisTaskScalarProduct.cxx:82 AliAnalysisTaskScalarProduct.cxx:83 AliAnalysisTaskScalarProduct.cxx:84 AliAnalysisTaskScalarProduct.cxx:85 AliAnalysisTaskScalarProduct.cxx:86 AliAnalysisTaskScalarProduct.cxx:87 AliAnalysisTaskScalarProduct.cxx:88 AliAnalysisTaskScalarProduct.cxx:89 AliAnalysisTaskScalarProduct.cxx:90 AliAnalysisTaskScalarProduct.cxx:91 AliAnalysisTaskScalarProduct.cxx:92 AliAnalysisTaskScalarProduct.cxx:93 AliAnalysisTaskScalarProduct.cxx:94 AliAnalysisTaskScalarProduct.cxx:95 AliAnalysisTaskScalarProduct.cxx:96 AliAnalysisTaskScalarProduct.cxx:97 AliAnalysisTaskScalarProduct.cxx:98 AliAnalysisTaskScalarProduct.cxx:99 AliAnalysisTaskScalarProduct.cxx:100 AliAnalysisTaskScalarProduct.cxx:101 AliAnalysisTaskScalarProduct.cxx:102 AliAnalysisTaskScalarProduct.cxx:103 AliAnalysisTaskScalarProduct.cxx:104 AliAnalysisTaskScalarProduct.cxx:105 AliAnalysisTaskScalarProduct.cxx:106 AliAnalysisTaskScalarProduct.cxx:107 AliAnalysisTaskScalarProduct.cxx:108 AliAnalysisTaskScalarProduct.cxx:109 AliAnalysisTaskScalarProduct.cxx:110 AliAnalysisTaskScalarProduct.cxx:111 AliAnalysisTaskScalarProduct.cxx:112 AliAnalysisTaskScalarProduct.cxx:113 AliAnalysisTaskScalarProduct.cxx:114 AliAnalysisTaskScalarProduct.cxx:115 AliAnalysisTaskScalarProduct.cxx:116 AliAnalysisTaskScalarProduct.cxx:117 AliAnalysisTaskScalarProduct.cxx:118 AliAnalysisTaskScalarProduct.cxx:119 AliAnalysisTaskScalarProduct.cxx:120 AliAnalysisTaskScalarProduct.cxx:121 AliAnalysisTaskScalarProduct.cxx:122 AliAnalysisTaskScalarProduct.cxx:123 AliAnalysisTaskScalarProduct.cxx:124 AliAnalysisTaskScalarProduct.cxx:125 AliAnalysisTaskScalarProduct.cxx:126 AliAnalysisTaskScalarProduct.cxx:127 AliAnalysisTaskScalarProduct.cxx:128 AliAnalysisTaskScalarProduct.cxx:129 AliAnalysisTaskScalarProduct.cxx:130 AliAnalysisTaskScalarProduct.cxx:131 AliAnalysisTaskScalarProduct.cxx:132 AliAnalysisTaskScalarProduct.cxx:133 AliAnalysisTaskScalarProduct.cxx:134 AliAnalysisTaskScalarProduct.cxx:135 AliAnalysisTaskScalarProduct.cxx:136 AliAnalysisTaskScalarProduct.cxx:137 AliAnalysisTaskScalarProduct.cxx:138 AliAnalysisTaskScalarProduct.cxx:139 AliAnalysisTaskScalarProduct.cxx:140 AliAnalysisTaskScalarProduct.cxx:141 AliAnalysisTaskScalarProduct.cxx:142 AliAnalysisTaskScalarProduct.cxx:143 AliAnalysisTaskScalarProduct.cxx:144 AliAnalysisTaskScalarProduct.cxx:145 AliAnalysisTaskScalarProduct.cxx:146 AliAnalysisTaskScalarProduct.cxx:147 AliAnalysisTaskScalarProduct.cxx:148 AliAnalysisTaskScalarProduct.cxx:149 AliAnalysisTaskScalarProduct.cxx:150 AliAnalysisTaskScalarProduct.cxx:151 AliAnalysisTaskScalarProduct.cxx:152 AliAnalysisTaskScalarProduct.cxx:153 AliAnalysisTaskScalarProduct.cxx:154 AliAnalysisTaskScalarProduct.cxx:155 AliAnalysisTaskScalarProduct.cxx:156 AliAnalysisTaskScalarProduct.cxx:157 AliAnalysisTaskScalarProduct.cxx:158 AliAnalysisTaskScalarProduct.cxx:159 AliAnalysisTaskScalarProduct.cxx:160 AliAnalysisTaskScalarProduct.cxx:161 AliAnalysisTaskScalarProduct.cxx:162 AliAnalysisTaskScalarProduct.cxx:163 AliAnalysisTaskScalarProduct.cxx:164 AliAnalysisTaskScalarProduct.cxx:165 AliAnalysisTaskScalarProduct.cxx:166 AliAnalysisTaskScalarProduct.cxx:167 AliAnalysisTaskScalarProduct.cxx:168 AliAnalysisTaskScalarProduct.cxx:169 AliAnalysisTaskScalarProduct.cxx:170 AliAnalysisTaskScalarProduct.cxx:171 AliAnalysisTaskScalarProduct.cxx:172 AliAnalysisTaskScalarProduct.cxx:173 AliAnalysisTaskScalarProduct.cxx:174 AliAnalysisTaskScalarProduct.cxx:175 AliAnalysisTaskScalarProduct.cxx:176 AliAnalysisTaskScalarProduct.cxx:177 AliAnalysisTaskScalarProduct.cxx:178 AliAnalysisTaskScalarProduct.cxx:179 AliAnalysisTaskScalarProduct.cxx:180 AliAnalysisTaskScalarProduct.cxx:181 AliAnalysisTaskScalarProduct.cxx:182 AliAnalysisTaskScalarProduct.cxx:183 AliAnalysisTaskScalarProduct.cxx:184 AliAnalysisTaskScalarProduct.cxx:185 AliAnalysisTaskScalarProduct.cxx:186 AliAnalysisTaskScalarProduct.cxx:187 AliAnalysisTaskScalarProduct.cxx:188 AliAnalysisTaskScalarProduct.cxx:189 AliAnalysisTaskScalarProduct.cxx:190 AliAnalysisTaskScalarProduct.cxx:191 AliAnalysisTaskScalarProduct.cxx:192 AliAnalysisTaskScalarProduct.cxx:193 AliAnalysisTaskScalarProduct.cxx:194 AliAnalysisTaskScalarProduct.cxx:195