FairRoot/PandaRoot
RhoVertexSelectorBase.h
Go to the documentation of this file.
1 #ifndef RHOVERTEXSELECTORBSE_H
2 #define RHOVERTEXSELECTORBSE_H
3 // //
5 // RhoVertexSelectorBase //
6 // //
7 // Abstract Selector classes for vertexing //
8 // //
9 // Author: Marcel Kunze, RUB, July 99 //
10 // Copyright (C) 1999-2001, Ruhr-University Bochum. //
11 // Ralf Kliemt, HIM/GSI Feb.2013 (Cleanup & Restructuring) //
12 // //
14 
15 #include <iostream>
16 
17 #include "TNamed.h"
18 #include "TVector3.h"
19 
20 class RhoCandidate;
21 class RhoCandList;
22 
23 class RhoVertexSelectorBase : public TNamed
24 {
25 
26  public:
27 
28  //Constructor
29  RhoVertexSelectorBase ( const char* name="RhoVertexSelectorBase" );
30  //Destructor
31  virtual ~RhoVertexSelectorBase();
32 
33  //operations
34  virtual Bool_t Accept ( RhoCandidate*,RhoCandidate* ) = 0;
36  return kTRUE;
37  };
39  return kTRUE;
40  };
42  return kTRUE;
43  };
45  fDoca = d;
46  }
47  void SetAngle ( Double_t d ) {
48  fVtxip = d;
49  }
50  void SetRadius ( Double_t r1, Double_t r2 = 1.E8 ) {
51  fRmin = r1;
52  fRmax = r2;
53  }
54  void SetPrimaryVertex ( TVector3 x ) {
55  fPrimaryVertex = x;
56  }
57  TVector3 GetVertex() {
58  return fVertex;
59  }
61  return fActualDoca;
62  }
64  return fActualVtxip;
65  }
66  virtual void PrintOn ( std::ostream& o=std::cout ) const;
67 
68  const TVector3& GetMomentumA() const {
69  return fMomA;
70  }
71  const TVector3& GetMomentumB() const {
72  return fMomB;
73  }
74  TVector3 GetMomentum() const {
75  return fMomA+fMomB;
76  }
77  Double_t GetRadius() const {
78  return fActualR;
79  }
80  void Combine ( RhoCandList& in1,RhoCandList& in2,RhoCandList& out );
81 
82  protected:
83  Double_t fDoca; // Distance of closest approach
84  Double_t fVtxip; // Angle between momentum and (IP->Vertex)
85  Double_t fRmin; // Inner radius of acceptance
86  Double_t fRmax; // Outer radius of acceptance
87  Double_t fActualR; // Calculated distance to IP
88  Double_t fActualVtxip; // Calculated angle
89  Double_t fActualDoca; // Calculated doca
90  TVector3 fVertex; // Reconstructed vertex
91  TVector3 fPrimaryVertex; // Origin
92  TVector3 fMomA,fMomB; // P3 of the two candidates at poca
93 
94  public:
95  ClassDef ( RhoVertexSelectorBase,1 ) // Vertexing base class
96 };
97 
99 
100 #endif
void Combine(RhoCandList &in1, RhoCandList &in2, RhoCandList &out)
TObjArray * d
virtual Bool_t Accept(RhoCandidate *, RhoCandidate *, RhoCandidate *)
RhoVertexSelectorBase(const char *name="RhoVertexSelectorBase")
void SetRadius(Double_t r1, Double_t r2=1.E8)
double r1
void SetDistanceOfClosestApproach(Double_t d)
TVector3 GetMomentum() const
const TVector3 & GetMomentumA() const
Double_t
std::ostream & operator<<(std::ostream &o, const RhoVertexSelectorBase &)
Double_t GetRadius() const
TFile * out
Definition: reco_muo.C:20
virtual Bool_t Accept(RhoCandidate *, RhoCandidate *, RhoCandidate *, RhoCandidate *, RhoCandidate *)
TString name
Double_t x
virtual Bool_t Accept(RhoCandidate *, RhoCandidate *, RhoCandidate *, RhoCandidate *)
virtual Bool_t Accept(RhoCandidate *, RhoCandidate *)=0
void SetPrimaryVertex(TVector3 x)
double r2
const TVector3 & GetMomentumB() const
virtual void PrintOn(std::ostream &o=std::cout) const