* about the suitability of this software for any purpose. It is *
* provided "as is" without express or implied warranty. *
**************************************************************************/
-
/* $Id$ */
-
-//////////////////////////////////////////////////////////////////////////////
+/** @file AliFMD1.cxx
+ @author Christian Holm Christensen <cholm@nbi.dk>
+ @date Sun Mar 26 18:00:23 2006
+ @brief Implementation of FMD1 parameters
+*/
+//____________________________________________________________________
//
-// Concrete implementation of AliFMDSubDetector
+// Concrete implementation of AliFMDDetector
//
-// This implements the geometry for FMD1
+// This implements the geometry for FMD1.
+// FMD1 has only one ring, of type `inner'.
+// It is sitting at z=320.
+// It is the FMD ring with highest eta.
+// FMD1 currently has no support defined.
//
-//////////////////////////////////////////////////////////////////////////////
-#ifndef ALIFMD1_H
-# include "AliFMD1.h"
-#endif
-#ifndef ROOT_TVirtualMC
-# include <TVirtualMC.h>
-#endif
-#ifndef ALILOG_H
-# include "AliLog.h"
-#endif
+#include "AliFMD1.h" // ALIFMD1_H
+#include <AliLog.h>
+// #include "AliFMDRing.h" // ALIFMDRING_H
-//____________________________________________________________________
-ClassImp(AliFMD1);
-
-//____________________________________________________________________
-AliFMD1::AliFMD1()
- : AliFMDSubDetector(1)
-{}
-
-//____________________________________________________________________
-AliFMD1::~AliFMD1()
-{}
+//====================================================================
+ClassImp(AliFMD1)
+#if 0
+ ; // This is to keep Emacs from indenting the next line
+#endif
//____________________________________________________________________
-void
-AliFMD1::SetupGeometry(Int_t airId, Int_t kaptionId)
+AliFMD1::AliFMD1(AliFMDRing* inner)
+ : AliFMDDetector(1, inner, 0)
{
- fInnerHoneyLowR = fInner->GetLowR() + 1;
- fInnerHoneyHighR = fInner->GetHighR() + 1;
- fOuterHoneyLowR = 0;
- fOuterHoneyHighR = 0;
-
- Double_t par[3];
- par[0] = fInner->GetLowR();
- par[1] = fInnerHoneyHighR;
- par[2] = fDz = (fInner->GetLegLength()
- + fInner->GetSiThickness()
- + fInner->GetPrintboardThickness()
- + fInner->GetModuleSpacing()
- + fHoneycombThickness) / 2;
- fVolumeId = gMC->Gsvolu("FMD1", "TUBE", airId, par, 3);
-
- // Rotate the full sub-detector
- gMC->Matrix(fRotationId, 270, 180, 90, 90, 180, 0);
-
- AliFMDSubDetector::SetupGeometry(airId, kaptionId);
+ // Subtracting 0.25 cm puts the middle plane of the detector at 320
+ // cm
+ Double_t off = 0; // -0.25
+ if (off != 0)
+ AliWarning(Form("FMD1 is off by %fcm", off));
+ SetInnerZ(321.5 + off);
+
}
//____________________________________________________________________
-void
-AliFMD1::Geometry(const char* mother, Int_t pbRotId,
- Int_t idRotId, Double_t z)
+void
+AliFMD1::Init()
{
- // The Z passed in isn't used.
- z = fInnerZ + fDz;
- gMC->Gspos("FMD1", 1, mother, 0, 0, z, fRotationId);
-
- AliFMDSubDetector::Geometry("FMD1", pbRotId, idRotId, z);
+ // Initialize
+ AliFMDDetector::Init();
+ SetInnerHoneyHighR(22.3716);
}
-
-
//____________________________________________________________________
//
// EOF