]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVE/EveDet/AliEveITSModule.cxx
Adding directory with the production requests
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveITSModule.cxx
index ddc593a129bc58fbef7050698b1a7d7e600b43c3..76b28151668b814fe8650a4978d5508fa25a5cf2 100644 (file)
@@ -18,6 +18,8 @@
 #include <AliITSdigitSDD.h>
 #include <AliITSdigitSSD.h>
 
+#include <TEveTrans.h>
+#include <TClonesArray.h>
 #include <TStyle.h>
 
 
@@ -73,18 +75,21 @@ AliEveITSModule::~AliEveITSModule()
 
 void AliEveITSModule::InitStatics(AliEveITSDigitsInfo* info)
 {
-  // Initialize static variables,
+  // Initialize static variables.
+  //
+  // Warning all sensor sizes are in microns, here we transform them
+  // to cm. In Eve half-lengths/widths are used, hence another 1/2.
 
   if (fgStaticInitDone) return;
   fgStaticInitDone = kTRUE;
 
   {
     Float_t dx = info->fSegSPD->Dx()*0.00005;
-    Float_t dz = 3.50;
+    Float_t dz = info->fSegSPD->Dz()*0.00005;
 
     fgSPDFrameBox = new TEveFrameBox();
     fgSPDFrameBox->SetAAQuadXZ(-dx, 0, -dz, 2*dx, 2*dz);
-    fgSPDFrameBox->SetFrameColor((Color_t) 31);
+    fgSPDFrameBox->SetFrameColor(Color_t(31));
     fgSPDFrameBox->SetFrameFill(kTRUE);
     fgSPDFrameBox->IncRefCount();
     fgSPDPalette  = new TEveRGBAPalette(info->fSPDMinVal,info->fSPDMaxVal);
@@ -97,7 +102,7 @@ void AliEveITSModule::InitStatics(AliEveITSDigitsInfo* info)
 
     fgSDDFrameBox = new TEveFrameBox();
     fgSDDFrameBox->SetAAQuadXZ(-dx, 0, -dz, 2*dx, 2*dz);
-    fgSDDFrameBox->SetFrameColor((Color_t) 32);
+    fgSDDFrameBox->SetFrameColor(Color_t(32));
     fgSDDFrameBox->SetFrameFill(kTRUE);
     fgSDDFrameBox->IncRefCount();
     fgSDDPalette  = new TEveRGBAPalette(info->fSDDMinVal,info->fSDDMaxVal);
@@ -111,7 +116,7 @@ void AliEveITSModule::InitStatics(AliEveITSDigitsInfo* info)
 
     fgSSDFrameBox = new TEveFrameBox();
     fgSSDFrameBox->SetAAQuadXZ(-dx, 0, -dz, 2*dx, 2*dz);
-    fgSSDFrameBox->SetFrameColor((Color_t) 33);
+    fgSSDFrameBox->SetFrameColor(Color_t(33));
     fgSSDFrameBox->SetFrameFill(kTRUE);
     fgSSDFrameBox->IncRefCount();
     fgSSDPalette  = new TEveRGBAPalette(info->fSSDMinVal,info->fSSDMaxVal);
@@ -139,16 +144,16 @@ void AliEveITSModule::SetID(Int_t gid, Bool_t trans)
 {
   // Set detector id.
 
-  static const TEveException eH("AliEveITSModule::SetID ");
+  static const TEveException kEH("AliEveITSModule::SetID ");
 
   if (fInfo == 0)
-    throw(eH + "AliEveITSDigitsInfo not set.");
+    throw(kEH + "AliEveITSDigitsInfo not set.");
 
   Int_t firstSPD = AliITSgeomTGeo::GetModuleIndex(1,1,1);
   Int_t lastSSD  = AliITSgeomTGeo::GetNModules() - 1;
   if (gid < firstSPD || gid > lastSSD)
   {
-    throw(eH + Form("%d is not valid. ID range from %d to %d", gid,
+    throw(kEH + Form("%d is not valid. ID range from %d to %d", gid,
                    firstSPD, lastSSD ));
   }
 
@@ -264,6 +269,7 @@ void AliEveITSModule::SetID(Int_t gid, Bool_t trans)
 
   LoadQuads();
   ComputeBBox();
+  InitMainTrans();
   if (trans)
     SetTrans();
 }
@@ -274,6 +280,8 @@ void AliEveITSModule::LoadQuads()
   // visualization - called quads.
 
   TClonesArray *digits  = fInfo->GetDigits(fID, fDetID);
+  if (!digits) return;
+
   Int_t         ndigits = digits ? digits->GetEntriesFast() : 0;
 
   Float_t       x, z, dpx, dpz;
@@ -372,7 +380,7 @@ void AliEveITSModule::SetTrans()
   // Set transformation matrix based on module id (use geometry to
   // retrieve this information).
 
-  fHMTrans.SetFrom(*AliITSgeomTGeo::GetMatrix(fID));
+  fMainTrans->SetFrom(*AliITSgeomTGeo::GetMatrix(fID));
 }
 
 /******************************************************************************/