#define ALICONVERSIONCUTS_H
// Class handling all kinds of selection cuts for Gamma Conversion analysis
-// Authors: Svein Lindal, Daniel Lohner *
+// Authors: Svein Lindal, Daniel Lohner *
#include "AliAODpidUtil.h"
#include "AliConversionPhotonBase.h"
#include "AliStack.h"
#include "AliAnalysisCuts.h"
#include "TH1F.h"
+#include "TF1.h"
#include "AliAnalysisUtils.h"
#include "AliAnalysisManager.h"
class AliKFVertex;
class TH1F;
class TH2F;
+class TF1;
class AliPIDResponse;
class AliAnalysisCuts;
class iostream;
using namespace std;
class AliConversionCuts : public AliAnalysisCuts {
-
+
public:
enum cutIds {
- kisHeavyIon,
- kCentralityMin,
- kCentralityMax,
- kselectV0AND,
- kmultiplicityMethod,
- kremovePileUp,
- kExtraSignals,
- kv0FinderType,
- ketaCut,
- kRCut,
- ksinglePtCut,
- kclsTPCCut,
- kededxSigmaCut,
- kpidedxSigmaCut,
- kpiMomdedxSigmaCut,
- kpiMaxMomdedxSigmaCut,
- kLowPRejectionSigmaCut,
- kTOFelectronPID,
- kQtMaxCut,
- kchi2GammaCut,
- kPsiPair,
- kdoPhotonAsymmetryCut,
- kCosPAngle,
- kElecShare,
- kToCloseV0s,
+ kisHeavyIon,
+ kCentralityMin,
+ kCentralityMax,
+ kselectV0AND,
+ kmultiplicityMethod,
+ kremovePileUp,
+ kExtraSignals,
+ kv0FinderType,
+ ketaCut,
+ kRCut,
+ ksinglePtCut,
+ kclsTPCCut,
+ kededxSigmaCut,
+ kpidedxSigmaCut,
+ kpiMomdedxSigmaCut,
+ kpiMaxMomdedxSigmaCut,
+ kLowPRejectionSigmaCut,
+ kTOFelectronPID,
+ kQtMaxCut,
+ kchi2GammaCut,
+ kPsiPair,
+ kdoPhotonAsymmetryCut,
+ kCosPAngle,
+ kElecShare,
+ kToCloseV0s,
kDcaRPrimVtx,
kDcaZPrimVtx,
- kNCuts
+ kNCuts
};
enum photonCuts {
}
Bool_t PhotonCuts(AliConversionPhotonBase *photon,AliVEvent *event);
Bool_t CorrectedTPCClusterCut(AliConversionPhotonBase *photon, AliVEvent * event);
- Bool_t PsiPairCut(const AliConversionPhotonBase * photon) const;
+ Bool_t PsiPairCut(const AliConversionPhotonBase * photon, Double_t deltaPhi) const;
Bool_t CosinePAngleCut(const AliConversionPhotonBase * photon, AliVEvent * event) const;
Bool_t RejectSharedElectronV0s(AliAODConversionPhoton* photon, Int_t nV0, Int_t nV0s);
Bool_t RejectToCloseV0s(AliAODConversionPhoton* photon, TList *photons, Int_t nV0);
Int_t IsParticleFromBGEvent(Int_t index, AliStack *MCStack, AliVEvent *InputEvent = 0x0);
void GetNotRejectedParticles(Int_t rejection, TList *HeaderList, AliVEvent *MCEvent);
- void SetUseReweightingWithHistogramFromFile( Bool_t pi0reweight=kTRUE, Bool_t etareweight=kFALSE, Bool_t k0sreweight=kFALSE,TString path="$ALICE_ROOT/PWGGA/GammaConv/MCSpectraInput.root",
- TString histoNamePi0 = "Hijing_PbPb_2760GeV_0005", TString histoNameEta = "", TString histoNameK0s = "") {
+ void SetUseReweightingWithHistogramFromFile( Bool_t pi0reweight=kTRUE, Bool_t etareweight=kFALSE, Bool_t k0sreweight=kFALSE, TString path="$ALICE_ROOT/PWGGA/GammaConv/MCSpectraInput.root",
+ TString histoNamePi0 = "", TString histoNameEta = "", TString histoNameK0s = "",
+ TString fitNamePi0 = "", TString fitNameEta = "", TString fitNameK0s ="" ) {
+ AliInfo(Form("enabled reweighting for: pi0 : %i, eta: %i, K0s: %i",pi0reweight, etareweight, k0sreweight));
fDoReweightHistoMCPi0 = pi0reweight;
fDoReweightHistoMCEta = etareweight;
fDoReweightHistoMCK0s = k0sreweight;
fNameHistoReweightingPi0 =histoNamePi0;
fNameHistoReweightingEta =histoNameEta;
fNameHistoReweightingK0s =histoNameK0s;
+ fNameFitDataPi0 =fitNamePi0;
+ fNameFitDataEta =fitNameEta;
+ fNameFitDataK0s =fitNameK0s;
+
}
void LoadReweightingHistosMCFromFile ();
// Event Cuts
Double_t fMinPPhotonAsymmetryCut; // Min Momentum for Asymmetry Cut
Double_t fMinPhotonAsymmetry; // Asymmetry Cut
Int_t fIsHeavyIon; // flag for heavy ion
- Int_t fDetectorCentrality; // centrality detecotor V0M or CL1
+ Int_t fDetectorCentrality; // centrality detecotor V0M or CL1
Int_t fModCentralityClass; // allows to select smaller centrality classes
Double_t fMaxVertexZ; // max z offset of vertex
Int_t fCentralityMin; // centrality selection lower bin value
Bool_t fRemovePileUp; //flag
Float_t fOpeningAngle; // min opening angle for meson
Float_t fPsiPairCut;
+ Float_t fPsiPairDeltaPhiCut;
+ Bool_t fDo2DPsiPair;
Float_t fCosPAngleCut;
Bool_t fDoToCloseV0sCut; //
Int_t fRejectExtraSignals;//
TString fNameHistoReweightingPi0; //Histogram name for reweighting Pi0
TString fNameHistoReweightingEta; //Histogram name for reweighting Eta
TString fNameHistoReweightingK0s; //Histogram name for reweighting K0s
+ TString fNameFitDataPi0; //Fit name for fit to spectrum of pi0s in Data
+ TString fNameFitDataEta; //Fit name for fit to spectrum of etas in Data
+ TString fNameFitDataK0s; //Fit name for fit to spectrum of k0s in Data
// Histograms
TH1F *hdEdxCuts; // bookkeeping for dEdx cuts
TH2F *hTPCdEdxbefore; // TPC dEdx before cuts
TH2F *hTOFbefore; // TOF before cuts
TH2F *hTOFSigbefore; // TOF Sigma before cuts
TH2F *hTOFSigafter; // TOF Sigma after cuts
+ TH2F *hPsiPairDeltaPhiafter; // TOF Sigma after cuts
TH1F *hTrackCuts; // bookkeeping for track cuts
TH1F *hPhotonCuts; // bookkeeping for photon specific cuts
TH1F *hInvMassbefore; // e+e- inv mass distribution before cuts
TH1D *hReweightMCHistPi0; //histogram input for reweighting Pi0
TH1D *hReweightMCHistEta; //histogram input for reweighting Eta
TH1D *hReweightMCHistK0s; //histogram input for reweighting K0s
+ TF1 *fFitDataPi0; //fit to pi0 spectrum in Data
+ TF1 *fFitDataEta; //fit to eta spectrum in Data
+ TF1 *fFitDataK0s; //fit to K0s spectrum in Data
Bool_t fPreSelCut; // Flag for preselection cut used in V0Reader
Bool_t fTriggerSelectedManually; // Flag for manual trigger selection
TString fSpecialTriggerName; // Name of the Special Triggers
private:
- ClassDef(AliConversionCuts,4)
+ ClassDef(AliConversionCuts,5)
};