Moving the FMD offline trigger to its own class, AliFMDOfflineTrigger
[u/mrichter/AliRoot.git] / FMD / AliFMD2.cxx
index 9d0fe46..8e86894 100644 (file)
  * about the suitability of this software for any purpose. It is          *
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
-
 /* $Id$ */
-
-//////////////////////////////////////////////////////////////////////////////
+/** @file    AliFMD2.cxx
+    @author  Christian Holm Christensen <cholm@nbi.dk>
+    @date    Sun Mar 26 18:25:51 2006
+    @brief   Concrete implementation of AliFMDDetector for FMD2
+*/
+//____________________________________________________________________
 //                                                                          
-// Concrete implementation of AliFMDSubDetector 
+// Concrete implementation of AliFMDDetector 
 //
 // This implements the geometry for FMD2
+// The FMD2 has two ring, one of both types. 
+// FMD2 is mounted on the space-frame via 4 flanges
+// Support is not fleshed ot yet. 
+// Support will be simple compared to FMD3.
 //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef ALIFMD2_H
-# include "AliFMD2.h"
-#endif 
-#ifndef ROOT_TVirtualMC
-# include <TVirtualMC.h>
-#endif
-#ifndef ALILOG_H
-# include "AliLog.h"
-#endif
-#ifndef ALIFMDRING_H
-# include "AliFMDRing.h"
-#endif 
-
-//____________________________________________________________________
-ClassImp(AliFMD2);
-
-//____________________________________________________________________
-AliFMD2::AliFMD2() 
-  : AliFMDSubDetector(2) 
-{}
+#include "AliFMD2.h"           // ALIFMD2_H 
+#include "AliLog.h"
+// #include "AliFMDRing.h"             // ALIFMDRING_H 
 
-//____________________________________________________________________
-AliFMD2::~AliFMD2() 
-{}
+//====================================================================
+ClassImp(AliFMD2)
+#if 0
+  ; // This is here to keep Emacs for indenting the next line
+#endif
 
 //____________________________________________________________________
-void 
-AliFMD2::SetupGeometry(Int_t airId, Int_t kaptionId) 
+AliFMD2::AliFMD2(AliFMDRing* inner, AliFMDRing* outer) 
+  : AliFMDDetector(2, inner, outer)
 {
-  fInnerHoneyLowR  = fInner->GetLowR() + 1;
-  fInnerHoneyHighR = fInner->GetHighR() + 1;
-  fOuterHoneyLowR  = fOuter->GetLowR() + 1;
-  fOuterHoneyHighR = fOuter->GetHighR() + 1;
-
-  Double_t par[3];
-  par[0] = fInner->GetLowR();
-  par[1] = fOuterHoneyHighR;
-  par[2] = fDz = (TMath::Abs(fInnerZ - fOuterZ)
-                 + fInner->GetSiThickness() 
-                 + fInner->GetPrintboardThickness() 
-                 + fInner->GetLegLength() 
-                 + fInner->GetModuleSpacing() 
-                 + fHoneycombThickness) / 2;
-  fVolumeId = gMC->Gsvolu("FMD2", "TUBE", airId, par, 3);
-
-  // Rotate the full sub-detector 
-  gMC->Matrix(fRotationId, 270, 180, 90, 90, 180, 0); 
-
-  AliFMDSubDetector::SetupGeometry(airId, kaptionId);
+  // Constructor 
+  // SetInnerZ(83.4);
+  // SetOuterZ(75.2);
+  // Double_t off = 0.414256-0.1963; // 2.35
+  Double_t off = 0; // 0.414256-0.1963+.27; // 2.35
+  if (off < 0) off = 0;
+  if (off != 0) 
+    AliWarning(Form("Z position of FMD2 rings may be wrong by %fcm!", off));
+  SetInnerZ(83.4+off);
+  SetOuterZ(75.2+off);
 }
 
+
 //____________________________________________________________________
-void 
-AliFMD2::Geometry(const char* mother, Int_t pbRotId, 
-                 Int_t idRotId, Double_t z) 
+void
+AliFMD2::Init() 
 {
-  z = fDz + fOuterZ;
-  AliFMDSubDetector::Geometry("FMD2", pbRotId, idRotId, z);
-  gMC->Gspos("FMD2", 1, mother, 0, 0, z, fRotationId);  
+  // Initialize 
+  AliFMDDetector::Init();
+  SetInnerHoneyHighR(GetOuterHoneyHighR());
 }
 
-  
-
 //____________________________________________________________________
 //
 // EOF