X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PHOS%2FAliPHOSRecPoint.cxx;h=d259034baa412e19acacd5c4731373bdd8f7fc99;hb=e8a76a2617f19ec07f7a5846e49d3f470164d638;hp=be3435e01f03381b12b09d2a09e6a612df1f4777;hpb=7a9d98f981f6adbfcf91070d6d29f49b22a28476;p=u%2Fmrichter%2FAliRoot.git diff --git a/PHOS/AliPHOSRecPoint.cxx b/PHOS/AliPHOSRecPoint.cxx index be3435e01f0..d259034baa4 100644 --- a/PHOS/AliPHOSRecPoint.cxx +++ b/PHOS/AliPHOSRecPoint.cxx @@ -22,11 +22,11 @@ // --- ROOT system --- #include "TPad.h" +#include "TGraph.h" +#include "TPaveText.h" #include "TClonesArray.h" // --- Standard library --- -#include -#include // --- AliRoot header files --- @@ -40,13 +40,22 @@ ClassImp(AliPHOSRecPoint) //____________________________________________________________________________ AliPHOSRecPoint::AliPHOSRecPoint() - : AliRecPoint() + : AliRecPoint(), + fPHOSMod(0) { // ctor - fMaxTrack = 200 ; - fPHOSMod = 0; + fMaxTrack = 0 ; +} +//____________________________________________________________________________ +AliPHOSRecPoint::AliPHOSRecPoint(const char * opt) + : AliRecPoint(opt), + fPHOSMod(0) +{ + // ctor + + fMaxTrack = 200 ; } //____________________________________________________________________________ @@ -78,7 +87,7 @@ Int_t AliPHOSRecPoint::DistancetoPrimitive(Int_t px, Int_t py) } //______________________________________________________________________________ -void AliPHOSRecPoint::ExecuteEvent(Int_t event, Int_t px, Int_t py) +void AliPHOSRecPoint::ExecuteEvent(Int_t event, Int_t, Int_t) { // Execute action corresponding to one event // This member function is called when a AliPHOSRecPoint is clicked with the locator @@ -98,8 +107,13 @@ void AliPHOSRecPoint::ExecuteEvent(Int_t event, Int_t px, Int_t py) case kButton1Down:{ AliPHOSDigit * digit ; - AliPHOSGetter * gime = AliPHOSGetter::GetInstance() ; - AliPHOSGeometry * phosgeom = const_cast(gime->PHOSGeometry()); + +// Accessing geometry this way is equivalent to getting from gAlice +// to have Detector in Folder one have to load gAlice anyway +// AliPHOSLoader * gime = AliPHOSLoader::GetInstance(); +// AliPHOSGeometry * phosgeom = const_cast(gime->PHOSGeometry()); + + AliPHOSGeometry * phosgeom = AliPHOSLoader::GetPHOSGeometry(); Int_t iDigit; Int_t relid[4] ; @@ -109,8 +123,7 @@ void AliPHOSRecPoint::ExecuteEvent(Int_t event, Int_t px, Int_t py) Float_t * zi = new Float_t [kMulDigit] ; for(iDigit = 0; iDigit < kMulDigit; iDigit++) { - cout << " AliPHOSRecPoint::ExecuteEvent -> Something wromg with the code" << endl ; - abort() ; + Fatal("AliPHOSRecPoint::ExecuteEvent", "-> Something wrong with the code"); digit = 0 ; //dynamic_cast((fDigitsList)[iDigit]); phosgeom->AbsToRelNumbering(digit->GetId(), relid) ; phosgeom->RelPosInModule(relid, xi[iDigit], zi[iDigit]) ; @@ -137,7 +150,7 @@ void AliPHOSRecPoint::ExecuteEvent(Int_t event, Int_t px, Int_t py) clustertext ->Draw(""); } gPad->Update() ; - Print() ; + Print("dummy") ; delete[] xi ; delete[] zi ; } @@ -159,11 +172,13 @@ break; } } //____________________________________________________________________________ -void AliPHOSRecPoint::EvalAll(Float_t logWeight,TClonesArray * digits) { +void AliPHOSRecPoint::EvalAll(TClonesArray * digits) +{ //evaluates (if necessary) all RecPoint data members EvalPrimaries(digits) ; } + //____________________________________________________________________________ void AliPHOSRecPoint::EvalPHOSMod(AliPHOSDigit * digit) { @@ -171,9 +186,8 @@ void AliPHOSRecPoint::EvalPHOSMod(AliPHOSDigit * digit) if( fPHOSMod == 0){ Int_t relid[4] ; - - AliPHOSGetter * gime = AliPHOSGetter::GetInstance() ; - AliPHOSGeometry * phosgeom = const_cast(gime->PHOSGeometry()); + + AliPHOSGeometry * phosgeom = (AliPHOSGetter::Instance())->PHOSGeometry(); phosgeom->AbsToRelNumbering(digit->GetId(), relid) ; fPHOSMod = relid[0]; @@ -192,52 +206,51 @@ void AliPHOSRecPoint::EvalPrimaries(TClonesArray * digits) for ( index = 0 ; index < GetDigitsMultiplicity() ; index++ ) { // all digits digit = dynamic_cast(digits->At( fDigitsList[index] )) ; Int_t nprimaries = digit->GetNprimary() ; - Int_t * newprimaryarray = new Int_t[nprimaries] ; - Int_t ii ; - for ( ii = 0 ; ii < nprimaries ; ii++) - newprimaryarray[ii] = digit->GetPrimary(ii+1) ; + 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 ; - cout << "AliPHOSRecPoint::GetNprimaries ERROR > increase fMaxTrack " << endl ; - 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 ; + 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 ; } - } // end of check - if ( !already) { // store it - tempo[fMulTrack] = newprimary ; - fMulTrack++ ; - } // store it - } // all primaries in digit - delete newprimaryarray ; + 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 - - fTracksList = new Int_t[fMulTrack] ; + if(fMulTrack) + fTracksList = new Int_t[fMulTrack] ; for(index = 0; index < fMulTrack; index++) - fTracksList[index] = tempo[index] ; - - delete tempo ; - + fTracksList[index] = tempo[index] ; + + delete [] tempo ; + } //____________________________________________________________________________ -void AliPHOSRecPoint::GetGlobalPosition(TVector3 & gpos, TMatrix & gmat) const +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::GetInstance()->PHOSGeometry()->GetGlobal(this, gpos, gmat) ; - + (AliPHOSGetter::Instance())->PHOSGeometry()->GetGlobal(this, gpos, gmat); } @@ -262,3 +275,5 @@ void AliPHOSRecPoint::Paint(Option_t *) gPad->SetAttMarkerPS(markercolor,markerstyle,markersize) ; gPad->PaintPolyMarker(1,&x,&y,"") ; } +//______________________________________________________________________________ +