* about the suitability of this software for any purpose. It is *
* provided "as is" without express or implied warranty. *
**************************************************************************/
-
/* $Id$ */
-
+/** @file AliFMD3.cxx
+ @author Christian Holm Christensen <cholm@nbi.dk>
+ @date Sun Mar 26 18:26:12 2006
+ @brief Concrete implementation of AliFMDDetector for FMD3
+*/
//____________________________________________________________________
//
// Concrete implementation of AliFMDDetector
//
-// This implements the geometry for FMD3
+// This implements the geometry for FMD3.
+// This has 2 rings.
+// The support of the FMD3 is a carbon-fibre cone, attached to the ITS
+// support via flanges. The cone also supports the beam-pipe.
+// The support is a special cone of carbon-fibre made by a Danish
+// Yacht company.
//
+
+#include <TMath.h> // ROOT_TMath
+
#include "AliFMD3.h" // ALIFMD3_H
#include "AliLog.h" // ALILOG_H
#include "AliFMDRing.h" // ALIFMDRING_H
-#include <TMath.h> // ROOT_TMath
//====================================================================
ClassImp(AliFMD3)
//____________________________________________________________________
AliFMD3::AliFMD3(AliFMDRing* inner, AliFMDRing* outer)
- : AliFMDDetector(3, inner, outer)
+ : AliFMDDetector(3, inner, outer),
+ fNoseZ(0),
+ fNoseLowR(0),
+ fNoseHighR(0),
+ fNoseLength(0),
+ fBackLowR(0),
+ fBackHighR(0),
+ fBackLength(0),
+ fBeamThickness(0),
+ fBeamWidth(0),
+ fConeLength(0),
+ fFlangeR(0),
+ fZ(0),
+ fAlpha(0),
+ fNBeam(0),
+ fNFlange(0)
{
+ // Constructor.
SetInnerZ(-62.8);
SetOuterZ(-75.2);
SetNoseZ();
void
AliFMD3::Init()
{
+ // Initialize
AliFMDDetector::Init();
SetInnerHoneyHighR(GetOuterHoneyHighR());
Double_t zdist = fConeLength - fBackLength - fNoseLength;
{
// Calculate the cone radius at Z
if (fAlpha < 0) {
- Warning("ConeR", "alpha not set: %lf", fAlpha);
+ AliWarning(Form("alpha not set: %lf", fAlpha));
return -1;
}
if (z > fNoseZ) {
- Warning("ConeR", "z=%lf is before start of cone %lf", z, fNoseZ);
+ AliWarning(Form("z=%lf is before start of cone %lf", z, fNoseZ));
return -1;
}
if (z < fOuterZ - fOuter->GetRingDepth() - fHoneycombThickness) {
- Warning("ConeR", "z=%lf is after end of cone %lf", z,
- fOuterZ - fOuter->GetRingDepth() - fHoneycombThickness);
+ AliWarning(Form("z=%lf is after end of cone %lf", z,
+ fOuterZ - fOuter->GetRingDepth() - fHoneycombThickness));
return -1;
}
Double_t e = fBeamThickness / TMath::Cos(TMath::ATan(fAlpha));