#include <TROOT.h>
#include <TSystem.h>
#include <TClonesArray.h>
+#include <TList.h>
+#include <TString.h>
#include "AliVEvent.h"
#include "AliAODEvent.h"
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)
{
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;
+ }
+
}
//________________________________________________________________________
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;
}
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;
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");
fCharm3ProngTClArr,
fCharm4ProngTClArr,
fDstarTClArr,
+ fCascadesTClArr,
fLikeSign2ProngTClArr,
fLikeSign3ProngTClArr);