#include <AliESDVZERO.h>
#include <AliAODVZERO.h>
+#include "AliDielectronVarManager.h"
#include "AliDielectronEventCuts.h"
ClassImp(AliDielectronEventCuts)
AliDielectronEventCuts::AliDielectronEventCuts() :
AliAnalysisCuts(),
+ fRun(),
fVtxZmin(0.),
fVtxZmax(0.),
fRequireVtx(kFALSE),
fCentMin(1.),
fCentMax(0.),
fVtxType(kVtxTracks),
+ fRequire13sel(kFALSE),
+ fUtils(),
fRequireV0and(0),
fTriggerAnalysis(0x0),
fkVertex(0x0),
//______________________________________________
AliDielectronEventCuts::AliDielectronEventCuts(const char* name, const char* title) :
AliAnalysisCuts(name, title),
+ fRun(),
fVtxZmin(0.),
fVtxZmax(0.),
fRequireVtx(kFALSE),
fCentMin(1.),
fCentMax(0.),
fVtxType(kVtxTracks),
+ fRequire13sel(kFALSE),
+ fUtils(),
fRequireV0and(0),
fTriggerAnalysis(0x0),
fkVertex(0x0),
Double_t zvtx=fkVertex->GetZv();
if (zvtx<fVtxZmin||zvtx>fVtxZmax) return kFALSE;
}
-
+
+ if(fRequire13sel){
+ if(!fUtils.IsVertexSelected2013pA(ev)) return kFALSE;
+ if(fUtils.IsFirstEventInChunk(ev)) return kFALSE;
+ }
+
if (fRequireV0and){
if (!fTriggerAnalysis) fTriggerAnalysis=new AliTriggerAnalysis;
Bool_t v0AND = kFALSE;
AliAODEvent *ev=dynamic_cast<AliAODEvent*>(event);
if (!ev) return kFALSE;
+ // run rejection
+ Int_t run = ev->GetRunNumber();
+ if(fRun.GetNrows()) {
+ for(Int_t irun=0; irun<fRun.GetNrows(); irun++) {
+ if(fRun(irun)==run) return kFALSE;
+ }
+ }
+
if (fCentMin<fCentMax){
AliCentrality *centrality=ev->GetCentrality();
Double_t centralityF=-1;
switch(fVtxType){
case kVtxTracks: fkVertexAOD=0x0; break;
- case kVtxTPC: fkVertexAOD=ev->GetVertex(AliAODVertex::kMainTPC); break;
+ case kVtxTPC: fkVertexAOD=AliDielectronVarManager::GetVertex(ev, AliAODVertex::kMainTPC); break;
case kVtxSPD:
case kVtxTracksOrSPD: fkVertexAOD=ev->GetPrimaryVertexSPD(); break;
case kVtxAny: fkVertexAOD=ev->GetPrimaryVertex(); break;
if (zvtx<fVtxZmin||zvtx>fVtxZmax) return kFALSE;
}
+ if(fRequire13sel){
+ if(!fUtils.IsVertexSelected2013pA(ev)) return kFALSE;
+// if(fUtils.IsFirstEventInChunk(ev)) return kFALSE;
+ }
+
/*
if (fRequireV0and){
// if (!fTriggerAnalysis) fTriggerAnalysis=new AliTriggerAnalysis;
printf("Cut %02d: cut on multiplcity ITS vs. TPC \n", iCut); iCut++; }
if(fparMean&&fparSigma) {
printf("Cut %02d: multplicity vs. #tracks correlation +-%.1f sigma inclusion \n", iCut, fcutSigma); iCut++; }
+ if(fRequire13sel){
+ printf("Cut %02d: vertex and event selection for 2013 pPb data taking required \n",iCut); iCut++; }
if(fRequireV0and) {
printf("Cut %02d: require V0and type: %c \n", iCut, fRequireV0and); iCut++; }