]>
Commit | Line | Data |
---|---|---|
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 | 16 | class AliAnalysisTaskUE; |
17 | class AliAODEvent; | |
3a9d4bcf | 18 | class AliESDEvent; |
1f329128 | 19 | class AliAODTrack; |
20 | class AliGenPythiaEventHeader; | |
21 | class AliHistogramsUE; | |
3a9d4bcf | 22 | class AliInputEventHandler; |
1f329128 | 23 | class AliMCEvent; |
3a9d4bcf | 24 | class AliStack; |
1f329128 | 25 | class TVector3; |
26 | ||
27 | class 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 |