X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PWG3%2FvertexingHF%2FAliAnalysisTaskSEVertexingHF.cxx;h=7d7867d3650b65ffa78baece1e3c2b89c2b0cfbd;hb=9daf22f89a6ff15396be26c8f46d2ad43910561e;hp=ecad3b4e95ebb0fd499df66c0e08c82bb5a9da44;hpb=6ed0d6597b772bd73796372ac4fddc901b0cb15f;p=u%2Fmrichter%2FAliRoot.git diff --git a/PWG3/vertexingHF/AliAnalysisTaskSEVertexingHF.cxx b/PWG3/vertexingHF/AliAnalysisTaskSEVertexingHF.cxx index ecad3b4e95e..7d7867d3650 100644 --- a/PWG3/vertexingHF/AliAnalysisTaskSEVertexingHF.cxx +++ b/PWG3/vertexingHF/AliAnalysisTaskSEVertexingHF.cxx @@ -24,6 +24,8 @@ #include #include #include +#include +#include #include "AliVEvent.h" #include "AliAODEvent.h" @@ -40,12 +42,15 @@ ClassImp(AliAnalysisTaskSEVertexingHF) AliAnalysisTaskSEVertexingHF::AliAnalysisTaskSEVertexingHF(): AliAnalysisTaskSE(), fVHF(0), +fListOfCuts(0), +fDeltaAODFileName("AliAOD.VertexingHF.root"), fVerticesHFTClArr(0), fD0toKpiTClArr(0), fJPSItoEleTClArr(0), fCharm3ProngTClArr(0), fCharm4ProngTClArr(0), fDstarTClArr(0), +fCascadesTClArr(0), fLikeSign2ProngTClArr(0), fLikeSign3ProngTClArr(0) { @@ -56,22 +61,33 @@ fLikeSign3ProngTClArr(0) AliAnalysisTaskSEVertexingHF::AliAnalysisTaskSEVertexingHF(const char *name): AliAnalysisTaskSE(name), fVHF(0), +fListOfCuts(0), +fDeltaAODFileName("AliAOD.VertexingHF.root"), fVerticesHFTClArr(0), fD0toKpiTClArr(0), fJPSItoEleTClArr(0), fCharm3ProngTClArr(0), fCharm4ProngTClArr(0), fDstarTClArr(0), +fCascadesTClArr(0), fLikeSign2ProngTClArr(0), fLikeSign3ProngTClArr(0) { - // Default constructor + // Standard constructor + + DefineOutput(1,TList::Class()); // analysis cuts } //________________________________________________________________________ AliAnalysisTaskSEVertexingHF::~AliAnalysisTaskSEVertexingHF() { // Destructor + + if(fListOfCuts) { + delete fListOfCuts; + fListOfCuts=NULL; + } + } //________________________________________________________________________ @@ -89,7 +105,15 @@ void AliAnalysisTaskSEVertexingHF::Init() fVHF = (AliAnalysisVertexingHF*)gROOT->ProcessLine("ConfigVertexingHF()"); fVHF->PrintStatus(); - AliAnalysisManager::GetAnalysisManager()->RegisterExtraFile("AliAOD.VertexingHF.root"); + + + // write the objects AliRDHFCuts to a list to store in the output + + fListOfCuts = fVHF->FillListOfCuts(); + + PostData(1,fListOfCuts); + + AliAnalysisManager::GetAnalysisManager()->RegisterExtraFile(fDeltaAODFileName.Data()); return; } @@ -102,12 +126,14 @@ void AliAnalysisTaskSEVertexingHF::UserCreateOutputObjects() if(fDebug > 1) printf("AnalysisTaskSEVertexingHF::UserCreateOutPutData() \n"); // Support both the case when the AOD + deltaAOD are produced in an ESD // analysis or if the deltaAOD is produced on an analysis on AOD's. (A.G. 27/04/09) - if (!AODEvent()) { - Fatal("UserCreateOutputObjects", "This task needs an AOD handler"); - return; + if(!AliAnalysisManager::GetAnalysisManager()->GetOutputEventHandler()) { + Fatal("UserCreateOutputObjects", "This task needs an AOD handler"); + return; } - TString filename = "AliAOD.VertexingHF.root"; - if (!IsStandardAOD()) filename = ""; + TString filename = fDeltaAODFileName; + // When running on standard AOD to produce deltas, IsStandardAOD is never set, + // If AODEvent is NULL, new branches have to be added to the new file(s) (A.G. 15/01/10) + if(!IsStandardAOD() && AODEvent()) filename = ""; if(!fVHF) { printf("AnalysisTaskSEVertexingHF::UserCreateOutPutData() \n ERROR! no fvHF!\n"); return; @@ -147,6 +173,12 @@ void AliAnalysisTaskSEVertexingHF::UserCreateOutputObjects() AddAODBranch("TClonesArray", &fDstarTClArr, filename); } + if(fVHF->GetCascades()){ + fCascadesTClArr = new TClonesArray("AliAODRecoCascadeHF", 0); + fCascadesTClArr->SetName("CascadesHF"); + AddAODBranch("TClonesArray", &fCascadesTClArr, filename); + } + if(fVHF->GetLikeSign()) { fLikeSign2ProngTClArr = new TClonesArray("AliAODRecoDecayHF2Prong", 0); fLikeSign2ProngTClArr->SetName("LikeSign2Prong"); @@ -181,6 +213,7 @@ void AliAnalysisTaskSEVertexingHF::UserExec(Option_t */*option*/) fCharm3ProngTClArr, fCharm4ProngTClArr, fDstarTClArr, + fCascadesTClArr, fLikeSign2ProngTClArr, fLikeSign3ProngTClArr);