FairRoot/PandaRoot
PndEmcHit.h
Go to the documentation of this file.
1 // -------------------------------------------------------------------------
2 // ----- PndEmcHit header file -----
3 // ----- Created 14/08/06 by S.Spataro -----
4 // -------------------------------------------------------------------------
5 
12 //#pragma once
13 #ifndef PNDEMCHIT_H
14 #define PNDEMCHIT_H
15 
16 #include "FairHit.h"
17 #include "TMath.h"
18 #include <vector>
19 
20 class PndEmcPoint;
21 
26 class PndEmcHit : public FairHit
27 {
28  public:
29 
30 
32  PndEmcHit();
33 
34  PndEmcHit(Int_t trackid, Int_t id, Float_t energy, Float_t time, Float_t X, Float_t Y, Float_t Z);
35 
36  PndEmcHit(Int_t trackid, Int_t id, Float_t energy, Float_t time, Float_t X, Float_t Y, Float_t Z, std::vector<PndEmcPoint*> PointList);
37 
38  PndEmcHit(Int_t trackid, Int_t id, Float_t energy, Float_t time, Float_t X, Float_t Y, Float_t Z, std::vector<Int_t> McTruth, FairMultiLinkedData enteringTrack, FairMultiLinkedData exitingTrack);
39 
41  PndEmcHit(const PndEmcHit &);
42 
44  virtual ~PndEmcHit();
45 
47  virtual void Print(const Option_t* opt ="") const;
48 
50  virtual void SetEnergy(Double32_t energy) { fEnergy = energy ;};
51  virtual void SetTime(Double32_t time) { fTimeStamp = time * 1E9;};
52 
54  virtual Double_t GetEnergy() const { return fEnergy ;};
55  virtual Double_t GetTime() const { return fTimeStamp / 1E9;};
56  Float_t GetTheta() const { return fX == 0.0 && fY == 0.0 && fZ == 0.0 ? 0.0 : TMath::ATan2(sqrt(fX*fX+fY*fY),fZ)*TMath::RadToDeg() ;};
57  Float_t GetPhi() const { return fX == 0.0 && fY == 0.0 ? 0.0 : TMath::ATan2(fY,fX)*TMath::RadToDeg() ;};
58  Short_t GetModule() const { return (fDetectorID/100000000) ;};
59  Short_t GetRow() const { return ((fDetectorID/1000000)%100);};
60  Short_t GetCrystal() const { return (fDetectorID%10000) ;};
61  Short_t GetCopy() const { return ((fDetectorID/10000)%100) ;};
62 
63  Short_t GetXPad() const;
64  Short_t GetYPad() const;
65  FairMultiLinkedData GetTrackEntering() const { return fTrackEntering;}
66  FairMultiLinkedData GetTrackExiting() const { return fTrackExiting;}
67 
68  std::vector<PndEmcPoint*> &GetPointList() {return fPointList;}
69  const std::vector<Int_t> &GetMcList() {return fMcList;}
70 
71  protected:
72  Double32_t fEnergy; // hit amplitude
73 
74 
75  std::vector<Int_t> fMcList; // Mc TrackIndex contributed to hit
76  std::vector<PndEmcPoint*> fPointList; // points contributed to hit
77  FairMultiLinkedData fTrackEntering; // Links to tracks entering the crystal
78  FairMultiLinkedData fTrackExiting; // Links to tracks exiting the crystal
79 
80  ClassDef(PndEmcHit,3)
81 };
82 
83 #endif //PNDEMCHIT_H
represents a mc hit in an emc crystal
Definition: PndEmcPoint.h:19
Short_t GetCrystal() const
Definition: PndEmcHit.h:60
Short_t GetXPad() const
Definition: PndEmcHit.cxx:87
Float_t GetPhi() const
Definition: PndEmcHit.h:57
FairMultiLinkedData GetTrackEntering() const
Definition: PndEmcHit.h:65
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:29
FairMultiLinkedData GetTrackExiting() const
Definition: PndEmcHit.h:66
Double_t fX
Definition: PndCaloDraw.cxx:34
FairMultiLinkedData fTrackExiting
Definition: PndEmcHit.h:78
virtual ~PndEmcHit()
Definition: PndEmcHit.cxx:73
Float_t GetTheta() const
Definition: PndEmcHit.h:56
double Y
Definition: anaLmdDigi.C:68
Double_t fZ
Definition: PndCaloDraw.cxx:34
const std::vector< Int_t > & GetMcList()
Definition: PndEmcHit.h:69
std::vector< PndEmcPoint * > & GetPointList()
Definition: PndEmcHit.h:68
Short_t GetYPad() const
Definition: PndEmcHit.cxx:120
Double_t
std::vector< PndEmcPoint * > fPointList
Definition: PndEmcHit.h:76
virtual void Print(const Option_t *opt="") const
Definition: PndEmcHit.cxx:78
virtual Double_t GetEnergy() const
Definition: PndEmcHit.h:54
static T ATan2(const T &y, const T &x)
virtual void SetEnergy(Double32_t energy)
Definition: PndEmcHit.h:50
std::vector< Int_t > fMcList
Definition: PndEmcHit.h:75
virtual Double_t GetTime() const
Definition: PndEmcHit.h:55
double X
Definition: anaLmdDigi.C:68
represents the deposited energy of one emc crystal from simulation
Definition: PndEmcHit.h:26
Double_t fY
Definition: PndCaloDraw.cxx:34
Short_t GetRow() const
Definition: PndEmcHit.h:59
FairMultiLinkedData fTrackEntering
Definition: PndEmcHit.h:77
double Z
Definition: anaLmdDigi.C:68
Short_t GetCopy() const
Definition: PndEmcHit.h:61
virtual void SetTime(Double32_t time)
Definition: PndEmcHit.h:51
Short_t GetModule() const
Definition: PndEmcHit.h:58
Double32_t fEnergy
Definition: PndEmcHit.h:72
Double_t energy
Definition: plot_dirc.C:15