]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/trigger/AliHLTTriggerDetectorGeom.h
make generation of monitoring trigger an optional feature
[u/mrichter/AliRoot.git] / HLT / trigger / AliHLTTriggerDetectorGeom.h
1 #ifndef ALIHLTTRIGGERDETECTORGEOM_H
2 #define ALIHLTTRIGGERDETECTORGEOM_H
3
4 //* This file is property of and copyright by the ALICE HLT Project        * 
5 //* ALICE Experiment at CERN, All rights reserved.                         *
6 //* See cxx source for full Copyright notice                               *
7
8 /// @file   AliHLTTriggerDetectorGeom.h
9 /// @author Oystein Djuvsland
10 /// @date   2009-10-08
11 /// @brief  HLT class describing simple geometry of (sub-)detectors.
12 ///         Used for the AliHLTTriggerBarrelGeomMultiplicity classes
13
14
15 #include "TString.h"
16 #include <ostream>
17 #include "TObject.h"
18 #include "TString.h"
19 #include <ostream>
20 #include "TObject.h"
21
22 /**
23  * @class  AliHLTTriggerDetectorGeom
24  * HLT class describing simple geometry cuts of (sub-)detectors.
25  * Used for the AliHLTTriggerBarrelGeomMultiplicity class
26  *
27  * \ingroup alihlt_trigger
28  */
29
30 class AliHLTTriggerDetectorGeom : public TObject
31 {
32 public: 
33   
34   /** Default constructor */
35   AliHLTTriggerDetectorGeom();   // Default constructor
36
37   /** Destructor */
38   virtual ~AliHLTTriggerDetectorGeom(); // Destructor
39
40   /**
41    * Set the minimum in eta
42    * @param etaMin is the minumum
43    */
44   void SetEtaMin(Double_t etaMin) { fEtaMin = etaMin; } // Set min in eta
45
46   /**
47    * Set the maximum in eta
48    * @param etaMax is the maxumum
49    */
50   void SetEtaMax(Double_t etaMax) { fEtaMax = etaMax; } // Set max in eta
51
52   /**
53    * Set the minimum in phi
54    * @param phiMin is the minumum
55    */
56   void SetPhiMin(Double_t phiMin) { fPhiMin = phiMin; } // Set min in phi
57
58   /**
59    * Set the maximum in phi
60    * @param phiMax is the maxumum
61    */
62   void SetPhiMax(Double_t phiMax) { fPhiMax = phiMax; } // Set max in phi
63
64   /** 
65    * Set the initial point describing the plane
66    * @param point is the point
67    */
68   void SetInitialPoint(Double_t *point); // Set initial point
69
70   /** 
71    * Set the vector describing the plane
72    * @param nVector is a the vector
73    */
74   void SetNormVector(Double_t *nVector); // Set normal vector
75
76   /**
77    * Set the name of the (sub-)detector
78    * @param name is the name
79    */
80   void SetDetName(TString &name) { fName = name; } // Set name
81
82   /** 
83    * Get the minimum in eta (should be moved...)
84    */
85   Double_t EtaMin() { return fEtaMin; }
86
87   /** 
88    * Get the maximum in eta (should be moved...)
89    */
90   Double_t EtaMax() { return fEtaMax; }
91
92   /** 
93    * Get the minimum in phi (should be moved...)
94    */
95   Double_t PhiMin() { return fPhiMin; }
96
97   /** 
98    * Get the maximum in phi (should be moved...)
99    */
100   Double_t PhiMax() { return fPhiMax; }
101
102   /** 
103    * Get the initial point
104    */
105   void GetInitialPoint(Double_t *point);
106
107   /**
108    * Get the normal vector
109    */
110   void GetNormVector(Double_t *vec);
111   
112   /** 
113    * Get the detector name
114    */
115   TString DetName() { return fName; }
116
117   /** 
118    * Print the geometry
119    */
120   void PrintDetectorGeom(std::ostream &out);
121
122   /** 
123    * Abstract method to check if a point is in the 
124    * acceptance of the geometry 
125    */
126   virtual Bool_t IsInDetector(Double_t point[3]) = 0;
127
128 protected:
129
130   /** The minimum in eta */
131   Double_t fEtaMin;   // The minimum in eta 
132
133   /** The maximum in eta */
134   Double_t fEtaMax;   // The maximum in eta 
135
136   /** The minimum in phi */
137   Double_t fPhiMin;   // The minimum in phi 
138
139   /** The maximum in phi */
140   Double_t fPhiMax;   // The maximum in phi 
141
142   /** Name of the (sub-)detector */
143   TString fName;      // Name of the (sub-)detector 
144   
145 private: 
146
147   /** 
148    * The point which together with a normal vector 
149    * defines the plane of the (sub-)detector
150    */
151   Double_t fInitalPoint[3]; // Point representing the plane
152
153   /** 
154    * The normal vector which together with a point
155    * defines the plane of the (sub-)detector
156    */
157   Double_t fNormVector[3]; // Normal vector representing the plane
158
159   ClassDef(AliHLTTriggerDetectorGeom, 1);
160
161 };
162
163 #endif