X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=PHOS%2FAliPHOSRecPoint.cxx;h=9622d1cb6b44dfad6cfa4e0d6f544b9258a54547;hp=c771477a041bfbcfd5442b3e29441667df854f61;hb=1d26da6d8e27b8543e7c65c22f19dff5775cbd93;hpb=7af865cbe0756127015e391f0c618d1fcf46a18e diff --git a/PHOS/AliPHOSRecPoint.cxx b/PHOS/AliPHOSRecPoint.cxx index c771477a041..9622d1cb6b4 100644 --- a/PHOS/AliPHOSRecPoint.cxx +++ b/PHOS/AliPHOSRecPoint.cxx @@ -18,7 +18,7 @@ // Why should I put meaningless comments // just to satisfy // the code checker -//*-- Author: Gines Martinez (SUBATECH) +//-- Author: Gines Martinez (SUBATECH) // --- ROOT system --- #include "TPad.h" @@ -30,11 +30,11 @@ // --- Standard library --- // --- AliRoot header files --- - +#include "AliLog.h" +#include "AliPHOSLoader.h" #include "AliPHOSGeometry.h" #include "AliPHOSDigit.h" #include "AliPHOSRecPoint.h" -#include "AliPHOSGetter.h" #include "AliGeomManager.h" ClassImp(AliPHOSRecPoint) @@ -43,10 +43,10 @@ ClassImp(AliPHOSRecPoint) //____________________________________________________________________________ AliPHOSRecPoint::AliPHOSRecPoint() : AliCluster(),fPHOSMod(0), - fMulTrack(0),fMaxDigit(100),fMulDigit(0),fMaxTrack(0), + fMulTrack(0),fMaxDigit(100),fMulDigit(0),fMaxTrack(200), fDigitsList(0),fTracksList(0),fAmp(0), fIndexInList(-1), // to be set when the point is already stored - fLocPos(0,0,0),fLocPosM(0) + fLocPos(0,0,0) { // ctor @@ -56,9 +56,9 @@ AliPHOSRecPoint::AliPHOSRecPoint() AliPHOSRecPoint::AliPHOSRecPoint(const char * ) : AliCluster(),fPHOSMod(0), fMulTrack(0),fMaxDigit(100),fMulDigit(0),fMaxTrack(200), - fDigitsList(new int[fMaxDigit]),fTracksList(new int[fMaxTrack]),fAmp(0), + fDigitsList(new Int_t[fMaxDigit]),fTracksList(new Int_t[fMaxTrack]),fAmp(0), fIndexInList(-1), // to be set when the point is already stored - fLocPos(0,0,0),fLocPosM(new TMatrixF(3,3)) + fLocPos(0,0,0) { // ctor @@ -69,7 +69,6 @@ AliPHOSRecPoint::~AliPHOSRecPoint() { // dtor - delete fLocPosM ; delete [] fDigitsList ; delete [] fTracksList ; @@ -78,16 +77,18 @@ AliPHOSRecPoint::~AliPHOSRecPoint() AliPHOSRecPoint::AliPHOSRecPoint(const AliPHOSRecPoint &rp) : AliCluster(rp), fPHOSMod(rp.fPHOSMod),fMulTrack(rp.fMulTrack),fMaxDigit(rp.fMaxDigit), - fMulDigit(rp.fMulDigit),fMaxTrack(rp.fMaxTrack),fDigitsList(new int[rp.fMaxDigit]), - fTracksList(new int[rp.fMaxTrack]),fAmp(rp.fAmp),fIndexInList(rp.fIndexInList), - fLocPos(rp.fLocPos),fLocPosM(rp.fLocPosM) + fMulDigit(rp.fMulDigit),fMaxTrack(rp.fMaxTrack),fDigitsList(0x0), + fTracksList(0x0),fAmp(rp.fAmp),fIndexInList(rp.fIndexInList), + fLocPos(rp.fLocPos) { //copy ctor - for(Int_t i=0; i0) fDigitsList = new Int_t[rp.fMulDigit]; + for(Int_t i=0; i0) fTracksList = new Int_t[rp.fMulTrack]; + for(Int_t i=0; i0) { + fDigitsList = new Int_t[fMaxDigit]; + for(Int_t i=0; i0) { + fTracksList = new Int_t[fMaxTrack]; + for(Int_t i=0; i(gime->PHOSGeometry()); - - AliPHOSGeometry * phosgeom = AliPHOSLoader::GetPHOSGeometry(); + AliPHOSGeometry * phosgeom = AliPHOSGeometry::GetInstance() ; Int_t iDigit; Int_t relid[4] ; @@ -199,8 +202,8 @@ void AliPHOSRecPoint::ExecuteEvent(Int_t event, Int_t, Int_t) clustertext = new TPaveText(pos.X()-10,pos.Z()+10,pos.X()+50,pos.Z()+35,"") ; Text_t line1[40] ; Text_t line2[40] ; - sprintf(line1,"Energy=%1.2f GeV",GetEnergy()) ; - sprintf(line2,"%d Digits",GetDigitsMultiplicity()) ; + snprintf(line1,40,"Energy=%1.2f GeV",GetEnergy()) ; + snprintf(line2,40,"%d Digits",GetDigitsMultiplicity()) ; clustertext ->AddText(line1) ; clustertext ->AddText(line2) ; clustertext ->Draw(""); @@ -228,11 +231,10 @@ break; } } //____________________________________________________________________________ -void AliPHOSRecPoint::EvalAll(TClonesArray * digits) +void AliPHOSRecPoint::EvalAll(TClonesArray * /* digits */) { //evaluates (if necessary) all RecPoint data members - EvalPrimaries(digits) ; } //____________________________________________________________________________ @@ -243,80 +245,24 @@ void AliPHOSRecPoint::EvalPHOSMod(AliPHOSDigit * digit) if( fPHOSMod == 0){ Int_t relid[4] ; - AliPHOSGeometry * phosgeom = (AliPHOSGetter::Instance())->PHOSGeometry(); + AliPHOSGeometry * phosgeom = (AliPHOSGeometry::GetInstance()); phosgeom->AbsToRelNumbering(digit->GetId(), relid) ; fPHOSMod = relid[0]; } } -//______________________________________________________________________________ -void AliPHOSRecPoint::EvalPrimaries(TClonesArray * digits) -{ - // Constructs the list of primary particles (tracks) which have contributed to this RecPoint - - AliPHOSDigit * digit ; - Int_t * tempo = new Int_t[fMaxTrack] ; - - Int_t index ; - for ( index = 0 ; index < GetDigitsMultiplicity() ; index++ ) { // all digits - digit = dynamic_cast(digits->At( fDigitsList[index] )) ; - Int_t nprimaries = digit->GetNprimary() ; - if(nprimaries){ - Int_t * newprimaryarray = new Int_t[nprimaries] ; - Int_t ii ; - for ( ii = 0 ; ii < nprimaries ; ii++) - newprimaryarray[ii] = digit->GetPrimary(ii+1) ; - - Int_t jndex ; - for ( jndex = 0 ; jndex < nprimaries ; jndex++ ) { // all primaries in digit - if ( fMulTrack > fMaxTrack ) { - fMulTrack = - 1 ; - Error("EvalPrimaries", "GetNprimaries ERROR > increase fMaxTrack" ) ; - break ; - } - Int_t newprimary = newprimaryarray[jndex] ; - Int_t kndex ; - Bool_t already = kFALSE ; - for ( kndex = 0 ; kndex < fMulTrack ; kndex++ ) { //check if not already stored - if ( newprimary == tempo[kndex] ){ - already = kTRUE ; - break ; - } - } // end of check - if ( !already) { // store it - tempo[fMulTrack] = newprimary ; - fMulTrack++ ; - } // store it - } // all primaries in digit - delete [] newprimaryarray ; - } - } // all digits - - if(fMulTrack) - fTracksList = new Int_t[fMulTrack] ; - for(index = 0; index < fMulTrack; index++) - fTracksList[index] = tempo[index] ; - - delete [] tempo ; - -} //____________________________________________________________________________ void AliPHOSRecPoint::GetGlobalPosition(TVector3 & gpos, TMatrixF & gmat) const { // returns the position of the cluster in the global reference system of ALICE // and the uncertainty on this position - (AliPHOSGetter::Instance())->PHOSGeometry()->GetGlobalPHOS(this, gpos, gmat); - -// Float_t xyz[3]; -// GetGlobalXYZ(xyz); -// gpos.SetXYZ(xyz[0],xyz[1],xyz[2]); - + AliPHOSGeometry * phosgeom = (AliPHOSGeometry::GetInstance()); + phosgeom->GetGlobalPHOS(this, gpos, gmat); } - //______________________________________________________________________________ void AliPHOSRecPoint::Paint(Option_t *) { @@ -366,18 +312,18 @@ void AliPHOSRecPoint::EvalLocal2TrackingCSTransform() Double_t dy; Double_t crystalShift; - AliPHOSGeometry * phosgeom = AliPHOSLoader::GetPHOSGeometry(); + AliPHOSGeometry * phosgeom = AliPHOSGeometry::GetInstance(); AliPHOSEMCAGeometry* geoEMCA = phosgeom->GetEMCAGeometry(); //Calculate offset to crystal surface. //See fCrystalShift code in AliPHOSGeometry::Init()). - Float_t * inthermo = geoEMCA->GetInnerThermoHalfSize() ; - Float_t * strip = geoEMCA->GetStripHalfSize() ; - Float_t* splate = geoEMCA->GetSupportPlateHalfSize(); - Float_t * crystal = geoEMCA->GetCrystalHalfSize() ; - Float_t * pin = geoEMCA->GetAPDHalfSize() ; - Float_t * preamp = geoEMCA->GetPreampHalfSize() ; + const Float_t * inthermo = geoEMCA->GetInnerThermoHalfSize() ; + const Float_t * strip = geoEMCA->GetStripHalfSize() ; + const Float_t * splate = geoEMCA->GetSupportPlateHalfSize(); + const Float_t * crystal = geoEMCA->GetCrystalHalfSize() ; + const Float_t * pin = geoEMCA->GetAPDHalfSize() ; + const Float_t * preamp = geoEMCA->GetPreampHalfSize() ; crystalShift = -inthermo[1]+strip[1]+splate[1]+crystal[1]-geoEMCA->GetAirGapLed()/2.+pin[1]+preamp[1] ; if(IsEmc()) { @@ -390,7 +336,7 @@ void AliPHOSRecPoint::EvalLocal2TrackingCSTransform() lxyz[1] = lxyz[1] - dy; const TGeoHMatrix* tr2loc = GetTracking2LocalMatrix(); - if(!tr2loc) AliFatal(Form("No Tracking2LocalMatrix found.")); + if(!tr2loc) AliFatal(Form("No Tracking2LocalMatrix found for VolumeID=%d",GetVolumeId())); tr2loc->MasterToLocal(lxyz,txyz); SetX(txyz[0]); SetY(txyz[1]); SetZ(txyz[2]);