#include <TChain.h>
#include <TH1D.h>
#include <AliCFContainer.h>
#include <AliInputEventHandler.h>
#include <AliAnalysisManager.h>
#include <AliVEvent.h>
#include "AliDielectron.h"
#include "AliDielectronHistos.h"
#include "AliDielectronCF.h"
#include "AliDielectronMC.h"
#include "AliAnalysisTaskDielectronME.h"
ClassImp(AliAnalysisTaskDielectronME)
AliAnalysisTaskDielectronME::AliAnalysisTaskDielectronME() :
AliAnalysisTaskME(),
fListDielectron(),
fListHistos(),
fListCF(),
fPoolDepth(2),
fSelectPhysics(kFALSE),
fTriggerMask(AliVEvent::kMB),
fEventStat(0x0)
{
}
AliAnalysisTaskDielectronME::AliAnalysisTaskDielectronME(const char *name) :
AliAnalysisTaskME(name),
fListDielectron(),
fListHistos(),
fListCF(),
fPoolDepth(2),
fSelectPhysics(kFALSE),
fTriggerMask(AliVEvent::kMB),
fEventStat(0x0)
{
DefineInput(0,TChain::Class());
DefineOutput(1, TList::Class());
DefineOutput(2, TList::Class());
DefineOutput(3, TH1D::Class());
fListHistos.SetName("Dielectron_Histos_Multi");
fListCF.SetName("Dielectron_CF_Multi");
}
void AliAnalysisTaskDielectronME::UserCreateOutputObjects()
{
if (!fListHistos.IsEmpty()||!fListCF.IsEmpty()) return;
TIter nextDie(&fListDielectron);
AliDielectron *die=0;
while ( (die=static_cast<AliDielectron*>(nextDie())) ){
die->Init();
if (die->GetHistogramList()) fListHistos.Add(const_cast<THashList*>(die->GetHistogramList()));
if (die->GetCFManagerPair()) fListCF.Add(const_cast<AliCFContainer*>(die->GetCFManagerPair()->GetContainer()));
}
Int_t cuts=fListDielectron.GetEntries();
Int_t nbins=2+2*cuts;
if (!fEventStat){
fEventStat=new TH1D("hEventStat","Event statistics",nbins,0,nbins);
fEventStat->GetXaxis()->SetBinLabel(1,"Before Phys. Sel.");
fEventStat->GetXaxis()->SetBinLabel(2,"After Phys. Sel.");
for (Int_t i=0; i<cuts; ++i){
fEventStat->GetXaxis()->SetBinLabel(3+2*i,Form("#splitline{1 candidate}{%s}",fListDielectron.At(i)->GetName()));
fEventStat->GetXaxis()->SetBinLabel(4+2*i,Form("#splitline{With >1 candidate}{%s}",fListDielectron.At(i)->GetName()));
}
}
PostData(1, &fListHistos);
PostData(2, &fListCF);
PostData(3, fEventStat);
}
void AliAnalysisTaskDielectronME::UserExec(Option_t *)
{
if (fListHistos.IsEmpty()&&fListCF.IsEmpty()) return;
AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager();
AliInputEventHandler* inputHandler = (AliInputEventHandler*) (man->GetInputEventHandler());
if (!inputHandler) return;
if ( inputHandler->GetPIDResponse() ){
AliDielectronVarManager::SetPIDResponse( inputHandler->GetPIDResponse() );
} else {
AliFatal("This task needs the PID response attached to the input event handler!");
}
UInt_t isSelected = AliVEvent::kAny;
if( fSelectPhysics && inputHandler && inputHandler->GetEventSelection() ) {
isSelected = inputHandler->IsEventSelected();
isSelected&=fTriggerMask;
}
fEventStat->Fill(0.);
if (isSelected==0) {
PostData(3,fEventStat);
return;
}
fEventStat->Fill(1.);
Double_t bz = GetEvent(0)->GetMagneticField();
AliKFParticle::SetField( bz );
TIter nextDie(&fListDielectron);
AliDielectron *die=0;
Int_t idie=0;
while ( (die=static_cast<AliDielectron*>(nextDie())) ){
for (Int_t evt1=0; evt1<fPoolDepth-1; evt1++){
for (Int_t evt2=evt1+1; evt2<fPoolDepth; evt2++){
die->Process((AliESDEvent*)GetEvent(evt1),(AliESDEvent*)GetEvent(evt2));
if (die->HasCandidates()){
Int_t ncandidates=die->GetPairArray(1)->GetEntriesFast();
if (ncandidates==1) fEventStat->Fill(3+2*idie);
else if (ncandidates>1) fEventStat->Fill(4+2*idie);
}
}
}
++idie;
}
PostData(1, &fListHistos);
PostData(2, &fListCF);
PostData(3,fEventStat);
}
void AliAnalysisTaskDielectronME::FinishTaskOutput()
{
TIter nextDie(&fListDielectron);
AliDielectron *die=0;
while ( (die=static_cast<AliDielectron*>(nextDie())) ){
die->SaveDebugTree();
}
}
AliAnalysisTaskDielectronME.cxx:1 AliAnalysisTaskDielectronME.cxx:2 AliAnalysisTaskDielectronME.cxx:3 AliAnalysisTaskDielectronME.cxx:4 AliAnalysisTaskDielectronME.cxx:5 AliAnalysisTaskDielectronME.cxx:6 AliAnalysisTaskDielectronME.cxx:7 AliAnalysisTaskDielectronME.cxx:8 AliAnalysisTaskDielectronME.cxx:9 AliAnalysisTaskDielectronME.cxx:10 AliAnalysisTaskDielectronME.cxx:11 AliAnalysisTaskDielectronME.cxx:12 AliAnalysisTaskDielectronME.cxx:13 AliAnalysisTaskDielectronME.cxx:14 AliAnalysisTaskDielectronME.cxx:15 AliAnalysisTaskDielectronME.cxx:16 AliAnalysisTaskDielectronME.cxx:17 AliAnalysisTaskDielectronME.cxx:18 AliAnalysisTaskDielectronME.cxx:19 AliAnalysisTaskDielectronME.cxx:20 AliAnalysisTaskDielectronME.cxx:21 AliAnalysisTaskDielectronME.cxx:22 AliAnalysisTaskDielectronME.cxx:23 AliAnalysisTaskDielectronME.cxx:24 AliAnalysisTaskDielectronME.cxx:25 AliAnalysisTaskDielectronME.cxx:26 AliAnalysisTaskDielectronME.cxx:27 AliAnalysisTaskDielectronME.cxx:28 AliAnalysisTaskDielectronME.cxx:29 AliAnalysisTaskDielectronME.cxx:30 AliAnalysisTaskDielectronME.cxx:31 AliAnalysisTaskDielectronME.cxx:32 AliAnalysisTaskDielectronME.cxx:33 AliAnalysisTaskDielectronME.cxx:34 AliAnalysisTaskDielectronME.cxx:35 AliAnalysisTaskDielectronME.cxx:36 AliAnalysisTaskDielectronME.cxx:37 AliAnalysisTaskDielectronME.cxx:38 AliAnalysisTaskDielectronME.cxx:39 AliAnalysisTaskDielectronME.cxx:40 AliAnalysisTaskDielectronME.cxx:41 AliAnalysisTaskDielectronME.cxx:42 AliAnalysisTaskDielectronME.cxx:43 AliAnalysisTaskDielectronME.cxx:44 AliAnalysisTaskDielectronME.cxx:45 AliAnalysisTaskDielectronME.cxx:46 AliAnalysisTaskDielectronME.cxx:47 AliAnalysisTaskDielectronME.cxx:48 AliAnalysisTaskDielectronME.cxx:49 AliAnalysisTaskDielectronME.cxx:50 AliAnalysisTaskDielectronME.cxx:51 AliAnalysisTaskDielectronME.cxx:52 AliAnalysisTaskDielectronME.cxx:53 AliAnalysisTaskDielectronME.cxx:54 AliAnalysisTaskDielectronME.cxx:55 AliAnalysisTaskDielectronME.cxx:56 AliAnalysisTaskDielectronME.cxx:57 AliAnalysisTaskDielectronME.cxx:58 AliAnalysisTaskDielectronME.cxx:59 AliAnalysisTaskDielectronME.cxx:60 AliAnalysisTaskDielectronME.cxx:61 AliAnalysisTaskDielectronME.cxx:62 AliAnalysisTaskDielectronME.cxx:63 AliAnalysisTaskDielectronME.cxx:64 AliAnalysisTaskDielectronME.cxx:65 AliAnalysisTaskDielectronME.cxx:66 AliAnalysisTaskDielectronME.cxx:67 AliAnalysisTaskDielectronME.cxx:68 AliAnalysisTaskDielectronME.cxx:69 AliAnalysisTaskDielectronME.cxx:70 AliAnalysisTaskDielectronME.cxx:71 AliAnalysisTaskDielectronME.cxx:72 AliAnalysisTaskDielectronME.cxx:73 AliAnalysisTaskDielectronME.cxx:74 AliAnalysisTaskDielectronME.cxx:75 AliAnalysisTaskDielectronME.cxx:76 AliAnalysisTaskDielectronME.cxx:77 AliAnalysisTaskDielectronME.cxx:78 AliAnalysisTaskDielectronME.cxx:79 AliAnalysisTaskDielectronME.cxx:80 AliAnalysisTaskDielectronME.cxx:81 AliAnalysisTaskDielectronME.cxx:82 AliAnalysisTaskDielectronME.cxx:83 AliAnalysisTaskDielectronME.cxx:84 AliAnalysisTaskDielectronME.cxx:85 AliAnalysisTaskDielectronME.cxx:86 AliAnalysisTaskDielectronME.cxx:87 AliAnalysisTaskDielectronME.cxx:88 AliAnalysisTaskDielectronME.cxx:89 AliAnalysisTaskDielectronME.cxx:90 AliAnalysisTaskDielectronME.cxx:91 AliAnalysisTaskDielectronME.cxx:92 AliAnalysisTaskDielectronME.cxx:93 AliAnalysisTaskDielectronME.cxx:94 AliAnalysisTaskDielectronME.cxx:95 AliAnalysisTaskDielectronME.cxx:96 AliAnalysisTaskDielectronME.cxx:97 AliAnalysisTaskDielectronME.cxx:98 AliAnalysisTaskDielectronME.cxx:99 AliAnalysisTaskDielectronME.cxx:100 AliAnalysisTaskDielectronME.cxx:101 AliAnalysisTaskDielectronME.cxx:102 AliAnalysisTaskDielectronME.cxx:103 AliAnalysisTaskDielectronME.cxx:104 AliAnalysisTaskDielectronME.cxx:105 AliAnalysisTaskDielectronME.cxx:106 AliAnalysisTaskDielectronME.cxx:107 AliAnalysisTaskDielectronME.cxx:108 AliAnalysisTaskDielectronME.cxx:109 AliAnalysisTaskDielectronME.cxx:110 AliAnalysisTaskDielectronME.cxx:111 AliAnalysisTaskDielectronME.cxx:112 AliAnalysisTaskDielectronME.cxx:113 AliAnalysisTaskDielectronME.cxx:114 AliAnalysisTaskDielectronME.cxx:115 AliAnalysisTaskDielectronME.cxx:116 AliAnalysisTaskDielectronME.cxx:117 AliAnalysisTaskDielectronME.cxx:118 AliAnalysisTaskDielectronME.cxx:119 AliAnalysisTaskDielectronME.cxx:120 AliAnalysisTaskDielectronME.cxx:121 AliAnalysisTaskDielectronME.cxx:122 AliAnalysisTaskDielectronME.cxx:123 AliAnalysisTaskDielectronME.cxx:124 AliAnalysisTaskDielectronME.cxx:125 AliAnalysisTaskDielectronME.cxx:126 AliAnalysisTaskDielectronME.cxx:127 AliAnalysisTaskDielectronME.cxx:128 AliAnalysisTaskDielectronME.cxx:129 AliAnalysisTaskDielectronME.cxx:130 AliAnalysisTaskDielectronME.cxx:131 AliAnalysisTaskDielectronME.cxx:132 AliAnalysisTaskDielectronME.cxx:133 AliAnalysisTaskDielectronME.cxx:134 AliAnalysisTaskDielectronME.cxx:135 AliAnalysisTaskDielectronME.cxx:136 AliAnalysisTaskDielectronME.cxx:137 AliAnalysisTaskDielectronME.cxx:138 AliAnalysisTaskDielectronME.cxx:139 AliAnalysisTaskDielectronME.cxx:140 AliAnalysisTaskDielectronME.cxx:141 AliAnalysisTaskDielectronME.cxx:142 AliAnalysisTaskDielectronME.cxx:143 AliAnalysisTaskDielectronME.cxx:144 AliAnalysisTaskDielectronME.cxx:145 AliAnalysisTaskDielectronME.cxx:146 AliAnalysisTaskDielectronME.cxx:147 AliAnalysisTaskDielectronME.cxx:148 AliAnalysisTaskDielectronME.cxx:149 AliAnalysisTaskDielectronME.cxx:150 AliAnalysisTaskDielectronME.cxx:151 AliAnalysisTaskDielectronME.cxx:152 AliAnalysisTaskDielectronME.cxx:153 AliAnalysisTaskDielectronME.cxx:154 AliAnalysisTaskDielectronME.cxx:155 AliAnalysisTaskDielectronME.cxx:156 AliAnalysisTaskDielectronME.cxx:157 AliAnalysisTaskDielectronME.cxx:158 AliAnalysisTaskDielectronME.cxx:159 AliAnalysisTaskDielectronME.cxx:160 AliAnalysisTaskDielectronME.cxx:161 AliAnalysisTaskDielectronME.cxx:162 AliAnalysisTaskDielectronME.cxx:163 AliAnalysisTaskDielectronME.cxx:164 AliAnalysisTaskDielectronME.cxx:165 AliAnalysisTaskDielectronME.cxx:166 AliAnalysisTaskDielectronME.cxx:167 AliAnalysisTaskDielectronME.cxx:168 AliAnalysisTaskDielectronME.cxx:169 AliAnalysisTaskDielectronME.cxx:170 AliAnalysisTaskDielectronME.cxx:171 AliAnalysisTaskDielectronME.cxx:172 AliAnalysisTaskDielectronME.cxx:173 AliAnalysisTaskDielectronME.cxx:174 AliAnalysisTaskDielectronME.cxx:175 AliAnalysisTaskDielectronME.cxx:176 AliAnalysisTaskDielectronME.cxx:177 AliAnalysisTaskDielectronME.cxx:178 AliAnalysisTaskDielectronME.cxx:179 AliAnalysisTaskDielectronME.cxx:180 AliAnalysisTaskDielectronME.cxx:181 AliAnalysisTaskDielectronME.cxx:182 AliAnalysisTaskDielectronME.cxx:183 AliAnalysisTaskDielectronME.cxx:184 AliAnalysisTaskDielectronME.cxx:185