5a31e9df |
1 | #ifndef AliD0_Trigger |
2 | #define AliD0_Trigger |
3 | |
4 | #include "AliL3RootTypes.h" |
de3c3890 |
5 | #include <math.h> |
68772666 |
6 | #include <TObject.h> |
7 | #include <TObjArray.h> |
5a31e9df |
8 | |
9 | class AliITStrackV2; |
10 | |
68772666 |
11 | class AliD0Trigger : public TObjArray{ |
5a31e9df |
12 | |
13 | private: |
14 | AliITStrackV2 * posTrack; //! |
15 | AliITStrackV2 * negTrack; //! |
16 | |
17 | double momenta[6]; |
18 | double bestV0[3],primaryVertex[3]; |
0bd0c1ef |
19 | double cutV0low, cutV0high, cutInvMass, cutPointAngle, cutd0d0,cutCosThetaStar,cutpTchild; |
5a31e9df |
20 | double Bfield; |
21 | |
22 | public: |
23 | AliD0Trigger(); |
0bd0c1ef |
24 | AliD0Trigger(double c[7],double Bfield,double pv[3]); |
5a31e9df |
25 | AliD0Trigger(AliITStrackV2 * posT, AliITStrackV2 * negT); |
68772666 |
26 | AliD0Trigger(double c[7],double Bfield,double pv[3],AliITStrackV2 * posT, AliITStrackV2 * negT); |
5a31e9df |
27 | virtual ~AliD0Trigger(); |
28 | |
29 | void SetTracks(AliITStrackV2 * posT, AliITStrackV2 * negT); |
de3c3890 |
30 | void SetV0(double v[3]); |
5a31e9df |
31 | bool FindInvMass(); |
32 | bool FindV0(); |
0bd0c1ef |
33 | bool FindV0offline(double v[3]); |
5a31e9df |
34 | void FindMomentaAtVertex(); |
0bd0c1ef |
35 | void FindMomentaOffline(); |
5a31e9df |
36 | bool PointingAngle(); |
0bd0c1ef |
37 | void SetMomenta(double m[6]); |
38 | bool d0d0(); |
39 | bool CosThetaStar(); |
40 | double P(){return sqrt(Pt()*Pt()+Pz()*Pz());} |
41 | double Pt(){return sqrt(Px()*Px()+Py()*Py());} |
42 | double Px(){return (momenta[0]+momenta[3]);} |
43 | double Py(){return (momenta[1]+momenta[4]);} |
44 | double Pz(){return (momenta[2]+momenta[5]);} |
45 | double Energy(); |
de3c3890 |
46 | //double Eta(){return atanh(cos(atan(Pt()/Pz())));} |
47 | double Eta(){return 0.5*(log((P()+Pz())/(P()-Pz())));} |
0bd0c1ef |
48 | bool pTchild(); |
49 | |
5a31e9df |
50 | ClassDef(AliD0Trigger,1) |
51 | |
52 | }; |
53 | |
54 | #endif |