#include <limits.h>
#include <float.h>
#include "TNamed.h"
+#include "AliVVertex.h"
#include "AliVEvent.h"
#include "AliESDEvent.h"
#include "AliMultiplicity.h"
fRefMultMethod(kTPConly),
fRefMultMax(INT_MAX),
fRefMultMin(INT_MIN),
- fRefMultCuts(NULL)
+ fRefMultCuts(NULL),
+ fCutPrimaryVertexX(kFALSE),
+ fPrimaryVertexXmax(INT_MAX),
+ fPrimaryVertexXmin(INT_MIN),
+ fCutPrimaryVertexY(kFALSE),
+ fPrimaryVertexYmax(INT_MAX),
+ fPrimaryVertexYmin(INT_MIN),
+ fCutPrimaryVertexZ(kFALSE),
+ fPrimaryVertexZmax(INT_MAX),
+ fPrimaryVertexZmin(INT_MIN),
+ fCutNContributors(kFALSE),
+ fNContributorsMax(INT_MAX),
+ fNContributorsMin(INT_MIN)
{
//constructor
}
fRefMultMethod(kTPConly),
fRefMultMax(INT_MAX),
fRefMultMin(INT_MIN),
- fRefMultCuts(NULL)
+ fRefMultCuts(NULL),
+ fCutPrimaryVertexX(kFALSE),
+ fPrimaryVertexXmax(INT_MAX),
+ fPrimaryVertexXmin(INT_MIN),
+ fCutPrimaryVertexY(kFALSE),
+ fPrimaryVertexYmax(INT_MAX),
+ fPrimaryVertexYmin(INT_MIN),
+ fCutPrimaryVertexZ(kFALSE),
+ fPrimaryVertexZmax(INT_MAX),
+ fPrimaryVertexZmin(INT_MIN),
+ fCutNContributors(kFALSE),
+ fNContributorsMax(INT_MAX),
+ fNContributorsMin(INT_MIN)
{
//constructor
}
fRefMultMethod(that.fRefMultMethod),
fRefMultMax(that.fRefMultMax),
fRefMultMin(that.fRefMultMin),
- fRefMultCuts(new AliFlowTrackCuts(*(that.fRefMultCuts)))
+ fRefMultCuts(NULL),
+ fCutPrimaryVertexX(that.fCutPrimaryVertexX),
+ fPrimaryVertexXmax(that.fPrimaryVertexXmax),
+ fPrimaryVertexXmin(that.fPrimaryVertexXmin),
+ fCutPrimaryVertexY(that.fCutPrimaryVertexX),
+ fPrimaryVertexYmax(that.fPrimaryVertexYmax),
+ fPrimaryVertexYmin(that.fPrimaryVertexYmin),
+ fCutPrimaryVertexZ(that.fCutPrimaryVertexX),
+ fPrimaryVertexZmax(that.fPrimaryVertexZmax),
+ fPrimaryVertexZmin(that.fPrimaryVertexZmin),
+ fCutNContributors(that.fCutNContributors),
+ fNContributorsMax(that.fNContributorsMax),
+ fNContributorsMin(that.fNContributorsMin)
{
//copy constructor
+ if (that.fRefMultCuts)
+ fRefMultCuts = new AliFlowTrackCuts(*(that.fRefMultCuts));
}
////-----------------------------------------------------------------------
fRefMultMethod=that.fRefMultMethod;
fRefMultMax=that.fRefMultMax;
fRefMultMin=that.fRefMultMin;
- *fRefMultCuts=*(that.fRefMultCuts);
+ if (that.fRefMultCuts) *fRefMultCuts=*(that.fRefMultCuts);
+ fCutPrimaryVertexX=that.fCutPrimaryVertexX;
+ fPrimaryVertexXmin=that.fPrimaryVertexXmin;
+ fPrimaryVertexXmax=that.fPrimaryVertexXmax;
+ fPrimaryVertexYmin=that.fPrimaryVertexYmin;
+ fPrimaryVertexYmax=that.fPrimaryVertexYmax;
+ fPrimaryVertexZmin=that.fPrimaryVertexZmin;
+ fPrimaryVertexZmax=that.fPrimaryVertexZmax;
+ fCutNContributors=that.fCutNContributors;
+ fNContributorsMax=that.fNContributorsMax;
+ fNContributorsMin=that.fNContributorsMin;
return *this;
}
if (refMult < fRefMultMin || refMult >= fRefMultMax )
return kFALSE;
}
+ const AliVVertex* pvtx=event->GetPrimaryVertex();
+ Double_t pvtxx = pvtx->GetX();
+ Double_t pvtxy = pvtx->GetY();
+ Double_t pvtxz = pvtx->GetZ();
+ Int_t ncontrib = pvtx->GetNContributors();
+ if (fCutNContributors)
+ {
+ if (ncontrib < fNContributorsMin || ncontrib >= fNContributorsMax)
+ return kFALSE;
+ }
+ if (fCutPrimaryVertexX)
+ {
+ if (pvtxx < fPrimaryVertexXmin || pvtxx >= fPrimaryVertexXmax)
+ return kFALSE;
+ }
+ if (fCutPrimaryVertexY)
+ {
+ if (pvtxy < fPrimaryVertexYmin || pvtxy >= fPrimaryVertexYmax)
+ return kFALSE;
+ }
+ if (fCutPrimaryVertexZ)
+ {
+ if (pvtxz < fPrimaryVertexZmin || pvtxz >= fPrimaryVertexZmax)
+ return kFALSE;
+ }
return kTRUE;
}
void SetRefMultMax(Int_t value) {fRefMultMax=value;fCutRefMult=kTRUE;}
void SetRefMultMin(Int_t value) {fRefMultMin=value;fCutRefMult=kTRUE;}
void SetRefMultRange(Int_t min, Int_t max) {fRefMultMin=min;fRefMultMax=max;fCutRefMult=kTRUE;}
+ void SetPrimaryVertexXrange(Double_t min, Double_t max)
+ {fCutPrimaryVertexX=kTRUE; fPrimaryVertexXmin=min; fPrimaryVertexXmax=max;}
+ void SetPrimaryVertexYrange(Double_t min, Double_t max)
+ {fCutPrimaryVertexY=kTRUE; fPrimaryVertexYmin=min; fPrimaryVertexYmax=max;}
+ void SetPrimaryVertexZrange(Double_t min, Double_t max)
+ {fCutPrimaryVertexZ=kTRUE; fPrimaryVertexZmin=min; fPrimaryVertexZmax=max;}
+ void SetNContributorsRange(Int_t min, Int_t max=INT_MAX)
+ {fCutNContributors=kTRUE; fNContributorsMin=min; fNContributorsMax=max;}
Int_t GetNumberOfTracksMax() const {return fNumberOfTracksMax;}
Int_t GetNumberOfTracksMin() const {return fNumberOfTracksMin;}
refMultMethod fRefMultMethod; //how do we calculate refmult?
Int_t fRefMultMax; //max refmult
Int_t fRefMultMin; //min refmult
-
AliFlowTrackCuts* fRefMultCuts; //cuts
-
- ClassDef(AliFlowEventCuts,1)
+ Bool_t fCutPrimaryVertexX; //cut on x of prim vtx
+ Double_t fPrimaryVertexXmax; //max x prim vtx
+ Double_t fPrimaryVertexXmin; //min x prim vtx
+ Bool_t fCutPrimaryVertexY; //cut on y of prim vtx
+ Double_t fPrimaryVertexYmax; //max y prim vtx
+ Double_t fPrimaryVertexYmin; //min y prim vtx
+ Bool_t fCutPrimaryVertexZ; //cut on z of prim vtx
+ Double_t fPrimaryVertexZmax; //max z prim vtx
+ Double_t fPrimaryVertexZmin; //min z prim vtx
+ Bool_t fCutNContributors; //cut on number of contributors
+ Int_t fNContributorsMax; //maximal number of contrib
+ Int_t fNContributorsMin; //minimal number of contrib
+
+
+ ClassDef(AliFlowEventCuts,2)
};
#endif
}
//-----------------------------------------------------------------------
-AliFlowTrackCuts::AliFlowTrackCuts(const AliFlowTrackCuts& someCuts):
- AliFlowTrackSimpleCuts(someCuts),
- fAliESDtrackCuts(new AliESDtrackCuts(*(someCuts.fAliESDtrackCuts))),
- fQA(someCuts.fQA),
- fCutMCprocessType(someCuts.fCutMCprocessType),
- fMCprocessType(someCuts.fMCprocessType),
- fCutMCPID(someCuts.fCutMCPID),
- fMCPID(someCuts.fMCPID),
- fCutMCisPrimary(someCuts.fCutMCisPrimary),
- fMCisPrimary(someCuts.fMCisPrimary),
- fRequireCharge(someCuts.fRequireCharge),
- fFakesAreOK(someCuts.fFakesAreOK),
- fCutSPDtrackletDeltaPhi(someCuts.fCutSPDtrackletDeltaPhi),
- fSPDtrackletDeltaPhiMax(someCuts.fSPDtrackletDeltaPhiMax),
- fSPDtrackletDeltaPhiMin(someCuts.fSPDtrackletDeltaPhiMin),
- fParamType(someCuts.fParamType),
- fParamMix(someCuts.fParamMix),
+AliFlowTrackCuts::AliFlowTrackCuts(const AliFlowTrackCuts& that):
+ AliFlowTrackSimpleCuts(that),
+ fAliESDtrackCuts(new AliESDtrackCuts(*(that.fAliESDtrackCuts))),
+ fQA(that.fQA),
+ fCutMCprocessType(that.fCutMCprocessType),
+ fMCprocessType(that.fMCprocessType),
+ fCutMCPID(that.fCutMCPID),
+ fMCPID(that.fMCPID),
+ fCutMCisPrimary(that.fCutMCisPrimary),
+ fMCisPrimary(that.fMCisPrimary),
+ fRequireCharge(that.fRequireCharge),
+ fFakesAreOK(that.fFakesAreOK),
+ fCutSPDtrackletDeltaPhi(that.fCutSPDtrackletDeltaPhi),
+ fSPDtrackletDeltaPhiMax(that.fSPDtrackletDeltaPhiMax),
+ fSPDtrackletDeltaPhiMin(that.fSPDtrackletDeltaPhiMin),
+ fParamType(that.fParamType),
+ fParamMix(that.fParamMix),
fCleanupTrack(kFALSE),
fTrack(NULL),
- fTrackPhi(someCuts.fTrackPhi),
- fTrackEta(someCuts.fTrackEta),
- fTrackWeight(someCuts.fTrackWeight),
+ fTrackPhi(0.),
+ fTrackEta(0.),
+ fTrackWeight(0.),
fTrackLabel(INT_MIN),
fMCevent(NULL),
fMCparticle(NULL),
}
//-----------------------------------------------------------------------
-AliFlowTrackCuts& AliFlowTrackCuts::operator=(const AliFlowTrackCuts& someCuts)
+AliFlowTrackCuts& AliFlowTrackCuts::operator=(const AliFlowTrackCuts& that)
{
//assignment
- AliFlowTrackSimpleCuts::operator=(someCuts);
- *fAliESDtrackCuts=*(someCuts.fAliESDtrackCuts);
- fQA=someCuts.fQA;
- fCutMCprocessType=someCuts.fCutMCprocessType;
- fMCprocessType=someCuts.fMCprocessType;
- fCutMCPID=someCuts.fCutMCPID;
- fMCPID=someCuts.fMCPID;
- fCutMCisPrimary=someCuts.fCutMCisPrimary;
- fMCisPrimary=someCuts.fMCisPrimary;
- fRequireCharge=someCuts.fRequireCharge;
- fFakesAreOK=someCuts.fFakesAreOK;
- fCutSPDtrackletDeltaPhi=someCuts.fCutSPDtrackletDeltaPhi;
- fSPDtrackletDeltaPhiMax=someCuts.fSPDtrackletDeltaPhiMax;
- fSPDtrackletDeltaPhiMin=someCuts.fSPDtrackletDeltaPhiMin;
- fParamType=someCuts.fParamType;
- fParamMix=someCuts.fParamMix;
+ AliFlowTrackSimpleCuts::operator=(that);
+ *fAliESDtrackCuts=*(that.fAliESDtrackCuts);
+ fQA=that.fQA;
+ fCutMCprocessType=that.fCutMCprocessType;
+ fMCprocessType=that.fMCprocessType;
+ fCutMCPID=that.fCutMCPID;
+ fMCPID=that.fMCPID;
+ fCutMCisPrimary=that.fCutMCisPrimary;
+ fMCisPrimary=that.fMCisPrimary;
+ fRequireCharge=that.fRequireCharge;
+ fFakesAreOK=that.fFakesAreOK;
+ fCutSPDtrackletDeltaPhi=that.fCutSPDtrackletDeltaPhi;
+ fSPDtrackletDeltaPhiMax=that.fSPDtrackletDeltaPhiMax;
+ fSPDtrackletDeltaPhiMin=that.fSPDtrackletDeltaPhiMin;
+ fParamType=that.fParamType;
+ fParamMix=that.fParamMix;
fCleanupTrack=kFALSE;
fTrack=NULL;
- fTrackPhi=someCuts.fTrackPhi;
- fTrackPhi=someCuts.fTrackPhi;
- fTrackWeight=someCuts.fTrackWeight;
+ fTrackPhi=0.;
+ fTrackPhi=0.;
+ fTrackWeight=0.;
fTrackLabel=INT_MIN;
fMCevent=NULL;
fMCparticle=NULL;
AliMCParticle* fMCparticle; //!mc particle
AliVEvent* fEvent; //!placeholder for current event
- ClassDef(AliFlowTrackCuts,1)
+ ClassDef(AliFlowTrackCuts,2)
};
#endif