#include "AliPhysicsSelectionTask.h"
#include <TFile.h>
#include <TH1F.h>
#include <TH2F.h>
#include <AliLog.h>
#include <AliESDEvent.h>
#include <AliHeader.h>
#include "AliPhysicsSelection.h"
#include "AliAnalysisManager.h"
#include "AliInputEventHandler.h"
ClassImp(AliPhysicsSelectionTask)
AliPhysicsSelectionTask::AliPhysicsSelectionTask() :
AliAnalysisTaskSE("AliPhysicsSelectionTask"),
fOutput(0),
fOption(""),
fUseSpecialOutput(kFALSE),
fPhysicsSelection(0)
{
}
AliPhysicsSelectionTask::AliPhysicsSelectionTask(const char* opt) :
AliAnalysisTaskSE("AliPhysicsSelectionTask"),
fOutput(0),
fOption(opt),
fUseSpecialOutput(kFALSE),
fPhysicsSelection(new AliPhysicsSelection())
{
AliInputEventHandler* handler = dynamic_cast<AliInputEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
if (handler) {
handler->SetEventSelection(fPhysicsSelection);
AliInfo("Physics Event Selection enabled.");
} else {
AliError("No input event handler connected to analysis manager. No Physics Event Selection.");
}
TString opts = opt;
opts.ToLower();
if (opts.Contains("specialoutput")) fUseSpecialOutput = kTRUE;
DefineOutput(1, TList::Class());
fBranchNames = "ESD:AliESDRun.,AliESDHeader.,AliMultiplicity.,AliESDVZERO.,"
"AliESDZDC.,SPDVertex.,PrimaryVertex.,TPCVertex.,Tracks,SPDPileupVertices";
AliLog::SetClassDebugLevel("AliPhysicsSelectionTask", AliLog::kWarning);
}
AliPhysicsSelectionTask::~AliPhysicsSelectionTask()
{
if (fOutput && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) {
delete fOutput;
fOutput = 0;
}
}
void AliPhysicsSelectionTask::UserCreateOutputObjects()
{
Printf("AliPhysicsSelectionTask::CreateOutputObjects");
if (fUseSpecialOutput) OpenFile(1);
fOutput = new TList;
fOutput->SetOwner();
if (!fPhysicsSelection)
fPhysicsSelection = new AliPhysicsSelection;
fOutput->Add(fPhysicsSelection);
PostData(1, fOutput);
}
void AliPhysicsSelectionTask::UserExec(Option_t*)
{
PostData(1, fOutput);
}
void AliPhysicsSelectionTask::FinishTaskOutput()
{
if (fPhysicsSelection) fPhysicsSelection->Print("STAT");
}
void AliPhysicsSelectionTask::Terminate(Option_t *)
{
fOutput = dynamic_cast<TList*> (GetOutputData(1));
if (!fOutput)
Printf("ERROR: fOutput not available");
if (fOutput)
{
fPhysicsSelection = dynamic_cast<AliPhysicsSelection*> (fOutput->FindObject("AliPhysicsSelection"));
}
TFile* fout = new TFile("event_stat.root", "RECREATE");
if (fPhysicsSelection)
{
fPhysicsSelection->Print();
fPhysicsSelection->SaveHistograms();
}
fout->Write();
fout->Close();
Printf("Writing result to event_stat.root");
}
AliPhysicsSelectionTask.cxx:1 AliPhysicsSelectionTask.cxx:2 AliPhysicsSelectionTask.cxx:3 AliPhysicsSelectionTask.cxx:4 AliPhysicsSelectionTask.cxx:5 AliPhysicsSelectionTask.cxx:6 AliPhysicsSelectionTask.cxx:7 AliPhysicsSelectionTask.cxx:8 AliPhysicsSelectionTask.cxx:9 AliPhysicsSelectionTask.cxx:10 AliPhysicsSelectionTask.cxx:11 AliPhysicsSelectionTask.cxx:12 AliPhysicsSelectionTask.cxx:13 AliPhysicsSelectionTask.cxx:14 AliPhysicsSelectionTask.cxx:15 AliPhysicsSelectionTask.cxx:16 AliPhysicsSelectionTask.cxx:17 AliPhysicsSelectionTask.cxx:18 AliPhysicsSelectionTask.cxx:19 AliPhysicsSelectionTask.cxx:20 AliPhysicsSelectionTask.cxx:21 AliPhysicsSelectionTask.cxx:22 AliPhysicsSelectionTask.cxx:23 AliPhysicsSelectionTask.cxx:24 AliPhysicsSelectionTask.cxx:25 AliPhysicsSelectionTask.cxx:26 AliPhysicsSelectionTask.cxx:27 AliPhysicsSelectionTask.cxx:28 AliPhysicsSelectionTask.cxx:29 AliPhysicsSelectionTask.cxx:30 AliPhysicsSelectionTask.cxx:31 AliPhysicsSelectionTask.cxx:32 AliPhysicsSelectionTask.cxx:33 AliPhysicsSelectionTask.cxx:34 AliPhysicsSelectionTask.cxx:35 AliPhysicsSelectionTask.cxx:36 AliPhysicsSelectionTask.cxx:37 AliPhysicsSelectionTask.cxx:38 AliPhysicsSelectionTask.cxx:39 AliPhysicsSelectionTask.cxx:40 AliPhysicsSelectionTask.cxx:41 AliPhysicsSelectionTask.cxx:42 AliPhysicsSelectionTask.cxx:43 AliPhysicsSelectionTask.cxx:44 AliPhysicsSelectionTask.cxx:45 AliPhysicsSelectionTask.cxx:46 AliPhysicsSelectionTask.cxx:47 AliPhysicsSelectionTask.cxx:48 AliPhysicsSelectionTask.cxx:49 AliPhysicsSelectionTask.cxx:50 AliPhysicsSelectionTask.cxx:51 AliPhysicsSelectionTask.cxx:52 AliPhysicsSelectionTask.cxx:53 AliPhysicsSelectionTask.cxx:54 AliPhysicsSelectionTask.cxx:55 AliPhysicsSelectionTask.cxx:56 AliPhysicsSelectionTask.cxx:57 AliPhysicsSelectionTask.cxx:58 AliPhysicsSelectionTask.cxx:59 AliPhysicsSelectionTask.cxx:60 AliPhysicsSelectionTask.cxx:61 AliPhysicsSelectionTask.cxx:62 AliPhysicsSelectionTask.cxx:63 AliPhysicsSelectionTask.cxx:64 AliPhysicsSelectionTask.cxx:65 AliPhysicsSelectionTask.cxx:66 AliPhysicsSelectionTask.cxx:67 AliPhysicsSelectionTask.cxx:68 AliPhysicsSelectionTask.cxx:69 AliPhysicsSelectionTask.cxx:70 AliPhysicsSelectionTask.cxx:71 AliPhysicsSelectionTask.cxx:72 AliPhysicsSelectionTask.cxx:73 AliPhysicsSelectionTask.cxx:74 AliPhysicsSelectionTask.cxx:75 AliPhysicsSelectionTask.cxx:76 AliPhysicsSelectionTask.cxx:77 AliPhysicsSelectionTask.cxx:78 AliPhysicsSelectionTask.cxx:79 AliPhysicsSelectionTask.cxx:80 AliPhysicsSelectionTask.cxx:81 AliPhysicsSelectionTask.cxx:82 AliPhysicsSelectionTask.cxx:83 AliPhysicsSelectionTask.cxx:84 AliPhysicsSelectionTask.cxx:85 AliPhysicsSelectionTask.cxx:86 AliPhysicsSelectionTask.cxx:87 AliPhysicsSelectionTask.cxx:88 AliPhysicsSelectionTask.cxx:89 AliPhysicsSelectionTask.cxx:90 AliPhysicsSelectionTask.cxx:91 AliPhysicsSelectionTask.cxx:92 AliPhysicsSelectionTask.cxx:93 AliPhysicsSelectionTask.cxx:94 AliPhysicsSelectionTask.cxx:95 AliPhysicsSelectionTask.cxx:96 AliPhysicsSelectionTask.cxx:97 AliPhysicsSelectionTask.cxx:98 AliPhysicsSelectionTask.cxx:99 AliPhysicsSelectionTask.cxx:100 AliPhysicsSelectionTask.cxx:101 AliPhysicsSelectionTask.cxx:102 AliPhysicsSelectionTask.cxx:103 AliPhysicsSelectionTask.cxx:104 AliPhysicsSelectionTask.cxx:105 AliPhysicsSelectionTask.cxx:106 AliPhysicsSelectionTask.cxx:107 AliPhysicsSelectionTask.cxx:108 AliPhysicsSelectionTask.cxx:109 AliPhysicsSelectionTask.cxx:110 AliPhysicsSelectionTask.cxx:111 AliPhysicsSelectionTask.cxx:112 AliPhysicsSelectionTask.cxx:113 AliPhysicsSelectionTask.cxx:114 AliPhysicsSelectionTask.cxx:115 AliPhysicsSelectionTask.cxx:116 AliPhysicsSelectionTask.cxx:117 AliPhysicsSelectionTask.cxx:118 AliPhysicsSelectionTask.cxx:119 AliPhysicsSelectionTask.cxx:120 AliPhysicsSelectionTask.cxx:121 AliPhysicsSelectionTask.cxx:122 AliPhysicsSelectionTask.cxx:123 AliPhysicsSelectionTask.cxx:124 AliPhysicsSelectionTask.cxx:125 AliPhysicsSelectionTask.cxx:126 AliPhysicsSelectionTask.cxx:127 AliPhysicsSelectionTask.cxx:128 AliPhysicsSelectionTask.cxx:129 AliPhysicsSelectionTask.cxx:130 AliPhysicsSelectionTask.cxx:131 AliPhysicsSelectionTask.cxx:132 AliPhysicsSelectionTask.cxx:133 AliPhysicsSelectionTask.cxx:134 AliPhysicsSelectionTask.cxx:135 AliPhysicsSelectionTask.cxx:136 AliPhysicsSelectionTask.cxx:137 AliPhysicsSelectionTask.cxx:138 AliPhysicsSelectionTask.cxx:139 AliPhysicsSelectionTask.cxx:140 AliPhysicsSelectionTask.cxx:141