]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/JetTasks/AliAnalyseLeadingTrackUE.h
Fix for bug #73998: AliESDZDC.cxx changes to be committed in trunk and ported to...
[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) { fFilterBit   = filterbit;
44                                                                                              fOnlyHadrons = onlyhadrons;
45                                                                                              fTrackEtaCut = etacut;     }
46   void  SetDebug(Int_t debug) { fDebug = debug; } 
47   Bool_t         ApplyCuts(TObject* track);                       // Reproduces the cuts of the corresponding bit in the ESD->AOD filtering
48   void           DefineESDCuts(Int_t filterbit);                                 // Emulate filterbit
49   TObjArray*     FindLeadingObjects(TObject* obj);                                 // Looks for leading track or MC particle
50   TObjArray*     GetMinMaxRegion(TList* transv1, TList* transv2);                  // Sorts the transverse regions in MIN and MAX
51   Int_t          NParticles(TObject *obj);                                         // Counts tracks or MC particles
52   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
53   void           QSortTracks(TObjArray &a, Int_t first, Int_t last);               // Sort by pT an array of AliVParticles 
54   TObjArray*     SortRegions(const AliVParticle* leading, TObject* obj, TObject* arrayMC, Bool_t onlyprimaries = kTRUE); // Assign particles to towards, away or transverse regions
55   TObjArray*     GetAcceptedParticles(TObject* obj, TObject* arrayMC, Bool_t onlyprimaries = kTRUE, Int_t particleSpecies = -1); 
56   Bool_t         TriggerSelection(const TObject* obj);                                   // Select good triggers with AliPhysicsSelection class
57   Bool_t         VertexSelection(const TObject* obj, Int_t ntracks, Double_t zed);       // Vertex selection: see implementation
58
59  private:
60   Int_t          fDebug;             // debug flag
61   Int_t          fFilterBit;         // track selection cuts
62   Bool_t         fOnlyHadrons;       // consider only charged Pions, Protons and Kaons 
63   Double_t       fTrackEtaCut;       // pseudo-rapidity limit of transverse regions     
64   AliESDtrackCuts *fEsdTrackCuts;    // set of cuts when reading ESD
65   AliESDtrackCuts *fEsdTrackCutsSPD;    // set of cuts when reading ESD
66   AliESDtrackCuts *fEsdTrackCutsSDD;    // set of cuts when reading ESD
67   ClassDef(AliAnalyseLeadingTrackUE,0)
68 };
69 #endif