-// $Id$
-// Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
-
/**************************************************************************
* Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
* See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for *
* full copyright notice. *
**************************************************************************/
-#include "AliEveTOFSector.h"
-#include <TEveManager.h>
+// $Id$
+// Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
+
+//
+// Class to visualize the TOF digit information
+// in TOF sector frame
+//
+// Author: A. De Caro (email: decaro@sa.infn.t)
+//
+
+#include <TGeoManager.h>
+#include <TClonesArray.h>
+#include <TTree.h>
+
+#include <TEveTrans.h>
#include <AliTOFdigit.h>
#include <AliTOFGeometry.h>
-#include <TStyle.h>
-
-using namespace std;
+#include "AliEveTOFSector.h"
-Bool_t AliEveTOFSector::fgStaticInitDone = kFALSE;
+Bool_t AliEveTOFSector::fgStaticInitDone = kFALSE;
TEveFrameBox* AliEveTOFSector::fgTOFsectorFrameBox = 0;
TEveRGBAPalette* AliEveTOFSector::fgTOFsectorPalette = 0;
fSector(-1),
fDx(0), fDy(0), fDz(0),
fAutoTrans (kTRUE),
- //fPlateFlag0(kTRUE), fPlateFlag1(kTRUE), fPlateFlag2(kTRUE), fPlateFlag3(kTRUE), fPlateFlag4(kTRUE),
- fThreshold (5), fMaxVal (80),
+ //fMinTime (0), fMaxTime (0),
+ fThreshold (5), fMaxVal (80),
fSectorID (0),
+ //fPlateFlag0(kTRUE), fPlateFlag1(kTRUE), fPlateFlag2(kTRUE), fPlateFlag3(kTRUE), fPlateFlag4(kTRUE),
+ fPlateFlag (0x0),
+ //fFrameColor(4),
+ //fRnrFrame (kFALSE),
fGeoManager(0)
{
+ // default ctr
+
fPlateFlag = new Bool_t[5];
for (Int_t ii=0; ii<5; ii++) fPlateFlag[ii]=kTRUE;
- fGeoManager = (TGeoManager*)gEve->GetGeometry("$REVESYS/alice-data/alice_fullgeo.root");
+ //fGeoManager = AliEveEventManager::AssertGeometry();
if (!fGeoManager) {
printf("ERROR: no TGeo\n");
}
fSector(nSector),
fDx(0), fDy(0), fDz(0),
fAutoTrans (kTRUE),
- //fPlateFlag0(kTRUE), fPlateFlag1(kTRUE), fPlateFlag2(kTRUE), fPlateFlag3(kTRUE), fPlateFlag4(kTRUE),
- fThreshold (5), fMaxVal (80),
+ //fMinTime (0), fMaxTime (0),
+ fThreshold (5), fMaxVal (80),
fSectorID (nSector),
+ //fPlateFlag0(kTRUE), fPlateFlag1(kTRUE), fPlateFlag2(kTRUE), fPlateFlag3(kTRUE), fPlateFlag4(kTRUE),
+ fPlateFlag (0x0),
+ //fFrameColor(4),
+ //fRnrFrame (kFALSE),
fGeoManager(localGeoManager)
{
+ // ctr
+
fPlateFlag = new Bool_t[5];
for (Int_t ii=0; ii<5; ii++) fPlateFlag[ii]=kTRUE;
fSector(nSector),
fDx(0), fDy(0), fDz(0),
fAutoTrans (kTRUE),
- //fPlateFlag0(kTRUE), fPlateFlag1(kTRUE), fPlateFlag2(kTRUE), fPlateFlag3(kTRUE), fPlateFlag4(kTRUE),
+ //fMinTime (0), fMaxTime (0),
fThreshold (5), fMaxVal (80),
fSectorID (nSector),
+ //fPlateFlag0(kTRUE), fPlateFlag1(kTRUE), fPlateFlag2(kTRUE), fPlateFlag3(kTRUE), fPlateFlag4(kTRUE),
+ fPlateFlag (0x0),
+ //fFrameColor(4),
+ //fRnrFrame (kFALSE),
fGeoManager(localGeoManager)
{
+ // ctr
+
fPlateFlag = new Bool_t[5];
for (Int_t ii=0; ii<5; ii++) fPlateFlag[ii]=kTRUE;
fSector(nSector),
fDx(0), fDy(0), fDz(0),
fAutoTrans (kTRUE),
- //fPlateFlag0(kTRUE), fPlateFlag1(kTRUE), fPlateFlag2(kTRUE), fPlateFlag3(kTRUE), fPlateFlag4(kTRUE),
+ //fMinTime (0), fMaxTime (0),
fThreshold (5), fMaxVal (80),
fSectorID (nSector),
+ //fPlateFlag0(kTRUE), fPlateFlag1(kTRUE), fPlateFlag2(kTRUE), fPlateFlag3(kTRUE), fPlateFlag4(kTRUE),
+ fPlateFlag (0x0),
+ //fFrameColor(4),
+ //fRnrFrame (kFALSE),
fGeoManager(localGeoManager)
{
+ // ctr
+
fPlateFlag = new Bool_t[5];
for (Int_t ii=0; ii<5; ii++) fPlateFlag[ii]=kTRUE;
AliEveTOFSector::~AliEveTOFSector()
{
+
+ // dtr
+
/*
fGeoManager = 0x0;
delete fGeoManager;
/* ************************************************************************ */
void AliEveTOFSector::InitStatics()
{
+ //
+ // To initialize statistic variables
+ //
+
if (fgStaticInitDone) return;
Float_t dx = 124.5;
Float_t dz = 29.;
Float_t dy = 370.6*2.;
fgTOFsectorFrameBox = new TEveFrameBox();
-
fgTOFsectorFrameBox->SetAABox(-dx*0.5, -dy*0.5, -dz*0.5, dx, dy, dz);
- fgTOFsectorFrameBox->SetFrameColor((Color_t) 32);//31);
+ fgTOFsectorFrameBox->SetFrameColor(Color_t(32));
+ fgTOFsectorFrameBox->IncRefCount();
//fgTOFsectorPalette = new TEveRGBAPalette(0, 2048); // TOT
- fgTOFsectorPalette = new TEveRGBAPalette(0, 8192/*1024*/); // TDC
- fgTOFsectorPalette->SetLimits(0, 8192);
+ //fgTOFsectorPalette->SetLimits(0, 2048);
+ //fgTOFsectorPalette = new TEveRGBAPalette(0, 8192); // TDC
+ fgTOFsectorPalette = new TEveRGBAPalette(0, 100000); // TDC
+ fgTOFsectorPalette->SetOverflowAction(2);
+ fgTOFsectorPalette->SetUnderflowAction(2);
+ fgTOFsectorPalette->IncRefCount();
fgStaticInitDone = kTRUE;
}
/* ************************************************************************ */
void AliEveTOFSector::InitModule()
{
+ //
+ // To initialize TOF sector frame variables
+ //
fDx = fTOFgeometry->XPad()*fTOFgeometry->NpadX();
//fDy = fTOFgeometry->XPad()*fTOFgeometry->NpadX();
/* ************************************************************************ */
void AliEveTOFSector::LoadQuads()
{
-
- Reset(kQT_FreeQuad, kFALSE, 32);
+ //
+ // Load TOF digit as illuminated pad
+ //
//Int_t n_col = gStyle->GetNumberOfColors();
Double_t **coord = new Double_t*[4];
for (Int_t ii=0; ii<4; ii++) coord[ii] = new Double_t[3];
+ Reset(kQT_FreeQuad, kFALSE, 32);
+
//printf(" fTOFarray->GetEntries() = %4i \n",fTOFarray->GetEntries());
if (fTOFtree && !fTOFarray) {
vol[1] = digs->GetPlate(); // Plate Number (0-4)
vol[2] = digs->GetStrip(); // Strip Number (0-14/18)
- vol[3] = digs->GetPadx(); // TEvePad Number in x direction (0-47)
- vol[4] = digs->GetPadz(); // TEvePad Number in z direction (0-1)
+ vol[3] = digs->GetPadx(); // Pad Number in x direction (0-47)
+ vol[4] = digs->GetPadz(); // Pad Number in z direction (0-1)
informations[0] = digs->GetTdc();
informations[1] = digs->GetAdc();
// In principle could have color based on number of neigbours. We
// can insert the time-of-flight value for each pad
+
//QuadValue((Int_t)tot);
QuadValue((Int_t)tdc);
QuadId(tofDigit);
/* ************************************************************ */
void AliEveTOFSector::SetTrans()
{
- fHMTrans.UnitTrans();
+ //
+ // Set the translation matrix for TOF sector
+ //
+
+ InitMainTrans();
+ TEveTrans& t = RefMainTrans();
//Int_t det[5] = {fSector, -1, -1, -1, -1};
Char_t path[100];
Double_t *rotMat = global.GetRotationMatrix();
Double_t *tr = global.GetTranslation();
- fHMTrans.SetBaseVec(1, rotMat[0], rotMat[3], rotMat[6]);
- fHMTrans.SetBaseVec(2, rotMat[1], rotMat[4], rotMat[7]);
- fHMTrans.SetBaseVec(3, rotMat[2], rotMat[5], rotMat[8]);
-
- fHMTrans.SetBaseVec(4, tr);
+ t.SetBaseVec(1, rotMat[0], rotMat[3], rotMat[6]);
+ t.SetBaseVec(2, rotMat[1], rotMat[4], rotMat[7]);
+ t.SetBaseVec(3, rotMat[2], rotMat[5], rotMat[8]);
+ t.SetBaseVec(4, tr);
}
//-----------------------------------------------------
void AliEveTOFSector::SetSectorID(Int_t id)
{
+ //
+ // Set TOF sector ID to be visualized
+ //
+
fSectorID = id;
fSector = id;
if (fAutoTrans)
void AliEveTOFSector::SetPlate(Int_t nPlate, Bool_t r)
{
+ //
+ // Set visualization flag to visualize TOF modules
+ //
fPlateFlag[nPlate] = r;
void AliEveTOFSector::SetThreshold(Short_t t)
{
+ //
+ // Set visualization threshold
+ //
+
fThreshold = TMath::Min(t, (Short_t)(fMaxVal - 1));
// ClearColorArray();
}
void AliEveTOFSector::SetMaxVal(Int_t mv)
{
+ //
+ // Set visualization max value
+ //
+
fMaxVal = TMath::Max(mv, (Int_t)(fThreshold + 1));
//ClearColorArray();
}
void AliEveTOFSector::DigitSelected(Int_t idx)
{
+ //
// Override control-click from TEveQuadSet
+ //
- DigitBase_t* qb = GetDigit(idx);
- TObject* obj = qb->fId.GetObject();
+ TObject* obj = GetId(idx);
AliTOFdigit* digs = dynamic_cast<AliTOFdigit*>(obj);
// printf("AliEveTOFSector::QuadSelected "); Print();
- printf(" idx = %5i, value = %5d, obj = 0x%lx, digit = 0x%lx ",
- idx, qb->fValue, (ULong_t)obj, (ULong_t)digs);
if (digs)
- printf("-> Sector = %2i Plate = %1i Strip = %2i ToT = %3i Tof = %5i\n",
- fSector , digs->GetPlate(), digs->GetStrip(), digs->GetToT(), digs->GetTdc());
+ printf("\n Sector = %2i Plate = %1i Strip = %2i PadZ = %1i PadX = %2i ToT = %3i Tof = %5i\n",
+ fSector , digs->GetPlate(), digs->GetStrip(), digs->GetPadz(), digs->GetPadx(), digs->GetToT(), digs->GetTdc());
else printf("\n");
}