2 #include <TClonesArray.h>
4 #include "AliAnalysisManager.h"
6 #include "AliAODHandler.h"
7 #include "AliAODEvent.h"
9 #include "AliPicoHeaderCJ.h"
10 #include "AliPicoV0RD.h"
11 #include "AliPicoV0MC.h"
13 #include "AliAnalysisTaskSEPicoV0Filter.h"
15 ClassImp(AliAnalysisTaskSEPicoV0Filter)
17 //_____________________________________________________________________________
18 AliAnalysisTaskSEPicoV0Filter::AliAnalysisTaskSEPicoV0Filter() :
27 // AliAnalysisTaskSEPicoV0Filter::AliAnalysisTaskSEPicoV0Filter
31 //_____________________________________________________________________________
32 AliAnalysisTaskSEPicoV0Filter::AliAnalysisTaskSEPicoV0Filter(const char *name) :
33 AliAnalysisTaskSE(name),
41 // AliAnalysisTaskSEPicoV0Filter::AliAnalysisTaskSEPicoV0Filter
44 //DefineOutput(2, TList::Class());
47 //_____________________________________________________________________________
48 AliAnalysisTaskSEPicoV0Filter::~AliAnalysisTaskSEPicoV0Filter()
51 // AliAnalysisTaskSEPicoV0Filter::~AliAnalysisTaskSEPicoV0Filter
54 if (fV0s) { delete fV0s; fV0s = 0; }
55 if (fPicoHeaderCJ) { delete fPicoHeaderCJ; fPicoHeaderCJ = 0; }
56 if (fPicoV0sClArr) { delete fPicoV0sClArr; fPicoV0sClArr = 0; }
57 if (fListUserOutputs) { delete fListUserOutputs; fListUserOutputs = 0; }
60 //_____________________________________________________________________________
61 void AliAnalysisTaskSEPicoV0Filter::Init()
64 // AliAnalysisTaskSEPicoV0Filter::Init
70 //_____________________________________________________________________________
71 void AliAnalysisTaskSEPicoV0Filter::UserCreateOutputObjects()
74 // AliAnalysisTaskSEPicoV0Filter::UserCreateOutputObjects
77 fPicoHeaderCJ = new AliPicoHeaderCJ();
78 fPicoHeaderCJ->SetName("PicoHeaderCJ");
79 AddAODBranch("AliPicoHeaderCJ", &fPicoHeaderCJ);
82 fPicoV0sClArr = new TClonesArray("AliPicoV0MC");
83 fPicoV0sClArr->SetName("PicoV0sMC");
85 fPicoV0sClArr = new TClonesArray("AliPicoV0RD");
86 fPicoV0sClArr->SetName("PicoV0sRD");
89 AddAODBranch("TClonesArray", &fPicoV0sClArr);
91 /*fListUserOutputs = new TList();
92 fListUserOutputs->SetOwner();
93 CreateUserOutputHistograms();
94 PostData(1, fListUserOutputs);*/
98 //_____________________________________________________________________________
99 void AliAnalysisTaskSEPicoV0Filter::Terminate(Option_t */*opt*/)
102 // AliAnalysisTaskSEPicoV0Filter::Terminate
108 //_____________________________________________________________________________
109 void AliAnalysisTaskSEPicoV0Filter::UserExec(Option_t */*opt*/)
112 // AliAnalysisTaskSEPicoV0Filter::Run
116 fPicoHeaderCJ->Reset();
117 fPicoV0sClArr->Delete();
118 //=============================================================================
120 AliAnalysisManager::GetAnalysisManager()->GetOutputEventHandler()->SetFillAOD(kTRUE);
121 //=============================================================================
123 fPicoHeaderCJ->SetEventInfo(fInputHandler);
124 fV0s = dynamic_cast<TClonesArray*>(InputEvent()->FindListObject("PicoV0s")); if (!fV0s) return;
125 //=============================================================================
127 AliPicoV0RD *pV0RD = 0;
128 AliPicoV0MC *pV0MC = 0;
129 ncs = fPicoV0sClArr->GetEntriesFast();
130 for (Int_t i=0; i<fV0s->GetEntriesFast(); i++) {
132 pV0MC = static_cast<AliPicoV0MC*>(fV0s->At(i)); if (!pV0MC) continue;
133 new ((*fPicoV0sClArr)[ncs++]) AliPicoV0MC(*pV0MC);
136 pV0RD = static_cast<AliPicoV0RD*>(fV0s->At(i)); if (!pV0RD) continue;
137 new ((*fPicoV0sClArr)[ncs++]) AliPicoV0RD(*pV0RD);
145 //_____________________________________________________________________________
146 void AliAnalysisTaskSEPicoV0Filter::CreateUserOutputHistograms()
149 // AliAnalysisTaskSEPicoV0Filter::CreateUserOutputHistograms
152 if (!fListUserOutputs) return;
154 Bool_t bStatusTmpH = TH1::AddDirectoryStatus();
155 TH1::AddDirectory(kFALSE);
157 TH1::AddDirectory(bStatusTmpH);