Fixes for inconsistent types in BinarySearch
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveMUONChamber.h
CommitLineData
d810d0de 1// $Id$
fafff680 2// Main authors: Matevz Tadel & Alja Mrak-Tadel & Bogdan Vulpescu: 2006, 2007
d810d0de 3
4/**************************************************************************
5 * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
6 * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for *
51346b82 7 * full copyright notice. *
d810d0de 8 **************************************************************************/
3626c858 9#ifndef ALIEVE_MUONChamber_H
10#define ALIEVE_MUONChamber_H
11
84aff7a4 12#include <TEveElement.h>
13#include <TEveQuadSet.h>
14#include <TEvePointSet.h>
3626c858 15
16#include <TNamed.h>
17#include <TAtt3D.h>
18#include <TAttBBox.h>
19
3626c858 20
d810d0de 21class AliEveMUONData;
22class AliEveMUONChamberData;
23class AliEveMUONChamberEditor;
24class AliEveMUONChamberGL;
3626c858 25
d810d0de 26class AliEveMUONChamber : public TEveElement,
fd31e9de 27 public TNamed,
28 public TAtt3D,
29 public TAttBBox
3626c858 30{
d810d0de 31 friend class AliEveMUONChamberGL;
32 friend class AliEveMUONChamberEditor;
3626c858 33
fd31e9de 34private:
d810d0de 35 AliEveMUONChamber(const AliEveMUONChamber&); // Not implemented
36 AliEveMUONChamber& operator=(const AliEveMUONChamber&); // Not implemented
3626c858 37
fd31e9de 38protected:
3626c858 39 void UpdateQuads();
40
fd31e9de 41 AliEveMUONData *fMUONData; // data for the current event
3626c858 42 Color_t fFrameColor; // main coloring
43 UInt_t fRTS; //! Rendering Time Stamp
44 Int_t fChamberID; // number of the chamber, 0 to 13
84aff7a4 45 TEveQuadSet fQuadSet1; // 1st cathode plane digits
46 TEveQuadSet fQuadSet2; // 2nd cathode plane digits
47 TEvePointSet fPointSet1; // reconstructed points (1st cathode)
48 TEvePointSet fPointSet2; // simulation hits
3626c858 49 Short_t fThreshold; // digit amplitude threshold
50 Int_t fMaxVal; // digit amplitude maximum value
eadce74d 51 Int_t fClusterSize; // cluster point size
52 Int_t fHitSize; // hit point size
3626c858 53
54 void SetupColor(Int_t val, UChar_t* pix) const;
55
fd31e9de 56 mutable UChar_t *fColorArray; // color-cache
57
eadce74d 58 void ClearColorArray();
59 void SetupColorArray() const;
3626c858 60 UChar_t* ColorFromArray(Int_t val) const;
61 void ColorFromArray(Int_t val, UChar_t* pix) const;
62 Int_t ColorIndex(Int_t val) const;
63
64public:
65
d810d0de 66 AliEveMUONChamber(Int_t id, const Text_t* n = "AliEveMUONChamber", const Text_t* t = 0);
67 virtual ~AliEveMUONChamber();
3626c858 68
eadce74d 69 virtual void ComputeBBox();
70 virtual void Paint(Option_t* option = "");
3626c858 71 virtual UInt_t IncRTS() { return ++fRTS; };
72 virtual Bool_t CanEditMainColor() { return kTRUE; }
73
d810d0de 74 void SetDataSource(AliEveMUONData *data);
3626c858 75 void SetChamberID(Int_t id);
76 void SetFrameColor(Color_t col) { fFrameColor = col; IncRTS(); };
d810d0de 77 AliEveMUONData* GetData() const { return fMUONData; };
78 AliEveMUONChamberData* GetChamberData() const;
3626c858 79 Int_t GetID() const { return fChamberID; };
eadce74d 80 void SetThreshold(Short_t t);
81 void SetMaxVal(Int_t mv);
82 void SetClusterSize(Int_t size);
83 void SetHitSize(Int_t size);
3626c858 84
d810d0de 85 ClassDef(AliEveMUONChamber,1); // Visualisation of the MUON chambers
3626c858 86
87};
88
d810d0de 89inline UChar_t* AliEveMUONChamber::ColorFromArray(Int_t val) const
3626c858 90{
91 if(val < fThreshold) val = fThreshold;
92 if(val > fMaxVal) val = fMaxVal;
93 return fColorArray + 4 * (val - fThreshold);
94}
95
d810d0de 96inline void AliEveMUONChamber::ColorFromArray(Int_t val, UChar_t* pix) const
3626c858 97{
98 UChar_t* c = ColorFromArray(val);
99 pix[0] = c[0]; pix[1] = c[1]; pix[2] = c[2]; pix[3] = c[3];
100}
101
3626c858 102#endif