]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/Correlations/Base/AliAnalyseLeadingTrackUE.h
Added Eventplane Dependence in dPhi Correlations code
[u/mrichter/AliRoot.git] / PWGCF / Correlations / Base / AliAnalyseLeadingTrackUE.h
CommitLineData
a75aacd6 1//-*- Mode: C++ -*-
2#ifndef ALIANALYSELEADINGTRACKUE_H
3#define ALIANALYSELEADINGTRACKUE_H
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7////////////////////////////////////////////////
8//---------------------------------------------
9// Class for transverse regions analysis w.r.t leading track
10//---------------------------------------------
11////////////////////////////////////////////////
12
13// --- ROOT system ---
14#include <TObject.h>
15
16class AliAODEvent;
144bd037 17class AliAODInputHandler;
a75aacd6 18class AliESDEvent;
3712ba26 19class AliESDtrackCuts;
a75aacd6 20class AliAODTrack;
21class AliESDTrack;
22class AliGenPythiaEventHeader;
23class AliInputEventHandler;
144bd037 24class AliLog;
a75aacd6 25class AliMCEvent;
26class AliStack;
27class AliVParticle;
28class TClonesArray;
29class TObject;
144bd037 30class TROOT;
a75aacd6 31class TVector3;
39c2cb38 32class AliVTrack;
32e49607 33class AliHelperPID;
97270ee2 34class TFormula;
a75aacd6 35
36class AliAnalyseLeadingTrackUE : public TObject {
37
38 public:
39
40 AliAnalyseLeadingTrackUE(); //constructor
41 AliAnalyseLeadingTrackUE(const AliAnalyseLeadingTrackUE & g); //copy constructor
42 AliAnalyseLeadingTrackUE & operator = (const AliAnalyseLeadingTrackUE & g); //assignment operator
43 virtual ~AliAnalyseLeadingTrackUE(); //virtual destructor
44
45 // Setters
97dc2b4e 46 void SetParticleSelectionCriteria(Int_t filterbit, Bool_t onlyhadrons, Double_t etacut, Double_t etacutMin=-1., Double_t ptMin = 0) { fFilterBit = filterbit;
a75aacd6 47 fOnlyHadrons = onlyhadrons;
e0331fd9 48 fTrackEtaCut = etacut;
97dc2b4e 49 fTrackEtaCutMin = etacutMin;
e0331fd9 50 fTrackPtMin = ptMin;}
418b56c5 51
5cabd2cd 52 void SetEventSelection(UInt_t bits) { fEventSelection = bits; }
a75aacd6 53 void SetDebug(Int_t debug) { fDebug = debug; }
3712ba26 54 Bool_t ApplyCuts(TObject* track); // Reproduces the cuts of the corresponding bit in the ESD->AOD filtering
55 void DefineESDCuts(Int_t filterbit); // Emulate filterbit
a75aacd6 56 TObjArray* FindLeadingObjects(TObject* obj); // Looks for leading track or MC particle
57 TObjArray* GetMinMaxRegion(TList* transv1, TList* transv2); // Sorts the transverse regions in MIN and MAX
58 Int_t NParticles(TObject *obj); // Counts tracks or MC particles
b1831bcb 59 AliVParticle* ParticleWithCuts(TObject* obj, Int_t ipart, Bool_t onlyprimaries = kTRUE, Int_t particleSpecies = -1); // Returns track or MC particle at position "ipart" if passes selection criteria
a75aacd6 60 void QSortTracks(TObjArray &a, Int_t first, Int_t last); // Sort by pT an array of AliVParticles
61 TObjArray* SortRegions(const AliVParticle* leading, TObject* obj, TObject* arrayMC, Bool_t onlyprimaries = kTRUE); // Assign particles to towards, away or transverse regions
774ef124 62 TObjArray* GetAcceptedParticles(TObject* obj, TObject* arrayMC, Bool_t onlyprimaries = kTRUE, Int_t particleSpecies = -1, Bool_t useEtaPtCuts = kFALSE, Bool_t speciesOnTracks = kTRUE, Double_t evtPlane = -999.);
b591fb9c 63 TObjArray* GetFakeParticles(TObject* obj, TObject* arrayMC, Bool_t onlyprimaries, Int_t particleSpecies, Bool_t useEtaPtCuts);
a75aacd6 64 Bool_t TriggerSelection(const TObject* obj); // Select good triggers with AliPhysicsSelection class
65 Bool_t VertexSelection(const TObject* obj, Int_t ntracks, Double_t zed); // Vertex selection: see implementation
1ccd8a0a 66 void RemoveInjectedSignals(TObjArray* tracks, TObject* arrayMC, Int_t maxLabel);
f613255f 67 void RemoveWeakDecays(TObjArray* tracks, TObject* mcObj);
32e49607 68 AliHelperPID* GetHelperPID() { return fHelperPID; }
69 void SetHelperPID(AliHelperPID* pid) { fHelperPID = pid; }
418b56c5 70 void SetTrackStatus(UInt_t status) { fTrackStatus = status; }
71 UInt_t GetTrackStatus() { return fTrackStatus; }
9e35c487 72 void SetCheckMotherPDG(Bool_t checkpdg) { fCheckMotherPDG = checkpdg; }
73 Bool_t GetCheckMotherPDG() { return fCheckMotherPDG; }
416af868 74 void NextEvent() { fEventCounter++; }
677dc831 75 UInt_t GetEventCounter() { return fEventCounter; }
97270ee2 76 void SetDCAXYCut(TFormula* value) { fDCAXYCut = value; }
132b6963 77 void SetSharedClusterCut(Double_t value) { fSharedClusterCut = value; }
78 void SetCrossedRowsCut(Int_t value) { fCrossedRowsCut = value; }
79 void SetFoundFractionCut(Double_t value) { fFoundFractionCut = value; }
774ef124 80 void SetParticlePhiCutEventPlane(Double_t min, Double_t max) { fTrackPhiCutEvPlMin = min; fTrackPhiCutEvPlMax = max; }
418b56c5 81
82protected:
83 Bool_t CheckTrack(AliVParticle * part);
84
32e49607 85private:
a75aacd6 86 Int_t fDebug; // debug flag
87 Int_t fFilterBit; // track selection cuts
418b56c5 88 UInt_t fTrackStatus; // if non-0, the bits set in this variable are required for each track
a75aacd6 89 Bool_t fOnlyHadrons; // consider only charged Pions, Protons and Kaons
9e35c487 90 Bool_t fCheckMotherPDG; // Check the PDG code of mother for secondaries
a75aacd6 91 Double_t fTrackEtaCut; // pseudo-rapidity limit of transverse regions
97dc2b4e 92 Double_t fTrackEtaCutMin; // minimum of the pseudo-rapidity limit of transverse regions
774ef124 93 Double_t fTrackPhiCutEvPlMin; // Minimum Phi cut on particles with respect to the Event Plane (values between 0 and Pi/2)
94 Double_t fTrackPhiCutEvPlMax; // Maximum Phi cut on particles with respect to the Event Plane (values between 0 and Pi/2)
e0331fd9 95 Double_t fTrackPtMin; // pt limit for selecting particles
5cabd2cd 96 UInt_t fEventSelection; // bit for physics selection
97270ee2 97 TFormula* fDCAXYCut; // additional pt dependent cut on DCA XY (only for AOD)
7d756130 98 Double_t fSharedClusterCut; // cut on shared clusters (only for AOD)
132b6963 99 Int_t fCrossedRowsCut; // cut on crossed rows (only for AOD)
100 Double_t fFoundFractionCut; // cut on crossed rows/findable clusters (only for AOD)
7d756130 101
3712ba26 102 AliESDtrackCuts *fEsdTrackCuts; // set of cuts when reading ESD
8b43ff78 103 AliESDtrackCuts *fEsdTrackCutsExtra1; // set of cuts when reading ESD
104 AliESDtrackCuts *fEsdTrackCutsExtra2; // set of cuts when reading ESD
32e49607 105 AliHelperPID *fHelperPID; // PID Helper object
416af868 106 UInt_t fEventCounter; //! processed events (counter)
3f3f12d9 107
3712ba26 108 ClassDef(AliAnalyseLeadingTrackUE,0)
a75aacd6 109};
110#endif