1 /**************************************************************************
2 * Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
16 /////////////////////////////////////////////////////////////
18 // AliAnalysisTaskSE for the reconstruction of heavy flavor
19 // decays, using the class AliAnalysisVertexingHF.
21 // Author: A.Dainese, andrea.dainese@lnl.infn.it
22 /////////////////////////////////////////////////////////////
26 #include <TClonesArray.h>
28 #include "AliVEvent.h"
29 #include "AliAODEvent.h"
30 #include "AliESDEvent.h"
31 #include "AliAnalysisVertexingHF.h"
32 #include "AliAnalysisTaskSE.h"
33 #include "AliAnalysisTaskSEVertexingHF.h"
35 ClassImp(AliAnalysisTaskSEVertexingHF)
38 //________________________________________________________________________
39 AliAnalysisTaskSEVertexingHF::AliAnalysisTaskSEVertexingHF():
45 fCharm3ProngTClArr(0),
46 fCharm4ProngTClArr(0),
49 // Default constructor
52 //________________________________________________________________________
53 AliAnalysisTaskSEVertexingHF::AliAnalysisTaskSEVertexingHF(const char *name):
54 AliAnalysisTaskSE(name),
59 fCharm3ProngTClArr(0),
60 fCharm4ProngTClArr(0),
63 // Default constructor
66 //________________________________________________________________________
67 AliAnalysisTaskSEVertexingHF::~AliAnalysisTaskSEVertexingHF()
72 //________________________________________________________________________
73 void AliAnalysisTaskSEVertexingHF::Init()
76 // Instanciates vHF and loads its parameters
78 if(fDebug > 1) printf("AnalysisTaskSEVertexingHF::Init() \n");
80 gROOT->LoadMacro("ConfigVertexingHF.C");
82 fVHF = (AliAnalysisVertexingHF*)gROOT->ProcessLine("ConfigVertexingHF()");
88 //________________________________________________________________________
89 void AliAnalysisTaskSEVertexingHF::UserCreateOutputObjects()
91 // Create the output container
93 if(fDebug > 1) printf("AnalysisTaskSEVertexingHF::UserCreateOutPutData() \n");
96 printf("AnalysisTaskSEVertexingHF::UserCreateOutPutData() \n ERROR! no fvHF!\n");
100 fVerticesHFTClArr = new TClonesArray("AliAODVertex", 0);
101 fVerticesHFTClArr->SetName("VerticesHF");
102 AddAODBranch("TClonesArray", &fVerticesHFTClArr);
104 if(fVHF->GetD0toKpi()) {
105 fD0toKpiTClArr = new TClonesArray("AliAODRecoDecayHF2Prong", 0);
106 fD0toKpiTClArr->SetName("D0toKpi");
107 AddAODBranch("TClonesArray", &fD0toKpiTClArr);
110 if(fVHF->GetJPSItoEle()) {
111 fJPSItoEleTClArr = new TClonesArray("AliAODRecoDecayHF2Prong", 0);
112 fJPSItoEleTClArr->SetName("JPSItoEle");
113 AddAODBranch("TClonesArray", &fJPSItoEleTClArr);
116 if(fVHF->Get3Prong()) {
117 fCharm3ProngTClArr = new TClonesArray("AliAODRecoDecayHF3Prong", 0);
118 fCharm3ProngTClArr->SetName("Charm3Prong");
119 AddAODBranch("TClonesArray", &fCharm3ProngTClArr);
122 if(fVHF->Get4Prong()) {
123 fCharm4ProngTClArr = new TClonesArray("AliAODRecoDecayHF4Prong", 0);
124 fCharm4ProngTClArr->SetName("Charm4Prong");
125 AddAODBranch("TClonesArray", &fCharm4ProngTClArr);
128 if(fVHF->GetDstar()) {
129 fDstarTClArr = new TClonesArray("AliAODRecoCascadeHF", 0);
130 fDstarTClArr->SetName("Dstar");
131 AddAODBranch("TClonesArray", &fDstarTClArr);
137 //________________________________________________________________________
138 void AliAnalysisTaskSEVertexingHF::UserExec(Option_t */*option*/)
140 // Execute analysis for current event:
141 // heavy flavor vertexing
143 AliVEvent *event = dynamic_cast<AliVEvent*> (InputEvent());
145 // heavy flavor vertexing
146 fVHF->FindCandidates(event,
157 //________________________________________________________________________
158 void AliAnalysisTaskSEVertexingHF::Terminate(Option_t */*option*/)
160 // Terminate analysis
162 if(fDebug > 1) printf("AnalysisTaskSEVertexingHF: Terminate() \n");