#include "TH1F.h"
#include "TObjArray.h"
#include "TList.h"
#include "TROOT.h"
#include "TSystem.h"
#include "TCanvas.h"
#include "AliVEvent.h"
#include "AliVVertex.h"
#include "AliAODEvent.h"
#include "AliESDEvent.h"
#include "AliAnalysisVertexingHF.h"
#include "AliMixedEvent.h"
#include "AliAnalysisTaskMEVertexingHF.h"
#include "AliAnalysisManager.h"
#include "AliMultiEventInputHandler.h"
ClassImp(AliAnalysisTaskMEVertexingHF)
AliAnalysisTaskMEVertexingHF::AliAnalysisTaskMEVertexingHF(const char *name) :
AliAnalysisTaskME(name),
fvHF(0),
fMixedEvent(),
fVerticesHFTClArr(0),
fD0toKpiTClArr(0),
fJPSItoEleTClArr(0),
fCharm3ProngTClArr(0),
fCharm4ProngTClArr(0),
fDstarTClArr(0),
fCascadesTClArr(0),
fLikeSign2ProngTClArr(0),
fLikeSign3ProngTClArr(0)
{
}
void AliAnalysisTaskMEVertexingHF::Init()
{
if(gROOT->LoadMacro("ConfigVertexingHF.C")) {
printf("AnalysisTaskMEVertexingHF::Init() \n Using $ALICE_ROOT/PWG3/vertexingHF/ConfigVertexingHF.C\n");
gROOT->LoadMacro("$ALICE_ROOT/PWG3/vertexingHF/ConfigVertexingHF.C");
}
fvHF = (AliAnalysisVertexingHF*)gROOT->ProcessLine("ConfigVertexingHF()");
fvHF->SetMixEventOn();
fvHF->SetInputAOD();
fvHF->PrintStatus();
if(fvHF->GetLikeSign()) {
printf("WARNING: fLikeSign will be switched off!");
fvHF->SetLikeSignOff();
}
if(fvHF->GetRecoPrimVtxSkippingTrks() || fvHF->GetRmTrksFromPrimVtx()){
fvHF->UnsetRecoPrimVtxSkippingTrks();
printf("WARNING: if on, fRecoPrimVtxSkippingTrks and fRmTrksFromPrimVtx will be switched off!\n");
}
AliAnalysisManager::GetAnalysisManager()->RegisterExtraFile("AliAOD.VertexingHF.root");
return;
}
void AliAnalysisTaskMEVertexingHF::UserCreateOutputObjects()
{
if (!AODEvent()) {
Fatal("UserCreateOutputObjects", "This task needs an AOD handler");
return;
}
if(!fvHF) {
printf("AnalysisTaskMEVertexingHF::UserCreateOutPutData() \n ERROR! no fvHF!\n");
return;
}
fVerticesHFTClArr = new TClonesArray("AliAODVertex", 0);
fVerticesHFTClArr->SetName("VerticesHF");
AddAODBranch("TClonesArray", &fVerticesHFTClArr);
if(fvHF->GetD0toKpi()) {
fD0toKpiTClArr = new TClonesArray("AliAODRecoDecayHF2Prong", 0);
fD0toKpiTClArr->SetName("D0toKpi");
AddAODBranch("TClonesArray", &fD0toKpiTClArr);
}
if(fvHF->GetJPSItoEle()) {
fJPSItoEleTClArr = new TClonesArray("AliAODRecoDecayHF2Prong", 0);
fJPSItoEleTClArr->SetName("JPSItoEle");
AddAODBranch("TClonesArray", &fJPSItoEleTClArr);
}
if(fvHF->Get3Prong()) {
fCharm3ProngTClArr = new TClonesArray("AliAODRecoDecayHF3Prong", 0);
fCharm3ProngTClArr->SetName("Charm3Prong");
AddAODBranch("TClonesArray", &fCharm3ProngTClArr);
}
if(fvHF->Get4Prong()) {
fCharm4ProngTClArr = new TClonesArray("AliAODRecoDecayHF4Prong", 0);
fCharm4ProngTClArr->SetName("Charm4Prong");
AddAODBranch("TClonesArray", &fCharm4ProngTClArr);
}
if(fvHF->GetDstar()) {
fDstarTClArr = new TClonesArray("AliAODRecoCascadeHF", 0);
fDstarTClArr->SetName("Dstar");
AddAODBranch("TClonesArray", &fDstarTClArr);
}
if(fvHF->GetCascades()){
fCascadesTClArr = new TClonesArray("AliAODRecoCascadeHF", 0);
fCascadesTClArr->SetName("CascadesHF");
AddAODBranch("TClonesArray", &fCascadesTClArr);
}
if(fvHF->GetLikeSign()) {
fLikeSign2ProngTClArr = new TClonesArray("AliAODRecoDecayHF2Prong", 0);
fLikeSign2ProngTClArr->SetName("LikeSign2Prong");
AddAODBranch("TClonesArray", &fLikeSign2ProngTClArr);
}
if(fvHF->GetLikeSign() && fvHF->Get3Prong()) {
fLikeSign3ProngTClArr = new TClonesArray("AliAODRecoDecayHF3Prong", 0);
fLikeSign3ProngTClArr->SetName("LikeSign3Prong");
AddAODBranch("TClonesArray", &fLikeSign3ProngTClArr);
}
return;
}
void AliAnalysisTaskMEVertexingHF::UserExec(Option_t *)
{
Int_t nev = fInputHandler->GetBufferSize();
fMixedEvent = new AliMixedEvent();
fMixedEvent->Reset();
TString primTitle;
TString primTitleFirst;
AliAODVertex *vtxCopy=0;
TObjArray *vertices=new TObjArray(nev);
for (Int_t iev = 0; iev < nev; iev++) {
AliAODEvent *evt = (AliAODEvent*)GetEvent(iev);
if(!evt) {delete vertices;return;}
AliAODVertex *evtVtx=(AliAODVertex*)evt->GetPrimaryVertex();
if(!evtVtx) {delete vertices;return;}
primTitle = evtVtx->GetTitle();
Int_t nContrib=evtVtx->GetNContributors();
if(!primTitle.Contains("VertexerTracks") || nContrib<=0) {
delete vertices;
return;
}
vtxCopy=new AliAODVertex(*evtVtx);
primTitleFirst=evtVtx->GetTitle();
fMixedEvent->AddEvent(evt);
vertices->AddLast(vtxCopy);
}
fMixedEvent->Init();
Double_t vtxPos[3]={0.,0.,0.},vtxSigma[3]={0.,0.,0.};
Int_t nContributors[1]={0};
Double_t chi2=0;
Bool_t primaryOk=fMixedEvent->ComputeVtx(vertices,vtxPos,vtxSigma,nContributors);
if(!primaryOk) {
delete vertices;
delete vtxCopy;
vtxCopy=NULL;
return;
}
Int_t contribCopy=nContributors[0];
Double_t vtxCov[6]={vtxSigma[0]*vtxSigma[0],0,vtxSigma[1]*vtxSigma[1],0,0,vtxSigma[2]*vtxSigma[2]};
AliVVertex* newVertex=new AliESDVertex(vtxPos,vtxCov,chi2,contribCopy);
newVertex->SetTitle(primTitleFirst.Data());
fMixedEvent->SetPrimaryVertex(newVertex);
delete vertices;
delete vtxCopy;
vtxCopy=NULL;
fvHF->FindCandidates(fMixedEvent,
fVerticesHFTClArr,
fD0toKpiTClArr,
fJPSItoEleTClArr,
fCharm3ProngTClArr,
fCharm4ProngTClArr,
fDstarTClArr,
fCascadesTClArr,
fLikeSign2ProngTClArr,
fLikeSign3ProngTClArr);
delete newVertex;
return;
}
void AliAnalysisTaskMEVertexingHF::Terminate(Option_t *)
{
}
AliAnalysisTaskMEVertexingHF.cxx:1 AliAnalysisTaskMEVertexingHF.cxx:2 AliAnalysisTaskMEVertexingHF.cxx:3 AliAnalysisTaskMEVertexingHF.cxx:4 AliAnalysisTaskMEVertexingHF.cxx:5 AliAnalysisTaskMEVertexingHF.cxx:6 AliAnalysisTaskMEVertexingHF.cxx:7 AliAnalysisTaskMEVertexingHF.cxx:8 AliAnalysisTaskMEVertexingHF.cxx:9 AliAnalysisTaskMEVertexingHF.cxx:10 AliAnalysisTaskMEVertexingHF.cxx:11 AliAnalysisTaskMEVertexingHF.cxx:12 AliAnalysisTaskMEVertexingHF.cxx:13 AliAnalysisTaskMEVertexingHF.cxx:14 AliAnalysisTaskMEVertexingHF.cxx:15 AliAnalysisTaskMEVertexingHF.cxx:16 AliAnalysisTaskMEVertexingHF.cxx:17 AliAnalysisTaskMEVertexingHF.cxx:18 AliAnalysisTaskMEVertexingHF.cxx:19 AliAnalysisTaskMEVertexingHF.cxx:20 AliAnalysisTaskMEVertexingHF.cxx:21 AliAnalysisTaskMEVertexingHF.cxx:22 AliAnalysisTaskMEVertexingHF.cxx:23 AliAnalysisTaskMEVertexingHF.cxx:24 AliAnalysisTaskMEVertexingHF.cxx:25 AliAnalysisTaskMEVertexingHF.cxx:26 AliAnalysisTaskMEVertexingHF.cxx:27 AliAnalysisTaskMEVertexingHF.cxx:28 AliAnalysisTaskMEVertexingHF.cxx:29 AliAnalysisTaskMEVertexingHF.cxx:30 AliAnalysisTaskMEVertexingHF.cxx:31 AliAnalysisTaskMEVertexingHF.cxx:32 AliAnalysisTaskMEVertexingHF.cxx:33 AliAnalysisTaskMEVertexingHF.cxx:34 AliAnalysisTaskMEVertexingHF.cxx:35 AliAnalysisTaskMEVertexingHF.cxx:36 AliAnalysisTaskMEVertexingHF.cxx:37 AliAnalysisTaskMEVertexingHF.cxx:38 AliAnalysisTaskMEVertexingHF.cxx:39 AliAnalysisTaskMEVertexingHF.cxx:40 AliAnalysisTaskMEVertexingHF.cxx:41 AliAnalysisTaskMEVertexingHF.cxx:42 AliAnalysisTaskMEVertexingHF.cxx:43 AliAnalysisTaskMEVertexingHF.cxx:44 AliAnalysisTaskMEVertexingHF.cxx:45 AliAnalysisTaskMEVertexingHF.cxx:46 AliAnalysisTaskMEVertexingHF.cxx:47 AliAnalysisTaskMEVertexingHF.cxx:48 AliAnalysisTaskMEVertexingHF.cxx:49 AliAnalysisTaskMEVertexingHF.cxx:50 AliAnalysisTaskMEVertexingHF.cxx:51 AliAnalysisTaskMEVertexingHF.cxx:52 AliAnalysisTaskMEVertexingHF.cxx:53 AliAnalysisTaskMEVertexingHF.cxx:54 AliAnalysisTaskMEVertexingHF.cxx:55 AliAnalysisTaskMEVertexingHF.cxx:56 AliAnalysisTaskMEVertexingHF.cxx:57 AliAnalysisTaskMEVertexingHF.cxx:58 AliAnalysisTaskMEVertexingHF.cxx:59 AliAnalysisTaskMEVertexingHF.cxx:60 AliAnalysisTaskMEVertexingHF.cxx:61 AliAnalysisTaskMEVertexingHF.cxx:62 AliAnalysisTaskMEVertexingHF.cxx:63 AliAnalysisTaskMEVertexingHF.cxx:64 AliAnalysisTaskMEVertexingHF.cxx:65 AliAnalysisTaskMEVertexingHF.cxx:66 AliAnalysisTaskMEVertexingHF.cxx:67 AliAnalysisTaskMEVertexingHF.cxx:68 AliAnalysisTaskMEVertexingHF.cxx:69 AliAnalysisTaskMEVertexingHF.cxx:70 AliAnalysisTaskMEVertexingHF.cxx:71 AliAnalysisTaskMEVertexingHF.cxx:72 AliAnalysisTaskMEVertexingHF.cxx:73 AliAnalysisTaskMEVertexingHF.cxx:74 AliAnalysisTaskMEVertexingHF.cxx:75 AliAnalysisTaskMEVertexingHF.cxx:76 AliAnalysisTaskMEVertexingHF.cxx:77 AliAnalysisTaskMEVertexingHF.cxx:78 AliAnalysisTaskMEVertexingHF.cxx:79 AliAnalysisTaskMEVertexingHF.cxx:80 AliAnalysisTaskMEVertexingHF.cxx:81 AliAnalysisTaskMEVertexingHF.cxx:82 AliAnalysisTaskMEVertexingHF.cxx:83 AliAnalysisTaskMEVertexingHF.cxx:84 AliAnalysisTaskMEVertexingHF.cxx:85 AliAnalysisTaskMEVertexingHF.cxx:86 AliAnalysisTaskMEVertexingHF.cxx:87 AliAnalysisTaskMEVertexingHF.cxx:88 AliAnalysisTaskMEVertexingHF.cxx:89 AliAnalysisTaskMEVertexingHF.cxx:90 AliAnalysisTaskMEVertexingHF.cxx:91 AliAnalysisTaskMEVertexingHF.cxx:92 AliAnalysisTaskMEVertexingHF.cxx:93 AliAnalysisTaskMEVertexingHF.cxx:94 AliAnalysisTaskMEVertexingHF.cxx:95 AliAnalysisTaskMEVertexingHF.cxx:96 AliAnalysisTaskMEVertexingHF.cxx:97 AliAnalysisTaskMEVertexingHF.cxx:98 AliAnalysisTaskMEVertexingHF.cxx:99 AliAnalysisTaskMEVertexingHF.cxx:100 AliAnalysisTaskMEVertexingHF.cxx:101 AliAnalysisTaskMEVertexingHF.cxx:102 AliAnalysisTaskMEVertexingHF.cxx:103 AliAnalysisTaskMEVertexingHF.cxx:104 AliAnalysisTaskMEVertexingHF.cxx:105 AliAnalysisTaskMEVertexingHF.cxx:106 AliAnalysisTaskMEVertexingHF.cxx:107 AliAnalysisTaskMEVertexingHF.cxx:108 AliAnalysisTaskMEVertexingHF.cxx:109 AliAnalysisTaskMEVertexingHF.cxx:110 AliAnalysisTaskMEVertexingHF.cxx:111 AliAnalysisTaskMEVertexingHF.cxx:112 AliAnalysisTaskMEVertexingHF.cxx:113 AliAnalysisTaskMEVertexingHF.cxx:114 AliAnalysisTaskMEVertexingHF.cxx:115 AliAnalysisTaskMEVertexingHF.cxx:116 AliAnalysisTaskMEVertexingHF.cxx:117 AliAnalysisTaskMEVertexingHF.cxx:118 AliAnalysisTaskMEVertexingHF.cxx:119 AliAnalysisTaskMEVertexingHF.cxx:120 AliAnalysisTaskMEVertexingHF.cxx:121 AliAnalysisTaskMEVertexingHF.cxx:122 AliAnalysisTaskMEVertexingHF.cxx:123 AliAnalysisTaskMEVertexingHF.cxx:124 AliAnalysisTaskMEVertexingHF.cxx:125 AliAnalysisTaskMEVertexingHF.cxx:126 AliAnalysisTaskMEVertexingHF.cxx:127 AliAnalysisTaskMEVertexingHF.cxx:128 AliAnalysisTaskMEVertexingHF.cxx:129 AliAnalysisTaskMEVertexingHF.cxx:130 AliAnalysisTaskMEVertexingHF.cxx:131 AliAnalysisTaskMEVertexingHF.cxx:132 AliAnalysisTaskMEVertexingHF.cxx:133 AliAnalysisTaskMEVertexingHF.cxx:134 AliAnalysisTaskMEVertexingHF.cxx:135 AliAnalysisTaskMEVertexingHF.cxx:136 AliAnalysisTaskMEVertexingHF.cxx:137 AliAnalysisTaskMEVertexingHF.cxx:138 AliAnalysisTaskMEVertexingHF.cxx:139 AliAnalysisTaskMEVertexingHF.cxx:140 AliAnalysisTaskMEVertexingHF.cxx:141 AliAnalysisTaskMEVertexingHF.cxx:142 AliAnalysisTaskMEVertexingHF.cxx:143 AliAnalysisTaskMEVertexingHF.cxx:144 AliAnalysisTaskMEVertexingHF.cxx:145 AliAnalysisTaskMEVertexingHF.cxx:146 AliAnalysisTaskMEVertexingHF.cxx:147 AliAnalysisTaskMEVertexingHF.cxx:148 AliAnalysisTaskMEVertexingHF.cxx:149 AliAnalysisTaskMEVertexingHF.cxx:150 AliAnalysisTaskMEVertexingHF.cxx:151 AliAnalysisTaskMEVertexingHF.cxx:152 AliAnalysisTaskMEVertexingHF.cxx:153 AliAnalysisTaskMEVertexingHF.cxx:154 AliAnalysisTaskMEVertexingHF.cxx:155 AliAnalysisTaskMEVertexingHF.cxx:156 AliAnalysisTaskMEVertexingHF.cxx:157 AliAnalysisTaskMEVertexingHF.cxx:158 AliAnalysisTaskMEVertexingHF.cxx:159 AliAnalysisTaskMEVertexingHF.cxx:160 AliAnalysisTaskMEVertexingHF.cxx:161 AliAnalysisTaskMEVertexingHF.cxx:162 AliAnalysisTaskMEVertexingHF.cxx:163 AliAnalysisTaskMEVertexingHF.cxx:164 AliAnalysisTaskMEVertexingHF.cxx:165 AliAnalysisTaskMEVertexingHF.cxx:166 AliAnalysisTaskMEVertexingHF.cxx:167 AliAnalysisTaskMEVertexingHF.cxx:168 AliAnalysisTaskMEVertexingHF.cxx:169 AliAnalysisTaskMEVertexingHF.cxx:170 AliAnalysisTaskMEVertexingHF.cxx:171 AliAnalysisTaskMEVertexingHF.cxx:172 AliAnalysisTaskMEVertexingHF.cxx:173 AliAnalysisTaskMEVertexingHF.cxx:174 AliAnalysisTaskMEVertexingHF.cxx:175 AliAnalysisTaskMEVertexingHF.cxx:176 AliAnalysisTaskMEVertexingHF.cxx:177 AliAnalysisTaskMEVertexingHF.cxx:178 AliAnalysisTaskMEVertexingHF.cxx:179 AliAnalysisTaskMEVertexingHF.cxx:180 AliAnalysisTaskMEVertexingHF.cxx:181 AliAnalysisTaskMEVertexingHF.cxx:182 AliAnalysisTaskMEVertexingHF.cxx:183 AliAnalysisTaskMEVertexingHF.cxx:184 AliAnalysisTaskMEVertexingHF.cxx:185 AliAnalysisTaskMEVertexingHF.cxx:186 AliAnalysisTaskMEVertexingHF.cxx:187 AliAnalysisTaskMEVertexingHF.cxx:188 AliAnalysisTaskMEVertexingHF.cxx:189 AliAnalysisTaskMEVertexingHF.cxx:190 AliAnalysisTaskMEVertexingHF.cxx:191 AliAnalysisTaskMEVertexingHF.cxx:192 AliAnalysisTaskMEVertexingHF.cxx:193 AliAnalysisTaskMEVertexingHF.cxx:194 AliAnalysisTaskMEVertexingHF.cxx:195 AliAnalysisTaskMEVertexingHF.cxx:196 AliAnalysisTaskMEVertexingHF.cxx:197 AliAnalysisTaskMEVertexingHF.cxx:198 AliAnalysisTaskMEVertexingHF.cxx:199 AliAnalysisTaskMEVertexingHF.cxx:200 AliAnalysisTaskMEVertexingHF.cxx:201 AliAnalysisTaskMEVertexingHF.cxx:202 AliAnalysisTaskMEVertexingHF.cxx:203 AliAnalysisTaskMEVertexingHF.cxx:204 AliAnalysisTaskMEVertexingHF.cxx:205 AliAnalysisTaskMEVertexingHF.cxx:206 AliAnalysisTaskMEVertexingHF.cxx:207 AliAnalysisTaskMEVertexingHF.cxx:208 AliAnalysisTaskMEVertexingHF.cxx:209 AliAnalysisTaskMEVertexingHF.cxx:210 AliAnalysisTaskMEVertexingHF.cxx:211 AliAnalysisTaskMEVertexingHF.cxx:212 AliAnalysisTaskMEVertexingHF.cxx:213 AliAnalysisTaskMEVertexingHF.cxx:214 AliAnalysisTaskMEVertexingHF.cxx:215 AliAnalysisTaskMEVertexingHF.cxx:216 AliAnalysisTaskMEVertexingHF.cxx:217 AliAnalysisTaskMEVertexingHF.cxx:218 AliAnalysisTaskMEVertexingHF.cxx:219 AliAnalysisTaskMEVertexingHF.cxx:220 AliAnalysisTaskMEVertexingHF.cxx:221 AliAnalysisTaskMEVertexingHF.cxx:222 AliAnalysisTaskMEVertexingHF.cxx:223 AliAnalysisTaskMEVertexingHF.cxx:224 AliAnalysisTaskMEVertexingHF.cxx:225 AliAnalysisTaskMEVertexingHF.cxx:226 AliAnalysisTaskMEVertexingHF.cxx:227 AliAnalysisTaskMEVertexingHF.cxx:228 AliAnalysisTaskMEVertexingHF.cxx:229 AliAnalysisTaskMEVertexingHF.cxx:230 AliAnalysisTaskMEVertexingHF.cxx:231 AliAnalysisTaskMEVertexingHF.cxx:232 AliAnalysisTaskMEVertexingHF.cxx:233