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