]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/JetTasks/AliAnalyseUE.h
IsHeavyIon flag, added Centrality Selection, Add mising Cut for Nch, extra histograms...
[u/mrichter/AliRoot.git] / PWG4 / JetTasks / AliAnalyseUE.h
CommitLineData
1f329128 1//-*- Mode: C++ -*-
2#ifndef ALIANALYSEUE_H
3#define ALIANALYSEUE_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
10//---------------------------------------------
11////////////////////////////////////////////////
12
13// --- ROOT system ---
14#include <TObject.h>
15
1f329128 16class AliAnalysisTaskUE;
17class AliAODEvent;
3a9d4bcf 18class AliESDEvent;
1f329128 19class AliAODTrack;
20class AliGenPythiaEventHeader;
21class AliHistogramsUE;
3a9d4bcf 22class AliInputEventHandler;
1f329128 23class AliMCEvent;
3a9d4bcf 24class AliStack;
1f329128 25class TVector3;
26
27class AliAnalyseUE : public TObject {
28
29 public:
30
31 AliAnalyseUE(); //constructor
32 AliAnalyseUE(const AliAnalyseUE & g); //copy constructor
33 AliAnalyseUE & operator = (const AliAnalyseUE & g); //assignment operator
34 virtual ~AliAnalyseUE(); //virtual destructor
35
36 void AnalyseMC(TVector3 *jetVect, AliMCEvent *mcEvent, AliGenPythiaEventHeader *pythiaGenHeader, Int_t conePosition, Bool_t useAliStack, Bool_t constrainDistance, Double_t minDistance);
37 Bool_t AnaTypeSelection(TVector3 *jetVect);
1f329128 38
39 void FillRegions(Bool_t isNorm2Area, TVector3 *jetVect);
40
3a9d4bcf 41 void FindMaxMinRegions(TVector3 *jetVect, Int_t conePosition, Int_t mctrue, Int_t eff);
1f329128 42
1f329128 43 TVector3 GetOrderedClusters(TString aodBranch, Bool_t chargedJets, Double_t chJetPtMin);
44
3a9d4bcf 45 TVector3 GetLeadingTracksMC(AliMCEvent *mcEvent);
46 //leading track label
47 virtual Int_t GetLtLabel() const { return fLtLabel; }
48 virtual Int_t GetLtMCLabel() const { return fLtMCLabel; }
49
1f329128 50 void Initialize(AliAnalysisTaskUE& tmp);
3a9d4bcf 51 //void Initialize(AliAnalysisTask& tmp);
52
53 void Initialize(Int_t anaType, AliAODEvent* aod,Double_t coneRadius, Int_t debug, Int_t filterBit, Double_t jet1EtaCut, Double_t jet2DeltaPhiCut, Double_t jet2RatioPtCut, Double_t jet3PtCut, Int_t ordering, Int_t regionType,Bool_t simulateChJetPt, Double_t trackEtaCut, Double_t trackPtCut, Bool_t useChargeHadrons, Bool_t useChPartJet, Bool_t usePositiveCharge, Bool_t useSingleCharge, AliHistogramsUE* histos);
54
55 Bool_t TriggerSelection(AliInputEventHandler* input);
1f329128 56
57 Bool_t VertexSelection(AliAODEvent *value, Int_t tracks, Double_t zed);
ddbad1f5 58
59 Bool_t VertexSelectionOld(AliAODEvent *value);
60
1f329128 61 void WriteSettings();
62
63 // Various setters when you do not want to initialize members from AliAnalysisTaskUE
64 void SetAnaTopology(Int_t value) { fAnaType = value; }
65 void SetAOD(AliAODEvent *value) { fkAOD = value; }
66 void SetConeRadius(Double_t value) { fConeRadius = value; }
67 void SetDebug(Int_t value) { fDebug = value; }
3a9d4bcf 68 void SetESDEvent(AliESDEvent *value) { fkESD = value; }
1f329128 69 void SetFilterBit(Int_t value) { fFilterBit = value; }
70 void SetJet1EtaCut(Double_t value) { fJet1EtaCut = value; }
71 void SetJet2DeltaPhiCut(Double_t value) { fJet2DeltaPhiCut = value; }
72 void SetJet2RatioPtCut(Double_t value) { fJet2RatioPtCut = value; }
73 void SetJet3PtCut(Double_t value) { fJet3PtCut = value; }
74 void SetOrdering(Int_t value) { fOrdering = value; }
75 void SetRegionType(Int_t value) { fRegionType = value; }
76 void SetSimulateChJetPt(Bool_t value) { fSimulateChJetPt = value; }
77 void SetTrackEtaCut(Double_t value) { fTrackEtaCut = value; }
78 void SetTrackPtCut(Double_t value) { fTrackPtCut = value; }
79 void SetUseChargeHadrons(Bool_t value) { fUseChargeHadrons = value; }
80 void SetUseChPartJet(Bool_t value) { fUseChPartJet = value; }
81 void SetUsePositiveCharge(Bool_t value) { fUsePositiveCharge = value; }
82 void SetUseSingleCharge(Bool_t value) { fUseSingleCharge = value; }
3a9d4bcf 83
84 void SetStack(AliStack* value) { fStack = value; }
1f329128 85 private:
86
87 void FillAvePartPtRegion( Double_t leadingE, Double_t ptMax, Double_t ptMin );
88 void FillMultRegion( Double_t leadingE, Double_t nTrackPtmax, Double_t nTrackPtmin, Double_t ptMin );
89 void FillSumPtRegion( Double_t leadingE, Double_t ptMax, Double_t ptMin );
90 TObjArray* FindChargedParticleJets( Double_t chJetPtMin);
91 Int_t IsTrackInsideRegion(TVector3 *jetVect, TVector3 *partVect, Int_t conePosition);
92 void QSortTracks(TObjArray &a, Int_t first, Int_t last);
3a9d4bcf 93 void QSortTracksMC(TObjArray &a, Int_t first, Int_t last);
1f329128 94 void SetRegionArea(TVector3 *jetVect);
95 TObjArray* SortChargedParticles();
3a9d4bcf 96 TObjArray* SortChargedParticlesMC();
97 virtual Bool_t TrackSelected(AliAODTrack* part) const;
98 virtual Bool_t TrackSelectedEfficiency(AliAODTrack* part) const;
99 virtual Bool_t TrackMCSelected(Double_t charge, Double_t pT, Double_t eta, Int_t pdgCode) const;
1f329128 100
101
102 //AliAnalysisTaskUE fTaskUE; // current instance of the analysis-task
103 const AliAODEvent* fkAOD; //! AOD Event
3a9d4bcf 104 AliMCEvent* fkMC; //! MC Event
105 AliESDEvent* fkESD; //! ESD Event (only needed to get track DCA)
106 Int_t fDebug; // Debug flag
1f329128 107
108
109 // For MC
110 Bool_t fSimulateChJetPt; // Naive simulation of charged jet Pt from original Jet in MC Header
3a9d4bcf 111 AliStack* fStack; // Instance of MC Particle Stack
112
1f329128 113 // Cuts UE analysis
114 Int_t fAnaType; // Analysis type on jet topology:
115 Double_t fAreaReg; // Area of the region To be used as normalization factor when filling histograms
116 Double_t fConeRadius; // if selected Cone-like region type, set Radius (=0.7 default)
117 UInt_t fFilterBit; // Select tracks from an specific track cut (default 0xFF all track selected)
118 Int_t fRegionType; // 1 = transverse regions (default)
119 // 2 = cone regions
120 Bool_t fUseChargeHadrons; // Only use charge hadrons
121 Bool_t fUseChPartJet; // Use "Charged Particle Jet" instead of jets from AOD see FindChargedParticleJets()
122
123 Bool_t fUsePositiveCharge; //If Single type of charge used then set which one (=kTRUE default positive)
124 Bool_t fUseSingleCharge; //Make analysis for a single type of charge (=kFALSE default)
125
126 Int_t fOrdering; // Pt and multiplicity summation ordering:
127
128 // Jet cuts
129 Double_t fJet1EtaCut; // |jet1 eta| < fJet1EtaCut (fAnaType = 1,2,3)
130 Double_t fJet2DeltaPhiCut; // |Jet1.Phi - Jet2.Phi| < fJet2DeltaPhiCut (fAnaType = 2,3)
131 Double_t fJet2RatioPtCut; // Jet2.Pt/Jet1Pt > fJet2RatioPtCut (fAnaType = 2,3)
132 Double_t fJet3PtCut; // Jet3.Pt < fJet3PtCut (fAnaType = 3)
133
134 // track cuts
135 Double_t fTrackEtaCut; // Eta cut on tracks in the regions (fRegionType=1)
136 Double_t fTrackPtCut; // Pt cut of tracks in the regions
1f329128 137 AliHistogramsUE* fHistos; // Pointer to histogram class
138
139 //to fill the different regions
140 Double_t fSumPtRegionPosit; // Sum pT in positive region
141 Double_t fSumPtRegionNegat; // Sum pT in negative region
142 Double_t fSumPtRegionForward; // Sum pT in forward region
143 Double_t fSumPtRegionBackward; // Sum pT in backward region
144 Double_t fMaxPartPtRegion; // Max part pt in region
145 Int_t fNTrackRegionPosit; // Tracks in positive region
146 Int_t fNTrackRegionNegat; // Tracks in negative region
147 Int_t fNTrackRegionForward; // Track in forward region
148 Int_t fNTrackRegionBackward;// Tracks in backward region
149
150 //Store analysis settings
151 TTree* fSettingsTree; // To store analysis settings
152
3a9d4bcf 153 //Leading track labels
154 Int_t fLtLabel; // Label of reconstructed leading track
155 Int_t fLtMCLabel; // Label of true leading track
156
157
ddbad1f5 158 ClassDef(AliAnalyseUE,0)
1f329128 159};
160#endif