]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/JetTasks/AliAnalyseLeadingTrackUE.h
b44bcac1794be168f7b03d7dd8683704e6568f51
[u/mrichter/AliRoot.git] / PWG4 / JetTasks / AliAnalyseLeadingTrackUE.h
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
16 class AliAODEvent;
17 class AliAODInputHandler;
18 class AliESDEvent;
19 class AliESDtrackCuts;
20 class AliAODTrack;
21 class AliESDTrack;
22 class AliGenPythiaEventHeader;
23 class AliInputEventHandler;
24 class AliLog;
25 class AliMCEvent;
26 class AliStack;
27 class AliVParticle;
28 class TClonesArray;
29 class TObject;
30 class TROOT;
31 class TVector3;
32
33 class AliAnalyseLeadingTrackUE : public TObject {
34
35  public: 
36
37   AliAnalyseLeadingTrackUE();                                                   //constructor
38   AliAnalyseLeadingTrackUE(const AliAnalyseLeadingTrackUE & g);                 //copy constructor
39   AliAnalyseLeadingTrackUE & operator = (const AliAnalyseLeadingTrackUE & g);   //assignment operator
40   virtual ~AliAnalyseLeadingTrackUE();                                          //virtual destructor
41
42   // Setters
43   void  SetParticleSelectionCriteria(Int_t filterbit, Bool_t onlyhadrons, Double_t etacut, Double_t ptMin = 0) { fFilterBit   = filterbit;
44                                                                                              fOnlyHadrons = onlyhadrons;
45                                                                                              fTrackEtaCut = etacut;     
46                                                                                              fTrackPtMin = ptMin;}
47   void  SetDebug(Int_t debug) { fDebug = debug; } 
48   Bool_t         ApplyCuts(TObject* track);                       // Reproduces the cuts of the corresponding bit in the ESD->AOD filtering
49   void           DefineESDCuts(Int_t filterbit);                                 // Emulate filterbit
50   TObjArray*     FindLeadingObjects(TObject* obj);                                 // Looks for leading track or MC particle
51   TObjArray*     GetMinMaxRegion(TList* transv1, TList* transv2);                  // Sorts the transverse regions in MIN and MAX
52   Int_t          NParticles(TObject *obj);                                         // Counts tracks or MC particles
53   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
54   void           QSortTracks(TObjArray &a, Int_t first, Int_t last);               // Sort by pT an array of AliVParticles 
55   TObjArray*     SortRegions(const AliVParticle* leading, TObject* obj, TObject* arrayMC, Bool_t onlyprimaries = kTRUE); // Assign particles to towards, away or transverse regions
56   TObjArray*     GetAcceptedParticles(TObject* obj, TObject* arrayMC, Bool_t onlyprimaries = kTRUE, Int_t particleSpecies = -1, Bool_t useEtaPtCuts = kFALSE); 
57   Bool_t         TriggerSelection(const TObject* obj);                                   // Select good triggers with AliPhysicsSelection class
58   Bool_t         VertexSelection(const TObject* obj, Int_t ntracks, Double_t zed);       // Vertex selection: see implementation
59
60  private:
61   Int_t          fDebug;             // debug flag
62   Int_t          fFilterBit;         // track selection cuts
63   Bool_t         fOnlyHadrons;       // consider only charged Pions, Protons and Kaons 
64   Double_t       fTrackEtaCut;       // pseudo-rapidity limit of transverse regions     
65   Double_t       fTrackPtMin;        // pt limit for selecting particles
66   AliESDtrackCuts *fEsdTrackCuts;    // set of cuts when reading ESD
67   AliESDtrackCuts *fEsdTrackCutsSPD;    // set of cuts when reading ESD
68   AliESDtrackCuts *fEsdTrackCutsSDD;    // set of cuts when reading ESD
69   ClassDef(AliAnalyseLeadingTrackUE,0)
70 };
71 #endif