First version of the Scintillator module manager
authorgamez <gamez@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 2 Dec 2003 05:48:56 +0000 (05:48 +0000)
committergamez <gamez@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 2 Dec 2003 05:48:56 +0000 (05:48 +0000)
CRT/AliCRTModule.cxx [new file with mode: 0644]
CRT/AliCRTModule.h [new file with mode: 0644]

diff --git a/CRT/AliCRTModule.cxx b/CRT/AliCRTModule.cxx
new file mode 100644 (file)
index 0000000..18b0402
--- /dev/null
@@ -0,0 +1,120 @@
+/**************************************************************************
+ * 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.                  *
+ **************************************************************************/
+
+/* $Id: */
+
+////////////////////////////////////////////////////////////////////////////
+//
+// ALICE Cosmic Ray Trigger
+//
+//  This class will provide the basic utilities to create the geometry of
+//  the scintillatio array. This array is basically only the array
+//  in the upper face of the magnet. The remaining arrays will be copies
+//  of this array.
+//
+//   Authors:
+//
+//   Arturo Fernandez <afernand@fcfm.buap.mx>
+//   Enrique Gamez    <egamez@fcfm.buap.mx>
+//
+////////////////////////////////////////////////////////////////////////////
+
+#include "AliCRTModule.h"
+
+ClassImp(AliCRTModule)
+
+//_____________________________________________________________________________
+AliCRTModule::AliCRTModule()
+  : TNamed(),
+    fScintillatorThickness(0),
+    fScintillatorWidth(0),
+    fScintillatorLength(0),
+    fFrameThickness(0),
+    fFrameWidth(0),
+    fFrameLength(0),
+    fNColumns(0),
+    fNRows(0),
+    fZGap(0),
+    fXGap(0)
+{
+  //
+  // Default constructor
+  //
+}
+
+//_____________________________________________________________________________
+AliCRTModule::AliCRTModule(const char* name, const char* title)
+  : TNamed(name, title),
+    fScintillatorThickness(1),
+    fScintillatorWidth(19.7),
+    fScintillatorLength(186),
+    fFrameThickness(10),
+    fFrameWidth(26),
+    fFrameLength(300),
+    fNColumns(2),
+    fNRows(10),
+    fZGap(100),
+    fXGap(0)
+{
+  //
+  // Standard constructor
+  //
+}
+
+//_____________________________________________________________________________
+AliCRTModule::AliCRTModule(const AliCRTModule& mod)
+  : TNamed(mod),
+    fScintillatorThickness(mod.fScintillatorThickness),
+    fScintillatorWidth(mod.fScintillatorWidth),
+    fScintillatorLength(mod.fScintillatorLength),
+    fFrameThickness(mod.fFrameThickness),
+    fFrameWidth(mod.fFrameWidth),
+    fFrameLength(mod.fFrameLength),
+    fNColumns(mod.fNColumns),
+    fNRows(mod.fNRows),
+    fZGap(mod.fZGap),
+    fXGap(mod.fXGap)
+{
+  //
+  // Copy constructor
+  //
+}
+
+//_____________________________________________________________________________
+AliCRTModule::~AliCRTModule()
+{
+  //
+  // Default destructor
+  //
+}
+
+//_____________________________________________________________________________
+AliCRTModule& AliCRTModule::operator=(const AliCRTModule& mod)
+{
+  //
+  // Asingment operator
+  //
+  fScintillatorThickness = mod.fScintillatorThickness;
+  fScintillatorWidth = mod.fScintillatorWidth;
+  fScintillatorLength = mod.fScintillatorLength;
+  fFrameThickness = mod.fFrameThickness;
+  fFrameWidth = mod.fFrameWidth;
+  fFrameLength = mod.fFrameLength;
+  fNColumns = mod.fNColumns;
+  fNRows = mod.fNRows;
+  fZGap = mod.fZGap;
+  fXGap = mod.fXGap;
+  return *this;
+}
diff --git a/CRT/AliCRTModule.h b/CRT/AliCRTModule.h
new file mode 100644 (file)
index 0000000..9c9372c
--- /dev/null
@@ -0,0 +1,127 @@
+#ifndef ALICRTMODULE_H
+#define ALICRTMODULE_H
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice                               */
+
+/* $Id: */
+/////////////////////////////////
+// CRT module geometry manager //
+/////////////////////////////////
+
+#include <TNamed.h>
+
+class AliCRTModule : public TNamed {
+public:
+  AliCRTModule();
+  AliCRTModule(const char* name, const char* title);
+  AliCRTModule(const AliCRTModule& mod);
+  virtual ~AliCRTModule();
+
+  AliCRTModule& operator=(const AliCRTModule& mod);
+
+  void SetScintillatorThickness(const Float_t thickness);
+  void SetScintillatorWidth(const Float_t width);
+  void SetScintillatorLenght(const Float_t length);
+
+  void SetFrameThickness(const Float_t thickness);
+  void SetFrameWidth(const Float_t width);
+  void SetFrameLength(const Float_t length);
+
+  void SetNumberOfColumns(const Int_t ncols);
+  void SetNumberOfRows(const Int_t nrows);
+
+  void SetZGap(const Float_t zgap);
+  void SetXGap(const Float_t xgap);
+
+  const Float_t ScintillatorThickness() const;
+  const Float_t ScintillatorWidth() const;
+  const Float_t ScintillatorLenght() const;
+
+  const Float_t FrameThickness() const;
+  const Float_t FrameWidth() const;
+  const Float_t FrameLength() const;
+
+  const Int_t NumberOfModules() const;
+  const Int_t NumberOfColumns() const;
+  const Int_t NumberOfRows() const;
+
+  const Float_t ZGap() const;
+  const Float_t XGap() const;
+
+private:
+  Float_t fScintillatorThickness; // Scintillator thickness
+  Float_t fScintillatorWidth; // Scintillator width
+  Float_t fScintillatorLength; // Scintillator length
+  Float_t fFrameThickness; // Aluminium frame thickness
+  Float_t fFrameWidth; // Aluminium frame width
+  Float_t fFrameLength; // Aliuminium frame length
+  Int_t fNColumns;//Number of modules per column per magnet face (z coordinate)
+  Int_t fNRows; // Number of module rows per magnet face (x coordinate)
+  Float_t fZGap; // Gap in Z betwen modules
+  Float_t fXGap; // Gap in X betwen modules
+  ClassDef(AliCRTModule, 1)// CRT module geometry manager
+};
+
+inline void AliCRTModule::SetScintillatorThickness(const Float_t thick)
+{ fScintillatorThickness = thick; }
+
+inline void AliCRTModule::SetScintillatorWidth(const Float_t width)
+{ fScintillatorWidth = width; }
+
+inline void AliCRTModule::SetScintillatorLenght(const Float_t length)
+{ fScintillatorLength = length; }
+
+inline void AliCRTModule::SetFrameThickness(const Float_t thick)
+{ fFrameThickness = thick; }
+
+inline void AliCRTModule::SetFrameWidth(const Float_t width)
+{ fFrameWidth = width; }
+
+inline void AliCRTModule::SetFrameLength(const Float_t length)
+{ fFrameLength = length; }
+
+inline void AliCRTModule::SetNumberOfColumns(const Int_t ncols)
+{ fNColumns = ncols; }
+
+inline void AliCRTModule::SetNumberOfRows(const Int_t nrows)
+{ fNRows = nrows; }
+
+inline void AliCRTModule::SetZGap(const Float_t zgap)
+{ fZGap = zgap; }
+
+inline void AliCRTModule::SetXGap(const Float_t xgap)
+{ fXGap = xgap; }
+
+inline const Float_t AliCRTModule::ScintillatorThickness() const
+{ return fScintillatorThickness; }
+
+inline const Float_t AliCRTModule::ScintillatorWidth() const
+{ return fScintillatorWidth; }
+
+inline const Float_t AliCRTModule::ScintillatorLenght() const
+{ return fScintillatorLength; }
+
+inline const Float_t AliCRTModule::FrameThickness() const
+{ return fFrameThickness; }
+
+inline const Float_t AliCRTModule::FrameWidth() const
+{ return fFrameWidth; }
+
+inline const Float_t AliCRTModule::FrameLength() const
+{ return fFrameLength; }
+
+inline const Int_t AliCRTModule::NumberOfModules() const
+{ return fNColumns*fNRows; }
+
+inline const Int_t AliCRTModule::NumberOfColumns() const
+{ return fNColumns; }
+
+inline const Int_t AliCRTModule::NumberOfRows() const
+{ return fNRows; }
+
+inline const Float_t AliCRTModule::ZGap() const
+{ return fZGap; }
+
+inline const Float_t AliCRTModule::XGap() const
+{ return fXGap; }
+#endif // ALICRTMODULE_H