acorde_raw.C --> update of the macro used to visualize acorde data from raw data...
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 12 Apr 2010 13:06:49 +0000 (13:06 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 12 Apr 2010 13:06:49 +0000 (13:06 +0000)
acorde_esd.C --> new macro created to visualize the acorde data from AliESDs file.

Mario

EVE/alice-macros/acorde_esd.C [new file with mode: 0644]
EVE/alice-macros/acorde_raw.C

diff --git a/EVE/alice-macros/acorde_esd.C b/EVE/alice-macros/acorde_esd.C
new file mode 100644 (file)
index 0000000..226356c
--- /dev/null
@@ -0,0 +1,79 @@
+
+/**************************************************************************
+ * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
+ * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
+ * full copyright notice.                                                 *
+ **************************************************************************/
+
+TString acorde_module_path(Int_t module);
+
+Color_t g_acorde_esd_color_on  = kRed;
+Color_t g_acorde_esd_color_off = kBlue;
+
+UChar_t g_acorde_esd_transp_on  = 30;
+UChar_t g_acorde_esd_transp_off = 60;
+
+void acorde_esd()
+{
+
+  // From Mario RC:
+
+  AliEveEventManager::AssertGeometry();
+  AliESDEvent* fESD = new AliESDEvent();
+  AliESDACORDE *acordeESD = AliEveEventManager::AssertESD()->GetACORDEData();
+
+
+  if (acorde_module_path(0).IsNull())
+  {
+    Warning("acorde_esd", "Missing / wrong ACORDE module geometry.");
+    return;
+  }
+
+  TEveElementList* acorde = new TEveElementList("ACORDE_Esd");
+
+  gEve->AddElement(acorde);
+
+  for (Int_t module=0; module < 60; module++)
+  {
+    TString path = acorde_module_path(module);
+
+    if ( ! gGeoManager->cd(path))
+    {
+      Warning("acorde_esd", "Module id=%d, path='%s' not found.", module, path.Data());
+      continue;
+    }
+
+    Bool_t val = kFALSE;
+    if (acordeESD->GetHitChannel(module)) val=kTRUE;  
+    // From Matevz:
+    TEveGeoShape* eg_shape = new TEveGeoShape(TString::Format("Module %d", module),
+                                              TString::Format("Module %d, %s", module, val ? "Fired" : "Not fired"));
+    eg_shape->SetMainColor       (val ? g_acorde_esd_color_on  : g_acorde_esd_color_off);
+    eg_shape->SetMainTransparency(val ? g_acorde_esd_transp_on : g_acorde_esd_transp_off);
+    eg_shape->SetPickable(kTRUE);
+    eg_shape->RefMainTrans().SetFrom(*gGeoManager->GetCurrentMatrix());
+    eg_shape->SetShape((TGeoShape*) gGeoManager->GetCurrentVolume()->GetShape()->Clone());
+
+    acorde->AddElement(eg_shape);
+  }
+
+  gEve->Redraw3D();
+}
+
+//==============================================================================
+//==============================================================================
+
+TString acorde_module_path(Int_t module)
+{
+  if (module < 0 || module > 59)
+  {
+    Error("acorde_module_path", "module %d out of range.", module);
+    return "";
+  }
+
+  TGeoPNEntry* pne = gGeoManager->GetAlignableEntry(Form("ACORDE/Array%d", module));
+  if (!pne) return "";
+
+  return Form("%s/ACORDESCINTILLATORMODULE_6", pne->GetTitle()); 
+
+}
index 0b3e6a5..374d6eb 100644 (file)
@@ -17,6 +17,9 @@ UChar_t g_acorde_raw_transp_off = 60;
 
 void acorde_raw()
 {
+
+  // From Mario RC
+
   AliEveEventManager::AssertGeometry();
 
   AliRawReader       * reader = AliEveEventManager::AssertRawReader();
@@ -39,14 +42,13 @@ void acorde_raw()
     return;
   }
 
-  TEveElementList* acorde = new TEveElementList("ACORDE Raw");
+  TEveElementList* acorde = new TEveElementList("ACORDE_Raw");
 
   gEve->AddElement(acorde);
 
   for (Int_t module=0; module < 60; module++)
   {
     TString path = acorde_module_path(module);
-    // printf("%2d - %s\n", i, path.Data());
 
     if ( ! gGeoManager->cd(path))
     {
@@ -58,13 +60,10 @@ void acorde_raw()
     // Here check state and assign color, I do it partially for now.
     Int_t  word_idx = module / 30;
     Int_t  bit_idx  = module % 30;
-    //Bool_t val      = (dy[word_idx] & (1 << bit_idx)) != 0;
-    Bool_t val      = (dy[word_idx] & (1 << bit_idx)) != 0; // from Mario
- //   printf("Module %2d: word_idx = %d, bit_idx = %2d => val = %d\n",
-   //        module, word_idx, bit_idx, val);
+    Bool_t val      = (dy[word_idx] & (1 << bit_idx)) != 0; 
 
     TEveGeoShape* eg_shape = new TEveGeoShape(TString::Format("Module %d", module),
-                                              TString::Format("Module %d, %s", module, val ? "ON" : "OFF"));
+                                              TString::Format("Module %d, %s", module, val ? "Fired" : "Not fired"));
     eg_shape->SetMainColor       (val ? g_acorde_raw_color_on  : g_acorde_raw_color_off);
     eg_shape->SetMainTransparency(val ? g_acorde_raw_transp_on : g_acorde_raw_transp_off);
     eg_shape->SetPickable(kTRUE);
@@ -92,7 +91,6 @@ TString acorde_module_path(Int_t module)
   TGeoPNEntry* pne = gGeoManager->GetAlignableEntry(Form("ACORDE/Array%d", module));
   if (!pne) return "";
 
-  //return Form("%s/ACORDE2_5", pne->GetTitle());
   return Form("%s/ACORDESCINTILLATORMODULE_6", pne->GetTitle());
 
 }