* 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.
//
#include "AliFMD1.h" // ALIFMD1_H
-#include "AliFMDRing.h" // ALIFMDRING_H
-#include "TVirtualMC.h" // ROOT_TVirtualMC
-#include "AliLog.h" // ALILOG_H
-
-
-//____________________________________________________________________
-ClassImp(AliFMD1);
+#include <AliLog.h>
+// #include "AliFMDRing.h" // ALIFMDRING_H
-//____________________________________________________________________
-AliFMD1::AliFMD1()
- : AliFMDSubDetector(1)
-{
- // Default constructor for the FMD1 sub-detector
-}
-//____________________________________________________________________
-AliFMD1::~AliFMD1()
-{
- // Destructor - does nothing
-}
+//====================================================================
+ClassImp(AliFMD1)
+#if 0
+ ; // This is to keep Emacs from indenting the next line
+#endif
//____________________________________________________________________
-void
-AliFMD1::SetupGeometry(Int_t airId, Int_t alId, Int_t /* cId */)
+AliFMD1::AliFMD1(AliFMDRing* inner)
+ : AliFMDDetector(1, inner, 0)
{
- // Setup the FMD1 sub-detector geometry
- //
- // Parameters:
- //
- // airId Id # of the Air medium
- // alId Id # of the Aluminium medium
- //
- AliDebug(10, "\tDefining the geometry for FMD1");
- 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, alId);
+ // 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()
{
- // Position the FMD1 sub-detector volume
- //
- // Parameters
- //
- // mother name of the mother volume
- // pbRotId Printboard roation matrix ID
- // idRotId Identity rotation matrix ID
- // z Z position (not really used here, but passed down)
- //
- // The Z passed in isn't used.
- z = fInnerZ + fDz;
- AliDebug(10, Form("\tPutting FMD1 in %s at z=%lf cm", mother, z));
- gMC->Gspos("FMD1", 1, mother, 0, 0, z, fRotationId, "ONLY");
-
- AliFMDSubDetector::Geometry("FMD1", pbRotId, idRotId, z);
+ // Initialize
+ AliFMDDetector::Init();
+ SetInnerHoneyHighR(22.3716);
}
-
-
//____________________________________________________________________
//
// EOF