#include "TList.h"
#include "TBits.h"
#include "AliLog.h"
+#include "AliAnalysisUtils.h"
#include "AliESDEvent.h"
#include "AliESDVertex.h"
#include "AliAODEvent.h"
//____________________________________________________________________
AliHFEextraEventCuts::AliHFEextraEventCuts() :
AliCFCutBase(),
+ fAnalysisUtils(NULL),
fRequireVtxCuts(kFALSE),
fVtxZMax(1.e99),
fVtxZMin(-1.e99),
fVtxSPD(0),
fCheckCorrelationSPDVtx(0),
fVtxResolution(kFALSE),
+ fPApileupCut(kFALSE),
fBitMap(0x0)
{
//
//____________________________________________________________________
AliHFEextraEventCuts::AliHFEextraEventCuts(Char_t* name, Char_t* title) :
AliCFCutBase(name,title),
+ fAnalysisUtils(NULL),
fRequireVtxCuts(kFALSE),
fVtxZMax(1.e99),
fVtxZMin(-1.e99),
fVtxSPD(0),
fCheckCorrelationSPDVtx(0),
fVtxResolution(kFALSE),
+ fPApileupCut(kFALSE),
fBitMap(0x0)
{
//
//
fBitMap=new TBits(0);
Initialise();
+ fAnalysisUtils = new AliAnalysisUtils;
}
//____________________________________________________________________
AliHFEextraEventCuts::AliHFEextraEventCuts(const AliHFEextraEventCuts& c) :
AliCFCutBase(c),
+ fAnalysisUtils(NULL),
fRequireVtxCuts(c.fRequireVtxCuts),
fVtxZMax(c.fVtxZMax),
fVtxZMin(c.fVtxZMin),
fVtxSPD(c.fVtxSPD),
fCheckCorrelationSPDVtx(c.fCheckCorrelationSPDVtx),
fVtxResolution(c.fVtxResolution),
+ fPApileupCut(c.fPApileupCut),
fBitMap(c.fBitMap)
{
//
if(c.fhQA[i][j]) fhQA[i][j] = (TH1F*)c.fhQA[i][j]->Clone();
}
}
-
+ fAnalysisUtils = new AliAnalysisUtils;
}
//____________________________________________________________________
}
}
- if(fBitMap)delete fBitMap;
-
+ if(fBitMap) delete fBitMap;
+ if(fAnalysisUtils) delete fAnalysisUtils;
}
//_____________________________________________________________________________
void AliHFEextraEventCuts::Initialise()
fCheckCorrelationSPDVtx=c.fCheckCorrelationSPDVtx;
fVtxResolution = c.fVtxResolution;
fBitMap=c.fBitMap;
+ if(!fAnalysisUtils) fAnalysisUtils = new AliAnalysisUtils;
+ fPApileupCut = c.fPApileupCut;
}
for (Int_t i=0; i<c.kNCuts; i++){
fBitMap->SetBitNumber(kResolution, kFALSE);
}
}
+ // check pA pileup cut
+ if(fPApileupCut){
+ if(fAnalysisUtils->IsPileUpEvent(inputEvent)) fBitMap->SetBitNumber(kpApileup,kFALSE);
+ }
}
//_____________________________________________________________________________
//look at vertex parameters:
if(fVtxMixed){
- if(vtxTracks->GetNContributors() > 0) vtxPrim = vtxTracks;
- else if(vtxSPD->GetNContributors()) vtxPrim = vtxSPD;
+ if(vtxTracks && vtxTracks->GetNContributors() > 0) vtxPrim = vtxTracks;
+ else if(vtxSPD && vtxSPD->GetNContributors()) vtxPrim = vtxSPD;
}
else {
vtxPrim = vtxTracks;
vtxSPD->GetCovarianceMatrix(cov);
fhQA[kResolution][index]->Fill(TMath::Sqrt(cov[5]));
}
+ double isPileup =0 ;
+ if(fAnalysisUtils->IsPileUpEvent(inputEvent)) isPileup = 1,
+ fhQA[kpApileup][index]->Fill(isPileup);
}
//____________________________________________________________________
fhQA[kVtxNCtrb][i] = new TH1F(Form("%s_Vtx_N_Ctrb%s",GetName(),str), "",1000,0.,1000.);
fhQA[kCorrelation][i] = new TH1F(Form("%s_SPDCorrelation_%s",GetName(),str), "",200, -10., 10);
fhQA[kResolution][i] = new TH1F(Form("%s_SPDResolution_%s",GetName(), str), "", 100, 0., 1.);
+ fhQA[kpApileup][i] = new TH1F(Form("%s_pApileup_%s",GetName(),str), "", 2, 0., 2.);
fhQA[kVtxPosZ][i] ->SetXTitle("Vertex Position Z (cm)");
fhQA[kVtxNCtrb][i] ->SetXTitle("Number of contributors");