#include "AliESDtrackCuts.h"
#include "THn.h"
+const int kMaxMatch=5;
+const double kMaxChi2 = 200;
+
// Class for the hybrid track cuts
class AliESDHybridTrackcuts {
public:
class AliAnalysisTaskChargedJetsPA : public AliAnalysisTaskSE {
public:
// ######### CONTRUCTORS/DESTRUCTORS AND STD FUNCTIONS
- AliAnalysisTaskChargedJetsPA() : AliAnalysisTaskSE(), fOutputLists(), fCurrentOutputList(0), fDoJetAnalysis(1), fAnalyzeJetProfile(0), fAnalyzeTrackcuts(0), fParticleLevel(0), fUseDefaultVertexCut(1), fUsePileUpCut(1), fSetCentralityToOne(0), fNoExternalBackground(0), fBackgroundForJetProfile(0), fPartialAnalysisNParts(1), fPartialAnalysisIndex(0), fJetArray(0), fTrackArray(0), fBackgroundJetArray(0), fJetArrayName(), fTrackArrayName(), fBackgroundJetArrayName(), fRhoTaskName(), fRandConeRadius(0.4), fSignalJetRadius(0.4), fBackgroundJetRadius(0.4), fNumberExcludedJets(-1), fMinEta(-0.9), fMaxEta(0.9), fMinJetEta(-0.5), fMaxJetEta(0.5), fMinTrackPt(0.150), fMinJetPt(5.0), fMinJetArea(0.5), fMinBackgroundJetPt(0.0), fNumberOfCentralityBins(20), fCentralityType("V0A"), fPrimaryVertex(0), fFirstLeadingJet(0), fSecondLeadingJet(0), fFirstLeadingKTJet(0), fSecondLeadingKTJet(0), fNumberSignalJets(0), fNumberSignalJetsAbove5GeV(0), fRandom(0), fHelperClass(0), fInitialized(0), fTaskInstanceCounter(0), fIsDEBUG(0), fIsPA(1), fEventCounter(0), fHybridESDtrackCuts(0), fHybridESDtrackCuts_noPtDep(0)
+ AliAnalysisTaskChargedJetsPA() : AliAnalysisTaskSE(), fOutputLists(), fCurrentOutputList(0), fDoJetAnalysis(1), fAnalyzeJetProfile(0), fAnalyzeTrackcuts(0), fParticleLevel(0), fUseDefaultVertexCut(1), fUsePileUpCut(1), fSetCentralityToOne(0), fNoExternalBackground(0), fBackgroundForJetProfile(0), fPartialAnalysisNParts(1), fPartialAnalysisIndex(0), fJetArray(0), fTrackArray(0), fBackgroundJetArray(0), fJetArrayName(), fTrackArrayName(), fBackgroundJetArrayName(), fRhoTaskName(), fRandConeRadius(0.4), fSignalJetRadius(0.4), fBackgroundJetRadius(0.4), fNumberExcludedJets(-1), fMinEta(-0.9), fMaxEta(0.9), fMinJetEta(-0.5), fMaxJetEta(0.5), fMinTrackPt(0.150), fMinJetPt(5.0), fMinJetArea(0.5), fMinBackgroundJetPt(0.0), fMinNCrossedRows(70), fUsePtDepCrossedRowsCut(0), fNumberOfCentralityBins(20), fCentralityType("V0A"), fMatchTr(), fMatchChi(), fPrimaryVertex(0), fFirstLeadingJet(0), fSecondLeadingJet(0), fFirstLeadingKTJet(0), fSecondLeadingKTJet(0), fNumberSignalJets(0), fNumberSignalJetsAbove5GeV(0), fRandom(0), fHelperClass(0), fInitialized(0), fTaskInstanceCounter(0), fIsDEBUG(0), fIsPA(1), fNoTerminate(1), fEventCounter(0), fHybridESDtrackCuts(0), fHybridESDtrackCuts_variedPtDep(0), fHybridESDtrackCuts_variedPtDep2(0)
{
// dummy
}
void SetAnalyzePartialEvents(Int_t nParts, Int_t index) {fPartialAnalysisNParts = nParts; fPartialAnalysisIndex = index;}
void SetUseDefaultVertexCut (Bool_t val) {fUseDefaultVertexCut = val;}
void SetUsePileUpCut (Bool_t val) {fUsePileUpCut = val;}
+ void SetNoTerminate (Bool_t val) {fNoTerminate = val;}
void SetIsPA (Bool_t val) {fIsPA = val;}
void SetCentralityToOne (Bool_t val) {fSetCentralityToOne = val;}
void SetNoExternalBackground (Bool_t val) {fNoExternalBackground = val;}
void SetBackgroundForJetProfile (Bool_t val) {fBackgroundForJetProfile = val;}
+ void SetMinNCrossedRows(Int_t val) {fMinNCrossedRows = val;}
+ void SetUsePtDepCrossedRowsCut(Bool_t val) {fUsePtDepCrossedRowsCut = val;}
+
void SetNumberOfCentralityBins(Int_t val) {fNumberOfCentralityBins = val;}
void SetTrackMinPt(Double_t minPt) {fMinJetPt = minPt;}
void SetSignalJetMinPt(Double_t minPt) {fMinJetPt = minPt;}
Double_t GetExternalRho();
void CreateJetProfilePlots(Double_t bgrd);
void CreateCutHistograms();
+ void CreateITSTPCMatchingHistograms();
void GetPerpendicularCone(Double_t vecPhi, Double_t vecTheta, Double_t& conePt);
// ######### CHECK FUNCTIONS
Double_t GetDeltaPhi(Double_t phi1, Double_t phi2);
Double_t MCGetOverlapCircleRectancle(Double_t cPosX, Double_t cPosY, Double_t cRadius, Double_t rPosXmin, Double_t rPosXmax, Double_t rPosYmin, Double_t rPosYmax);
Double_t MCGetOverlapMultipleCirclesRectancle(Int_t numCircles, std::vector<Double_t> cPosX, std::vector<Double_t> cPosY, Double_t cRadius, Double_t rPosXmin, Double_t rPosXmax, Double_t rPosYmin, Double_t rPosYmax);
-
+ void Match(AliESDtrack* tr0, AliESDtrack* tr1, Int_t& nmatch, Bool_t excludeMom = kFALSE, Double_t rotate=0);
// ######### HISTOGRAM FUNCTIONS
void FillHistogram(const char * key, Double_t x);
Double_t fMinJetPt; // Min jet pt to be accepted
Double_t fMinJetArea; // Min jet area to be accepted
Double_t fMinBackgroundJetPt; // Min jet pt to be accepted as background jet
+ Int_t fMinNCrossedRows; // Min number of crossed TPC rows for trackcut analysis
+ Bool_t fUsePtDepCrossedRowsCut;// Trigger if linear pT dep. for crossed rows cut should be applied
Int_t fNumberOfCentralityBins;// Number of centrality bins used for histograms
TString fCentralityType; // Used centrality estimate (V0A, V0C, V0M, ...)
+ AliESDtrack* fMatchTr[kMaxMatch]; //! Helper variables track matching
+ Double_t fMatchChi[kMaxMatch]; //! Helper variables track matching
+
+
// ########## EVENT PROPERTIES
- const AliVVertex* fPrimaryVertex; //! Vertex found per event
+ const AliVVertex* fPrimaryVertex; //! Vertex found per event
AliEmcalJet* fFirstLeadingJet; //! leading jet in event
AliEmcalJet* fSecondLeadingJet; //! next to leading jet in event
AliEmcalJet* fFirstLeadingKTJet; //! leading kT jet in event
Int_t fTaskInstanceCounter; // for naming reasons
Bool_t fIsDEBUG; // Debug trigger
Bool_t fIsPA; // pPb trigger
+ Bool_t fNoTerminate; // don't use terminate routines
ULong_t fEventCounter; // Internal event counter
AliESDHybridTrackcuts* fHybridESDtrackCuts; //! these trackcuts are applied
- AliESDHybridTrackcuts* fHybridESDtrackCuts_noPtDep; //! these trackcuts are applied
+ AliESDHybridTrackcuts* fHybridESDtrackCuts_variedPtDep; //! these trackcuts are applied
+ AliESDHybridTrackcuts* fHybridESDtrackCuts_variedPtDep2; //! these trackcuts are applied
AliAnalysisTaskChargedJetsPA(const AliAnalysisTaskChargedJetsPA&);
AliAnalysisTaskChargedJetsPA& operator=(const AliAnalysisTaskChargedJetsPA&);