New CPV(IHEP) geometry class
authorschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 25 Oct 2000 08:21:36 +0000 (08:21 +0000)
committerschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 25 Oct 2000 08:21:36 +0000 (08:21 +0000)
PHOS/AliCPVGeometry.cxx [new file with mode: 0644]
PHOS/AliCPVGeometry.h [new file with mode: 0644]

diff --git a/PHOS/AliCPVGeometry.cxx b/PHOS/AliCPVGeometry.cxx
new file mode 100644 (file)
index 0000000..f424e77
--- /dev/null
@@ -0,0 +1,70 @@
+/**************************************************************************
+ * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ *                                                                        *
+ * Author: The ALICE Off-line Project.                                    *
+ * Contributors are mentioned in the code where appropriate.              *
+ *                                                                        *
+ * Permission to use, copy, modify and distribute this software and its   *
+ * documentation strictly for non-commercial purposes is hereby granted   *
+ * without fee, provided that the above copyright notice appears in all   *
+ * copies and that both the copyright notice and this permission notice   *
+ * appear in the supporting documentation. The authors make no claims     *
+ * about the suitability of this software for any purpose. It is          *
+ * provided "as is" without express or implied warranty.                  *
+ **************************************************************************/
+
+/*
+  $Log$
+*/
+
+//_________________________________________________________________________
+// Geometry class  for PHOS : CPV (Charged particle veto, IHEP version)
+//                  
+//*-- Author   : Yuri Kharlov (IHEP, Protvino) 15 September 2000
+//
+// --- ROOT system ---
+
+// --- Standard library ---
+
+#include <iostream.h>
+
+// --- AliRoot header files ---
+
+#include "AliCPVGeometry.h"
+
+ClassImp(AliCPVGeometry) ;
+
+//____________________________________________________________________________
+AliCPVGeometry::AliCPVGeometry()
+{
+
+  // Initializes the CPV parameters
+  fNumberOfCPVLayers     = 1;
+  fLeadConverterExists   = kFALSE;
+  fNumberOfCPVPadsPhi    = 128;
+  fNumberOfCPVPadsZ      = 64;
+  fCPVPadSizePhi         = 1.13;
+  fCPVPadSizeZ           = 2.26;
+  fNumberOfCPVChipsPhi   = 8;
+  fNumberOfCPVChipsZ     = 8;
+  fCPVGasThickness       = 1.3;
+  fCPVTextoliteThickness = 0.1;
+  fCPVCuNiFoilThickness  = 56e-04;;
+  fCPVFrameSize[0]       = 2.5;
+  fCPVFrameSize[1]       = 5.1;
+  fCPVFrameSize[2]       = 2.5;
+  fCPVActiveSize[0]      = fNumberOfCPVPadsPhi * fCPVPadSizePhi;
+  fCPVActiveSize[1]      = fNumberOfCPVPadsZ   * fCPVPadSizeZ;
+  fCPVBoxSize[0]         = fCPVActiveSize[0] + 2 * fCPVFrameSize[0];
+  fCPVBoxSize[1]         = fCPVFrameSize[1] * fNumberOfCPVLayers + 0.1;
+  fCPVBoxSize[2]         = fCPVActiveSize[1] + 2 * fCPVFrameSize[2];
+  fGassiplexChipSize[0]  = 4.2;
+  fGassiplexChipSize[1]  = 0.1;
+  fGassiplexChipSize[2]  = 6.0;
+  fFTPosition[0]         = 0.7;
+  fFTPosition[1]         = 2.2;
+  fFTPosition[2]         = 3.6;
+  fFTPosition[3]         = 5.1;
+}
+
+//____________________________________________________________________________
diff --git a/PHOS/AliCPVGeometry.h b/PHOS/AliCPVGeometry.h
new file mode 100644 (file)
index 0000000..ba75b8d
--- /dev/null
@@ -0,0 +1,95 @@
+#ifndef ALICPVGEOMETRY_H
+#define ALICPVGEOMETRY_H
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice                               */
+
+/* $Id$ */
+
+//_________________________________________________________________________
+// Geometry derived class for PHOS:CPV (Charged particle veto, IHEP version)
+//
+//*-- Author:  Yuri Kharlov (IHEP, Protvino)
+//    14 September 2000
+
+#include <assert.h> 
+
+#include "AliCPVBaseGeometry.h"
+
+class AliCPVGeometry : public AliCPVBaseGeometry {
+
+public: 
+
+           AliCPVGeometry();
+  virtual ~AliCPVGeometry(void) {};
+
+  // CPV functions
+
+  virtual Int_t   GetNumberOfCPVLayers(void)        { return  fNumberOfCPVLayers;        }
+  virtual Bool_t  IsLeadConverterExists(void)       { return  fLeadConverterExists;      }
+  virtual Int_t   GetNumberOfCPVPadsPhi(void)       { return  fNumberOfCPVPadsPhi ;      }
+  virtual Int_t   GetNumberOfCPVPadsZ(void)         { return  fNumberOfCPVPadsZ ;        }
+  virtual Float_t GetCPVPadSizePhi(void)            { return  fCPVPadSizePhi;            }
+  virtual Float_t GetCPVPadSizeZ(void)              { return  fCPVPadSizeZ;              }
+  virtual Float_t GetCPVBoxSize(Int_t index)        { return  fCPVBoxSize[index];        }
+  virtual Float_t GetCPVActiveSize(Int_t index)     { return  fCPVActiveSize[index];     }
+  virtual Int_t   GetNumberOfCPVChipsPhi(void)      { return  fNumberOfCPVChipsPhi;      }
+  virtual Int_t   GetNumberOfCPVChipsZ(void)        { return  fNumberOfCPVChipsZ;        }
+  virtual Float_t GetGassiplexChipSize(Int_t index) { return  fGassiplexChipSize[index]; }
+  virtual Float_t GetCPVGasThickness(void)          { return  fCPVGasThickness;          }
+  virtual Float_t GetCPVTextoliteThickness(void)    { return  fCPVTextoliteThickness;    }
+  virtual Float_t GetCPVCuNiFoilThickness(void)     { return  fCPVCuNiFoilThickness;     }
+  virtual Float_t GetFTPosition(Int_t index)        { return  fFTPosition[index];        }
+  virtual Float_t GetCPVFrameSize(Int_t index)      { return  fCPVFrameSize[index];      }
+
+  // PPSD functions cannot be used for CPV
+
+  virtual Float_t GetAnodeThickness(void)          { AssertPPSD("GetAnodeThickness");          return 0; }
+  virtual Float_t GetAvalancheGap(void)            { AssertPPSD("GetAvalancheGap");            return 0; }
+  virtual Float_t GetCathodeThickness(void)        { AssertPPSD("GetCathodeThickness");        return 0; }
+  virtual Float_t GetCompositeThickness(void)      { AssertPPSD("GetCompositeThickness");      return 0; }
+  virtual Float_t GetConversionGap(void)           { AssertPPSD("GetConversionGap");           return 0; }
+  virtual Float_t GetLeadConverterThickness(void)  { AssertPPSD("GetLeadConverterThickness");  return 0; }
+  virtual Float_t GetLeadToMicro2Gap(void)         { AssertPPSD("GetLeadToMicro2Gap");         return 0; }
+  virtual Float_t GetLidThickness(void)            { AssertPPSD("GetLidThickness");            return 0; }
+  virtual Float_t GetMicromegas1Thickness(void)    { AssertPPSD("GetMicromegas1Thickness");    return 0; }
+  virtual Float_t GetMicromegas2Thickness(void)    { AssertPPSD("GetMicromegas2Thickness");    return 0; }
+  virtual Float_t GetMicromegasWallThickness(void) { AssertPPSD("GetMicromegasWallThickness"); return 0; }
+  virtual Float_t GetMicro1ToLeadGap(void)         { AssertPPSD("GetMicro1ToLeadGap");         return 0; }
+  virtual Float_t GetPCThickness(void)             { AssertPPSD("GetPCThickness");             return 0; }
+  virtual Float_t GetPhiDisplacement(void)         { AssertPPSD("GetPhiDisplacement");         return 0; }
+  virtual Float_t GetPPSDModuleSize(Int_t index)   { AssertPPSD("GetPPSDModuleSize");          return 0; }
+  virtual Float_t GetZDisplacement(void)           { AssertPPSD("GetZDisplacement");           return 0; }
+  virtual Int_t   GetNumberOfPadsPhi(void)         { AssertPPSD("GetNumberOfPadsPhi");         return 0; }
+  virtual Int_t   GetNumberOfPadsZ(void)           { AssertPPSD("GetNumberOfPadsZ");           return 0; }
+  virtual Int_t   GetNumberOfModulesPhi(void)      { AssertPPSD("GetNumberOfModulesPhi");      return 0; }
+  virtual Int_t   GetNumberOfModulesZ(void)        { AssertPPSD("GetNumberOfModulesZ");        return 0; }
+private:
+
+  Int_t   fNumberOfCPVLayers;      // Number of CPV identical layers
+  Bool_t  fLeadConverterExists;    // kTRUE if the lead converter between CPV layers exists
+  Int_t   fNumberOfCPVPadsPhi;     // Number of CPV pads in phi
+  Int_t   fNumberOfCPVPadsZ;       // Number of CPV pads in z
+  Float_t fCPVPadSizePhi;          // CPV pad size in phi
+  Float_t fCPVPadSizeZ;            // CPV pad size in z
+  Float_t fCPVBoxSize[3];          // Outer size of CPV box
+  Float_t fCPVActiveSize[2];       // Active size of CPV box (x,z)
+  Int_t   fNumberOfCPVChipsPhi;    // Number of CPV Gassiplex chips in phi
+  Int_t   fNumberOfCPVChipsZ;      // Number of CPV Gassiplex chips in z
+  Float_t fGassiplexChipSize[3];   // Size of a Gassiplex chip (0 - in z, 1 - in phi, 2 - thickness (in ALICE radius))
+  Float_t fCPVGasThickness;        // Thickness of CPV gas volume
+  Float_t fCPVTextoliteThickness;  // Thickness of CPV textolite PCB (without foil)
+  Float_t fCPVCuNiFoilThickness;   // Thickness of CPV Copper-Nickel foil of PCB
+  Float_t fFTPosition[4];          // Positions of the 4 PCB vs the CPV box center
+  Float_t fCPVFrameSize[3];        // CPV frame size (0 - in phi, 1 - in z, 2 - thickness (along ALICE radius))
+
+  void    AssertPPSD(char* name) {
+    printf("Function AliCPVGeometry::%s should not be called for CPV geometry\n",name);
+    assert(0==1) ;
+  }
+
+  ClassDef(AliCPVGeometry,1)       // CPV geometry base class 
+
+} ;
+
+#endif // AliCPVGEOMETRY_H