27 #include "TObjArray.h"
33 #include "AliVEvent.h"
34 #include "AliVVertex.h"
35 #include "AliAODEvent.h"
36 #include "AliESDEvent.h"
38 #include "AliMixedEvent.h"
40 #include "AliAnalysisManager.h"
41 #include "AliMultiEventInputHandler.h"
50 AliAnalysisTaskME(name),
56 fCharm3ProngTClArr(0),
57 fCharm4ProngTClArr(0),
60 fLikeSign2ProngTClArr(0),
61 fLikeSign3ProngTClArr(0)
72 if(gROOT->LoadMacro(
"ConfigVertexingHF.C")) {
73 printf(
"AnalysisTaskMEVertexingHF::Init() \n Using $ALICE_PHYSICS/PWG3/vertexingHF/ConfigVertexingHF.C\n");
74 gROOT->LoadMacro(
"$ALICE_PHYSICS/PWGHF/vertexingHF/ConfigVertexingHF.C");
81 printf(
"WARNING: fLikeSign will be switched off!");
86 printf(
"WARNING: if on, fRecoPrimVtxSkippingTrks and fRmTrksFromPrimVtx will be switched off!\n");
89 AliAnalysisManager::GetAnalysisManager()->RegisterExtraFile(
"AliAOD.VertexingHF.root");
100 Fatal(
"UserCreateOutputObjects",
"This task needs an AOD handler");
105 printf(
"AnalysisTaskMEVertexingHF::UserCreateOutPutData() \n ERROR! no fvHF!\n");
133 fDstarTClArr =
new TClonesArray(
"AliAODRecoCascadeHF", 0);
166 Int_t nev = fInputHandler->GetBufferSize();
170 TString primTitleFirst;
171 AliAODVertex *vtxCopy=0;
173 TObjArray *vertices=
new TObjArray(nev);
174 for (Int_t iev = 0; iev < nev; iev++) {
175 AliAODEvent *evt = (AliAODEvent*)GetEvent(iev);
176 if(!evt) {
delete vertices;
return;}
177 AliAODVertex *evtVtx=(AliAODVertex*)evt->GetPrimaryVertex();
178 if(!evtVtx) {
delete vertices;
return;}
179 primTitle = evtVtx->GetTitle();
180 Int_t nContrib=evtVtx->GetNContributors();
181 if(!primTitle.Contains(
"VertexerTracks") || nContrib<=0) {
186 vtxCopy=
new AliAODVertex(*evtVtx);
187 primTitleFirst=evtVtx->GetTitle();
192 vertices->AddLast(vtxCopy);
197 Double_t vtxPos[3]={0.,0.,0.},vtxSigma[3]={0.,0.,0.};
198 Int_t nContributors[1]={0};
200 Bool_t primaryOk=
fMixedEvent->ComputeVtx(vertices,vtxPos,vtxSigma,nContributors);
207 Int_t contribCopy=nContributors[0];
208 Double_t vtxCov[6]={vtxSigma[0]*vtxSigma[0],0,vtxSigma[1]*vtxSigma[1],0,0,vtxSigma[2]*vtxSigma[2]};
209 AliVVertex* newVertex=
new AliESDVertex(vtxPos,vtxCov,chi2,contribCopy);
210 newVertex->SetTitle(primTitleFirst.Data());
ClassImp(AliAnalysisTaskTriggerRates) AliAnalysisTaskTriggerRates
TClonesArray * fCascadesTClArr
Array of D*->D0pi.
TClonesArray * fD0toKpiTClArr
Array of heavy-flavour vertices.
TClonesArray * fLikeSign2ProngTClArr
Array of Cascades : V0 + track (lambda_c)
Bool_t GetD0toKpi() const
virtual void UserExec(Option_t *option)
AliMixedEvent * fMixedEvent
Vertexer heavy flavour.
void UnsetRecoPrimVtxSkippingTrks()
TClonesArray * fCharm3ProngTClArr
Array of Jpsi->ee.
AliAnalysisTaskMEVertexingHF(const char *name="AliAnalysisTaskMEVertexingHF")
virtual void Terminate(Option_t *)
TClonesArray * fDstarTClArr
Array of D0->Kpipipi.
TClonesArray * fCharm4ProngTClArr
Array of D+,Ds,Lc.
virtual void UserCreateOutputObjects()
TClonesArray * fLikeSign3ProngTClArr
Array of LikeSign2Prong.
AliAnalysisVertexingHF * fvHF
Bool_t GetJPSItoEle() const
void FindCandidates(AliVEvent *event, TClonesArray *aodVerticesHFTClArr, TClonesArray *aodD0toKpiTClArr, TClonesArray *aodJPSItoEleTClArr, TClonesArray *aodCharm3ProngTClArr, TClonesArray *aodCharm4ProngTClArr, TClonesArray *aodDstarTClArr, TClonesArray *aodCascadesTClArr, TClonesArray *aodLikeSign2ProngTClArr, TClonesArray *aodLikeSign3ProngTClArr)
Bool_t GetRmTrksFromPrimVtx() const
Bool_t GetLikeSign() const
Bool_t GetRecoPrimVtxSkippingTrks() const
Bool_t GetCascades() const
TClonesArray * fVerticesHFTClArr
Mixed event.
TClonesArray * fJPSItoEleTClArr
Array of D0->Kpi.