* about the suitability of this software for any purpose. It is *
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/*
-$Log$
-Revision 1.8 2001/03/20 13:32:37 egangler
-includes cleanup
-Revision 1.7 2000/10/02 16:58:29 egangler
-Cleaning of the code :
--> coding conventions
--> void Streamers
--> some useless includes removed or replaced by "class" statement
+/* $Id$ */
-Revision 1.6 2000/07/13 16:19:44 fca
-Mainly coding conventions + some small bug fixes
-
-Revision 1.5 2000/07/03 11:54:57 morsch
-AliMUONSegmentation and AliMUONHitMap have been replaced by AliSegmentation and AliHitMap in STEER
-The methods GetPadIxy and GetPadXxy of AliMUONSegmentation have changed name to GetPadI and GetPadC.
-
-Revision 1.4 2000/06/28 15:16:35 morsch
-(1) Client code adapted to new method signatures in AliMUONSegmentation (see comments there)
-to allow development of slat-muon chamber simulation and reconstruction code in the MUON
-framework. The changes should have no side effects (mostly dummy arguments).
-(2) Hit disintegration uses 3-dim hit coordinates to allow simulation
-of chambers with overlapping modules (MakePadHits, Disintegration).
-
-Revision 1.3 2000/06/26 10:04:49 pcrochet
-problem with HP compiler solved (PH), static variables removed : now defined in AliMUONTriggerConstants
-
-*/
+#include <TMath.h>
+#include "AliMUONTriggerCircuit.h"
#include "AliRun.h"
#include "AliMUON.h"
-#include "AliMUONTriggerCircuit.h"
#include "AliMUONTriggerConstants.h"
#include "AliSegmentation.h"
-#include "AliMUONResponse.h"
#include "AliMUONChamber.h"
-#include "TMath.h"
-#include "Riostream.h"
+#include "AliMUONConstants.h"
+#include "AliLog.h"
ClassImp(AliMUONTriggerCircuit)
//----------------------------------------------------------------------
-AliMUONTriggerCircuit::AliMUONTriggerCircuit()
+AliMUONTriggerCircuit::AliMUONTriggerCircuit()
+ : TObject()
{
// Constructor
fSegmentation=0;
}
//----------------------------------------------------------------------
-AliMUONTriggerCircuit::AliMUONTriggerCircuit(const AliMUONTriggerCircuit& MUONTriggerCircuit)
+AliMUONTriggerCircuit::AliMUONTriggerCircuit(const AliMUONTriggerCircuit& theMUONTriggerCircuit)
+ : TObject(theMUONTriggerCircuit)
{
-// Dummy copy constructor
+// Protected copy constructor
+
+ AliFatal("Not implemented.");
}
//----------------------------------------------------------------------
-AliMUONTriggerCircuit & AliMUONTriggerCircuit::operator=(const AliMUONTriggerCircuit& MUONTriggerCircuit)
+AliMUONTriggerCircuit &
+AliMUONTriggerCircuit::operator=(const AliMUONTriggerCircuit& rhs)
{
-// Dummy assignment operator
- return *this;
+// Protected assignement operator
+
+ if (this == &rhs) return *this;
+
+ AliFatal("Not implemented.");
+
+ return *this;
}
//----------------------------------------------------------------------
}
//----------------------------------------------------------------------
-Int_t AliMUONTriggerCircuit::CircuitNumber(Int_t idCircuit){
+Int_t AliMUONTriggerCircuit::CircuitNumber(Int_t idCircuit) const {
// returns circuit number iCircuit (0-234) corresponding to circuit idCircuit
Int_t iCircuit=0;
for (Int_t i=0; i<234; i++) {
return iCircuit;
}
//----------------------------------------------------------------------
-Int_t AliMUONTriggerCircuit::ModuleNumber(Int_t idModule){
+Int_t AliMUONTriggerCircuit::ModuleNumber(Int_t idModule) const {
// returns module number imod (from 0 to 63) corresponding to module idmodule
Int_t absidModule=TMath::Abs(idModule);
Int_t iModule=0;
}
//----------------------------------------------------------------------
-Int_t AliMUONTriggerCircuit::Module(Int_t idCircuit) {
+Int_t AliMUONTriggerCircuit::Module(Int_t idCircuit) const {
// returns ModuleId where Circuit idCircuit is sitting
return Int_t(idCircuit/10);
}
//----------------------------------------------------------------------
-Int_t AliMUONTriggerCircuit::Position(Int_t idCircuit) {
+Int_t AliMUONTriggerCircuit::Position(Int_t idCircuit) const {
// returns position of idCircuit in correcponding Module
return TMath::Abs(idCircuit)-TMath::Abs(Module(idCircuit))*10;
}
// second case : mixing 8 and 16 strips within same circuit
} else {
for (istrip=0; istrip<nStrY; istrip++) {
- if (nStrY!=8) { cout << " bug in LoadXpos " << "\n";}
+ if (nStrY!=8) { printf(" bug in LoadXpos \n");}
segmentation->GetPadC(idModule,istrip,x,y,z);
fXpos11[2*istrip]=x-width/4.;
fXpos11[2*istrip+1]=fXpos11[2*istrip]+width/2.;
Float_t yPosX2=fYpos21[istripX2];
Float_t xPosY1=fXpos11[istripY];
- Float_t zf=975., z1=1603.5, z2=1703.5;
+ Float_t zf=975.;
+ Float_t z1=AliMUONConstants::DefaultChamberZ(10);
+ Float_t z2=AliMUONConstants::DefaultChamberZ(12);
Float_t thetaDev=(1./zf)*(yPosX1*z2-yPosX2*z1)/(z2-z1);
Float_t xf=xPosY1*zf/z1;
Float_t yf=yPosX2-((yPosX2-yPosX1)*(z2-zf))/(z2-z1);
//----------------------------------------------------------------------
//--- methods which return member data related info
//----------------------------------------------------------------------
-Int_t AliMUONTriggerCircuit::GetIdCircuit(){
+Int_t AliMUONTriggerCircuit::GetIdCircuit() const {
// returns circuit Id
return fIdCircuit;
}
//----------------------------------------------------------------------
-Int_t AliMUONTriggerCircuit::GetIdModule(){
+Int_t AliMUONTriggerCircuit::GetIdModule() const {
// returns module Id
return Module(fIdCircuit);
}
//----------------------------------------------------------------------
-Int_t AliMUONTriggerCircuit::GetNstripX() {
+Int_t AliMUONTriggerCircuit::GetNstripX() const {
// returns the number of X strips in the module where the circuit is sitting
return AliMUONTriggerConstants::NstripX(ModuleNumber(Module(fIdCircuit)));
}
//----------------------------------------------------------------------
-Int_t AliMUONTriggerCircuit::GetNstripY() {
+Int_t AliMUONTriggerCircuit::GetNstripY() const {
// returns the number of Y strips in the module where the circuit is sitting
return AliMUONTriggerConstants::NstripY(ModuleNumber(Module(fIdCircuit)));
}
//----------------------------------------------------------------------
-Int_t AliMUONTriggerCircuit::GetPosCircuit() {
+Int_t AliMUONTriggerCircuit::GetPosCircuit() const {
// returns the position of the circuit in its module
return Position(fIdCircuit);
}
//----------------------------------------------------------------------
-Int_t AliMUONTriggerCircuit::GetIdCircuitD(){
+Int_t AliMUONTriggerCircuit::GetIdCircuitD() const {
// returns the Id of the circuit down
Int_t idModule=Module(fIdCircuit);
Int_t idModuleD=(TMath::Abs(idModule)+10)*(TMath::Abs(idModule)/idModule);
return (TMath::Abs(idModuleD)*10+1)*(TMath::Abs(idModule)/idModule);
}
//----------------------------------------------------------------------
-Int_t AliMUONTriggerCircuit::GetICircuitD(){
+Int_t AliMUONTriggerCircuit::GetICircuitD() const {
// returns the number of the circuit down
Int_t idModule=Module(fIdCircuit);
Int_t idModuleD=(TMath::Abs(idModule)+10)*(TMath::Abs(idModule)/idModule);
return CircuitNumber(idCircuitD);
}
//----------------------------------------------------------------------
-Int_t AliMUONTriggerCircuit::GetIdCircuitU(){
+Int_t AliMUONTriggerCircuit::GetIdCircuitU() const {
// returns the Id of the circuit up
Int_t idModule=Module(fIdCircuit);
Int_t idModuleU=(TMath::Abs(idModule)-10)*(TMath::Abs(idModule)/idModule);
return (TMath::Abs(idModuleU)*10+1)*(TMath::Abs(idModule)/idModule);
}
//----------------------------------------------------------------------
-Int_t AliMUONTriggerCircuit::GetICircuitU(){
+Int_t AliMUONTriggerCircuit::GetICircuitU() const {
// returns the number of the circuit up
Int_t idModule=Module(fIdCircuit);
Int_t idModuleU=(TMath::Abs(idModule)-10)*(TMath::Abs(idModule)/idModule);
return CircuitNumber(idCircuitU);
}
//----------------------------------------------------------------------
-Int_t AliMUONTriggerCircuit::GetX2m(){
+Int_t AliMUONTriggerCircuit::GetX2m() const {
// returns fX2m
return fX2m;
}
//----------------------------------------------------------------------
-Int_t AliMUONTriggerCircuit::GetX2ud(){
+Int_t AliMUONTriggerCircuit::GetX2ud() const {
// returns fX2ud
return fX2ud;
}
//----------------------------------------------------------------------
-void AliMUONTriggerCircuit::GetOrMud(Int_t orMud[2]){
+void AliMUONTriggerCircuit::GetOrMud(Int_t orMud[2]) const {
// returns fOrMud
orMud[0]=fOrMud[0];
orMud[1]=fOrMud[1];
}
//----------------------------------------------------------------------
-Int_t AliMUONTriggerCircuit::GetXcode(Int_t chamber, Int_t istrip){
+Int_t AliMUONTriggerCircuit::GetXcode(Int_t chamber, Int_t istrip) const {
// returns X code of circuit/chamber/istrip (warning : chamber in [0,3])
return fXcode[chamber][istrip];
}
//----------------------------------------------------------------------
-Int_t AliMUONTriggerCircuit::GetYcode(Int_t chamber, Int_t istrip){
+Int_t AliMUONTriggerCircuit::GetYcode(Int_t chamber, Int_t istrip) const {
// returns Y code of circuit/chamber/istrip (warning : chamber in [0,3])
return fYcode[chamber][istrip];
}
//----------------------------------------------------------------------
-Float_t AliMUONTriggerCircuit::GetY11Pos(Int_t istrip){
+Float_t AliMUONTriggerCircuit::GetY11Pos(Int_t istrip) const {
// returns Y position of X strip istrip in MC11
return fYpos11[istrip];
}
//----------------------------------------------------------------------
-Float_t AliMUONTriggerCircuit::GetY21Pos(Int_t istrip){
+Float_t AliMUONTriggerCircuit::GetY21Pos(Int_t istrip) const {
// returns Y position of X strip istrip in MC21
return fYpos21[istrip];
}
//----------------------------------------------------------------------
-Float_t AliMUONTriggerCircuit::GetX11Pos(Int_t istrip){
+Float_t AliMUONTriggerCircuit::GetX11Pos(Int_t istrip) const {
// returns X position of Y strip istrip in MC11
return fXpos11[istrip];
}