2 #include "AliESDEvent.h"
3 #include "AliAODEvent.h"
4 #include "AliVVertex.h"
6 #include "AliAODVertex.h"
8 #include "AliAnalysisUtils.h"
10 ClassImp(AliAnalysisUtils)
12 //______________________________________________________________________
13 AliAnalysisUtils::AliAnalysisUtils():TObject(),
17 fCutOnZVertexSPD(kTRUE)
22 //______________________________________________________________________
23 Bool_t AliAnalysisUtils::IsVertexSelected2013pA(AliVEvent *event)
25 Bool_t accept = kFALSE;
27 // Check whether the event is of AOD or ESD type
28 AliAODEvent *aod = 0x0;
29 AliESDEvent *esd = 0x0;
30 aod = dynamic_cast<AliAODEvent*>(event);
31 esd = dynamic_cast<AliESDEvent*>(event);
38 AliFatal("Event is neither of AOD nor ESD type");
43 const AliVVertex *trkVtx = fisAOD ?
44 dynamic_cast<const AliVVertex*>(aod->GetPrimaryVertex()) :
45 dynamic_cast<const AliVVertex*>(esd->GetPrimaryVertex()) ;
46 if(!trkVtx || trkVtx->GetNContributors()<=fMinVtxContr){
51 TString vtxTtl = trkVtx->GetTitle();
52 if (!vtxTtl.Contains("VertexerTracks")) return accept;
54 Float_t zvtx = trkVtx->GetZ();
55 const AliVVertex* spdVtx = fisAOD ?
56 dynamic_cast<const AliVVertex*>(aod->GetPrimaryVertexSPD()) :
57 dynamic_cast<const AliVVertex*>(esd->GetPrimaryVertexSPD()) ;
58 if (spdVtx->GetNContributors()<=fMinVtxContr) return accept;
60 TString vtxTyp = spdVtx->GetTitle();
62 spdVtx->GetCovarianceMatrix(cov);
63 Double_t zRes = TMath::Sqrt(cov[5]);
64 if (vtxTyp.Contains("vertexer:Z") && (zRes>0.25)) return accept;
65 if (fCutOnZVertexSPD && TMath::Abs(spdVtx->GetZ() - trkVtx->GetZ())>0.5) return accept;
67 if (TMath::Abs(zvtx) > fMaxVtxZ) return accept;
72 //______________________________________________________________________
73 Bool_t AliAnalysisUtils::IsFirstEventInChunk(AliVEvent *event)
76 Bool_t accept = kFALSE;
78 // Check whether the event is of AOD or ESD type
79 AliAODEvent *aod = 0x0;
80 AliESDEvent *esd = 0x0;
81 aod = dynamic_cast<AliAODEvent*>(event);
82 esd = dynamic_cast<AliESDEvent*>(event);
89 AliFatal("Event is neither of AOD nor ESD type");
95 AliAODHeader *aodheader = 0x0;
96 aodheader = aod->GetHeader();
98 AliFatal("AOD header not there ?!");
101 if(aodheader->GetEventNumberESDFile()==0) accept = kTRUE;
103 if(esd->GetEventNumberInFile()==0) accept = kTRUE;