]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskChargedJetsPA.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / UserTasks / AliAnalysisTaskChargedJetsPA.h
index 38ef2c388000401ca38228589af6cfe41843da12..d49f98e3ce8c6fb7d1fad79659104b92e21d41bb 100644 (file)
@@ -17,6 +17,9 @@ class AliESDtrack;
 #include "AliESDtrackCuts.h"
 #include "THn.h"
 
+const int kMaxMatch=5;
+const double kMaxChi2 = 200;
+
 // Class for the hybrid track cuts
 class AliESDHybridTrackcuts {
  public:
@@ -59,7 +62,7 @@ class AliESDHybridTrackcuts {
 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
   }
@@ -78,10 +81,14 @@ class AliAnalysisTaskChargedJetsPA : public AliAnalysisTaskSE {
   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;}
@@ -136,6 +143,7 @@ class AliAnalysisTaskChargedJetsPA : public AliAnalysisTaskSE {
   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
@@ -154,7 +162,7 @@ class AliAnalysisTaskChargedJetsPA : public AliAnalysisTaskSE {
   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);
@@ -216,11 +224,17 @@ class AliAnalysisTaskChargedJetsPA : public AliAnalysisTaskSE {
   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
@@ -234,9 +248,11 @@ class AliAnalysisTaskChargedJetsPA : public AliAnalysisTaskSE {
   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&);