PandaRoot
PndEmcXtal.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 //-----------------------------------------------------------------------
14 // File and Version Information:
15 // $Id: $
16 //
17 // Description:
18 // PndEmcXtal Class -
19 //
20 // Software developed for the BaBar Detector at the SLAC B-Factory.
21 // Adapted for the PANDA experiment at GSI
22 //
23 // Author List:
24 // Gautier Hamel de Monchenault - CEN Saclay & Lawrence Berkeley Lab
25 // Stephen J. Gowdy University of Edinburgh
26 // Dima Melnichuk - adaption for PANDA
27 //
28 // Copyright Information:
29 // Copyright (C) 1996 Lawrence Berkeley Laboratory
30 // Copyright (C) 1996 CEA - Centre d'Etude de Saclay
31 //------------------------------------------------------------------------
32 //#pragma once
33 #ifndef PNDEMCXTAL_H
34 #define PNDEMCXTAL_H
35 
36 //#include <vector>
37 #include "TVector3.h"
38 #include "TGeoArb8.h"
39 #include "TGeoMatrix.h"
40 
42 
47 class PndEmcXtal : public TObject {
48 
49  public:
50  // Constructors
51  PndEmcXtal();
52  PndEmcXtal(const PndEmcTwoCoordIndex *id, const TGeoTrap &trap, const TVector3 &pos, const TGeoRotation &rot);
53 
54  // Destructor
55  virtual ~PndEmcXtal();
56 
57  // Operators
58  virtual bool operator==(const PndEmcXtal &compare) const;
59  virtual bool operator<(const PndEmcXtal &compare) const;
60  // Accessors (const)
61  const PndEmcTwoCoordIndex *myIndex() const;
62  const TVector3 &centre() const;
63  const TVector3 &frontCentre() const;
64  const TVector3 &normalToFrontFace() const;
65  const TVector3 &axisVector() const;
66  const TGeoTrap &geometry() const;
67  const TGeoRotation &rotation() const;
68 
69  double npAngle() const;
70 
71  private:
72  const PndEmcTwoCoordIndex *fTCIIndex;
73  double fLength; // length of the crystal
74  const TGeoTrap fTrap;
75  const TGeoRotation fRotation;
76  TVector3 fCentre;
77  TVector3 fFrontCentre;
78  TVector3 fNormalToFrontFace;
79  TVector3 fAxis;
80 
81  PndEmcXtal(const PndEmcXtal &L);
82  PndEmcXtal &operator=(const PndEmcXtal &) { return *this; }
83 
84  ClassDef(PndEmcXtal, 1)
85 };
86 
87 #endif // PNDEMCXTAL_HH
const TVector3 & normalToFrontFace() const
const TVector3 & axisVector() const
represents coordinates of one crystal
Definition: PndEmcXtal.h:47
stores crystal index coordinates (x,y) or (theta,phi)
const PndEmcTwoCoordIndex * myIndex() const
virtual bool operator<(const PndEmcXtal &compare) const
const TVector3 & frontCentre() const
const TGeoRotation & rotation() const
virtual ~PndEmcXtal()
const TVector3 & centre() const
double npAngle() const
virtual bool operator==(const PndEmcXtal &compare) const
const TGeoTrap & geometry() const