#include <TFile.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TROOT.h>
#include "AliAnalysisDataContainer.h"
#include "AliAnalysisDataSlot.h"
#include "AliAnalysisManager.h"
#include "AliEmcalPhysicsSelection.h"
#include "AliEmcalPhysicsSelectionTask.h"
#include "AliESDEvent.h"
#include "AliInputEventHandler.h"
#include "AliLog.h"
ClassImp(AliEmcalPhysicsSelectionTask)
AliEmcalPhysicsSelectionTask::AliEmcalPhysicsSelectionTask() :
AliPhysicsSelectionTask(),
fDoWriteHistos(1),
fNCalled(0),
fNAccepted(0),
fHAcc(0),
fHEvtTypes(0)
{
}
AliEmcalPhysicsSelectionTask::AliEmcalPhysicsSelectionTask(const char* opt) :
AliPhysicsSelectionTask(),
fDoWriteHistos(1),
fNCalled(0),
fNAccepted(0),
fHAcc(0),
fHEvtTypes(0)
{
fOption = opt;
fPhysicsSelection = new AliEmcalPhysicsSelection;
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.");
}
DefineOutput(1, TList::Class());
fBranchNames = "ESD:AliESDRun.,AliESDHeader.,AliMultiplicity.,AliESDVZERO.,"
"AliESDZDC.,SPDVertex.,PrimaryVertex.,TPCVertex.,Tracks,SPDPileupVertices";
AliLog::SetClassDebugLevel("AliEmcalPhysicsSelectionTask", AliLog::kWarning);
}
void AliEmcalPhysicsSelectionTask::UserCreateOutputObjects()
{
AliPhysicsSelectionTask::UserCreateOutputObjects();
fHAcc = new TH1D("hEvCount",";0=rej/1=acc;#",2,-0.5,1.5);
fOutput->Add(fHAcc);
fHEvtTypes = new TH1D("hEvtTypes",";#",12,-0.5,11.5);
fHEvtTypes->GetXaxis()->SetBinLabel(1, "All");
fHEvtTypes->GetXaxis()->SetBinLabel(2, "MB");
fHEvtTypes->GetXaxis()->SetBinLabel(3, "FO");
fHEvtTypes->GetXaxis()->SetBinLabel(4, "SC");
fHEvtTypes->GetXaxis()->SetBinLabel(5, "CE");
fHEvtTypes->GetXaxis()->SetBinLabel(6, "EMC");
fHEvtTypes->GetXaxis()->SetBinLabel(7, "EJE");
fHEvtTypes->GetXaxis()->SetBinLabel(8, "EGA");
fHEvtTypes->GetXaxis()->SetBinLabel(9, "Good");
fHEvtTypes->GetXaxis()->SetBinLabel(10, "HC");
fHEvtTypes->GetXaxis()->SetBinLabel(11, "HT");
fHEvtTypes->GetXaxis()->SetBinLabel(12, "LED");
fOutput->Add(fHEvtTypes);
if (!fDoWriteHistos) {
fOutput->Remove(fPhysicsSelection);
}
}
void AliEmcalPhysicsSelectionTask::UserExec(const Option_t *opt)
{
AliPhysicsSelectionTask::UserExec(opt);
++fNCalled;
UInt_t res = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
if (res>0) {
++fNAccepted;
fHAcc->Fill(1);
} else {
fHAcc->Fill(0);
}
AliEmcalPhysicsSelection *ps=static_cast<AliEmcalPhysicsSelection *>(fPhysicsSelection);
fHEvtTypes->Fill(0);
if (res&AliVEvent::kAnyINT)
fHEvtTypes->Fill(1);
if (ps->IsFastOnly())
fHEvtTypes->Fill(2);
if (res&AliVEvent::kCentral)
fHEvtTypes->Fill(3);
if (res&AliVEvent::kSemiCentral)
fHEvtTypes->Fill(4);
if ((res&AliVEvent::kEMC1) || (res&AliVEvent::kEMC7))
fHEvtTypes->Fill(5);
if (res&AliVEvent::kEMCEJE)
fHEvtTypes->Fill(6);
if (res&AliVEvent::kEMCEGA)
fHEvtTypes->Fill(7);
if (res&AliEmcalPhysicsSelection::kEmcalOk)
fHEvtTypes->Fill(8);
if (res&AliEmcalPhysicsSelection::kEmcalHC)
fHEvtTypes->Fill(9);
if (res&AliEmcalPhysicsSelection::kEmcalHT)
fHEvtTypes->Fill(10);
if (ps->IsLedEvent())
fHEvtTypes->Fill(11);
}
void AliEmcalPhysicsSelectionTask::Terminate(Option_t *)
{
AliInfo(Form("Called %d times, accepted %d events", fNCalled, fNAccepted));
if (!fDoWriteHistos)
return;
fOutput = dynamic_cast<TList*> (GetOutputData(1));
if (!fOutput) {
AliError("fOutput not available");
return;
}
AliAnalysisDataSlot *oslot = GetOutputSlot(1);
if (!oslot)
return;
AliAnalysisDataContainer *ocont = oslot->GetContainer();
if (!ocont)
return;
TFile *file = OpenFile(1);
if (!file)
return;
TDirectory::TContext context(file);
if (AliAnalysisManager::GetAnalysisManager()->IsProofMode()) {
fPhysicsSelection = dynamic_cast<AliPhysicsSelection*> (fOutput->FindObject("AliPhysicsSelection"));
}
if (fPhysicsSelection) {
fPhysicsSelection->SaveHistograms(Form("%sHists",ocont->GetName()));
AliInfo(Form("Writing result to %s",file->GetName()));
}
fOutput->Remove(fPhysicsSelection);
}
AliEmcalPhysicsSelectionTask.cxx:1 AliEmcalPhysicsSelectionTask.cxx:2 AliEmcalPhysicsSelectionTask.cxx:3 AliEmcalPhysicsSelectionTask.cxx:4 AliEmcalPhysicsSelectionTask.cxx:5 AliEmcalPhysicsSelectionTask.cxx:6 AliEmcalPhysicsSelectionTask.cxx:7 AliEmcalPhysicsSelectionTask.cxx:8 AliEmcalPhysicsSelectionTask.cxx:9 AliEmcalPhysicsSelectionTask.cxx:10 AliEmcalPhysicsSelectionTask.cxx:11 AliEmcalPhysicsSelectionTask.cxx:12 AliEmcalPhysicsSelectionTask.cxx:13 AliEmcalPhysicsSelectionTask.cxx:14 AliEmcalPhysicsSelectionTask.cxx:15 AliEmcalPhysicsSelectionTask.cxx:16 AliEmcalPhysicsSelectionTask.cxx:17 AliEmcalPhysicsSelectionTask.cxx:18 AliEmcalPhysicsSelectionTask.cxx:19 AliEmcalPhysicsSelectionTask.cxx:20 AliEmcalPhysicsSelectionTask.cxx:21 AliEmcalPhysicsSelectionTask.cxx:22 AliEmcalPhysicsSelectionTask.cxx:23 AliEmcalPhysicsSelectionTask.cxx:24 AliEmcalPhysicsSelectionTask.cxx:25 AliEmcalPhysicsSelectionTask.cxx:26 AliEmcalPhysicsSelectionTask.cxx:27 AliEmcalPhysicsSelectionTask.cxx:28 AliEmcalPhysicsSelectionTask.cxx:29 AliEmcalPhysicsSelectionTask.cxx:30 AliEmcalPhysicsSelectionTask.cxx:31 AliEmcalPhysicsSelectionTask.cxx:32 AliEmcalPhysicsSelectionTask.cxx:33 AliEmcalPhysicsSelectionTask.cxx:34 AliEmcalPhysicsSelectionTask.cxx:35 AliEmcalPhysicsSelectionTask.cxx:36 AliEmcalPhysicsSelectionTask.cxx:37 AliEmcalPhysicsSelectionTask.cxx:38 AliEmcalPhysicsSelectionTask.cxx:39 AliEmcalPhysicsSelectionTask.cxx:40 AliEmcalPhysicsSelectionTask.cxx:41 AliEmcalPhysicsSelectionTask.cxx:42 AliEmcalPhysicsSelectionTask.cxx:43 AliEmcalPhysicsSelectionTask.cxx:44 AliEmcalPhysicsSelectionTask.cxx:45 AliEmcalPhysicsSelectionTask.cxx:46 AliEmcalPhysicsSelectionTask.cxx:47 AliEmcalPhysicsSelectionTask.cxx:48 AliEmcalPhysicsSelectionTask.cxx:49 AliEmcalPhysicsSelectionTask.cxx:50 AliEmcalPhysicsSelectionTask.cxx:51 AliEmcalPhysicsSelectionTask.cxx:52 AliEmcalPhysicsSelectionTask.cxx:53 AliEmcalPhysicsSelectionTask.cxx:54 AliEmcalPhysicsSelectionTask.cxx:55 AliEmcalPhysicsSelectionTask.cxx:56 AliEmcalPhysicsSelectionTask.cxx:57 AliEmcalPhysicsSelectionTask.cxx:58 AliEmcalPhysicsSelectionTask.cxx:59 AliEmcalPhysicsSelectionTask.cxx:60 AliEmcalPhysicsSelectionTask.cxx:61 AliEmcalPhysicsSelectionTask.cxx:62 AliEmcalPhysicsSelectionTask.cxx:63 AliEmcalPhysicsSelectionTask.cxx:64 AliEmcalPhysicsSelectionTask.cxx:65 AliEmcalPhysicsSelectionTask.cxx:66 AliEmcalPhysicsSelectionTask.cxx:67 AliEmcalPhysicsSelectionTask.cxx:68 AliEmcalPhysicsSelectionTask.cxx:69 AliEmcalPhysicsSelectionTask.cxx:70 AliEmcalPhysicsSelectionTask.cxx:71 AliEmcalPhysicsSelectionTask.cxx:72 AliEmcalPhysicsSelectionTask.cxx:73 AliEmcalPhysicsSelectionTask.cxx:74 AliEmcalPhysicsSelectionTask.cxx:75 AliEmcalPhysicsSelectionTask.cxx:76 AliEmcalPhysicsSelectionTask.cxx:77 AliEmcalPhysicsSelectionTask.cxx:78 AliEmcalPhysicsSelectionTask.cxx:79 AliEmcalPhysicsSelectionTask.cxx:80 AliEmcalPhysicsSelectionTask.cxx:81 AliEmcalPhysicsSelectionTask.cxx:82 AliEmcalPhysicsSelectionTask.cxx:83 AliEmcalPhysicsSelectionTask.cxx:84 AliEmcalPhysicsSelectionTask.cxx:85 AliEmcalPhysicsSelectionTask.cxx:86 AliEmcalPhysicsSelectionTask.cxx:87 AliEmcalPhysicsSelectionTask.cxx:88 AliEmcalPhysicsSelectionTask.cxx:89 AliEmcalPhysicsSelectionTask.cxx:90 AliEmcalPhysicsSelectionTask.cxx:91 AliEmcalPhysicsSelectionTask.cxx:92 AliEmcalPhysicsSelectionTask.cxx:93 AliEmcalPhysicsSelectionTask.cxx:94 AliEmcalPhysicsSelectionTask.cxx:95 AliEmcalPhysicsSelectionTask.cxx:96 AliEmcalPhysicsSelectionTask.cxx:97 AliEmcalPhysicsSelectionTask.cxx:98 AliEmcalPhysicsSelectionTask.cxx:99 AliEmcalPhysicsSelectionTask.cxx:100 AliEmcalPhysicsSelectionTask.cxx:101 AliEmcalPhysicsSelectionTask.cxx:102 AliEmcalPhysicsSelectionTask.cxx:103 AliEmcalPhysicsSelectionTask.cxx:104 AliEmcalPhysicsSelectionTask.cxx:105 AliEmcalPhysicsSelectionTask.cxx:106 AliEmcalPhysicsSelectionTask.cxx:107 AliEmcalPhysicsSelectionTask.cxx:108 AliEmcalPhysicsSelectionTask.cxx:109 AliEmcalPhysicsSelectionTask.cxx:110 AliEmcalPhysicsSelectionTask.cxx:111 AliEmcalPhysicsSelectionTask.cxx:112 AliEmcalPhysicsSelectionTask.cxx:113 AliEmcalPhysicsSelectionTask.cxx:114 AliEmcalPhysicsSelectionTask.cxx:115 AliEmcalPhysicsSelectionTask.cxx:116 AliEmcalPhysicsSelectionTask.cxx:117 AliEmcalPhysicsSelectionTask.cxx:118 AliEmcalPhysicsSelectionTask.cxx:119 AliEmcalPhysicsSelectionTask.cxx:120 AliEmcalPhysicsSelectionTask.cxx:121 AliEmcalPhysicsSelectionTask.cxx:122 AliEmcalPhysicsSelectionTask.cxx:123 AliEmcalPhysicsSelectionTask.cxx:124 AliEmcalPhysicsSelectionTask.cxx:125 AliEmcalPhysicsSelectionTask.cxx:126 AliEmcalPhysicsSelectionTask.cxx:127 AliEmcalPhysicsSelectionTask.cxx:128 AliEmcalPhysicsSelectionTask.cxx:129 AliEmcalPhysicsSelectionTask.cxx:130 AliEmcalPhysicsSelectionTask.cxx:131 AliEmcalPhysicsSelectionTask.cxx:132 AliEmcalPhysicsSelectionTask.cxx:133 AliEmcalPhysicsSelectionTask.cxx:134 AliEmcalPhysicsSelectionTask.cxx:135 AliEmcalPhysicsSelectionTask.cxx:136 AliEmcalPhysicsSelectionTask.cxx:137 AliEmcalPhysicsSelectionTask.cxx:138 AliEmcalPhysicsSelectionTask.cxx:139 AliEmcalPhysicsSelectionTask.cxx:140 AliEmcalPhysicsSelectionTask.cxx:141 AliEmcalPhysicsSelectionTask.cxx:142 AliEmcalPhysicsSelectionTask.cxx:143 AliEmcalPhysicsSelectionTask.cxx:144 AliEmcalPhysicsSelectionTask.cxx:145 AliEmcalPhysicsSelectionTask.cxx:146 AliEmcalPhysicsSelectionTask.cxx:147 AliEmcalPhysicsSelectionTask.cxx:148 AliEmcalPhysicsSelectionTask.cxx:149 AliEmcalPhysicsSelectionTask.cxx:150 AliEmcalPhysicsSelectionTask.cxx:151 AliEmcalPhysicsSelectionTask.cxx:152 AliEmcalPhysicsSelectionTask.cxx:153 AliEmcalPhysicsSelectionTask.cxx:154 AliEmcalPhysicsSelectionTask.cxx:155 AliEmcalPhysicsSelectionTask.cxx:156 AliEmcalPhysicsSelectionTask.cxx:157 AliEmcalPhysicsSelectionTask.cxx:158 AliEmcalPhysicsSelectionTask.cxx:159 AliEmcalPhysicsSelectionTask.cxx:160 AliEmcalPhysicsSelectionTask.cxx:161 AliEmcalPhysicsSelectionTask.cxx:162 AliEmcalPhysicsSelectionTask.cxx:163 AliEmcalPhysicsSelectionTask.cxx:164 AliEmcalPhysicsSelectionTask.cxx:165 AliEmcalPhysicsSelectionTask.cxx:166 AliEmcalPhysicsSelectionTask.cxx:167 AliEmcalPhysicsSelectionTask.cxx:168 AliEmcalPhysicsSelectionTask.cxx:169 AliEmcalPhysicsSelectionTask.cxx:170 AliEmcalPhysicsSelectionTask.cxx:171 AliEmcalPhysicsSelectionTask.cxx:172 AliEmcalPhysicsSelectionTask.cxx:173