]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/Correlations/Base/AliAnalyseLeadingTrackUE.h
9e7bb4a331ff42fa65184b7ab27b169d0183c5ca
[u/mrichter/AliRoot.git] / PWGCF / Correlations / Base / 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 class AliVTrack;
33
34 class AliAnalyseLeadingTrackUE : public TObject {
35
36  public: 
37
38   AliAnalyseLeadingTrackUE();                                                   //constructor
39   AliAnalyseLeadingTrackUE(const AliAnalyseLeadingTrackUE & g);                 //copy constructor
40   AliAnalyseLeadingTrackUE & operator = (const AliAnalyseLeadingTrackUE & g);   //assignment operator
41   virtual ~AliAnalyseLeadingTrackUE();                                          //virtual destructor
42
43   // Setters
44   void  SetParticleSelectionCriteria(Int_t filterbit, Bool_t onlyhadrons, Double_t etacut, Double_t ptMin = 0) { fFilterBit   = filterbit;
45                                                                                              fOnlyHadrons = onlyhadrons;
46                                                                                              fTrackEtaCut = etacut;     
47                                                                                              fTrackPtMin = ptMin;}
48   void SetEventSelection(UInt_t bits) { fEventSelection = bits; }
49   void  SetDebug(Int_t debug) { fDebug = debug; } 
50   Bool_t         ApplyCuts(TObject* track);                       // Reproduces the cuts of the corresponding bit in the ESD->AOD filtering
51   void           DefineESDCuts(Int_t filterbit);                                 // Emulate filterbit
52   TObjArray*     FindLeadingObjects(TObject* obj);                                 // Looks for leading track or MC particle
53   TObjArray*     GetMinMaxRegion(TList* transv1, TList* transv2);                  // Sorts the transverse regions in MIN and MAX
54   Int_t          NParticles(TObject *obj);                                         // Counts tracks or MC particles
55   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
56   void           QSortTracks(TObjArray &a, Int_t first, Int_t last);               // Sort by pT an array of AliVParticles 
57   TObjArray*     SortRegions(const AliVParticle* leading, TObject* obj, TObject* arrayMC, Bool_t onlyprimaries = kTRUE); // Assign particles to towards, away or transverse regions
58   TObjArray*     GetAcceptedParticles(TObject* obj, TObject* arrayMC, Bool_t onlyprimaries = kTRUE, Int_t particleSpecies = -1, Bool_t useEtaPtCuts = kFALSE); 
59   TObjArray*     GetFakeParticles(TObject* obj, TObject* arrayMC, Bool_t onlyprimaries, Int_t particleSpecies, Bool_t useEtaPtCuts);
60   Bool_t         TriggerSelection(const TObject* obj);                                   // Select good triggers with AliPhysicsSelection class
61   Bool_t         VertexSelection(const TObject* obj, Int_t ntracks, Double_t zed);       // Vertex selection: see implementation
62   void           RemoveInjectedSignals(TObjArray* tracks, TObject* arrayMC, Int_t maxLabel);
63   void           RemoveWeakDecays(TObjArray* tracks, TObject* mcObj);
64   Int_t          GetParticleSpecies(AliVTrack      * trk);// PID
65   
66  private:
67   Int_t          fDebug;             // debug flag
68   Int_t          fFilterBit;         // track selection cuts
69   Bool_t         fOnlyHadrons;       // consider only charged Pions, Protons and Kaons 
70   Double_t       fTrackEtaCut;       // pseudo-rapidity limit of transverse regions     
71   Double_t       fTrackPtMin;        // pt limit for selecting particles
72   UInt_t         fEventSelection;    // bit for physics selection
73   AliESDtrackCuts *fEsdTrackCuts;    // set of cuts when reading ESD
74   AliESDtrackCuts *fEsdTrackCutsExtra1;    // set of cuts when reading ESD
75   AliESDtrackCuts *fEsdTrackCutsExtra2;    // set of cuts when reading ESD
76   
77   ClassDef(AliAnalyseLeadingTrackUE,0)
78 };
79 #endif