Support for HFE analysis added (Matthias)
[u/mrichter/AliRoot.git] / PWGHF / correlationHF / AliReducedParticle.h
1
2 #ifndef AliReducedParticle_H
3 #define AliReducedParticle_H
4
5
6 /**************************************************************************
7  * Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
8  *                                                                        *
9  * Author: The ALICE Off-line Project.                                    *
10  * Contributors are mentioned in the code where appropriate.              *
11  *                                                                        *
12  * Permission to use, copy, modify and distribute this software and its   *
13  * documentation strictly for non-commercial purposes is hereby granted   *
14  * without fee, provided that the above copyright notice appears in all   *
15  * copies and that both the copyright notice and this permission notice   *
16  * appear in the supporting documentation. The authors make no claims     *
17  * about the suitability of this software for any purpose. It is          *
18  * provided "as is" without express or implied warranty.                  *
19  **************************************************************************/
20
21 /* $Id$ */
22
23 //
24 //
25 //             Base class for DStar - Hadron Correlations Analysis
26 //
27 //-----------------------------------------------------------------------
28 //          
29 //
30 //                                                 Author S.Bjelogrlic
31 //                         Utrecht University 
32 //                      sandro.bjelogrlic@cern.ch
33 //
34 //-----------------------------------------------------------------------
35
36
37 #include "AliLog.h"
38 #include "AliVParticle.h"
39
40 // class to get the reduced hadron candidate
41 class AliReducedParticle : public AliVParticle
42 {
43 public:
44     AliReducedParticle(Double_t eta, Double_t phi, Double_t pt, Int_t mcLabel, Int_t trackid, Double_t impPar, Bool_t checkSoftPi);
45     AliReducedParticle(Double_t eta, Double_t phi, Double_t pt, Int_t mcLabel, Int_t trackid, Double_t impPar, Bool_t checkSoftPi, Short_t charge);
46     AliReducedParticle(Double_t eta, Double_t phi, Double_t pt, Int_t mcLabel);
47     AliReducedParticle(Double_t eta, Double_t phi, Double_t pt, int charge, int orginmother); 
48     AliReducedParticle(Double_t eta, Double_t phi, Double_t pt, Double_t invmass, int ptbin, int orginmother=0);
49
50     ~AliReducedParticle();
51     
52     // kinematics
53         
54     virtual Double_t Pt()         const { return fpT; }
55     virtual Double_t Phi()        const { return fPhi; }
56     virtual Double_t Eta()        const { return fEta; }
57     virtual Int_t   GetLabel()    const { return fMcLabel; }
58     virtual Int_t  GetID()              const{return fid;}
59     virtual Double_t GetImpPar() const{return fImpPar;}
60     virtual Bool_t CheckSoftPi() const{return fCheckSoftPi;}
61     virtual Double_t GetInvMass() const {return fInvMass;}
62     virtual int GetPtBin() const  {return fPtBin;}
63     virtual int GetOriginMother() const {return fOriginMother;}
64         
65         // kinematics
66     virtual Double_t Px() const { AliFatal("Not implemented"); return 0; }
67     virtual Double_t Py() const { AliFatal("Not implemented"); return 0; }
68     virtual Double_t Pz() const { AliFatal("Not implemented"); return 0; }
69     virtual Double_t P() const { AliFatal("Not implemented"); return 0; }
70     virtual Bool_t   PxPyPz(Double_t[3]) const { AliFatal("Not implemented"); return 0; }
71         
72     virtual Double_t Xv() const { AliFatal("Not implemented"); return 0; }
73     virtual Double_t Yv() const { AliFatal("Not implemented"); return 0; }
74     virtual Double_t Zv() const { AliFatal("Not implemented"); return 0; }
75     virtual Bool_t   XvYvZv(Double_t[3]) const { AliFatal("Not implemented"); return 0; }
76         
77     virtual Double_t OneOverPt()  const { AliFatal("Not implemented"); return 0; }
78
79     virtual Double_t Theta()      const { AliFatal("Not implemented"); return 0; }
80         
81         
82     virtual Double_t E()          const { AliFatal("Not implemented"); return 0; }
83     virtual Double_t M()          const { AliFatal("Not implemented"); return 0; }
84     
85
86     virtual Double_t Y()          const { AliFatal("Not implemented"); return 0; }
87     
88     virtual Short_t Charge()      const { return fCharge;}
89    
90     // PID
91     virtual Int_t   PdgCode()     const { AliFatal("Not implemented"); return 0; }      
92     virtual const Double_t *PID() const { AliFatal("Not implemented"); return 0; }
93         
94         
95         
96     
97 private:
98     Double_t fEta;       // eta
99     Double_t fPhi;       // phi
100     Double_t fpT;        // pT
101     Int_t fMcLabel;      //mclabel
102     Int_t fid;           // track ID
103     Double_t fImpPar;    // impact parameter
104     Bool_t fCheckSoftPi; // check if the track is compatible with a softpion from D*
105     Short_t fCharge;     // charge of the associated track
106     Double_t fInvMass;   // Invariant mass of Dmeson
107     int fPtBin;          // Ptbin of Dmesons
108     int fOriginMother;   //  Holds the origin motherquark (process)
109
110     
111     ClassDef(AliReducedParticle, 4); // class which contains only quantities requires for this analysis to reduce memory consumption for event mixing
112 };
113 #endif