]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/trigger/AliD0Trigger.h
ed5af693db74682cafebedd0b3baec89a8e7e20a
[u/mrichter/AliRoot.git] / HLT / trigger / AliD0Trigger.h
1 #ifndef AliD0_Trigger
2 #define AliD0_Trigger
3
4 #include "AliL3RootTypes.h"
5 #include <math.h>
6 #include <TObject.h>
7 #include <TObjArray.h>
8
9 class AliITStrackV2;
10
11 class AliD0Trigger : public TObjArray{
12  
13  private:
14   AliITStrackV2 * posTrack; //!
15   AliITStrackV2 * negTrack; //!
16   
17   double momenta[6];
18   double bestV0[3],primaryVertex[3];
19   double cutV0low, cutV0high, cutInvMass, cutPointAngle, cutd0d0,cutCosThetaStar,cutpTchild;
20   double Bfield;
21
22  public:
23   AliD0Trigger();
24   AliD0Trigger(double c[7],double Bfield,double pv[3]);
25   AliD0Trigger(AliITStrackV2 * posT, AliITStrackV2 * negT);
26   AliD0Trigger(double c[7],double Bfield,double pv[3],AliITStrackV2 * posT, AliITStrackV2 * negT);
27   virtual ~AliD0Trigger();
28
29   void SetTracks(AliITStrackV2 * posT, AliITStrackV2 * negT);
30   void SetV0(double v[3]);
31   bool FindInvMass();
32   bool FindV0();
33   bool FindV0offline(double v[3]);
34   void FindMomentaAtVertex();
35   void FindMomentaOffline();
36   bool PointingAngle();
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();
46   //double Eta(){return atanh(cos(atan(Pt()/Pz())));}
47   double Eta(){return 0.5*(log((P()+Pz())/(P()-Pz())));}
48   bool pTchild();
49
50   ClassDef(AliD0Trigger,1) 
51
52 };
53
54 #endif