X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=RALICE%2FAliCalmodule.cxx;h=a503a2da1d0855284b7b6c3f4170adf634d1050d;hb=d5a42c14b747bf87e5ea2412584460025cc5fd70;hp=12fd89222e41d61f03103879b63c6456e693b28d;hpb=959fbac55c99883f629c3c4797ac5b89fd3ab079;p=u%2Fmrichter%2FAliRoot.git diff --git a/RALICE/AliCalmodule.cxx b/RALICE/AliCalmodule.cxx index 12fd89222e4..a503a2da1d0 100644 --- a/RALICE/AliCalmodule.cxx +++ b/RALICE/AliCalmodule.cxx @@ -13,12 +13,7 @@ * provided "as is" without express or implied warranty. * **************************************************************************/ -/* -$Log$ -Revision 1.2 1999/09/29 09:24:28 fca -Introduction of the Copyright and cvs Log - -*/ +// $Id$ /////////////////////////////////////////////////////////////////////////// // Class AliCalmodule @@ -28,22 +23,20 @@ Introduction of the Copyright and cvs Log // Note : row and col start counting at 1. // //--- Author: Nick van Eijndhoven 13-jun-1997 UU-SAP Utrecht -//- Modified: NvE 31-oct-1999 UU-SAP Utrecht +//- Modified: NvE $Date$ UU-SAP Utrecht /////////////////////////////////////////////////////////////////////////// #include "AliCalmodule.h" +#include "Riostream.h" ClassImp(AliCalmodule) // Class implementation to enable ROOT I/O -AliCalmodule::AliCalmodule() +AliCalmodule::AliCalmodule() : AliSignal() { // Default constructor, all module data is set to 0 fRow=0; fCol=0; fSigc=0; - fEdge=0; - fDead=0; - fGain=1; } /////////////////////////////////////////////////////////////////////////// AliCalmodule::~AliCalmodule() @@ -51,16 +44,21 @@ AliCalmodule::~AliCalmodule() // Default destructor } /////////////////////////////////////////////////////////////////////////// -AliCalmodule::AliCalmodule(Int_t row,Int_t col,Float_t sig) +AliCalmodule::AliCalmodule(const AliCalmodule& m) : AliSignal(m) +{ +// Copy constructor + fRow=m.fRow; + fCol=m.fCol; + fSigc=m.fSigc; +} +/////////////////////////////////////////////////////////////////////////// +AliCalmodule::AliCalmodule(Int_t row,Int_t col,Double_t sig) : AliSignal() { // Module constructor with initialisation of module data fRow=row; fCol=col; AliSignal::SetSignal(sig); fSigc=sig; - fEdge=0; - fDead=0; - fGain=1; } /////////////////////////////////////////////////////////////////////////// void AliCalmodule::SetRow(Int_t i) @@ -75,90 +73,45 @@ void AliCalmodule::SetColumn(Int_t i) fCol=i; } /////////////////////////////////////////////////////////////////////////// -void AliCalmodule::SetSignal(Int_t row,Int_t col,Float_t sig) +void AliCalmodule::SetSignal(Double_t sig,Int_t j) { -// Set or change the data of the module - fRow=row; - fCol=col; - AliSignal::SetSignal(sig); - fSigc=sig; +// Set or change the data of the module. +// This is an extension of AliSignal::SetSignal in view of the clustered signal. + AliSignal::SetSignal(sig,j); + if (j==1) fSigc=sig; } /////////////////////////////////////////////////////////////////////////// -void AliCalmodule::AddSignal(Int_t row,Int_t col,Float_t sig) +void AliCalmodule::AddSignal(Double_t sig,Int_t j) { // Add or change the data of the module - fRow=row; - fCol=col; - AliSignal::AddSignal(sig); - fSigc+=sig; +// This is an extension of AliSignal::AddSignal in view of the clustered signal. + AliSignal::AddSignal(sig,j); + if (j==1) fSigc+=sig; } /////////////////////////////////////////////////////////////////////////// -void AliCalmodule::SetClusteredSignal(Float_t sig) +void AliCalmodule::SetClusteredSignal(Double_t sig) { // Set or change the signal of the module after clustering fSigc=sig; } /////////////////////////////////////////////////////////////////////////// -void AliCalmodule::SetEdgeOn() -{ -// Indicate the module as edge module - fEdge=1; -} -/////////////////////////////////////////////////////////////////////////// -void AliCalmodule::SetEdgeOff() -{ -// Indicate the module as non-edge module - fEdge=0; -} -/////////////////////////////////////////////////////////////////////////// -void AliCalmodule::EdgeUp() -{ -// Increase the edge value by 1 -// This simplifies treatment of edge modules around temp. dead modules - fEdge+=1; -} -/////////////////////////////////////////////////////////////////////////// -void AliCalmodule::EdgeDown() -{ -// Decrease the edge value by 1 -// This simplifies treatment of edge modules around temp. dead modules - if (fEdge > 0) fEdge-=1; -} -/////////////////////////////////////////////////////////////////////////// -void AliCalmodule::SetDead() -{ -// Indicate the module as dead - fDead=1; -} -/////////////////////////////////////////////////////////////////////////// -void AliCalmodule::SetAlive() -{ -// Indicate the module as dead - fDead=0; -} -/////////////////////////////////////////////////////////////////////////// -void AliCalmodule::SetGain(Float_t gain) -{ -// Set the gain value of the readout system - fGain=gain; -} -/////////////////////////////////////////////////////////////////////////// -Int_t AliCalmodule::GetRow() +Int_t AliCalmodule::GetRow() const { // Provide the row number of the module return fRow; } /////////////////////////////////////////////////////////////////////////// -Int_t AliCalmodule::GetColumn() +Int_t AliCalmodule::GetColumn() const { // Provide the column number of the module return fCol; } /////////////////////////////////////////////////////////////////////////// -Float_t AliCalmodule::GetClusteredSignal() +Float_t AliCalmodule::GetClusteredSignal() const { -// Provide the signal of the module after clustering - if (!fDead) +// Provide the signal of the module after clustering. + Int_t dead=GetDeadValue(); + if (!dead) { return fSigc; } @@ -168,21 +121,22 @@ Float_t AliCalmodule::GetClusteredSignal() } } /////////////////////////////////////////////////////////////////////////// -Int_t AliCalmodule::GetEdgeValue() -{ -// Provide the value of the edge indicator (1=edge 0=no-edge) - return fEdge; -} -/////////////////////////////////////////////////////////////////////////// -Int_t AliCalmodule::GetDeadValue() -{ -// Provide the value of the dead indicator (1=dead 0=alive) - return fDead; -} -/////////////////////////////////////////////////////////////////////////// -Float_t AliCalmodule::GetGain() +TObject* AliCalmodule::Clone(const char* name) const { -// Provide the gain value of the readout system - return fGain; +// Make a deep copy of the current object and provide the pointer to the copy. +// This memberfunction enables automatic creation of new objects of the +// correct type depending on the object type, a feature which may be very useful +// for containers like AliCalorimeter when adding objects in case the +// container owns the objects. This feature allows e.g. AliCalorimeter +// to store either AliCalmodule objects or objects derived from AliCalmodule +// via tha AddSignal memberfunction, provided these derived classes also have +// a proper Clone memberfunction. + + AliCalmodule* m=new AliCalmodule(*this); + if (name) + { + if (strlen(name)) m->SetName(name); + } + return m; } ///////////////////////////////////////////////////////////////////////////