PandaRoot
RhoEventInfo.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 #ifndef RHOEVENTINFO_H
14 #define RHOEVENTINFO_H
15 // //
17 // RhoEventInfo //
18 // //
19 // Contains and provides access to summary information in the event //
20 // useful for analysis //
21 // //
22 // Author List: //
23 // Marcel Kunze, RUB, Dec. 2k //
24 // Copyright (C) 1999-2001, Ruhr-University Bochum. //
25 // Ralf Kliemt, HIM/GSI Feb.2013 (Cleanup & Restructuring) //
26 // //
28 
29 //----------------------
30 // Base Class Headers --
31 //----------------------
32 #include "TObject.h"
33 #include "TVector3.h"
34 #include "RhoCandidate.h"
35 #include "RhoVector3Err.h"
36 
37 #include "RhoEventShape.h"
38 
39 // ---------------------
40 // -- Class Interface --
41 // ---------------------
42 
43 class RhoEventInfo : public TObject {
44 
45  //--------------------
46  // Instance Members --
47  //--------------------
48 
49  public:
50  // Constructors
51  RhoEventInfo();
52  // there should eventually be a constructor that takes all the
53  // various data items
54 
55  // Destructor
56  virtual ~RhoEventInfo();
57 
58  // Operations
59  virtual void PrintOn(std::ostream &o = std::cout) const;
60 
61  // accessors to contained information
62 
63  const TLorentzVector &CmFrame() const { return fCmFrame; }
64 
65  const RhoVector3Err &BeamSpot() const { return fBeamSpot; }
66  const RhoVector3Err PrimaryVertex() const;
67  const RhoVector3Err *PrimaryVtx() const { return fPrimaryVertex; }
68  const TVector3 *MCImpactPoint() const { return fMCIP; }
69 
70  const RhoEventShape *EventShape() const { return fEventShape; }
71 
72  // Function to set fPrimaryVertex
73  void SetPrimaryVertex(RhoVector3Err *inVtx);
74  void SetIPTruth(const TLorentzVector &inVtx);
75  void SetIPTruth(const TVector3 &inVtx);
76  void SetBeamSpot(const RhoVector3Err &inVtx) { fBeamSpot = inVtx; }
77  void SetCmFrame(const TLorentzVector &cmf) { fCmFrame = cmf; }
78 
79  void SetEventShape(RhoEventShape *eventShape);
80 
81  private:
82  TLorentzVector fCmFrame;
83  TVector3 *fMCIP;
84  RhoVector3Err fBeamSpot;
85  RhoVector3Err *fPrimaryVertex;
86 
87  RhoEventShape *fEventShape;
88 
89  public:
90  ClassDef(RhoEventInfo, 1) // Summary information in the event
91 };
92 
93 // standalone print
94 std::ostream &operator<<(std::ostream &o, const RhoEventInfo &);
95 
96 #endif
const RhoEventShape * EventShape() const
Definition: RhoEventInfo.h:70
virtual void PrintOn(std::ostream &o=std::cout) const
const RhoVector3Err * PrimaryVtx() const
Definition: RhoEventInfo.h:67
const RhoVector3Err & BeamSpot() const
Definition: RhoEventInfo.h:65
const TVector3 * MCImpactPoint() const
Definition: RhoEventInfo.h:68
void SetPrimaryVertex(RhoVector3Err *inVtx)
const RhoVector3Err PrimaryVertex() const
void SetCmFrame(const TLorentzVector &cmf)
Definition: RhoEventInfo.h:77
void SetIPTruth(const TLorentzVector &inVtx)
void SetBeamSpot(const RhoVector3Err &inVtx)
Definition: RhoEventInfo.h:76
void SetEventShape(RhoEventShape *eventShape)
virtual ~RhoEventInfo()
std::ostream & operator<<(std::ostream &o, const RhoEventInfo &)
const TLorentzVector & CmFrame() const
Definition: RhoEventInfo.h:63