#include "AliPHOS.h"
#include "AliMC.h"
+//#include "TGeant3.h"
#include "AliRun.h"
ClassImp(AliPHOS)
// Tracking threshold for photons and electrons in the scintillator crystal
gMC->Gstpar(idtmed[699], "CUTGAM",0.5E-4) ;
gMC->Gstpar(idtmed[699], "CUTELE",1.0E-4) ;
-
- // Tracking threshold for photons and electrons in the gas
- gMC->Gstpar(idtmed[715], "CUTGAM",0.5E-4) ;
- gMC->Gstpar(idtmed[715], "CUTELE",1.0E-4) ;
-
+
// --- Generate explicitly delta rays in the titan cover ---
gMC->Gstpar(idtmed[704], "LOSS",3.) ;
gMC->Gstpar(idtmed[704], "DRAY",1.) ;
gMC->Gstpar(idtmed[701], "LOSS",3.) ;
gMC->Gstpar(idtmed[701], "DRAY",1.) ;
+// Tracking threshold for photons and electrons in the gas ArC02
+ // TGeant3 *geant3 = (TGeant3*)gMC;
+ //geant3->SetERAN(5.e-8, 1.e1,90);
+
+ gMC->Gstpar(idtmed[715], "CUTGAM",1.E-8) ;
+ gMC->Gstpar(idtmed[715], "CUTELE",1.E-8) ;
+ gMC->Gstpar(idtmed[715], "CUTNEU",1.E-8) ;
+ gMC->Gstpar(idtmed[715], "CUTHAD",1.E-8) ;
+ gMC->Gstpar(idtmed[715], "CUTMUO",1.E-8) ;
+ gMC->Gstpar(idtmed[715], "BCUTE",1.E-8) ;
+ gMC->Gstpar(idtmed[715], "BCUTM",1.E-8) ;
+ gMC->Gstpar(idtmed[715], "DCUTE",1.E-8) ;
+ gMC->Gstpar(idtmed[715], "DCUTM",1.E-8) ;
+ gMC->Gstpar(idtmed[715], "PPCUTM",1.E-8) ;
+ gMC->Gstpar(idtmed[715], "LOSS",2.) ;
+ gMC->Gstpar(idtmed[715], "DRAY",0.) ;
+ gMC->Gstpar(idtmed[715], "STRA",2.) ;
+
+
+
+
}
// --- Standard library ---
-#include "iostream.h"
+#include <iostream>
// --- AliRoot header files ---
//____________________________________________________________________________
Int_t AliPHOSClusterizerv1::AreNeighbours(AliPHOSDigit * d1, AliPHOSDigit * d2)
{
- // neigbours are defined as digits having at least common virtix
+ // neigbours are defined as digits having at least common vertex
// The order of A and B in AreNeighbours(A,B) is important: first (A) should be digit
- // in cluster, which compared with digits, which not clasterized yet
+ // in cluster, which compared with digits not clusterized yet
Int_t rv = 0 ;
AliPHOSGeometry * geom = AliPHOSGeometry::GetInstance() ;
// copies the digits with energy above thershold and sorts the list
// according to increasing Id number
-
AliPHOSGeometry * geom = AliPHOSGeometry::GetInstance() ;
Int_t relid[4] ;
//____________________________________________________________________________
Bool_t AliPHOSClusterizerv1::IsInEmc(AliPHOSDigit * digit)
{
- Bool_t rv = kFALSE ;
+ Bool_t rv = kFALSE ;
AliPHOSGeometry * geom = AliPHOSGeometry::GetInstance() ;
//____________________________________________________________________________
void AliPHOSClusterizerv1::MakeClusters(const DigitsList * dl, RecPointsList * emcl, RecPointsList * ppsdl)
{
-
// Fill and sort the working digits list
TObjArray TempoDigitsList( dl->GetEntries() ) ;
- this->FillandSort(dl, &TempoDigitsList) ;
-
-
+ FillandSort(dl, &TempoDigitsList) ;
// Clusterization starts
TIter nextdigit(&TempoDigitsList) ;
AliPHOSDigit * digit ;
Bool_t NotRemoved = kTRUE ;
-
+ cout << "Cluster1" << endl;
while ( (digit = (AliPHOSDigit *)nextdigit()) ) { // scan over the list of digits
AliPHOSRecPoint * clu ;
-
+
int * ClusterDigitsList[dl->GetEntries()] ;
Int_t index ;
- if (( (this->IsInEmc(digit)) && (Calibrate(digit->GetAmp()) > fEmcClusteringThreshold ) ) ||
- ( (!this->IsInEmc(digit)) && (Calibrate(digit->GetAmp()) > fPpsdClusteringThreshold ) ) ) {
+ if (( ( IsInEmc(digit) ) && ( Calibrate(digit->GetAmp() ) > fEmcClusteringThreshold ) ) ||
+ ( ( !IsInEmc(digit) ) && ( Calibrate(digit->GetAmp() ) > fPpsdClusteringThreshold ) ) ) {
Int_t iDigitInCluster = 0 ;
- if (this->IsInEmc(digit) ) {
- new ((*emcl)[fNumberOfEmcClusters]) AliPHOSEmcRecPoint(fW0, fLocMaxCut) ;// start a new EMC RecPoint
+ if ( IsInEmc(digit) ) {
+ emcl->Print("");
+ cout << "Cluster2 EMC" << endl;
+ new ((*emcl)[fNumberOfEmcClusters]) AliPHOSEmcRecPoint(fW0, fLocMaxCut) ; // start a new EMC RecPoint
+ clu = (AliPHOSEmcRecPoint *) (*emcl)[fNumberOfEmcClusters] ;
+ fNumberOfEmcClusters++ ;
+ clu->AddDigit(*digit, Calibrate(digit->GetAmp())) ;
- clu = (AliPHOSEmcRecPoint *) (*emcl)[fNumberOfEmcClusters++] ;
-
- clu->AddDigit(*digit,Calibrate(digit->GetAmp())) ;
-
- ClusterDigitsList[iDigitInCluster++] = (int* ) digit ;
+ ClusterDigitsList[iDigitInCluster] = (int* ) digit ;
+ iDigitInCluster++ ;
TempoDigitsList.Remove(digit) ;
}
else {
- new ((*ppsdl)[fNumberOfPpsdClusters]) AliPHOSPpsdRecPoint() ;// start a new PPSD cluster
- clu = (AliPHOSPpsdRecPoint *) ppsdl->At(fNumberOfPpsdClusters++) ;
- clu->AddDigit(*digit,0.) ;
- ClusterDigitsList[iDigitInCluster++] = (int* ) digit ;
- TempoDigitsList.Remove(digit) ;
+ cout << "Cluster2 PPSD" << endl;
+ new ((*ppsdl)[fNumberOfPpsdClusters]) AliPHOSPpsdRecPoint() ; // start a new PPSD cluster
+ clu = (AliPHOSPpsdRecPoint *) ppsdl->At(fNumberOfPpsdClusters) ;
+ fNumberOfPpsdClusters++ ;
+ clu->AddDigit(*digit, 0.) ;
+ ClusterDigitsList[iDigitInCluster] = (int* ) digit ;
+ iDigitInCluster++ ;
+ TempoDigitsList.Remove(digit) ;
nextdigit.Reset() ;
- //Here we remove resting EMC digits, which can not make cluster
- if(NotRemoved){
+ // Here we remove resting EMC digits, which cannot make cluster
+
+ if( NotRemoved ) {
- while( (digit = (AliPHOSDigit *)nextdigit()) ){
+ while( ( digit = (AliPHOSDigit *)nextdigit() ) ) {
- if(IsInEmc(digit)) TempoDigitsList.Remove(digit) ;
+ if( IsInEmc(digit) )
+ TempoDigitsList.Remove(digit) ;
else
break ;
-
- }// while digit
+
+ } // while digit
} // if NotRemoved
AliPHOSDigit * digitN ;
index = 0 ;
- while (index < iDigitInCluster){ // scan over digits already in claster
- digit = (AliPHOSDigit *) ClusterDigitsList[index++] ;
-
+ while (index < iDigitInCluster){ // scan over digits already in cluster
+ digit = (AliPHOSDigit *) ClusterDigitsList[index] ;
+ index++ ;
while ( (digitN = (AliPHOSDigit *)nextdigit()) ) { // scan over the reduced list of digits
Int_t ineb = AreNeighbours(digit, digitN); // call (digit,digitN) in THAT oder !!!!!
switch (ineb ) {
- case 0 : // not a neibors
+ case 0 : // not a neighbour
break ;
- case 1 : // Are neibors
- clu->AddDigit(*digitN,Calibrate(digitN->GetAmp())) ;
- ClusterDigitsList[iDigitInCluster++] =(int*) digitN ;
+ case 1 : // are neighbours
+ clu->AddDigit( *digitN, Calibrate( digitN->GetAmp() ) ) ;
+ ClusterDigitsList[iDigitInCluster] =(int*) digitN ;
+ iDigitInCluster++ ;
TempoDigitsList.Remove(digitN) ;
break ;
- case 2 : // to far from each other
+ case 2 : // too far from each other
goto endofloop;
} // switch
AliPHOSClusterizerv1() ; // ctor
virtual ~AliPHOSClusterizerv1(){} ; // dtor
- Int_t AreNeighbours(AliPHOSDigit * d1, AliPHOSDigit * d2) ; // checks if digits are in neighbour cells
- Float_t Calibrate(Int_t Amp){ return fA + fB*Amp ;} //Tranforms Amp to energy
- void FillandSort(const DigitsList * dl, TObjArray * tl) ; // sorts the list according to increasing id
+ Int_t AreNeighbours(AliPHOSDigit * d1, AliPHOSDigit * d2) ; // Checks if digits are in neighbour cells
+ Float_t Calibrate(Int_t Amp){ return (fA + fB * Amp) ;} // Tranforms Amp to energy
+ void FillandSort(const DigitsList * dl, TObjArray * tl) ; // Sorts the list according to increasing id
Float_t GetLogWeightCut(void){return fW0 ; }
Float_t GetLocalMaxCut(void) {return fLocMaxCut ; }
virtual void GetNumberOfClustersFound(Int_t * numb) ;
- Bool_t IsInEmc(AliPHOSDigit * digit) ; // tells id digit is in EMCA
+ Bool_t IsInEmc(AliPHOSDigit * digit) ; // Tells if id digit is in EMC
virtual void MakeClusters(const DigitsList * dl, RecPointsList * emcl, RecPointsList * ppsdl) ; // does the job
void PrintParameters() ;
void SetCalibrationParameters(Float_t A,Float_t B){ fA = A ; fB = B;}
//////////////////////////////////////////////////////////////////////////////
// --- ROOT system ---
-
+#include "TPad.h"
+#include "TH2.h"
#include "TMath.h"
+#include "TCanvas.h"
// --- Standard library ---
-#include "iostream.h"
+#include <iostream>
// --- AliRoot header files ---
fLocPos.SetX(1000000.) ; //Local position should be evaluated
}
-// //____________________________________________________________________________
-// AliPHOSEmcRecPoint::~AliPHOSEmcRecPoint()
-// {
-// // dtor
-// }
+//____________________________________________________________________________
+AliPHOSEmcRecPoint::~AliPHOSEmcRecPoint()
+{
+ // dtor
+}
//____________________________________________________________________________
void AliPHOSEmcRecPoint::AddDigit(AliDigitNew & digit, Float_t Energy)
// and accumulates the total amplitude and the multiplicity
if ( fMulDigit >= fMaxDigit ) { // increase the size of the lists
- int * tempo = new ( int[fMaxDigit*=2] ) ;
- Float_t * tempoE = new ( Float_t[fMaxDigit*=2] ) ;
- Int_t index ;
-
+ fMaxDigit*=2 ;
+ int * tempo = new ( int[fMaxDigit] ) ;
+ Float_t * tempoE = new ( Float_t[fMaxDigit] ) ;
+
+ Int_t index ;
for ( index = 0 ; index < fMulDigit ; index++ ){
tempo[index] = fDigitsList[index] ;
tempoE[index] = fEnergyList[index] ;
}
- delete fDigitsList ;
- delete fEnergyList ;
- fDigitsList = tempo ;
- fEnergyList = tempoE ;
- }
+ delete [] fDigitsList ;
+ fDigitsList = new ( int[fMaxDigit] ) ;
+
+ delete [] fEnergyList ;
+ fEnergyList = new ( Float_t[fMaxDigit] ) ;
+
+ for ( index = 0 ; index < fMulDigit ; index++ ){
+ fDigitsList[index] = tempo[index] ;
+ fEnergyList[index] = tempoE[index] ;
+ }
+
+ delete [] tempo ;
+ delete [] tempoE ;
+ } // if
- fDigitsList[fMulDigit] = (int) &digit ;
- fEnergyList[fMulDigit++]= Energy ;
+ fDigitsList[fMulDigit] = (int) &digit ;
+ fEnergyList[fMulDigit++] = Energy ;
fAmp += Energy ;
}
return rv ;
}
+//______________________________________________________________________________
+void AliPHOSEmcRecPoint::ExecuteEvent(Int_t event, Int_t px, Int_t py)
+{
+//*-*-*-*-*-*-*-*-*-*-*Execute action corresponding to one event*-*-*-*
+//*-* =========================================
+// This member function is called when a AliPHOSRecPoint is clicked with the locator
+//
+// If Left button is clicked on AliPHOSRecPoint, the digits are switched on
+// and switched off when the mouse button is released.
+//
+
+ // static Int_t pxold, pyold;
+
+ static TGraph * DigitGraph = 0 ;
+
+ if (!gPad->IsEditable()) return;
+
+ TH2F * Histo = 0 ;
+ TCanvas * HistoCanvas ;
+
+ switch (event) {
+
+ case kButton1Down: {
+ AliPHOSDigit * digit ;
+ AliPHOSGeometry * PHOSGeom = (AliPHOSGeometry *) fGeom ;
+ Int_t iDigit;
+ Int_t relid[4] ;
+ Float_t xi[fMulDigit] ;
+ Float_t zi[fMulDigit] ;
+
+ // create the histogram for the single cluster
+ // 1. gets histogram boundaries
+ Float_t ximax = -999. ;
+ Float_t zimax = -999. ;
+ Float_t ximin = 999. ;
+ Float_t zimin = 999. ;
+
+ for(iDigit=0; iDigit<fMulDigit; iDigit++) {
+ digit = (AliPHOSDigit *) fDigitsList[iDigit];
+ PHOSGeom->AbsToRelNumbering(digit->GetId(), relid) ;
+ PHOSGeom->RelPosInModule(relid, xi[iDigit], zi[iDigit]);
+ if ( xi[iDigit] > ximax )
+ ximax = xi[iDigit] ;
+ if ( xi[iDigit] < ximin )
+ ximin = xi[iDigit] ;
+ if ( zi[iDigit] > zimax )
+ zimax = zi[iDigit] ;
+ if ( zi[iDigit] < zimin )
+ zimin = zi[iDigit] ;
+ }
+ ximax += PHOSGeom->GetCrystalSize(0) / 2. ;
+ zimax += PHOSGeom->GetCrystalSize(2) / 2. ;
+ ximin -= PHOSGeom->GetCrystalSize(0) / 2. ;
+ zimin -= PHOSGeom->GetCrystalSize(2) / 2. ;
+ Int_t xdim = (int)( (ximax - ximin ) / PHOSGeom->GetCrystalSize(0) + 0.5 ) ;
+ Int_t zdim = (int)( (zimax - zimin ) / PHOSGeom->GetCrystalSize(2) + 0.5 ) ;
+
+ // 2. gets the histogram title
+
+ Text_t title[100] ;
+ sprintf(title,"Energy=%1.2f GeV ; Digits ; %d ", GetEnergy(), GetDigitsMultiplicity()) ;
+
+ if (!Histo) {
+ delete Histo ;
+ Histo = 0 ;
+ }
+ Histo = new TH2F("cluster3D", title, xdim, ximin, ximax, zdim, zimin, zimax) ;
+
+ Float_t x, z ;
+ for(iDigit=0; iDigit<fMulDigit; iDigit++) {
+ digit = (AliPHOSDigit *) fDigitsList[iDigit];
+ PHOSGeom->AbsToRelNumbering(digit->GetId(), relid) ;
+ PHOSGeom->RelPosInModule(relid, x, z);
+ Histo->Fill(x, z, fEnergyList[iDigit] ) ;
+ }
+
+ if (!DigitGraph) {
+ DigitGraph = new TGraph(fMulDigit,xi,zi);
+ DigitGraph-> SetMarkerStyle(5) ;
+ DigitGraph-> SetMarkerSize(1.) ;
+ DigitGraph-> SetMarkerColor(1) ;
+ DigitGraph-> Paint("P") ;
+ }
+
+ Print() ;
+ HistoCanvas = new TCanvas("cluser", "a single cluster", 600, 500) ;
+ HistoCanvas->Draw() ;
+ Histo->Draw("lego1") ;
+
+ break;
+ }
+
+ case kButton1Up:
+ if (DigitGraph) {
+ delete DigitGraph ;
+ DigitGraph = 0 ;
+ }
+ break;
+
+ }
+}
+
//____________________________________________________________________________
Float_t AliPHOSEmcRecPoint::GetDispersion()
{
Int_t iDigitN ;
Int_t iDigit ;
- for(iDigit=0; iDigit<fMulDigit; iDigit++) {
+ for(iDigit=0; iDigit<fMulDigit; iDigit++){
maxAt[iDigit] = fDigitsList[iDigit] ;
}
for(iDigit=0 ; iDigit<fMulDigit; iDigit++) {
- if(maxAt[iDigit]!= -1) {
- digit = (AliPHOSDigit *) maxAt[iDigit];
+ if(maxAt[iDigit] != -1) {
+ digit = (AliPHOSDigit *) maxAt[iDigit] ;
for(iDigitN=0; iDigitN<fMulDigit; iDigitN++) {
- digitN = (AliPHOSDigit *) fDigitsList[iDigitN];
+ digitN = (AliPHOSDigit *) fDigitsList[iDigitN] ;
- if ( AreNeighbours(digit,digitN) ) {
+ if ( AreNeighbours(digit, digitN) ) {
if (fEnergyList[iDigit] > fEnergyList[iDigitN] ) {
maxAt[iDigitN] = -1 ;
//but may be digit is not local max too ?
for(iDigit=0; iDigit<fMulDigit; iDigit++) {
if(maxAt[iDigit] != -1){
maxAt[iDigitN] = maxAt[iDigit] ;
- maxAtEnergy[iDigitN++] = fEnergyList[iDigit] ;
+ maxAtEnergy[iDigitN] = fEnergyList[iDigit] ;
+ iDigitN++ ;
}
}
return iDigitN ;
AliPHOSDigit * digit ;
Int_t iDigit;
+ AliPHOSGeometry * PHOSGeom = (AliPHOSGeometry *) fGeom ;
+ Float_t xi ;
+ Float_t zi ;
+ Int_t relid[4] ;
+
for(iDigit=0; iDigit<fMulDigit; iDigit++) {
digit = (AliPHOSDigit *) fDigitsList[iDigit];
- cout << " digit Id = " << digit->GetId()
- << " digit Energy = " << fEnergyList[iDigit] << endl ;
+ PHOSGeom->AbsToRelNumbering(digit->GetId(), relid) ;
+ PHOSGeom->RelPosInModule(relid, xi, zi);
+ cout << " Id = " << digit->GetId() ;
+ cout << " module = " << relid[0] ;
+ cout << " x = " << xi ;
+ cout << " z = " << zi ;
+ cout << " Energy = " << fEnergyList[iDigit] << endl ;
}
cout << " Multiplicity = " << fMulDigit << endl ;
cout << " Cluster Energy = " << fAmp << endl ;
public:
- AliPHOSEmcRecPoint() ;
+ AliPHOSEmcRecPoint(){} ;
AliPHOSEmcRecPoint(Float_t W0, Float_t LocMaxCut) ;
- // virtual ~AliPHOSEmcRecPoint() ;
+ virtual ~AliPHOSEmcRecPoint() ;
void AddDigit(AliDigitNew & digit, Float_t Energy) ; // add a digit to the digits list
- Int_t Compare(TObject * obj) ; // method for sorting
+ Int_t Compare(TObject * obj) ; // method for sorting
Float_t GetDelta (){ return fDelta ; }
- Float_t GetDispersion() ; // computes the dispersion of the shower
- void GetElipsAxis(Float_t * lambda) ; // computes the axis of shower ellipsoide
+ Float_t GetDispersion() ; // computes the dispersion of the shower
+ void GetElipsAxis(Float_t * lambda) ; // computes the axis of shower ellipsoide
Float_t * GetEnergiesList(){return fEnergyList ;}
+ virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py) ;
Float_t GetLocMaxCut () {return fLocMaxCut ; }
Float_t GetLogWeightCut (){return fW0 ; }
- Float_t GetMaximalEnergy(void) ; // get the highest energy in the cluster
+ Float_t GetMaximalEnergy(void) ; // get the highest energy in the cluster
Int_t GetMaximumMultiplicity() { return fMaxDigit ; }
Int_t GetMultiplicity(void) const { return fMulDigit ; }
- Int_t GetMultiplicityAtLevel(const Float_t level) ; // computes multiplicity of digits with energy above relative level
- Int_t GetNumberOfLocalMax(int * maxAt, Float_t * maxAtEnergy) ; // searches for the local maxima
+ Int_t GetMultiplicityAtLevel(const Float_t level) ; // computes multiplicity of digits with energy above relative level
+ Int_t GetNumberOfLocalMax(int * maxAt, Float_t * maxAtEnergy) ; // searches for the local maxima
- Float_t GetTotalEnergy(void) const { return fAmp ; } // in EMC RecPoint Amp = Energy
- void GetLocalPosition(TVector3 &Lpos) ; // computes the position in the PHOS module
+ Float_t GetTotalEnergy(void) const { return fAmp ; } // in EMC RecPoint Amp = Energy
+ void GetLocalPosition(TVector3 &Lpos) ; // computes the position in the PHOS module
Bool_t IsEmc(void) {return kTRUE ; }
Bool_t IsSortable() const { return kTRUE ; }
void Print(Option_t * opt = "void") ;
// AliPHOSEmcRecPoint& operator = (AliPHOSEmcRecPoint clu) ;
private:
- Float_t fDelta ; // parameter used to sort the clusters
- Float_t fLocMaxCut ; // parameter used for local maximum searc
- Float_t * fEnergyList ; //energy of digits
- Float_t fW0 ; // logarithmic weight factor for center of gravity calculation
+
+ Float_t fDelta ; // parameter used to sort the clusters
+ Float_t fLocMaxCut ; // parameter used for local maximum searc
+ Float_t * fEnergyList ; // energy of digits
+ Float_t fW0 ; // logarithmic weight factor for center of gravity calculation
public:
// --- Standard library ---
-#include <iostream.h>
-#include "assert.h"
+#include <iostream>
+#include <cassert>
// --- AliRoot header files ---
}
return rv ;
}
+//____________________________________________________________________________
+void AliPHOSGeometry::EmcModuleCoverage(const Int_t mod, Double_t & tm, Double_t & tM, Double_t & pm, Double_t & pM, Option_t * opt)
+{
+ // calculates the angular coverage in theta and phi of a EMC module
+
+ Double_t conv ;
+ if ( opt == kRadian )
+ conv = 1. ;
+ else if ( opt == kDegre )
+ conv = 180. / TMath::Pi() ;
+ else {
+ cout << "<I> AliPHOSGeometry::EmcXtalCoverage : " << opt << " unknown option; result in radian " << endl ;
+ conv = 1. ;
+ }
+
+ Float_t phi = GetPHOSAngle(mod) * (TMath::Pi() / 180.) ;
+ Float_t Y0 = GetIPtoOuterCoverDistance() + GetUpperPlateThickness()
+ + GetSecondUpperPlateThickness() + GetUpperCoolingPlateThickness() ;
+
+ Double_t angle = TMath::ATan( GetCrystalSize(0)*GetNPhi() / (2 * Y0) ) ;
+ phi = phi + 1.5 * TMath::Pi() ; // to follow the convention of the particle generator(PHOS is between 230 and 310 deg.)
+ Double_t m = phi - angle ;
+ Double_t M = phi + angle ;
+ pM = TMath::Max(M, m) * conv ;
+ pm = TMath::Min(M, m) * conv ;
+
+ angle = TMath::ATan( GetCrystalSize(2)*GetNZ() / (2 * Y0) ) ;
+ M = TMath::Pi() / 2. + angle ; // to follow the convention of the particle generator(PHOS is at 90 deg.)
+ m = TMath::Pi() / 2. - angle ;
+ tM = TMath::Max(M, m) * conv ;
+ tm = TMath::Min(M, m) * conv ;
+
+}
+
+//____________________________________________________________________________
+void AliPHOSGeometry::EmcXtalCoverage(Double_t & theta, Double_t & phi, Option_t * opt)
+{
+ // calculates the angular coverage in theta and phi of a single crystal in a EMC module
+
+ Double_t conv ;
+ if ( opt == kRadian )
+ conv = 1. ;
+ else if ( opt == kDegre )
+ conv = 180. / TMath::Pi() ;
+ else {
+ cout << "<I> AliPHOSGeometry::EmcXtalCoverage : " << opt << " unknown option; result in radian " << endl ;
+ conv = 1. ;
+ }
+
+ Float_t Y0 = GetIPtoOuterCoverDistance() + GetUpperPlateThickness()
+ + GetSecondUpperPlateThickness() + GetUpperCoolingPlateThickness() ;
+ theta = 2 * TMath::ATan( GetCrystalSize(2) / (2 * Y0) ) * conv ;
+ phi = 2 * TMath::ATan( GetCrystalSize(0) / (2 * Y0) ) * conv ;
+}
+
+
+//____________________________________________________________________________
+void AliPHOSGeometry::ImpactOnEmc(const Double_t theta, const Double_t phi, Int_t & ModuleNumber, Double_t & z, Double_t & x)
+{
+ // calculates the impact coordinates of a neutral particle
+ // emitted in direction theta and phi in ALICE
+
+ // searches for the PHOS EMC module
+ ModuleNumber = 0 ;
+ Double_t tm, tM, pm, pM ;
+ Int_t index = 1 ;
+ while ( ModuleNumber == 0 && index <= GetNModules() ) {
+ EmcModuleCoverage(index, tm, tM, pm, pM) ;
+ if ( (theta >= tm && theta <= tM) && (phi >= pm && phi <= pM ) )
+ ModuleNumber = index ;
+ index++ ;
+ }
+ if ( ModuleNumber != 0 ) {
+ Float_t phi0 = GetPHOSAngle(ModuleNumber) * (TMath::Pi() / 180.) + 1.5 * TMath::Pi() ;
+ Float_t Y0 = GetIPtoOuterCoverDistance() + GetUpperPlateThickness()
+ + GetSecondUpperPlateThickness() + GetUpperCoolingPlateThickness() ;
+ Double_t angle = phi - phi0;
+ x = Y0 * TMath::Tan(angle) ;
+ angle = theta - TMath::Pi() / 2 ;
+ z = Y0 * TMath::Tan(angle) ;
+ }
+}
//____________________________________________________________________________
void AliPHOSGeometry::GetGlobal(const AliRecPoint* RecPoint, TVector3 & gpos, TMatrix & gmat)
fAvalancheGap = 0.01 ;
fCathodeThickness = 0.0009 ;
fCompositeThickness = 0.3 ;
- fConversionGap = 0.3 ;
+ fConversionGap = 0.6 ;
fLeadConverterThickness = 0.56 ;
fLeadToMicro2Gap = 0.1 ;
fLidThickness = 0.2 ;
//____________________________________________________________________________
AliPHOSGeometry * AliPHOSGeometry::GetInstance()
{
- assert(fGeom!=0) ;
return (AliPHOSGeometry *) fGeom ;
}
Int_t PHOSModule = RelId[0] ;
-
+ Float_t Y0 ;
+
if ( RelId[1] == 0 ) // it is a PbW04 crystal
- { pos.SetY( -(GetIPtoOuterCoverDistance() + GetUpperPlateThickness()
- + GetSecondUpperPlateThickness() + GetUpperCoolingPlateThickness()) ) ;
+ { Y0 = -(GetIPtoOuterCoverDistance() + GetUpperPlateThickness()
+ + GetSecondUpperPlateThickness() + GetUpperCoolingPlateThickness()) ;
}
if ( RelId[1] > 0 ) { // its a PPSD pad
if ( RelId[1] > GetNumberOfModulesPhi() * GetNumberOfModulesZ() ) // its an bottom module
{
- pos.SetY(-( GetIPtoOuterCoverDistance() - GetMicromegas2Thickness() / 2.0) ) ;
+ Y0 = -( GetIPtoOuterCoverDistance() - GetMicromegas2Thickness() / 2.0) ;
}
else // its an upper module
- pos.SetY(-( GetIPtoOuterCoverDistance() - GetMicromegas2Thickness() - GetLeadToMicro2Gap()
- - GetLeadConverterThickness() - GetMicro1ToLeadGap() - GetMicromegas1Thickness() / 2.0) ) ;
+ Y0 = -( GetIPtoOuterCoverDistance() - GetMicromegas2Thickness() - GetLeadToMicro2Gap()
+ - GetLeadConverterThickness() - GetMicro1ToLeadGap() - GetMicromegas1Thickness() / 2.0) ;
}
Float_t x, z ;
RelPosInModule(RelId, x, z) ;
- pos.SetX(x);
- pos.SetZ(z);
+ pos.SetX(x) ;
+ pos.SetZ(z) ;
+ pos.SetY( TMath::Sqrt(x*x + z*z + Y0*Y0) ) ;
+
Float_t Phi = GetPHOSAngle( PHOSModule) ;
#include "AliGeometry.h"
#include "AliPHOSRecPoint.h"
+static const TString kDegre("deg") ;
+static const TString kRadian("rad") ;
+
class AliPHOSGeometry : public AliGeometry {
public:
// General
Bool_t AbsToRelNumbering(const Int_t AbsId, Int_t * RelId) ; // converts the absolute PHOS numbering to a relative
+ void EmcModuleCoverage(const Int_t m, Double_t & tm, Double_t & tM, Double_t & pm, Double_t & pM, Option_t * opt = kRadian);
+ // calculates the angular coverage in theta and phi of a EMC module
+ void EmcXtalCoverage(Double_t & theta, Double_t & phi, Option_t * opt = kRadian) ;
+ // calculates the angular coverage in theta and phi of a
+ // single crystal in a EMC module
+ void ImpactOnEmc(const Double_t theta, const Double_t phi, Int_t & ModuleNumber, Double_t & x, Double_t & z) ;
+ // calculates the impact coordinates of a neutral particle
+ // emitted in direction theta and phi in ALICE
void RelPosInModule(const Int_t * RelId, Float_t & y, Float_t & z) ; // gets the position of element (pad or Xtal) relative to
// center of PHOS module
void RelPosInAlice(const Int_t AbsId, TVector3 & pos) ; // gets the position of element (pad or Xtal) relative to
// --- AliRoot header files ---
#include "AliHit.h"
-#include <iostream.h>
+
+// --- Standard library ---
+
+#include <iostream>
class AliPHOSHit : public AliHit {
//////////////////////////////////////////////////////////////////////////////
// --- ROOT system ---
-
+#include "TPad.h"
// --- Standard library ---
-#include <iostream.h>
+#include <iostream>
+#include <cassert>
// --- AliRoot header files ---
//____________________________________________________________________________
AliPHOSPpsdRecPoint::~AliPHOSPpsdRecPoint(void) // dtor
{
- delete fDigitsList ;
+ //dtor
}
//____________________________________________________________________________
if ( fMulDigit >= fMaxDigit ) { // increase the size of the lists
- int * tempo = new ( int[fMaxDigit*=2] ) ;
+ fMaxDigit*=2 ;
+ int * tempo = new ( int[fMaxDigit] ) ;
Int_t index ;
for ( index = 0 ; index < fMulDigit ; index++ )
tempo[index] = fDigitsList[index] ;
- delete fDigitsList ;
- fDigitsList = tempo ;
+ delete [] fDigitsList ;
+ fDigitsList = new ( int[fMaxDigit] ) ;
+
+ for ( index = 0 ; index < fMulDigit ; index++ )
+ fDigitsList[index] = tempo[index] ;
+
+ delete [] tempo ;
}
-
+
fDigitsList[fMulDigit++] = (int) &digit ;
fAmp += Energy ;
}
return up ;
}
+//______________________________________________________________________________
+void AliPHOSPpsdRecPoint::Paint(Option_t *)
+{
+//*-*-*-*-*-*-*-*-*-*-*Paint this ALiRecPoint as a TMarker with its current attributes*-*-*-*-*-*-*
+//*-* =============================================
+ TVector3 pos(0.,0.,0.) ;
+ GetLocalPosition(pos) ;
+ Coord_t x = pos.X() ;
+ Coord_t y = pos.Z() ;
+ Color_t MarkerColor = 1 ;
+ Size_t MarkerSize = 1. ;
+ Style_t MarkerStyle = 2 ;
+ if (GetUp())
+ MarkerStyle = 3 ;
+
+ if (!gPad->IsBatch()) {
+ gVirtualX->SetMarkerColor(MarkerColor);
+ gVirtualX->SetMarkerSize (MarkerSize);
+ gVirtualX->SetMarkerStyle(MarkerStyle);
+ }
+ gPad->SetAttMarkerPS(MarkerColor,MarkerStyle,MarkerSize);
+ gPad->PaintPolyMarker(1,&x,&y,"");
+
+
+}
//____________________________________________________________________________
void AliPHOSPpsdRecPoint::Print(Option_t * option)
cout << "AliPHOSPpsdRecPoint: " << endl ;
AliPHOSDigit * digit ;
-
Int_t iDigit;
+ AliPHOSGeometry * PHOSGeom = (AliPHOSGeometry *) fGeom ;
+
+ Float_t xi ;
+ Float_t zi ;
+ Int_t relid[4] ;
for(iDigit=0; iDigit<fMulDigit; iDigit++) {
digit = (AliPHOSDigit *) fDigitsList[iDigit];
- cout << " digit Id = " << digit->GetId()
- << " digit Energy = " << digit->GetAmp() << endl ;
+ PHOSGeom->AbsToRelNumbering(digit->GetId(), relid) ;
+ PHOSGeom->RelPosInModule(relid, xi, zi);
+ cout << " Id = " << digit->GetId() ;
+ cout << " Phos mod = " << relid[0] ;
+ cout << " PPSD mod = " << relid[1] ;
+ cout << " x = " << xi ;
+ cout << " z = " << zi ;
+ cout << " Energy = " << digit->GetAmp() << endl ;
}
cout << " Multiplicity = " << fMulDigit << endl ;
}
void GetLocalPosition(TVector3 &LPos) ; // computes the position in the module of the cluster center
//projection of ALICE axes on PHOS Module, y = 0 .
Bool_t GetUp() ; // true if cluster is in upper ppsd
- Bool_t IsEmc(void) {return kFALSE ; }
- Bool_t IsSortable() const { return kTRUE ; }
+ Bool_t IsEmc(void) {return kFALSE ; }
+ Bool_t IsSortable() const { return kTRUE ; }
+ virtual void Paint(Option_t * option="");
void Print(Option_t * opt = "void") ;
// AliPHOSPpsdRecPoint& operator = (AliPHOSPpsdRecPoint Clu) ;
//////////////////////////////////////////////////////////////////////////////
// --- ROOT system ---
+#include "TPad.h"
// --- Standard library ---
+#include <iostream>
+#include <cstdio>
// --- AliRoot header files ---
#include "AliPHOSDigit.h"
#include "AliPHOSRecPoint.h"
+
+
ClassImp(AliPHOSRecPoint)
{
// dtor
}
+//____________________________________________________________________________
+Int_t AliPHOSRecPoint::DistancetoPrimitive(Int_t px, Int_t py)
+{
+//*-*-*-*-*-*-*-*-*-*-*Compute distance from point px,py to a AliPHOSRecPoint considered as a Tmarker*-*-*-*-*-*
+//*-* ===========================================
+// Compute the closest distance of approach from point px,py to this marker.
+// The distance is computed in pixels units.
+//
+
+ TVector3 pos(0.,0.,0.) ;
+ GetLocalPosition( pos) ;
+ Float_t x = pos.X() ;
+ Float_t y = pos.Z() ;
+ const Int_t kMaxDiff = 10;
+ Int_t pxm = gPad->XtoAbsPixel(x);
+ Int_t pym = gPad->YtoAbsPixel(y);
+ Int_t dist = (px-pxm)*(px-pxm) + (py-pym)*(py-pym);
+
+ if (dist > kMaxDiff) return 9999;
+ return dist;
+}
+//___________________________________________________________________________
+ void AliPHOSRecPoint::Draw(Option_t *option)
+ {
+// //*-*-*-*-*-*-*-*-*-*-*Draw this AliPHOSRecPoint with its current attributes*-*-*-*-*-*-*
+// //*-*
+ // assert(0==1);
+ AppendPad(option);
+ }
+
+//______________________________________________________________________________
+void AliPHOSRecPoint::ExecuteEvent(Int_t event, Int_t px, Int_t py)
+{
+//*-*-*-*-*-*-*-*-*-*-*Execute action corresponding to one event*-*-*-*
+//*-* =========================================
+// This member function is called when a AliPHOSRecPoint is clicked with the locator
+//
+// If Left button is clicked on AliPHOSRecPoint, the digits are switched on
+// and switched off when the mouse button is released.
+//
+
+ // static Int_t pxold, pyold;
+
+ static TGraph * DigitGraph = 0 ;
+ static TPaveText* ClusterText = 0 ;
+
+ if (!gPad->IsEditable()) return;
+
+ switch (event) {
+
+
+ case kButton1Down:{
+ AliPHOSDigit * digit ;
+ AliPHOSGeometry * PHOSGeom = (AliPHOSGeometry *) fGeom ;
+ Int_t iDigit;
+ Int_t relid[4] ;
+ Float_t xi[fMulDigit] ;
+ Float_t zi[fMulDigit] ;
+
+ for(iDigit=0; iDigit<fMulDigit; iDigit++) {
+ digit = (AliPHOSDigit *) fDigitsList[iDigit];
+ PHOSGeom->AbsToRelNumbering(digit->GetId(), relid) ;
+ PHOSGeom->RelPosInModule(relid, xi[iDigit], zi[iDigit]) ;
+ }
+
+ if (!DigitGraph) {
+ DigitGraph = new TGraph(fMulDigit,xi,zi);
+ DigitGraph-> SetMarkerStyle(5) ;
+ DigitGraph-> SetMarkerSize(1.) ;
+ DigitGraph-> SetMarkerColor(1) ;
+ DigitGraph-> Draw("P") ;
+ }
+ if (!ClusterText) {
+
+ TVector3 pos(0.,0.,0.) ;
+ GetLocalPosition(pos) ;
+ 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()) ;
+ ClusterText ->AddText(line1) ;
+ ClusterText ->AddText(line2) ;
+ ClusterText ->Draw("");
+ }
+ gPad->Update() ;
+ Print() ;
+ }
+
+ break;
+
+ case kButton1Up:
+ if (DigitGraph) {
+ delete DigitGraph ;
+ DigitGraph = 0 ;
+ }
+ if (ClusterText) {
+ delete ClusterText ;
+ ClusterText = 0 ;
+ }
+
+ break;
+
+ }
+}
+
//____________________________________________________________________________
Int_t AliPHOSRecPoint::GetPHOSMod()
fPHOSMod = relid[0];
return fPHOSMod ;
}
+//______________________________________________________________________________
+void AliPHOSRecPoint::Paint(Option_t *)
+{
+//*-*-*-*-*-*-*-*-*-*-*Paint this ALiRecPoint as a TMarker with its current attributes*-*-*-*-*-*-*
+//*-* =============================================
+ TVector3 pos(0.,0.,0.) ;
+ GetLocalPosition(pos) ;
+ Coord_t x = pos.X() ;
+ Coord_t y = pos.Z() ;
+ Color_t MarkerColor = 1 ;
+ Size_t MarkerSize = 1. ;
+ Style_t MarkerStyle = 5 ;
+
+ if (!gPad->IsBatch()) {
+ gVirtualX->SetMarkerColor(MarkerColor) ;
+ gVirtualX->SetMarkerSize (MarkerSize) ;
+ gVirtualX->SetMarkerStyle(MarkerStyle) ;
+ }
+ gPad->SetAttMarkerPS(MarkerColor,MarkerStyle,MarkerSize) ;
+ gPad->PaintPolyMarker(1,&x,&y,"") ;
+}
// --- ROOT system ---
+#include "TMarker.h"
+#include "TGraph.h"
+#include "TPaveText.h"
+
// --- Standard library ---
-#include "assert.h"
+#include <cassert>
// --- AliRoot header files ---
AliPHOSRecPoint() ; // ctor
virtual ~AliPHOSRecPoint() ; // dtor
- virtual void AddDigit(AliDigitNew & digit, Float_t Energy) = 0 ;
- virtual Int_t GetPHOSMod(void) ;
+ virtual void AddDigit(AliDigitNew & digit, Float_t Energy) = 0 ;
+ virtual Int_t DistancetoPrimitive(Int_t px, Int_t py);
+ virtual void Draw(Option_t * option="") ;
+ virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py) ;
+ virtual Int_t GetPHOSMod(void) ;
virtual Bool_t IsEmc(void){return kTRUE ;}
- virtual void Print(Option_t * opt = "void") {}
+ virtual void Paint(Option_t * option="");
+ virtual void Print(Option_t * opt = "void") {}
virtual Int_t Compare(TObject * obj) { assert(0==1) ; }
virtual Bool_t IsSortable() const { return kTRUE ; }
protected:
-
- Int_t fPHOSMod;
+
+ Int_t fPHOSMod ;
public:
-
+
ClassDef(AliPHOSRecPoint,1)
};
//____________________________________________________________________________
AliPHOSReconstructioner::AliPHOSReconstructioner(AliPHOSClusterizer & Clusterizer, AliPHOSTrackSegmentMaker & Tracker)
{
- fClusterizer = &Clusterizer ;
+ fClusterizer = &Clusterizer ;
fTrackSegmentMaker = &Tracker ;
}
AliPHOSReconstructioner::~AliPHOSReconstructioner()
{
// dtor
+ fClusterizer = 0 ;
+ fTrackSegmentMaker = 0 ;
}
//____________________________________________________________________________
- void AliPHOSReconstructioner:: Make(TClonesArray * dl, RecPointsList * emccl, RecPointsList * ppsdl, TrackSegmentsList * trsl)
+void AliPHOSReconstructioner::Make(TClonesArray * dl, RecPointsList * emccl, RecPointsList * ppsdl, TrackSegmentsList * trsl)
{
+ cout << "Make1" << endl;
fClusterizer->MakeClusters(dl, emccl, ppsdl);
-
- fTrackSegmentMaker->MakeTrackSegments(dl,emccl,ppsdl,trsl) ;
+ cout << "Make2" << endl;
+ fTrackSegmentMaker->MakeTrackSegments(dl, emccl, ppsdl, trsl) ;
+ cout << "Make3" << endl;
}
private:
- AliPHOSClusterizer * fClusterizer ; // Method of clusterization
-
- AliPHOSTrackSegmentMaker * fTrackSegmentMaker ; //
+ AliPHOSClusterizer * fClusterizer ; // Method for clusterization
+ AliPHOSTrackSegmentMaker * fTrackSegmentMaker ; // Method for track segments finding
public:
// --- ROOT system ---
#include "TVector3.h"
+#include "TPad.h"
// --- Standard library ---
-#include "iostream.h"
+#include <iostream>
// --- AliRoot header files ---
// fPpsdLow.Delete() ;
}
+//____________________________________________________________________________
+Int_t AliPHOSTrackSegment::DistancetoPrimitive(Int_t px, Int_t py)
+{
+//*-*-*-*-*-*-*-*-*-*-*Compute distance from point px,py to a AliPHOSTrackSegment considered as a Tmarker*-*-*-*-*-*
+//*-* ===========================================
+// Compute the closest distance of approach from point px,py to this marker.
+// The distance is computed in pixels units.
+//
+
+ TVector3 pos(0.,0.,0.) ;
+ fEmcRecPoint->GetLocalPosition( pos) ;
+ Float_t x = pos.X() ;
+ Float_t y = pos.Z() ;
+ const Int_t kMaxDiff = 10;
+ Int_t pxm = gPad->XtoAbsPixel(x);
+ Int_t pym = gPad->YtoAbsPixel(y);
+ Int_t dist = (px-pxm)*(px-pxm) + (py-pym)*(py-pym);
+
+ if (dist > kMaxDiff) return 9999;
+ return dist;
+}
+
+//___________________________________________________________________________
+ void AliPHOSTrackSegment::Draw(Option_t *option)
+ {
+// //*-*-*-*-*-*-*-*-*-*-*Draw this AliPHOSTrackSegment with its current attributes*-*-*-*-*-*-*
+// //*-*
+ // assert(0==1);
+ AppendPad(option);
+ }
+
+//______________________________________________________________________________
+void AliPHOSTrackSegment::ExecuteEvent(Int_t event, Int_t px, Int_t py)
+{
+//*-*-*-*-*-*-*-*-*-*-*Execute action corresponding to one event*-*-*-*
+//*-* =========================================
+// This member function is called when a AliPHOSTrackSegment is clicked with the locator
+//
+// If Left button is clicked on AliPHOSRecPoint, the digits are switched on
+// and switched off when the mouse button is released.
+//
+ static TPaveText* TrackSegmentText = 0 ;
+
+ if (!gPad->IsEditable()) return;
+
+ switch (event) {
+
+ case kButton1Down:{
+
+ if (!TrackSegmentText) {
+
+ TVector3 pos(0.,0.,0.) ;
+ fEmcRecPoint->GetLocalPosition(pos) ;
+ TrackSegmentText = new TPaveText(pos.X()-10,pos.Z()+10,pos.X()+50,pos.Z()+35,"") ;
+ Text_t line1[40] ;
+ if (GetPartType() == 0 ) sprintf(line1,"PHOTON") ;
+ if (GetPartType() == 1 ) sprintf(line1,"NEUTRAL HADRON") ;
+ if (GetPartType() == 2 ) sprintf(line1,"CHARGED HADRON") ;
+ if (GetPartType() == 3 ) sprintf(line1,"ELECTRON") ;
+ TrackSegmentText ->AddText(line1) ;
+ TrackSegmentText ->Paint("");
+ }
+ }
+
+ break;
+
+ case kButton1Up:
+ if (TrackSegmentText) {
+ delete TrackSegmentText ;
+ TrackSegmentText = 0 ;
+ }
+ break;
+ }
+}
+
+
//____________________________________________________________________________
Float_t AliPHOSTrackSegment::GetDistanceInPHOSPlane()
{
fEmcRecPoint->GetGlobalPosition(pos, Dummy) ;
}
+//______________________________________________________________________________
+void AliPHOSTrackSegment::Paint(Option_t *)
+{
+//*-*-*-*-*-*-*-*-*-*-*Paint this ALiPHOSTrackSegment as a TMarker with its current attributes*-*-*-*-*-*-*
+//*-* =============================================
+ TVector3 pos(0.,0.,0.) ;
+ fEmcRecPoint->GetLocalPosition(pos) ;
+ Coord_t x = pos.X() ;
+ Coord_t y = pos.Z() ;
+ Color_t MarkerColor = 1 ;
+ Size_t MarkerSize = 1. ;
+ Style_t MarkerStyle = 29 ;
+
+ if (GetPartType() == 0 ) MarkerStyle = 20 ;
+ if (GetPartType() == 1 ) MarkerStyle = 21 ;
+ if (GetPartType() == 2 ) MarkerStyle = 22 ;
+ if (GetPartType() == 3 ) MarkerStyle = 23 ;
+
+ if (!gPad->IsBatch()) {
+ gVirtualX->SetMarkerColor(MarkerColor) ;
+ gVirtualX->SetMarkerSize (MarkerSize) ;
+ gVirtualX->SetMarkerStyle(MarkerStyle) ;
+ }
+ gPad->SetAttMarkerPS(MarkerColor,MarkerStyle,MarkerSize) ;
+ gPad->PaintPolyMarker(1,&x,&y,"") ;
+}
+
+
//____________________________________________________________________________
void AliPHOSTrackSegment::Print()
{
AliPHOSPpsdRecPoint * PpsdLow ) ;
virtual ~AliPHOSTrackSegment() ; // dtor
+ virtual Int_t DistancetoPrimitive(Int_t px, Int_t py);
+ virtual void Draw(Option_t * option="") ;
+ virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py);
Int_t GetPartType() ; // Returns 0 - gamma, 1 - e+, e- ; 2 - neutral hadron ; 3 - charged hadron
- Float_t GetEnergy(){ return fEmcRecPoint->GetTotalEnergy() ;} // Returs energy in EMC
+ Float_t GetEnergy(){ return fEmcRecPoint->GetTotalEnergy() ;} // Returs energy in EMC
+
Float_t GetDistanceInPHOSPlane(void) ; // computes in PHOS plane the relative position between EMC and PPSD clusters
+ virtual Int_t GetPHOSMod(void) {return fEmcRecPoint->GetPHOSMod(); }
Bool_t GetMomentumDirection( TVector3 & dir ) ; // True if determined
void GetPosition( TVector3 & pos ) ; // Returns positions of hits
+ virtual void Paint(Option_t * option="");
void Print() ;
void SetDispersionCutOff(Float_t Dcut) {fCutOnDispersion = Dcut ; }
// --- Standard library ---
-#include "iostream.h"
+#include <iostream>
// --- AliRoot header files ---
**************************************************************************/
//_________________________________________________________________________
-// A brief description of the class
-//*-- Author : Yves Schutz SUBATECH
+// Algorithm class to construct track segments connection RecPoints in
+// EMCA and Ppsd. Unfolds also the clusters in EMCA.
+//*-- Author : D. Peressounko SUBATECH
//////////////////////////////////////////////////////////////////////////////
// --- ROOT system ---
#include "TObjArray.h"
#include "TClonesArray.h"
-#include "TMinuit.h"
+#include "TObjectTable.h"
// --- Standard library ---
-#include "iostream.h"
+#include <iostream>
+#include <cassert>
// --- AliRoot header files ---
#include "AliPHOSv0.h"
#include "AliRun.h"
+extern void UnfoldingChiSquare(Int_t &NPar, Double_t *Grad, Double_t & fret, Double_t *x, Int_t iflag) ;
+
ClassImp( AliPHOSTrackSegmentMakerv1)
//____________________________________________________________________________
- AliPHOSTrackSegmentMakerv1:: AliPHOSTrackSegmentMakerv1() // ctor
+ AliPHOSTrackSegmentMakerv1::AliPHOSTrackSegmentMakerv1()
{
+ // ctor
fR0 = 4. ;
AliPHOSGeometry * geom = AliPHOSGeometry::GetInstance() ;
//clusters are sorted in "rows" and "columns" of width geom->GetCrystalSize(0),
fDelta = fR0 + geom->GetCrystalSize(0) ;
+ fMinuit = new TMinuit(100) ;
}
+//____________________________________________________________________________
+ AliPHOSTrackSegmentMakerv1::~AliPHOSTrackSegmentMakerv1()
+{
+ // dtor
+ delete fMinuit ;
+}
//____________________________________________________________________________
Bool_t AliPHOSTrackSegmentMakerv1::FindFit(AliPHOSEmcRecPoint * emcRP, int * maxAt, Float_t * maxAtEnergy,
- Int_t NPar, Float_t * FitParametres)
-{ //Calls TMinuit for fitting cluster with several maxima
-
+ Int_t NPar, Float_t * FitParameters)
+{
+ // gObjectTable->Print() ;
+ // Calls TMinuit for fitting cluster with several maxima
AliPHOSGeometry * geom = AliPHOSGeometry::GetInstance() ;
- TMinuit *gMinuit = new TMinuit(NPar); //initialize TMinuit with a maximum of 5 params
- gMinuit->SetPrintLevel(-1) ; //No PRIntout
- gMinuit->SetFCN(UnfoldingChiSquare ); //To set the address of the minimization function
- gMinuit->SetObjectFit(emcRP) ; //To tranfer pointer to UnfoldingChiSquare
+ assert( NPar < 100 ) ;
- //filling initial values for fit parameters
+ gMinuit->SetPrintLevel(-1) ; // No Printout
+ gMinuit->SetFCN(UnfoldingChiSquare) ; // To set the address of the minimization function
+ gMinuit->SetObjectFit(emcRP) ; // To tranfer pointer to UnfoldingChiSquare
+
+ // filling initial values for fit parameters
AliPHOSDigit * digit ;
- Int_t ierflg = 0;
- Int_t index = 0 ;
+
+ Int_t ierflg = 0;
+ Int_t index = 0 ;
Int_t NDigits = (Int_t) NPar / 3 ;
+
Int_t iDigit ;
- for(iDigit = 0 ; iDigit < NDigits ; iDigit ++){
+
+
+ for(iDigit = 0 ; iDigit < NDigits ; iDigit++){
digit = (AliPHOSDigit *) maxAt[iDigit];
Int_t RelId[4] ;
Float_t x ;
Float_t z ;
- geom->AbsToRelNumbering(digit->GetId(),RelId) ;
- geom->RelPosInModule(RelId,x,z) ;
+ geom->AbsToRelNumbering(digit->GetId(), RelId) ;
+ geom->RelPosInModule(RelId, x, z) ;
Float_t Energy = maxAtEnergy[iDigit] ;
- gMinuit->mnparm(index++, " ", x, 0.1, 0, 0, ierflg) ;
+ gMinuit->mnparm(index, "x", x, 0.1, 0, 0, ierflg) ;
+ index++ ;
if(ierflg != 0){
cout << "PHOS Unfolding> Unable to set initial value for fit procedure : x = " << x << endl ;
return kFALSE;
}
- gMinuit->mnparm(index++, " ", z, 0.1, 0, 0, ierflg) ;
+ gMinuit->mnparm(index, "z", z, 0.1, 0, 0, ierflg) ;
+ index++ ;
if(ierflg != 0){
cout << "PHOS Unfolding> Unable to set initial value for fit procedure : z = " << z << endl ;
return kFALSE;
}
- gMinuit->mnparm(index++, " ", Energy , 0.05*Energy, 0., 4.*Energy, ierflg) ;
+ gMinuit->mnparm(index, "Energy", Energy , 0.05*Energy, 0., 4.*Energy, ierflg) ;
+ index++ ;
if(ierflg != 0){
cout << "PHOS Unfolding> Unable to set initial value for fit procedure : Energy = " << Energy << endl ;
return kFALSE;
}
}
- Double_t p0=0.1; //"Tolerance" Evaluation stops when EDM = 0.0001*p0 ; The number of function call slightly
- //depends on it.
- Double_t p1 = 1.;
-
- gMinuit->mnexcm("SET STR", 0, 0, ierflg) ; //force TMinuit to reduce function calls
- gMinuit->mnexcm("SET GRA", &p1, 1, ierflg) ; //force TMinuit to use my gradient
+ Double_t p0 = 0.1 ; // "Tolerance" Evaluation stops when EDM = 0.0001*p0 ; The number of function call slightly
+ // depends on it.
+ Double_t p1 = 1.0 ;
+ Double_t p2 = 0.0 ;
+
+ gMinuit->mnexcm("SET STR", &p2, 0, ierflg) ; // force TgMinuit to reduce function calls
+ gMinuit->mnexcm("SET GRA", &p1, 1, ierflg) ; // force TMinuit to use my gradient
gMinuit->SetMaxIterations(5);
- gMinuit->mnexcm("SET NOW", 0 , 0, ierflg) ; //No Warnings
- gMinuit->mnexcm("MIGRAD", &p0, 0, ierflg); // minimize
- if(ierflg == 4){ //Minimum not found
- cout << "PHOS Unfolding> Fit not converged, cluster abondoned "<< endl ;
+ gMinuit->mnexcm("SET NOW", &p2 , 0, ierflg) ; // No Warnings
+ gMinuit->mnexcm("MIGRAD", &p0, 0, ierflg) ; // minimize
+ if(ierflg == 4){ // Minimum not found
+ cout << "PHOS Unfolding> Fit not converged, cluster abandoned "<< endl ;
return kFALSE ;
}
for(index = 0; index < NPar; index++){
Double_t err ;
Double_t val ;
- gMinuit->GetParameter(index, val, err) ; //Returns value and error of parameter index
- FitParametres[index] = val ;
+ gMinuit->GetParameter(index, val, err) ; // Returns value and error of parameter index
+ FitParameters[index] = val ;
}
- gMinuit->Delete() ;
return kTRUE;
+
}
+
//____________________________________________________________________________
void AliPHOSTrackSegmentMakerv1::FillOneModule(DigitsList * Dl, RecPointsList * emcIn, TObjArray * emcOut,
RecPointsList * ppsdIn, TObjArray * ppsdOutUp,
- TObjArray * ppsdOutLow, Int_t &PHOSMod, Int_t & emcStopedAt,
+ TObjArray * ppsdOutLow, Int_t & PHOSMod, Int_t & emcStopedAt,
Int_t & ppsdStopedAt)
-{// Unfold clusters and fill xxxOut arrais with clusters from ome PHOS modeule
- AliPHOSEmcRecPoint * emcRecPoint ;
+{
+ // Unfold clusters and fill xxxOut arrays with clusters from one PHOS module
+
+ AliPHOSEmcRecPoint * emcRecPoint ;
AliPHOSPpsdRecPoint * ppsdRecPoint ;
Int_t index ;
-
+ cout << "Fill 1" << endl ;
Int_t NemcUnfolded = emcIn->GetEntries() ;
for(index = emcStopedAt; index < NemcUnfolded; index++){
-
emcRecPoint = (AliPHOSEmcRecPoint *) (*emcIn)[index] ;
-
+ cout << "Fill 2" << endl ;
+
if(emcRecPoint->GetPHOSMod() != PHOSMod )
- break ;
+ break ;
+
Int_t NMultipl = emcRecPoint->GetMultiplicity() ;
int maxAt[NMultipl] ;
Float_t maxAtEnergy[NMultipl] ;
- Int_t Nmax = emcRecPoint->GetNumberOfLocalMax(maxAt,maxAtEnergy) ;
+ Int_t Nmax = emcRecPoint->GetNumberOfLocalMax(maxAt, maxAtEnergy) ;
+
+
- if(Nmax<=1) // if cluster is very flat, so that no prononsed maximum, then Nmax = 0
+ if(Nmax <= 1) // if cluster is very flat, so that no prononsed maximum, then Nmax = 0
emcOut->Add(emcRecPoint) ;
else {
UnfoldClusters(Dl, emcIn, emcRecPoint, Nmax, maxAt, maxAtEnergy, emcOut) ;
emcIn->Remove(emcRecPoint);
+ cout << "Fill 3" << endl ;
emcIn->Compress() ;
NemcUnfolded-- ;
index-- ;
for(index = ppsdStopedAt; index < ppsdIn->GetEntries(); index++){
ppsdRecPoint = (AliPHOSPpsdRecPoint *) (*ppsdIn)[index] ;
- if(ppsdRecPoint->GetPHOSMod() != PHOSMod ) break ;
+ if(ppsdRecPoint->GetPHOSMod() != PHOSMod )
+ break ;
if(ppsdRecPoint->GetUp() )
ppsdOutUp->Add(ppsdRecPoint) ;
else
AliPHOSPpsdRecPoint * ppsdLow ;
AliPHOSPpsdRecPoint * ppsdUp ;
+ AliPHOSRecPoint * NullPointer = 0 ;
+
while ( (linkLow = (AliPHOSLink *)nextLow() ) ){
emc = (AliPHOSEmcRecPoint *) EmcRecPoints->At(linkLow->GetEmc()) ;
ppsdLow = (AliPHOSPpsdRecPoint *) PpsdRecPointsLow->At(linkLow->GetPpsd()) ;
nextUp.Reset();
AliPHOSTrackSegment * subtr = new AliPHOSTrackSegment(emc, ppsdUp, ppsdLow ) ;
trsl->Add(subtr) ;
- EmcRecPoints->RemoveAt(linkLow->GetEmc()) ;
- PpsdRecPointsLow->RemoveAt(linkLow->GetPpsd()) ;
+ EmcRecPoints->AddAt(NullPointer,linkLow->GetEmc()) ;
+ PpsdRecPointsLow->AddAt(NullPointer,linkLow->GetPpsd()) ;
if(ppsdUp)
- PpsdRecPointsUp->RemoveAt(linkUp->GetPpsd()) ;
+ PpsdRecPointsUp->AddAt(NullPointer,linkUp->GetPpsd()) ;
} // if NLocMax
}
nextEmc.Reset() ;
while( (emc = (AliPHOSEmcRecPoint*)nextEmc()) ){ //to create pairs if no PpsdLow
- ppsdLow = NULL ;
- ppsdUp = NULL ;
+ ppsdLow = 0 ;
+ ppsdUp = 0 ;
while ( (linkUp = (AliPHOSLink *)nextUp() ) ){
trsl->Add(subtr) ;
if(ppsdUp)
- PpsdRecPointsUp->RemoveAt(linkUp->GetPpsd()) ;
-
+ PpsdRecPointsUp->AddAt(NullPointer,linkUp->GetPpsd()) ;
}
}
void AliPHOSTrackSegmentMakerv1::MakeTrackSegments(DigitsList * DL, RecPointsList * emcl,
RecPointsList * ppsdl, TrackSegmentsList * trsl)
{
- //main function, does the job
+ // main function, does the job
- Int_t PHOSMod = 1 ;
- Int_t emcStopedAt = 0 ;
+ Int_t PHOSMod = 1 ;
+ Int_t emcStopedAt = 0 ;
Int_t ppsdStopedAt = 0 ;
- TObjArray * EmcRecPoints = new TObjArray(100) ; //these arrays keeps pointers
- TObjArray * PpsdRecPointsUp = new TObjArray(100) ; //on RecPoints, which are
- TObjArray * PpsdRecPointsLow = new TObjArray(100) ; //kept in TClonesArray's emcl and ppsdl
+ TObjArray * EmcRecPoints = new TObjArray(100) ; // these arrays keep pointers
+ TObjArray * PpsdRecPointsUp = new TObjArray(100) ; // to RecPoints, which are
+ TObjArray * PpsdRecPointsLow = new TObjArray(100) ; // kept in TClonesArray's emcl and ppsdl
TClonesArray * LinkLowArray = new TClonesArray("AliPHOSLink", 100);
AliPHOSGeometry * geom = AliPHOSGeometry::GetInstance() ;
while(PHOSMod <= geom->GetNModules() ){
+
+ cout << PHOSMod << " Track1 " << endl ;
FillOneModule(DL, emcl, EmcRecPoints, ppsdl, PpsdRecPointsUp, PpsdRecPointsLow, PHOSMod , emcStopedAt, ppsdStopedAt) ;
-
- MakeLinks(EmcRecPoints,PpsdRecPointsUp, PpsdRecPointsLow, LinkLowArray, LinkUpArray) ;
+ cout << PHOSMod << " Track2 " << endl ;
+ MakeLinks(EmcRecPoints, PpsdRecPointsUp, PpsdRecPointsLow, LinkLowArray, LinkUpArray) ;
- MakePairs(EmcRecPoints,PpsdRecPointsUp, PpsdRecPointsLow, LinkLowArray, LinkUpArray, trsl) ;
+ cout << PHOSMod << " Track3 " << endl ;
+ MakePairs(EmcRecPoints, PpsdRecPointsUp, PpsdRecPointsLow, LinkLowArray, LinkUpArray, trsl) ;
EmcRecPoints->Clear() ;
+
PpsdRecPointsUp->Clear() ;
+
PpsdRecPointsLow->Clear() ;
- LinkUpArray->Delete();
- LinkLowArray->Delete();
+
+ LinkUpArray->Clear();
+
+ LinkLowArray->Clear();
+
}
+ delete EmcRecPoints ;
+ EmcRecPoints = 0 ;
+
+ delete PpsdRecPointsUp ;
+ PpsdRecPointsUp = 0 ;
+
+ delete PpsdRecPointsLow ;
+ PpsdRecPointsLow = 0 ;
+
+ delete LinkUpArray ;
+ LinkUpArray = 0 ;
+
+ delete LinkLowArray ;
+ LinkLowArray = 0 ;
}
//____________________________________________________________________________
-Double_t AliPHOSTrackSegmentMakerv1::ShowerShape(Double_t r){
+Double_t AliPHOSTrackSegmentMakerv1::ShowerShape(Double_t r)
+{
// If you change this function, change also gradiend evaluation in ChiSquare()
Double_t r4 = r*r*r*r ;
Double_t r295 = TMath::Power(r, 2.95) ;
void AliPHOSTrackSegmentMakerv1::UnfoldClusters(DigitsList * DL, RecPointsList * emcIn, AliPHOSEmcRecPoint * iniEmc,
Int_t Nmax, int * maxAt, Float_t * maxAtEnergy, TObjArray * emcList)
{
- //fits cluster with Nmax overlapping showers
+ // fits cluster with Nmax overlapping showers
Int_t NPar = 3 * Nmax ;
Float_t FitParameters[NPar] ;
AliPHOSGeometry * geom = AliPHOSGeometry::GetInstance() ;
-
- if( !FindFit(iniEmc, maxAt, maxAtEnergy, NPar, FitParameters) ) //Fit failed, return and remove cluster
+
+ Bool_t rv = FindFit(iniEmc, maxAt, maxAtEnergy, NPar, FitParameters) ;
+ if( !rv ) // Fit failed, return and remove cluster
return ;
Float_t xDigit ;
Distance = TMath::Sqrt(Distance) ;
Ratio = Epar * ShowerShape(Distance) / Efit[iDigit] ;
eDigit = emcEnergies[iDigit] * Ratio ;
- emcRP->AddDigit( *digit,eDigit ) ;
+ emcRP->AddDigit( *digit, eDigit ) ;
}
emcList->Add(emcRP) ;
}
}
//______________________________________________________________________________
-void AliPHOSTrackSegmentMakerv1::UnfoldingChiSquare(Int_t &NPar, Double_t *Grad, Double_t & fret, Double_t *x, Int_t iflag)
+void UnfoldingChiSquare(Int_t &NPar, Double_t *Grad, Double_t & fret, Double_t *x, Int_t iflag)
{
-// NUmber of paramters, Gradient , Chi squared, parameters, what to do
+
+// Number of paramters, Gradient , Chi squared, parameters, what to do
+
AliPHOSGeometry * geom = AliPHOSGeometry::GetInstance() ;
- AliPHOSTrackSegmentMakerv1 TrS ;
- AliPHOSEmcRecPoint * emcRP = (AliPHOSEmcRecPoint *) gMinuit->GetObjectFit() ; //EmcRecPoint to fit
+ AliPHOSEmcRecPoint * emcRP = (AliPHOSEmcRecPoint *) gMinuit->GetObjectFit() ; // EmcRecPoint to fit
int * emcDigits = emcRP->GetDigitsList() ;
Float_t * emcEnergies = emcRP->GetEnergiesList() ;
fret = 0. ;
Int_t iparam ;
- if(iflag==2)
- for(iparam = 0 ; iparam < NPar ; iparam ++)
- Grad[iparam] = 0 ; //Will evaluate gradient
-
+ if(iflag == 2)
+ for(iparam = 0 ; iparam < NPar ; iparam++)
+ Grad[iparam] = 0 ; // Will evaluate gradient
+
Double_t Efit ;
-
+
AliPHOSDigit * digit ;
Int_t iDigit = 0 ;
+
while ( (digit = (AliPHOSDigit *)emcDigits[iDigit] )){
Int_t RelId[4] ;
Float_t xDigit ;
geom->AbsToRelNumbering(digit->GetId(), RelId) ;
geom->RelPosInModule(RelId, xDigit, zDigit) ;
- if(iflag == 2){ //calculate gradient
- Int_t iParam = 0 ;
- Efit = 0 ;
- while(iParam < NPar ){
- Double_t Distance = TMath::Sqrt( (xDigit - x[iParam]) * (xDigit - x[iParam]) +
- (zDigit - x[++iParam]) * (zDigit - x[iParam]) ) ;
- Efit += x[++iParam] * TrS.ShowerShape(Distance) ;
- iParam++ ;
- }
- Double_t sum = 2. * (Efit - emcEnergies[iDigit]) / emcEnergies[iDigit] ; //Here we assume, that sigma = sqrt(E)
- iParam = 0 ;
- while(iParam < NPar ){
- Double_t xpar = x[iParam] ;
- Double_t zpar = x[iParam+1] ;
- Double_t Epar = x[iParam+2] ;
- Double_t dr = TMath::Sqrt( (xDigit - xpar) * (xDigit - xpar) + (zDigit - zpar) * (zDigit - zpar) );
- Double_t shape = sum * TrS.ShowerShape(dr) ;
- Double_t r4 = dr*dr*dr*dr ;
- Double_t r295 = TMath::Power(dr,2.95) ;
- Double_t deriv =-4. * dr*dr * ( 2.32 / ( (2.32 + 0.26 * r4) * (2.32 + 0.26 * r4) ) +
- 0.0316 * (1. + 0.0171 * r295) / ( ( 1. + 0.0652 * r295) * (1. + 0.0652 * r295) ) ) ;
-
- Grad[iParam++] += Epar * shape * deriv * (xpar - xDigit) ; // Derivative over x
- Grad[iParam++] += Epar * shape * deriv * (zpar - zDigit) ; // Derivative over z
- Grad[iParam++] += shape ; // Derivative over energy
- }
- }
- Efit = 0;
- iparam = 0 ;
- while(iparam < NPar ){
- Double_t xpar = x[iparam] ;
- Double_t zpar = x[iparam+1] ;
- Double_t Epar = x[iparam+2] ;
- iparam += 3 ;
- Double_t Distance = (xDigit - xpar) * (xDigit - xpar) + (zDigit - zpar) * (zDigit - zpar) ;
- Distance = TMath::Sqrt(Distance) ;
- Efit += Epar * TrS.ShowerShape(Distance) ;
- }
- fret += (Efit-emcEnergies[iDigit])*(Efit-emcEnergies[iDigit])/emcEnergies[iDigit] ;
- //Here we assume, that sigma = sqrt(E)
- iDigit++ ;
+ if(iflag == 2){ // calculate gradient
+ Int_t iParam = 0 ;
+ Efit = 0 ;
+ while(iParam < NPar ){
+ Double_t Distance = (xDigit - x[iParam]) * (xDigit - x[iParam]) ;
+ iParam++ ;
+ Distance += (zDigit - x[iParam]) * (zDigit - x[iParam]) ;
+ Distance = TMath::Sqrt( Distance ) ;
+ iParam++ ;
+ Efit += x[iParam] * AliPHOSTrackSegmentMakerv1::ShowerShape(Distance) ;
+ iParam++ ;
+ }
+ Double_t sum = 2. * (Efit - emcEnergies[iDigit]) / emcEnergies[iDigit] ; // Here we assume, that sigma = sqrt(E)
+ iParam = 0 ;
+ while(iParam < NPar ){
+ Double_t xpar = x[iParam] ;
+ Double_t zpar = x[iParam+1] ;
+ Double_t Epar = x[iParam+2] ;
+ Double_t dr = TMath::Sqrt( (xDigit - xpar) * (xDigit - xpar) + (zDigit - zpar) * (zDigit - zpar) );
+ Double_t shape = sum * AliPHOSTrackSegmentMakerv1::ShowerShape(dr) ;
+ Double_t r4 = dr*dr*dr*dr ;
+ Double_t r295 = TMath::Power(dr,2.95) ;
+ Double_t deriv =-4. * dr*dr * ( 2.32 / ( (2.32 + 0.26 * r4) * (2.32 + 0.26 * r4) ) +
+ 0.0316 * (1. + 0.0171 * r295) / ( ( 1. + 0.0652 * r295) * (1. + 0.0652 * r295) ) ) ;
+
+ Grad[iParam] += Epar * shape * deriv * (xpar - xDigit) ; // Derivative over x
+ iParam++ ;
+ Grad[iParam] += Epar * shape * deriv * (zpar - zDigit) ; // Derivative over z
+ iParam++ ;
+ Grad[iParam] += shape ; // Derivative over energy
+ iParam++ ;
+ }
+ }
+ Efit = 0;
+ iparam = 0 ;
+ while(iparam < NPar ){
+ Double_t xpar = x[iparam] ;
+ Double_t zpar = x[iparam+1] ;
+ Double_t Epar = x[iparam+2] ;
+ iparam += 3 ;
+ Double_t Distance = (xDigit - xpar) * (xDigit - xpar) + (zDigit - zpar) * (zDigit - zpar) ;
+ Distance = TMath::Sqrt(Distance) ;
+ Efit += Epar * AliPHOSTrackSegmentMakerv1::ShowerShape(Distance) ;
+ }
+ fret += (Efit-emcEnergies[iDigit])*(Efit-emcEnergies[iDigit])/emcEnergies[iDigit] ;
+ // Here we assume, that sigma = sqrt(E)
+ iDigit++ ;
}
}
#include "AliPHOSEmcRecPoint.h"
#include "AliPHOSPpsdRecPoint.h"
#include "AliPHOSTrackSegmentMaker.h"
-
+#include "TMinuit.h"
class AliPHOSTrackSegmentMakerv1 : public AliPHOSTrackSegmentMaker {
public:
AliPHOSTrackSegmentMakerv1() ;
- virtual ~ AliPHOSTrackSegmentMakerv1(){} // dtor
+ virtual ~ AliPHOSTrackSegmentMakerv1() ; // dtor
Bool_t FindFit(AliPHOSEmcRecPoint * emcRP, int * MaxAt, Float_t * maxAtEnergy,
Int_t NPar, Float_t * FitParametres) ; //Used in UnfoldClusters, calls TMinuit
void SetMaxEmcPpsdDistance(Float_t r){ fR0 = r ;} //Radius within which we look for ppsd cluster
- Double_t ShowerShape(Double_t r) ; //Shape of shower used in unfolding
+ static Double_t ShowerShape(Double_t r) ; // Shape of shower used in unfolding; class member function (not object member function)
void UnfoldClusters(DigitsList * DL, RecPointsList * emcIn, AliPHOSEmcRecPoint * iniEmc, Int_t Nmax,
- int * maxAt, Float_t * maxAtEnergy, TObjArray * emclist) ; //Unfolds overlaping clusters using TMinuit packadge
-
- void static UnfoldingChiSquare(Int_t &NPar, Double_t *Grad, Double_t & fret, Double_t *x, Int_t iflag); //used in TMinuit
-
+ int * maxAt, Float_t * maxAtEnergy, TObjArray * emclist) ; //Unfolds overlaping clusters using TMinuit package
private:
- Float_t fDelta ; // parameter used for sorting
- Float_t fR0 ; // Maximal distance between EMC and PPSD clusters of one Track Segment in module plane
+ Float_t fDelta ; // parameter used for sorting
+ Float_t fR0 ; // Maximal distance between EMC and PPSD clusters of one Track Segment in module plane
+ TMinuit * fMinuit ; // Minuit object needed by cluster unfolding
public:
// --- Standard library ---
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <strstream.h>
-#include <assert.h>
+#include <cstdio>
+#include <cstring>
+#include <cstdlib>
+#include <strstream>
+#include <cassert>
// --- AliRoot header files ---
fDigits = new TClonesArray("AliPHOSDigit",100) ;
fTmpHits= new TClonesArray("AliPHOSHit",100) ;
- assert ( fHits != 0 ) ;
- assert ( fDigits != 0 ) ;
- assert ( fTmpHits != 0 ) ;
-
fNTmpHits = fNhits = 0 ;
fIshunt = 1 ; // All hits are associated with primary particles
cout << "AliPHOSv0 : PHOS geometry initialization failed !" << endl ;
}
//____________________________________________________________________________
-AliPHOSv0::AliPHOSv0(AliPHOSReconstructioner& Reconstructioner, const char *name, const char *title):
+AliPHOSv0::AliPHOSv0(AliPHOSReconstructioner & Reconstructioner, const char *name, const char *title):
AliPHOS(name,title)
{
fDigits = new TClonesArray("AliPHOSDigit",100) ;
fTmpHits= new TClonesArray("AliPHOSHit",100) ;
- assert ( fHits != 0 ) ;
- assert ( fDigits != 0 ) ;
- assert ( fTmpHits != 0 ) ;
-
fNTmpHits = fNhits = 0 ;
fIshunt = 1 ; // All hits are associated with primary particles
// Defining the PHOS Reconstructioner
- fReconstructioner = &Reconstructioner;
+ fReconstructioner = &Reconstructioner ;
}
//____________________________________________________________________________
AliPHOSv0::~AliPHOSv0()
{
- delete fHits ;
+ fTmpHits->Delete() ;
delete fTmpHits ;
- delete fDigits ;
+ fTmpHits = 0 ;
+
+ fEmcClusters->Delete() ;
+ delete fEmcClusters ;
+ fEmcClusters = 0 ;
+
+ fPpsdClusters->Delete() ;
+ delete fPpsdClusters ;
+ fPpsdClusters = 0 ;
+
+ fTrackSegments->Delete() ;
+ delete fTrackSegments ;
+ fTrackSegments = 0 ;
}
//____________________________________________________________________________
//___________________________________________________________________________
Int_t AliPHOSv0::Digitize(Float_t Energy){
- Float_t fB = 10000000. ;
+ Float_t fB = 100000000. ;
Float_t fA = 0. ;
Int_t chan = Int_t(fA + Energy*fB ) ;
return chan ;
for ( i = 0 ; i < fNTmpHits ; i++ ) {
Hit = (AliPHOSHit*)fTmpHits->At(i) ;
- assert (Hit!=0) ;
Digit = new AliPHOSDigit(Hit->GetId(),Digitize(Hit->GetEnergy())) ;
new(lDigits[fNdigits]) AliPHOSDigit(* Digit) ;
fNdigits++; delete Digit ;
printf("* AliPHOS::MakeBranch * Making Branch %s for digits\n",branchname);
}
}
-//_____________________________________________________________________________
-void AliPHOSv0::Reconstruction(AliPHOSReconstructioner& Reconstructioner)
+//_____________________________________________________________________________
+void AliPHOSv0::Reconstruction(AliPHOSReconstructioner & Reconstructioner)
{
- fReconstructioner = &Reconstructioner;
- if (fEmcClusters)
- { fEmcClusters->Delete();}
- else
- { fEmcClusters= new TClonesArray("AliPHOSEmcRecPoint", 100); } ;
+ // reinitializes the existing RecPoint Lists and steers the reconstruction processes
- if (fPpsdClusters)
- { fPpsdClusters->Delete(); }
- else
- { fPpsdClusters = new TClonesArray("AliPHOSPpsdRecPoint", 100) ;}
+ fReconstructioner = &Reconstructioner ;
+ cout << "Hola1" << endl;
+ if (fEmcClusters) {
+ fEmcClusters->Delete() ;
+ delete fEmcClusters ;
+ fEmcClusters = 0 ;
- if (fTrackSegments)
- { fTrackSegments->Delete(); }
- else
- { fTrackSegments = new TObjArray(100) ;}
-
+ }
+ fEmcClusters= new RecPointsList("AliPHOSEmcRecPoint", 100) ;
+
+ cout << "Hola2" << endl;
+ if (fPpsdClusters) {
+ fPpsdClusters->Delete() ;
+ delete fPpsdClusters ;
+ fPpsdClusters = 0 ;
+ }
+ fPpsdClusters = new RecPointsList("AliPHOSPpsdRecPoint", 100) ;
+
+
+ cout << "Hola3" << endl;
+ if (fTrackSegments) {
+ fTrackSegments->Print("");
+ fTrackSegments->Delete() ;
+ delete fTrackSegments ;
+ fTrackSegments = 0 ;
+ }
+ fTrackSegments = new TObjArray(100) ;
+
+ cout << "Hola4" << endl;
fReconstructioner->Make(fDigits, fEmcClusters, fPpsdClusters, fTrackSegments);
-
+ cout << "Hola5" << endl;
}
//____________________________________________________________________________
-#ifndef ALIPHOSXXX_H
-#define ALIPHOSXXX_H
+#ifndef ALIPHOSV0_H
+#define ALIPHOSV0_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-////////////////////////////////////////////////
-// Short description //
-// Author SUBATECH //
-// comment //
-// //
-////////////////////////////////////////////////
-
-// --- ROOT system ---
-
-// --- Standard library ---
-
-// --- AliRoot header files ---
-
-class AliPHOSxxx {
-
-public:
-
- virtual ~AliPHOSxxx() ; // dtor
-
-private:
-
-ClassDef(AliPHOSxxx,1) // description , version 1
-
-};
-
-#endif // AliPHOSXXX_H
-//-*-C++-*-
-#ifndef ALIPHOSV4_H
-#define ALIPHOSV4_H
////////////////////////////////////////////////
// Manager class for PHOS //
// Version SUBATECH //
AliPHOSv0(void) ;
AliPHOSv0(const char *name, const char *title="") ;
- AliPHOSv0(AliPHOSReconstructioner& Reconstructioner, const char *name, const char *title="") ;
- virtual ~AliPHOSv0(void) ;
+ AliPHOSv0(AliPHOSReconstructioner& Reconstructioner, const char *name, const char *title="") ;
+ virtual ~AliPHOSv0(void) ;
virtual void AddHit( Int_t track, Int_t id, Float_t *hits ) ; // adds a pre-digitilized hit to the hit tree
virtual void BuildGeometry(void) ; // creates the geometry for the ROOT display
void CreateGeometryforPHOS(void) ; // creates the PHOS geometry for GEANT
void CreateGeometryforPPSD(void) ; // creates the PPSD geometry for GEANT
Int_t Digitize(Float_t Energy);
- RecPointsList* EmcClusters() {return fEmcClusters;} // gets TClonesArray of cluster in the crystals
+ RecPointsList* EmcClusters() {return fEmcClusters;} // gets TClonesArray of cluster in the crystals
void FinishEvent(void) ; // makes the digits from the hits
+ virtual AliPHOSGeometry * GetGeometry() { return fGeom ; }
virtual void Init(void) ; // does nothing
+ Int_t IsVersion(void) const { return 0 ; }
void MakeBranch(Option_t* opt) ;
RecPointsList* PpsdClusters() {return fPpsdClusters;} // gets TClonesArray of clusters in the PPSD
void Reconstruction(AliPHOSReconstructioner& Reconstructioner) ;
void ResetClusters(){} ;
- void SetReconstructioner(AliPHOSReconstructioner& Reconstructioner) {fReconstructioner = &Reconstructioner;} //
+ void SetReconstructioner(AliPHOSReconstructioner& Reconstructioner) {fReconstructioner = &Reconstructioner ;}
virtual void StepManager(void) ; // does the tracking through PHOS and a preliminary digitalization
- TObjArray * TrackSegments(){return fTrackSegments ;}
- // inlines
-
- virtual AliPHOSGeometry * GetGeometry() { return fGeom ; }
- Int_t IsVersion(void) const { return 4 ; }
-
+ TObjArray * TrackSegments(){return fTrackSegments ;}
+
private:
- AliPHOSGeometry * fGeom ; // geometry definition
- RecPointsList * fEmcClusters; //!
- Int_t fNTmpHits ; //! used internally for digitalization (!=do not stream)
- RecPointsList * fPpsdClusters; //!
- TObjArray * fTrackSegments ;//!
- TClonesArray * fTmpHits ; //! idem
+ RecPointsList * fEmcClusters ; //! (!=do not stream)
+ AliPHOSGeometry * fGeom ; // geometry definition
+ Int_t fNTmpHits ; //! used internally for digitalization
+ RecPointsList * fPpsdClusters ; //!
AliPHOSReconstructioner * fReconstructioner ; // Reconstrutioner of the PHOS event: Clusterization and subtracking procedures
- AliPHOSTrackSegmentMaker * fTrackSegmentMaker ;
+ TClonesArray * fTmpHits ; //! idem
+ AliPHOSTrackSegmentMaker * fTrackSegmentMaker ;
+ TObjArray * fTrackSegments ; //!
+
public:
ClassDef(AliPHOSv0,1) // PHOS main class , version subatech
};
-#endif // AliPHOSV4_H
+#endif // AliPHOSV0_H
+++ /dev/null
-/**************************************************************************
- * 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. *
- **************************************************************************/
-
-/*
-$Log$
-*/
-
-/////////////////////////////////////////////////////////
-// Manager and hits classes for set:PHOS version 1 //
-/////////////////////////////////////////////////////////
-
-// --- ROOT system ---
-#include "TH1.h"
-#include "TRandom.h"
-#include "TFile.h"
-#include "TTree.h"
-#include "TMath.h"
-
-// --- galice header files ---
-#include "AliPHOSv1.h"
-#include "AliRun.h"
-
-ClassImp(AliPHOSv1)
-
-//______________________________________________________________________________
-
-
-AliPHOSv1::AliPHOSv1()
-{
-}
-
-//______________________________________________________________________________
-
-AliPHOSv1::AliPHOSv1(const char *name, const char *title)
- : AliPHOS(name, title)
-{
-}
-
-//___________________________________________
-void AliPHOSv1::CreateGeometry()
-{
-
- AliPHOS *PHOS_tmp = (AliPHOS*)gAlice->GetModule("PHOS");
- if( NULL==PHOS_tmp )
- {
- printf("There isn't PHOS detector!\n");
- return;
- }
-// AliPHOS &PHOS = *PHOS_tmp;
-
- //////////////////////////////////////////////////////////////////////////////
-
- Int_t rotation_matrix_number=0;
- Float_t par[11],
- x,y,z;
-
- const float cell_length = GetCrystalLength()+GetAirThickness()+GetWrapThickness()+GetPIN_Length(),
- cell_side_size = GetCrystalSideSize()+2*GetAirThickness()+2*GetWrapThickness(),
- cradle_thikness = cell_length;
-
- //////////////////////////////////////////////////////////////////////////////
- // CELL volume and subvolumes creation
- //////////////////////////////////////////////////////////////////////////////
-
- par[0] = GetCrystalSideSize()/2 + GetWrapThickness();
- par[1] = GetCrystalSideSize()/2 + GetWrapThickness();
- par[2] = GetCrystalLength() /2 + GetWrapThickness()/2;
- gMC->Gsvolu("WRAP","BOX ",GetPHOS_IDTMED_Tyvek(),par,3);
-
- par[0] = GetCrystalSideSize()/2;
- par[1] = GetCrystalSideSize()/2;
- par[2] = GetCrystalLength()/2;
- gMC->Gsvolu("CRST","BOX ",GetPHOS_IDTMED_PbWO4(),par,3);
-
- // PIN
- par[0] = GetPIN_SideSize()/2;
- par[1] = GetPIN_SideSize()/2;
- par[2] = GetPIN_Length()/2;
- gMC->Gsvolu("PIN ","BOX ",GetPHOS_IDTMED_PIN(),par,3);
-
- //////////////////////////////////////////////////////////////////////////////
- // CRADLE creation.
- //////////////////////////////////////////////////////////////////////////////
-
- par[0] = cell_side_size/2 * GetNz();
- par[1] = cell_side_size/2 * GetNphi();
- par[2] = cradle_thikness/2;
- gMC->Gsvolu("PHOS","BOX ",GetPHOS_IDTMED_AIR(),par,3);
-
-
- par[0] = cell_side_size/2 * GetNz();
- par[1] = cell_side_size/2 * GetNphi();
- par[2] = cell_length/2;
- gMC->Gsvolu("CRS0","BOX ",GetPHOS_IDTMED_AIR(),par,3);
-
- x = 0;
- y = 0;
- z = -(cradle_thikness-cell_length)/2;
- gMC->Gspos("CRS0",1,"PHOS",x,y,z,0,"ONLY");
-
- gMC->Gsdvn("CRS1","CRS0",GetNphi(),2);
- gMC->Gsdvn("CELL","CRS1",GetNz() ,1);
-
- //////////////////////////////////////////////////////////////////////////////
- // CELL creation
- //////////////////////////////////////////////////////////////////////////////
-
- x = 0;
- y = 0;
- z = -GetWrapThickness()/2;
- gMC->Gspos("CRST",1,"WRAP",x,y,z,0,"ONLY");
-
- x = 0;
- y = 0;
- z = GetPIN_Length()/2;
- gMC->Gspos("WRAP",1,"CELL",x,y,z,0,"ONLY");
-
- x = 0;
- y = 0;
- z = -GetCrystalLength()/2-GetWrapThickness()/2;
- gMC->Gspos("PIN ",1,"CELL",x,y,z,0,"ONLY");
-
- //////////////////////////////////////////////////////////////////////////////
- // CELL has been created.
- //////////////////////////////////////////////////////////////////////////////
-
-
- //////////////////////////////////////////////////////////////////////////////
- // End of CRADLE creation.
- //////////////////////////////////////////////////////////////////////////////
-
-
- //////////////////////////////////////////////////////////////////////////////
- // PHOS creation
- //////////////////////////////////////////////////////////////////////////////
-
- for( int i=0; i<GetCradlesAmount(); i++ )
- {
- Float_t cradle_angle = 27.,
- cradle_angle_pos = -90+(i-(GetCradlesAmount()-1)/2.) *
- (cradle_angle+GetAngleBetweenCradles());
- // Cradles are numerated in clock reversed order. (general way of angle increment)
-
- Float_t r = GetRadius() + cradle_thikness/2;
- x = r*cos(cradle_angle_pos*kPI/180);
- y = r*sin(cradle_angle_pos*kPI/180);
- z = 0;
- AliMatrix(rotation_matrix_number, 0,0 , 90,90+cradle_angle_pos , 90,180+cradle_angle_pos);
- gMC->Gspos("PHOS",i+1,"ALIC",x,y,z,rotation_matrix_number,"ONLY");
-
- GetCradleAngle(i) = cradle_angle_pos;
- }
- AddPHOSCradles();
-
- //////////////////////////////////////////////////////////////////////////////
- // All is done.
- // Print some information.
- //////////////////////////////////////////////////////////////////////////////
-}
-
-void AliPHOSv1::StepManager()
-{
- static Bool_t inwold=0; // Status of previous ctrak->inwvol
- Int_t copy;
-
- int cradle_number, cell_Z, cell_Phi; // Variables that describe cell position.
-
- if( gMC->GetMedium() == GetPHOS_IDTMED_PIN() && (gMC->IsTrackInside() || gMC->IsTrackExiting()==2) && inwold && gMC->TrackCharge()!=0 )
- {
- // GEANT particle just have entered into PIN diode.
-
- AliPHOS &PHOS = *(AliPHOS*)gAlice->GetModule("PHOS");
-
- gMC->CurrentVolOffID(4,copy);
- cradle_number = copy-1;
- gMC->CurrentVolOffID(1,copy);
- cell_Z = copy-1;
- gMC->CurrentVolOffID(2,copy);
- cell_Phi = copy-1;
-/*
- cradle_number = cvolu->number[cvolu->nlevel-5]-1;
- cell_Z = cvolu->number[cvolu->nlevel-2]-1;
- cell_Phi = cvolu->number[cvolu->nlevel-3]-1;
-*/
-
- TH2S &h = PHOS.GetCradle(cradle_number).fChargedTracksInPIN;
- h.AddBinContent(h.GetBin(cell_Z,cell_Phi));
- }
-
- //////////////////////////////////////////////////////////////////////////////
-
- if( gMC->GetMedium() == GetPHOS_IDTMED_PbWO4() )
- {
- // GEANT particle into crystal.
-
- AliPHOS &PHOS = *(AliPHOS*)gAlice->GetModule("PHOS");
-
- gMC->CurrentVolOffID(5,copy);
- cradle_number = copy-1;
- gMC->CurrentVolOffID(2,copy);
- cell_Z = copy-1;
- gMC->CurrentVolOffID(3,copy);
- cell_Phi = copy-1;
-/*
- cradle_number = cvolu->number[cvolu->nlevel-6]-1;
- cell_Z = cvolu->number[cvolu->nlevel-3]-1;
- cell_Phi = cvolu->number[cvolu->nlevel-4]-1;
-*/
- TH2F &h = PHOS.GetCradle(cradle_number).fCellEnergy;
- h.AddBinContent(h.GetBin(cell_Z,cell_Phi),gMC->Edep());
- }
-
- //////////////////////////////////////////////////////////////////////////////
-
-
- inwold=gMC->IsTrackEntering(); // Save current status of GEANT variable.
-}
-
+++ /dev/null
-#ifndef PHOSv1_H
-#define PHOSv1_H
-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice */
-
-/* $Id$ */
-
-////////////////////////////////////////////////////////
-// Manager and hits classes for set:PHOS version 1 //
-////////////////////////////////////////////////////////
-
-// --- galice header files ---
-#include "AliPHOS.h"
-
-class AliPHOSv1 : public AliPHOS {
-
- public:
- AliPHOSv1();
- AliPHOSv1(const char *name, const char *title);
- virtual ~AliPHOSv1(){}
- virtual void CreateGeometry();
- virtual Int_t IsVersion() const {return 1;}
- virtual void StepManager();
-
- ClassDef(AliPHOSv1,1) //Hits manager for set:PHOS version 1
-};
-
-#endif
-
+++ /dev/null
-/**************************************************************************
- * 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. *
- **************************************************************************/
-
-/*
-$Log$
-Revision 1.9 1999/11/08 07:12:31 fca
-Minor corrections thanks to I.Hrivnacova
-
-Revision 1.8 1999/09/29 09:24:25 fca
-Introduction of the Copyright and cvs Log
-
-*/
-
-//-*-C++-*-
-//_________________________________________________________________________
-// Manager and hit classes for PHOS
-//*-- Author : Maxim Volkov, RRC KI
-// AliPHOSv2 derives directly from AliDetector, because too much functionality
-// has been put in AliPHOS for my liking.
-//////////////////////////////////////////////////////////////////////////////
-
-// --- ROOT system ---
-#include "TH1.h"
-#include "TRandom.h"
-#include "TFile.h"
-#include "TTree.h"
-#include "TBRIK.h"
-#include "TNode.h"
-
-// --- Standard library ---
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-// --- galice header files ---
-#include "AliPHOSv2.h"
-#include "AliRun.h"
-#include "AliConst.h"
-
-///////////////////////////////////////////////////////////////////////////////
-
-ClassImp(AliPHOSv2)
-
-///////////////////////////////////////////////////////////////////////////////
-
-AliPHOSv2::~AliPHOSv2(void)
-{
-
- // fNV = 0;
- // fNH = 0;
- fIshunt = 0;
-
-}
-
-///////////////////////////////////////////////////////////////////////////////
-
-AliPHOSv2::AliPHOSv2()
-{
-
- // fNV = 0;
- // fNH = 0;
- fIshunt = 0;
- fHits = 0;
- fDigits = 0;
-
-}
-
-///////////////////////////////////////////////////////////////////////////////
-
-AliPHOSv2::AliPHOSv2(const char *name, const char *title):
- AliPHOS(name,title)
-{
-
- //Begin_Html
- /*
- <img src="picts/aliphos.gif">
- */
- //End_Html
-
- fHits = new TClonesArray("AliPHOShitv2", 405);
-
- // fNV = 4;
- // fNH = 4;
- fIshunt = 1; // All hits are associated with primary particles
-
- DefPars(); // Set geometry parameters
-
- // SetMarkerColor(kGreen);
- // SetMarkerStyle(2);
- // SetMarkerSize(0.4);
-
-}
-
-//////////////////////////////////////////////////////////////////////////////
-
-void AliPHOSv2::DefPars(void)
-{
-
- // Initialization of GEANT3 geometry parameters
- fXtlSize[0]=2.2;
- fXtlSize[1]=18.0;
- fXtlSize[2]=2.2;
-
- fWrapThickness=0.01;
-
- fPINSize[0]=1.0;
- fPINSize[1]=0.1;
- fPINSize[2]=1.0;
-
- fCPVThickness=1.0;
-
- fPHOSFoam[0]=214.6;
- fPHOSFoam[1]=80.0;
- fPHOSFoam[2]=260.0;
-
- fPHOStxwall[0]=209.0;
- fPHOStxwall[1]=71.0;
- fPHOStxwall[2]=250.0;
-
- fPHOSAir[0]=206.0;
- fPHOSAir[1]=66.0;
- fPHOSAir[2]=244.0;
-
- fRadius[0]=447.0;
- fRadius[1]=460.0;
-
- fPHOSextra[0]=0.005; // Titanium cover thickness
- fPHOSextra[1]=6.95; // Crystal support height
- fPHOSextra[2]=4.0; // Thermo Insulating outer cover Upper plate thickness
- fPHOSextra[3]=5.0; // Upper Polystyrene Foam plate thickness
- fPHOSextra[4]=2.0; // Thermo insulating Crystal Block wall thickness
- fPHOSextra[5]=0.06; // Upper Cooling Plate thickness
- fPHOSextra[6]=10.0; // Al Support Plate thickness
- fPHOSextra[7]=3.0; // Lower Thermo Insulating Plate thickness
- fPHOSextra[8]=1.0; // Lower Textolit Plate thickness
- fPHOSextra[9]=0.03; // 1/2 total gap between adjacent crystals
-
- fNphi=88;
- fNz=104;
-
- fNModules=4;
-
- fPHOSAngle[0]=0.0; // Module position angles are set in CreateGeometry()
- fPHOSAngle[1]=0.0;
- fPHOSAngle[2]=0.0;
- fPHOSAngle[3]=0.0;
-
-}
-
-//////////////////////////////////////////////////////////////////////////////
-
-void AliPHOSv2::Init(void)
-{
-
- Int_t i;
-
- printf("\n");
- for(i=0;i<35;i++) printf("*");
- printf(" PHOS_INIT ");
- for(i=0;i<35;i++) printf("*");
- printf("\n");
-
- // Here the PHOS initialisation code (if any!)
- for(i=0;i<80;i++) printf("*");
- printf("\n");
-
-}
-
-//////////////////////////////////////////////////////////////////////////////
-
-void AliPHOSv2::BuildGeometry()
-{
-
- // Stolen completely from A. Zvyagine
-
- TNode *Node, *Top;
-
- const int kColorPHOS = kRed;
-
- Top=gAlice->GetGeometry()->GetNode("alice");
-
- // PHOS
- Float_t pphi=12.9399462;
- new TRotMatrix("rot988","rot988",90,-3*pphi,90,90-3*pphi,0,0);
- new TRotMatrix("rot989","rot989",90,- pphi,90,90- pphi,0,0);
- new TRotMatrix("rot990","rot990",90, pphi,90,90+ pphi,0,0);
- new TRotMatrix("rot991","rot991",90, 3*pphi,90,90+3*pphi,0,0);
- new TBRIK("S_PHOS","PHOS box","void",107.3,40,130);
- Top->cd();
- Node=new TNode("PHOS1","PHOS1","S_PHOS",-317.824921,-395.014343,0,"rot988");
- Node->SetLineColor(kColorPHOS);
- fNodes->Add(Node);
- Top->cd();
- Node=new TNode("PHOS2","PHOS2","S_PHOS",-113.532333,-494.124908,0,"rot989");
- fNodes->Add(Node);
- Node->SetLineColor(kColorPHOS);
- Top->cd();
- Node=new TNode("PHOS3","PHOS3","S_PHOS", 113.532333,-494.124908,0,"rot990");
- Node->SetLineColor(kColorPHOS);
- fNodes->Add(Node);
- Top->cd();
- Node=new TNode("PHOS4","PHOS4","S_PHOS", 317.824921,-395.014343,0,"rot991");
- Node->SetLineColor(kColorPHOS);
- fNodes->Add(Node);
-
-}
-
-//////////////////////////////////////////////////////////////////////////////
-
-void AliPHOSv2::CreateMaterials()
-{
-
- // DEFINITION OF AVAILABLE PHOS MATERIALS
-
- Int_t ISXFLD=gAlice->Field()->Integ();
- Float_t SXMGMX=gAlice->Field()->Max();
-
- // --- The PbWO4 crystals ---
- Float_t AX[3]={207.19, 183.85, 16.0};
- Float_t ZX[3]={82.0, 74.0, 8.0};
- Float_t WX[3]={1.0, 1.0, 4.0};
- Float_t DX=8.28;
-
- // --- Titanium ---
- Float_t ATIT[3]={47.88, 26.98, 54.94};
- Float_t ZTIT[3]={22.0, 13.0, 25.0};
- Float_t WTIT[3]={69.0, 6.0, 1.0};
- Float_t DTIT=4.5;
-
- // --- The polysterene scintillator (CH) ---
- Float_t AP[2]={12.011, 1.00794};
- Float_t ZP[2]={6.0, 1.0};
- Float_t WP[2]={1.0, 1.0};
- Float_t DP=1.032;
-
- // --- Tyvek (CnH2n) ---
- Float_t AT[2]={12.011, 1.00794};
- Float_t ZT[2]={6.0, 1.0};
- Float_t WT[2]={1.0, 2.0};
- Float_t DT=0.331;
-
- // --- Polystyrene foam ---
- Float_t AF[2]={12.011, 1.00794};
- Float_t ZF[2]={6.0, 1.0};
- Float_t WF[2]={1.0, 1.0};
- Float_t DF=0.12;
-
- // --- Foam thermo insulation ---
- Float_t ATI[2]={12.011, 1.00794};
- Float_t ZTI[2]={6.0, 1.0};
- Float_t WTI[2]={1.0, 1.0};
- Float_t DTI=0.1;
-
- // --- Textolit ---
- Float_t ATX[4]={16.0, 28.09, 12.011, 1.00794};
- Float_t ZTX[4]={8.0, 14.0, 6.0, 1.0};
- Float_t WTX[4]={292.0, 68.0, 462.0, 736.0};
- Float_t DTX=1.75;
-
- Int_t *idtmed = fIdtmed->GetArray()-699;
-
- AliMixture(0, "PbWO4$", AX, ZX, DX, -3, WX);
- AliMixture(1, "Polystyrene$", AP, ZP, DP, -2, WP);
- AliMaterial(2, "Al$", 26.98, 13., 2.7, 8.9, 999., 0, 0);
- // --- Absorption length^ is ignored ---
- AliMixture(3, "Tyvek$", AT, ZT, DT, -2, WT);
- AliMixture(4, "Foam$", AF, ZF, DF, -2, WF);
- AliMixture(5, "Titanium$", ATIT, ZTIT, DTIT, -3, WTIT);
- AliMaterial(6, "Si$", 28.09, 14., 2.33, 9.36, 42.3, 0, 0);
- AliMixture(7, "Thermo Insul.$", ATI, ZTI, DTI, -2, WTI);
- AliMixture(8, "Textolit$", ATX, ZTX, DTX, -4, WTX);
- AliMaterial(99, "Air$", 14.61, 7.3, 0.001205, 30420., 67500., 0, 0);
-
- AliMedium(0, "PHOS Xtal $", 0, 1,
- ISXFLD, SXMGMX, 10.0, 0.1, 0.1, 0.1, 0.1, 0, 0);
- AliMedium(1, "CPV scint. $", 1, 1,
- ISXFLD, SXMGMX, 10.0, 0.1, 0.1, 0.1, 0.1, 0, 0);
- AliMedium(2, "Al parts $", 2, 0,
- ISXFLD, SXMGMX, 10.0, 0.1, 0.1, 0.001, 0.001, 0, 0);
- AliMedium(3, "Tyvek wrapper$", 3, 0,
- ISXFLD, SXMGMX, 10.0, 0.1, 0.1, 0.001, 0.001, 0, 0);
- AliMedium(4, "Polyst. foam $", 4, 0,
- ISXFLD, SXMGMX, 10.0, 0.1, 0.1, 0.1, 0.1, 0, 0);
- AliMedium(5, "Titan. cover $", 5, 0,
- ISXFLD, SXMGMX, 10.0, 0.1, 0.1, 0.0001, 0.0001, 0, 0);
- AliMedium(6, "Si PIN $", 6, 0,
- ISXFLD, SXMGMX, 10.0, 0.1, 0.1, 0.01, 0.01, 0, 0);
- AliMedium(7, "Thermo Insul.$", 7, 0,
- ISXFLD, SXMGMX, 10.0, 0.1, 0.1, 0.1, 0.1, 0, 0);
- AliMedium(8, "Textolit $", 8, 0,
- ISXFLD, SXMGMX, 10.0, 0.1, 0.1, 0.1, 0.1, 0, 0);
- AliMedium(99, "Air $", 99, 0,
- ISXFLD, SXMGMX, 10.0, 1.0, 0.1, 0.1, 10.0, 0, 0);
-
- // --- Set decent energy thresholds for gamma and electron tracking
- gMC->Gstpar(idtmed[699],"CUTGAM",0.5E-4);
- gMC->Gstpar(idtmed[699],"CUTELE",1.0E-4);
- // --- Generate explicitly delta rays in the titan cover ---
- gMC->Gstpar(idtmed[704],"LOSS",3.);
- gMC->Gstpar(idtmed[704],"DRAY",1.);
- // --- and in aluminium parts ---
- gMC->Gstpar(idtmed[701],"LOSS",3.);
- gMC->Gstpar(idtmed[701],"DRAY",1.);
-
-}
-
-//////////////////////////////////////////////////////////////////////////////
-
-void AliPHOSv2::CreateGeometry()
-{
-
- AliPHOSv2 *PHOS_tmp = (AliPHOSv2*)gAlice->GetModule("PHOS");
- if(PHOS_tmp==NULL){
-
- fprintf(stderr,"PHOS detector not found!\n");
- return;
-
- }
-
- // --- Dimensions of volumes ---
- Float_t DPHOS[3], DPTXW[3], DPAIR[3];
- Float_t DPUFP[3], DPUCP[3], DPASP[3], DPTIP[3], DPTXP[3];
- Float_t DPTCB[3], DPCBL[3], DPSTC[3], DPPAP[3], DPXTL[3], DPSUP[3],
- DPPIN[3];
- Float_t DPCPV[3], DPCPA[3];
-
- Float_t R, YO, XP1, YP1, PPHI, angle;
- Int_t IDROTM[99];
- Int_t i;
-
- Double_t const RADDEG=180.0/kPI;
- // Double_t const DEGRAD=kPI/180.0;
-
- // --- Dimensions of PbWO4 crystal ---
- // PARAMETER(XTL_X=2.2,XTL_Y=18.,XTL_Z=2.2)
- Float_t XTL_X=GetCrystalSize(0);
- Float_t XTL_Y=GetCrystalSize(1);
- Float_t XTL_Z=GetCrystalSize(2);
-
- // --- Tyvek wrapper thickness
- // PARAMETER(PAP_THICK=0.01)
- Float_t PAP_THICK=GetWrapThickness();
-
- // --- Steel (titanium) cover thickness ---
- // PARAMETER(STE_THICK=0.005)
- Float_t STE_THICK=GetPHOSextra(0);
-
- // --- Crystal support height ---
- // PARAMETER(SUP_Y=6.95)
- Float_t SUP_Y=GetPHOSextra(1);
-
- // --- PIN-diode dimensions ---
- // PARAMETER(PIN_X=1.4,PIN_Y=0.4,PIN_Z=1.4)
- Float_t PIN_X=GetPINSize(0);
- Float_t PIN_Y=GetPINSize(1);
- Float_t PIN_Z=GetPINSize(2);
-
- // --- CPV thickness ---
- // PARAMETER(CPV_Y=0.5)
- Float_t CPV_Y=GetCPVThickness();
-
- // --- Foam Thermo Insulating outer cover dimensions ---
- // PARAMETER(FTI_X=214.6,FTI_Y=80.,FTI_Z=260.)
- Float_t FTI_X=GetPHOSFoam(0);
- Float_t FTI_Y=GetPHOSFoam(1);
- Float_t FTI_Z=GetPHOSFoam(2);
-
- // --- Thermo Insulating outer cover Upper plate thickness ---
- // PARAMETER(FTIU_THICK=4.)
- Float_t FTIU_THICK=GetPHOSextra(2);
-
- // --- Textolit Wall box dimentions ---
- // PARAMETER(TXW_X=209.,TXW_Y=71.,TXW_Z=250.)
- Float_t TXW_X=GetPHOStxwall(0);
- Float_t TXW_Y=GetPHOStxwall(1);
- Float_t TXW_Z=GetPHOStxwall(2);
-
- // --- Inner AIR volume dimensions ---
- // PARAMETER(AIR_X=206.,AIR_Y=66.,AIR_Z=244.)
- Float_t AIR_X=GetPHOSAir(0);
- Float_t AIR_Y=GetPHOSAir(1);
- Float_t AIR_Z=GetPHOSAir(2);
-
- // --- Upper Polystyrene Foam plate thickness ---
- // PARAMETER(UFP_Y=5.)
- Float_t UFP_Y=GetPHOSextra(3);
-
- // --- Thermo insulating Crystal Block wall thickness ---
- // PARAMETER(TCB_THICK=2.)
- Float_t TCB_THICK=GetPHOSextra(4);
-
- // --- Upper Cooling Plate thickness ---
- // PARAMETER(UCP_Y=0.06)
- Float_t UCP_Y=GetPHOSextra(5);
-
- // --- Al Support Plate thickness ---
- // PARAMETER(ASP_Y=10.)
- Float_t ASP_Y=GetPHOSextra(6);
-
- // --- Lower Thermo Insulating Plate thickness ---
- // PARAMETER(TIP_Y=3.)
- Float_t TIP_Y=GetPHOSextra(7);
-
- // --- Lower Textolit Plate thickness ---
- // PARAMETER(TXP_Y=1.)
- Float_t TXP_Y=GetPHOSextra(8);
-
- // --- 1/2 total gap between adjacent crystals
- Float_t TOTAL_GAP=GetPHOSextra(9);
-
- // --- Distance from IP to Foam Thermo Insulating top plate ---
- // PARAMETER(FTI_R=467.)
- Float_t FTI_R=GetRadius(0);
-
- // --- Distance from IP to Crystal Block top Surface (needs to be 460.) ---
- // PARAMETER(CBS_R=480.)
- Float_t CBS_R=GetRadius(1);
-
- // Get pointer to the array containing media indeces
- Int_t *IDTMED = fIdtmed->GetArray()-699;
-
- // --- Define PHOS box volume, fill with thermo insulating foam ---
- DPHOS[0]=FTI_X/2.0;
- DPHOS[1]=FTI_Y/2.0;
- DPHOS[2]=FTI_Z/2.0;
- gMC->Gsvolu("PHOS", "BOX ", IDTMED[706], DPHOS, 3);
-
- // --- Define Textolit Wall box, position inside PHOS ---
- DPTXW[0]=TXW_X/2.0;
- DPTXW[1]=TXW_Y/2.0;
- DPTXW[2]=TXW_Z/2.0;
- gMC->Gsvolu("PTXW", "BOX ", IDTMED[707], DPTXW, 3);
- YO=(FTI_Y-TXW_Y)/2.0-FTIU_THICK;
- gMC->Gspos("PTXW", 1, "PHOS", 0.0, YO, 0.0, 0, "ONLY");
-
- // --- Define Upper Polystyrene Foam Plate, place inside PTXW ---
- // --- immediately below Foam Thermo Insulation Upper plate ---
- DPUFP[0]=TXW_X/2.0;
- DPUFP[1]=UFP_Y/2.0;
- DPUFP[2]=TXW_Z/2.0;
- gMC->Gsvolu("PUFP", "BOX ", IDTMED[703], DPUFP, 3);
- YO=(TXW_Y-UFP_Y)/2.0;
- gMC->Gspos("PUFP", 1, "PTXW", 0.0, YO, 0.0, 0, "ONLY");
-
- // --- Define air-filled box, place inside PTXW ---
- DPAIR[0]=AIR_X/2.0;
- DPAIR[1]=AIR_Y/2.0;
- DPAIR[2]=AIR_Z/2.0;
- gMC->Gsvolu("PAIR", "BOX ", IDTMED[798], DPAIR, 3);
- YO=(TXW_Y-AIR_Y)/2.0-UFP_Y;
- gMC->Gspos("PAIR", 1, "PTXW", 0.0, YO, 0.0, 0, "ONLY");
-
- // --- Define Thermo insulating Crystal Box, position inside PAIR ---
- DPTCB[0]=GetNphi()*(XTL_X+2*TOTAL_GAP)/2.0+TCB_THICK;
- DPTCB[1]=(XTL_Y+SUP_Y+PAP_THICK+STE_THICK)/2.0+TCB_THICK/2.0;
- DPTCB[2]=GetNz()*(XTL_Z+2*TOTAL_GAP)/2.0+TCB_THICK;
- gMC->Gsvolu("PTCB", "BOX ", IDTMED[706], DPTCB, 3);
- YO=AIR_Y/2.0-DPTCB[1]-
- (CBS_R-FTI_R-TCB_THICK-FTIU_THICK-UFP_Y);
- gMC->Gspos("PTCB", 1, "PAIR", 0.0, YO, 0.0, 0, "ONLY");
-
- // --- Define Crystal BLock filled with air, position it inside PTCB ---
- DPCBL[0]=GetNphi()*(XTL_X+2*TOTAL_GAP)/2.0;
- DPCBL[1]=(XTL_Y+SUP_Y+PAP_THICK+STE_THICK)/2.0;
- DPCBL[2]=GetNz()*(XTL_Z+2*TOTAL_GAP)/2.0;
- gMC->Gsvolu("PCBL", "BOX ", IDTMED[798], DPCBL, 3);
-
- // --- Divide PCBL in X (phi) and Z directions --
- gMC->Gsdvn("PROW", "PCBL", GetNphi(), 1);
- gMC->Gsdvn("PCEL", "PROW", GetNz(), 3);
- YO=-TCB_THICK/2.0;
- gMC->Gspos("PCBL", 1, "PTCB", 0.0, YO, 0.0, 0, "ONLY");
-
- // --- Define STeel (actually, it's titanium) Cover volume, place inside PCEL
- DPSTC[0]=(XTL_X+2*PAP_THICK)/2.0;
- DPSTC[1]=(XTL_Y+SUP_Y+PAP_THICK+STE_THICK)/2.0;
- DPSTC[2]=(XTL_Z+2*PAP_THICK+2*STE_THICK)/2.0;
- gMC->Gsvolu("PSTC", "BOX ", IDTMED[704], DPSTC, 3);
- gMC->Gspos("PSTC", 1, "PCEL", 0.0, 0.0, 0.0, 0, "ONLY");
-
- // --- Define Tyvek volume, place inside PSTC ---
- DPPAP[0]=XTL_X/2.0+PAP_THICK;
- DPPAP[1]=(XTL_Y+SUP_Y+PAP_THICK)/2.0;
- DPPAP[2]=XTL_Z/2.0+PAP_THICK;
- gMC->Gsvolu("PPAP", "BOX ", IDTMED[702], DPPAP, 3);
- YO=(XTL_Y+SUP_Y+PAP_THICK)/2.0-(XTL_Y+SUP_Y+PAP_THICK+STE_THICK)/2.0;
- gMC->Gspos("PPAP", 1, "PSTC", 0.0, YO, 0.0, 0, "ONLY");
-
- // --- Define PbWO4 crystal volume, place inside PPAP ---
- DPXTL[0]=XTL_X/2.0;
- DPXTL[1]=XTL_Y/2.0;
- DPXTL[2]=XTL_Z/2.0;
- gMC->Gsvolu("PXTL", "BOX ", IDTMED[699], DPXTL, 3);
- YO=(XTL_Y+SUP_Y+PAP_THICK)/2.0-XTL_Y/2.0-PAP_THICK;
- gMC->Gspos("PXTL", 1, "PPAP", 0.0, YO, 0.0, 0, "ONLY");
-
- // --- Define crystal support volume, place inside PPAP ---
- DPSUP[0]=XTL_X/2.0+PAP_THICK;
- DPSUP[1]=SUP_Y/2.0;
- DPSUP[2]=XTL_Z/2.0+PAP_THICK;
- gMC->Gsvolu("PSUP", "BOX ", IDTMED[798], DPSUP, 3);
- YO=SUP_Y/2.0-(XTL_Y+SUP_Y+PAP_THICK)/2.0;
- gMC->Gspos("PSUP", 1, "PPAP", 0.0, YO, 0.0, 0, "ONLY");
-
- // --- Define PIN-diode volume and position it inside crystal support ---
- // --- right behind PbWO4 crystal
- DPPIN[0]=PIN_X/2.0;
- DPPIN[1]=PIN_Y/2.0;
- DPPIN[2]=PIN_Z/2.0;
- gMC->Gsvolu("PPIN", "BOX ", IDTMED[705], DPPIN, 3);
- YO=SUP_Y/2.0-PIN_Y/2.0;
- gMC->Gspos("PPIN", 1, "PSUP", 0.0, YO, 0.0, 0, "ONLY");
-
- // --- Define Upper Cooling Panel, place it on top of PTCB ---
- DPUCP[0]=DPTCB[0];
- DPUCP[1]=UCP_Y/2.0;
- DPUCP[2]=DPTCB[2];
- gMC->Gsvolu("PUCP", "BOX ", IDTMED[701], DPUCP,3);
- YO=(AIR_Y-UCP_Y)/2.0-(CBS_R-FTI_R-TCB_THICK-FTIU_THICK-UFP_Y-UCP_Y);
- gMC->Gspos("PUCP", 1, "PAIR", 0.0, YO, 0.0, 0, "ONLY");
-
- // --- Define Al Support Plate, position it inside PAIR ---
- // --- right beneath PTCB ---
- DPASP[0]=AIR_X/2.0;
- DPASP[1]=ASP_Y/2.0;
- DPASP[2]=AIR_Z/2.0;
- gMC->Gsvolu("PASP", "BOX ", IDTMED[701], DPASP, 3);
- YO=(AIR_Y-ASP_Y)/2.0-(CBS_R-FTI_R-FTIU_THICK-UFP_Y+DPCBL[1]*2);
- gMC->Gspos("PASP", 1, "PAIR", 0.0, YO, 0.0, 0, "ONLY");
-
- // --- Define Thermo Insulating Plate, position it inside PAIR ---
- // --- right beneath PASP ---
- DPTIP[0]=AIR_X/2.0;
- DPTIP[1]=TIP_Y/2.0;
- DPTIP[2]=AIR_Z/2.0;
- gMC->Gsvolu("PTIP", "BOX ", IDTMED[706], DPTIP, 3);
- YO=(AIR_Y-TIP_Y)/2.0-(CBS_R-FTI_R-FTIU_THICK-UFP_Y+DPCBL[1]*2+ASP_Y);
- gMC->Gspos("PTIP", 1, "PAIR", 0.0, YO, 0.0, 0, "ONLY");
-
- // --- Define Textolit Plate, position it inside PAIR ---
- // --- right beneath PTIP ---
- DPTXP[0]=AIR_X/2.0;
- DPTXP[1]=TXP_Y/2.0;
- DPTXP[2]=AIR_Z/2.0;
- gMC->Gsvolu("PTXP", "BOX ", IDTMED[707], DPTXP, 3);
- YO=(AIR_Y-TXP_Y)/2.0-
- (CBS_R-FTI_R-FTIU_THICK-UFP_Y+DPCBL[1]*2+ASP_Y+TIP_Y);
- gMC->Gspos("PTXP", 1, "PAIR", 0.0, YO, 0.0, 0, "ONLY");
-
- // --- Define CPV volume, DON'T PLACE IT YET ---
- // --- Divide in X and Z direction (same way as PCBL) ---
- DPCPV[0]=DPCBL[0];
- DPCPV[1]=CPV_Y/2.0;
- DPCPV[2]=DPCBL[2];
- // gMC->Gsvolu("PCPV", "BOX ", IDTMED[700], DPCPV, 3);
- gMC->Gsvolu("PCPV", "BOX ", IDTMED[798], DPCPV, 3);
- gMC->Gsdvn("PCRO", "PCPV", GetNphi(), 1);
- gMC->Gsdvn("PCCE", "PCRO", GetNz(), 3);
-
- // Define CPV sensitive pad. It has the same size as PCCE.
- DPCPA[0]=DPCBL[0]/GetNphi();
- DPCPA[1]=CPV_Y/2.0;
- DPCPA[2]=DPCBL[2]/GetNz();
- gMC->Gsvolu("PCPA", "BOX ", IDTMED[700], DPCPA, 3);
- gMC->Gspos("PCPA", 1, "PCCE", 0.0, 0.0, 0.0, 0, "ONLY");
-
- // --- Position various PHOS units in ALICE setup ---
- // --- PHOS itself first ---
- PPHI=TMath::ATan(FTI_X/(2.0*FTI_R));
- PPHI*=RADDEG;
-
- for(i=1; i<=GetNModules(); i++){
-
- angle=PPHI*2*(i-GetNModules()/2.0-0.5);
- AliMatrix(IDROTM[i-1], 90.0, angle, 90.0, 90.0+angle, 0.0, 0.0);
-
- // --- Position various PHOS units in ALICE setup ---
- // --- PHOS itself first ---
- R=FTI_R+FTI_Y/2.0;
- XP1=R*TMath::Sin(angle/RADDEG);
- YP1=-R*TMath::Cos(angle/RADDEG);
- gMC->Gspos("PHOS", i, "ALIC", XP1, YP1, 0.0, IDROTM[i-1], "ONLY");
-
- // --- Now position PCPV so that its plates are right on top of ---
- // --- corresponding PHOS modules (previously called cradles) ---
- R=FTI_R-CPV_Y/2.0;
- XP1=R*TMath::Sin(angle/RADDEG);
- YP1=-R*TMath::Cos(angle/RADDEG);
- gMC->Gspos("PCPV", i, "ALIC", XP1, YP1, 0.0, IDROTM[i-1], "ONLY");
- GetModuleAngle(i-1)=angle-90.0;
-
- }
-
- // --- Set volumes seen without their descendants for drawing ---
- gMC->Gsatt("PCEL", "SEEN", -2);
- gMC->Gsatt("PCCE", "SEEN", -2);
-
-}
-
-//////////////////////////////////////////////////////////////////////////////
-
-void AliPHOSv2::StepManager(void)
-{
-
- Int_t blrc[4]; // (box, layer, row, column) indices
- Float_t xyze[4]; // position wrt MRS and energy deposited
- TLorentzVector pos;
-
- Int_t *IDTMED=fIdtmed->GetArray()-699;
-
- if(gMC->GetMedium()==IDTMED[700]){ // We are inside a CPV sensitive pad
-
- gMC->TrackPosition(pos);
- xyze[0]=pos[0];
- xyze[1]=pos[1];
- xyze[2]=pos[2];
- xyze[3]=gMC->Edep();
-
- gMC->CurrentVolOffID(3, blrc[0]);
- blrc[1]=1; // CPV corresponds to layer 1
- gMC->CurrentVolOffID(2, blrc[2]);
- gMC->CurrentVolOffID(1, blrc[3]);
-
- AddHit(gAlice->CurrentTrack(), blrc, xyze);
-
- }
-
- if(gMC->GetMedium()==IDTMED[699]){ // We are inside a PWO crystal
-
- gMC->TrackPosition(pos);
- xyze[0]=pos[0];
- xyze[1]=pos[1];
- xyze[2]=pos[2];
- xyze[3]=gMC->Edep();
-
- gMC->CurrentVolOffID(9, blrc[0]);
- blrc[1]=2; // PWO crystals correspond to layer 2
- gMC->CurrentVolOffID(4, blrc[2]);
- gMC->CurrentVolOffID(3, blrc[3]);
-
- AddHit(gAlice->CurrentTrack(), blrc, xyze);
-
- }
-}
-
-////////////////////////////////////////////////////////////////////////////
-
-void AliPHOSv2::AddHit(Int_t track, Int_t *vol, Float_t *hits)
-{
-
- Int_t hitCounter;
- TClonesArray &lhits = *fHits;
- AliPHOShitv2 *newHit,*curHit;
-
- newHit=new AliPHOShitv2(fIshunt, track, vol, hits);
-
- for(hitCounter=0;hitCounter<fNhits;hitCounter++){
- curHit=(AliPHOShitv2*)lhits[hitCounter];
- if(*curHit==*newHit){
- *curHit=*curHit+*newHit;
- delete newHit;
- return;
- }
- }
-
- new(lhits[fNhits++]) AliPHOShitv2(*newHit);
- delete newHit;
-
-}
-
-///////////////////////////////////////////////////////////////////////////////
-
-ClassImp(AliPHOShitv2)
-
-//////////////////////////////////////////////////////////////////////////////
-
-AliPHOShitv2::AliPHOShitv2(Int_t shunt, Int_t track, Int_t *vol, Float_t *hits):
-AliHit(shunt, track)
-{
-
- Int_t i;
- for (i=0;i<4;i++)fVolume[i]=vol[i];
-
- fX = hits[0];
- fY = hits[1];
- fZ = hits[2];
- fELOS = hits[3];
-
-}
-
-//////////////////////////////////////////////////////////////////////////////
-
-Bool_t AliPHOShitv2::operator==(AliPHOShitv2 const &rValue) const
-{
-
- Int_t volCounter;
-
- // if(fDet!=rValue.GetDet()) return kFALSE;
- if(fTrack!=rValue.GetTrack()) return kFALSE;
-
- for(volCounter=0;volCounter<4;volCounter++)
- if(fVolume[volCounter]!=rValue.GetVolume(volCounter))return kFALSE;
-
- return kTRUE;
-
-}
-
-/////////////////////////////////////////////////////////////////////////////
-
-AliPHOShitv2 const AliPHOShitv2::operator+(AliPHOShitv2 const &rValue) const
-{
-
- AliPHOShitv2 added(*this);
-
- added.fELOS+=rValue.GetEnergy();
- return added;
-
-}
-
-//////////////////////////////////////////////////////////////////////////////
+++ /dev/null
-#ifndef ALIPHOS_H
-#define ALIPHOS_H
-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice */
-
-/* $Id$ */
-
-////////////////////////////////////////////////
-// Manager and hits classes for PHOS //
-// Version 2 //
-// Author M. Volkov, RRC KI //
-////////////////////////////////////////////////
-
-// --- ROOT system ---
-#include <TArray.h>
-#include <TRandom.h>
-
-// --- galice header files ---
-#include "AliPHOS.h"
-#include "AliHit.h"
-
-class AliPHOSv2 : public AliPHOS {
-
-protected:
- Float_t fXtlSize[3]; // PWO crystal dimensions
- Float_t fWrapThickness; // Thickness of Tyvek wrapper
- Float_t fPINSize[3]; // PIN diode dimensions
- Float_t fCPVThickness; // CPV thickness
- Float_t fPHOSFoam[3]; // Outer foam cover dimensions
- Float_t fPHOStxwall[3]; // Textolit box dimensions
- Float_t fPHOSAir[3]; // Inner air filled volume dimensions
- Float_t fRadius[2]; // Distances from IP to outer cover and to Xtal surface
- Float_t fPHOSextra[10]; // Assorted geometrical parameters
- Int_t fNphi; // Number of crystal units in X (phi) direction
- Int_t fNz; // Number of crystal units in Z direction
- Float_t fNModules; // Number of modules constituing PHOS
- Float_t fPHOSAngle[4]; // Position angles of modules
-
-public:
- AliPHOSv2(void);
- AliPHOSv2(const char *name, const char *title="");
- virtual ~AliPHOSv2(void);
-
- virtual Int_t IsVersion(void) const {return 2;}
-
- virtual void DefPars(void);
-
- virtual void BuildGeometry(void);
- virtual void CreateGeometry(void);
- virtual void CreateMaterials(void);
-
- virtual void Init(void);
-
- virtual void StepManager(void);
-
- virtual void AddHit(Int_t track, Int_t *vol, Float_t *hits);
-
- virtual Float_t GetCrystalSize(Int_t n) const {return fXtlSize[n];}
- virtual Float_t GetWrapThickness(void) const {return fWrapThickness;}
- virtual Float_t GetPINSize(Int_t n) const {return fPINSize[n];}
- virtual Float_t GetCPVThickness(void) const {return fCPVThickness;}
- virtual Float_t GetPHOSFoam(Int_t n) const {return fPHOSFoam[n];}
- virtual Float_t GetPHOStxwall(Int_t n) const {return fPHOStxwall[n];}
- virtual Float_t GetPHOSAir(Int_t n) const {return fPHOSAir[n];}
- virtual Float_t GetRadius(Int_t n) const {return fRadius[n];}
- virtual Float_t GetPHOSextra(Int_t n) const {return fPHOSextra[n];}
- virtual Int_t GetNphi(void) const {return fNphi;}
- virtual Int_t GetNz(void) const {return fNz;}
- virtual Float_t GetNModules(void) const {return fNModules;}
- virtual Float_t &GetModuleAngle(Int_t n) {return fPHOSAngle[n];}
-
-ClassDef(AliPHOSv2,1) // Hits manager for PHOS, version 2
-
-};
-
-//////////////////////////////////////////////////////////////////////////////
-
-class AliPHOShitv2 : public AliHit{
-
-protected:
- Int_t fVolume[4]; //array of volumes. This is not GEANT NUMBV(), it is (BOX,LAYER,ROW,COLUMN) array.
- Float_t fELOS; //Energy deposited
-
-public:
- AliPHOShitv2(void) {;}
- AliPHOShitv2(Int_t shunt, Int_t track, Int_t *vol, Float_t *hits);
- AliPHOShitv2(AliPHOShitv2 const &rValue){*this=rValue;}
- virtual ~AliPHOShitv2(void) {;}
-
- Int_t GetVolume(Int_t i) const {return fVolume[i];}
- Float_t GetEnergy(void) const {return fELOS;}
-
- Bool_t operator==(AliPHOShitv2 const &rValue) const;
- AliPHOShitv2 const operator+(AliPHOShitv2 const &rValue) const;
-
-ClassDef(AliPHOShitv2,1) // Hits object for PHOS
-
-};
-
-//////////////////////////////////////////////////////////////////////////////
-
-#endif //#ifndef ALIPHOS_H
AliPHOSRecPoint.cxx AliPHOSEmcRecPoint.cxx AliPHOSPpsdRecPoint.cxx \
AliPHOSClusterizer.cxx AliPHOSClusterizerv1.cxx AliPHOSLink.cxx \
AliPHOSReconstructioner.cxx AliPHOSTrackSegment.cxx \
- AliPHOSTrackSegmentMaker.cxx AliPHOSTrackSegmentMakerv1.cxx
+ AliPHOSTrackSegmentMaker.cxx AliPHOSTrackSegmentMakerv1.cxx ReconstructionTest.cxx PHOSHistos.cxx
# C++ Headers
<stat name="dblClicksInToDoPane"
value="0" />
<stat name="longestToDoList"
- value="88" />
+ value="143" />
<stat name="longestAdd"
- value="4" />
+ value="23" />
<stat name="longestHot"
- value="4" />
+ value="23" />
<stat name="numCriticsFired"
- value="39714" />
+ value="190134" />
<stat name="numNotValid"
- value="18" />
+ value="69" />
<stat name="numCriticsApplied"
value="0" />
<stat name="toDoPerspectivesChanged"
- value="1" />
+ value="0" />
<stat name="navPerspectivesChanged"
- value="3" />
+ value="2" />
<stat name="clicksInNavPane"
value="0" />
<stat name="numFinds"
- value="1" />
+ value="0" />
<stat name="numJumpToRelated"
value="0" />
<stat name="numDecisionModel"
<stat name="numChecks"
value="0" />
<stat name="Num_Button_Clicks"
- value="5" />
+ value="2" />
<stat name="Drags_To_New"
value="0" />
<stat name="Drags_To_Existing"
<isAbstract XMI.value="true"/>
<isLeaf XMI.value="false"/>
<isRoot XMI.value="false"/>
- <realization> <XMI.reference target="S.100080"/> </realization>
- <!-- realizations is: AliPHOSv4 -->
- </Interface>
- </ownedElement>
- <ownedElement>
- <Generalization XMI.id = "S.100079">
- <name></name>
- <visibility XMI.value = "public"/>
- <discriminator>
- </discriminator>
- <subtype> <XMI.reference target="S.100078"/> </subtype>
- <!-- subtype is: AliPHOS -->
- <supertype> <XMI.reference target="S.100075"/> </supertype>
- <!-- supertype is: AliDetector -->
- </Generalization>
- </ownedElement>
- <ownedElement>
- <Class XMI.id = "S.100080">
- <name>AliPHOSv4</name>
- <visibility XMI.value = "public"/>
- <isAbstract XMI.value="false"/>
- <isLeaf XMI.value="false"/>
- <isRoot XMI.value="false"/>
- <isActive XMI.value = "false"/>
- <specification> <XMI.reference target="S.100078"/> </specification>
- <!-- specification is: AliPHOS -->
- <feature>
- <Operation XMI.id = "S.100082">
- <name>AddHit</name>
- <visibility XMI.value = "public"/>
- <ownerScope XMI.value="instance"/>
- <isQuery XMI.value="false"/>
- <concurrency XMI.value="sequential"/>
- <isPolymorphic XMI.value="false"/>
- <operationSpecification>
- </operationSpecification>
- <parameter>
- <Parameter XMI.id = "S.100083">
- <name>return</name>
- <visibility XMI.value = "public"/>
- <defaultValue>
- </defaultValue>
- <kind XMI.value="return"/>
- <type> <XMI.reference target="S.100004"/> </type>
- <!-- Type is: void -->
- </Parameter>
- </parameter>
- </Operation>
- </feature>
- <feature>
- <Operation XMI.id = "S.100084">
- <name>BuildGeometry</name>
- <visibility XMI.value = "public"/>
- <ownerScope XMI.value="instance"/>
- <isQuery XMI.value="false"/>
- <concurrency XMI.value="sequential"/>
- <isPolymorphic XMI.value="false"/>
- <operationSpecification>
- </operationSpecification>
- <parameter>
- <Parameter XMI.id = "S.100085">
- <name>return</name>
- <visibility XMI.value = "public"/>
- <defaultValue>
- </defaultValue>
- <kind XMI.value="return"/>
- <type> <XMI.reference target="S.100004"/> </type>
- <!-- Type is: void -->
- </Parameter>
- </parameter>
- </Operation>
- </feature>
+ <realization> <XMI.reference target="S.101042"/> </realization>
+ <!-- realizations is: AliPHOSv0 -->
<feature>
- <Operation XMI.id = "S.100086">
- <name>CreateGeometry</name>
+ <Operation XMI.id = "S.101036">
+ <name>CreateMaterials</name>
<visibility XMI.value = "public"/>
<ownerScope XMI.value="instance"/>
<isQuery XMI.value="false"/>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100087">
+ <Parameter XMI.id = "S.101037">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</Operation>
</feature>
<feature>
- <Operation XMI.id = "S.100088">
- <name>FinishEvent</name>
+ <Operation XMI.id = "S.101038">
+ <name>GetGeometry</name>
<visibility XMI.value = "public"/>
<ownerScope XMI.value="instance"/>
<isQuery XMI.value="false"/>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100089">
+ <Parameter XMI.id = "S.101039">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</defaultValue>
<kind XMI.value="return"/>
- <type> <XMI.reference target="S.100004"/> </type>
- <!-- Type is: void -->
+ <type> <XMI.reference target="S.101040"/> </type>
+ <!-- Type is: AliPHOSGeometry * -->
</Parameter>
</parameter>
</Operation>
</feature>
+ </Interface>
+ </ownedElement>
+ <ownedElement>
+ <Generalization XMI.id = "S.100079">
+ <name></name>
+ <visibility XMI.value = "public"/>
+ <discriminator>
+ </discriminator>
+ <subtype> <XMI.reference target="S.100078"/> </subtype>
+ <!-- subtype is: AliPHOS -->
+ <supertype> <XMI.reference target="S.100075"/> </supertype>
+ <!-- supertype is: AliDetector -->
+ </Generalization>
+ </ownedElement>
+ <ownedElement>
+ <Class XMI.id = "S.100094">
+ <name>AliPHOSGeometry</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
<feature>
- <Operation XMI.id = "S.100090">
- <name>MakeBranch</name>
+ <Operation XMI.id = "S.100114">
+ <name>IsInitialized</name>
<visibility XMI.value = "public"/>
<ownerScope XMI.value="instance"/>
<isQuery XMI.value="false"/>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100091">
+ <Parameter XMI.id = "S.101803">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</Operation>
</feature>
<feature>
- <Operation XMI.id = "S.100092">
- <name>StepManager</name>
+ <Operation XMI.id = "S.100116">
+ <name>RelPosInAlice</name>
<visibility XMI.value = "public"/>
<ownerScope XMI.value="instance"/>
<isQuery XMI.value="false"/>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100093">
+ <Parameter XMI.id = "S.101806">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</parameter>
</Operation>
</feature>
- </Class>
- </ownedElement>
- <ownedElement>
- <Class XMI.id = "S.100094">
- <name>AliPHOSGeometry</name>
- <visibility XMI.value = "public"/>
- <isAbstract XMI.value="false"/>
- <isLeaf XMI.value="false"/>
- <isRoot XMI.value="false"/>
- <isActive XMI.value = "false"/>
<feature>
- <Operation XMI.id = "S.100114">
- <name>IsInitialized</name>
+ <Operation XMI.id = "S.100118">
+ <name>RelPosInModule</name>
<visibility XMI.value = "public"/>
<ownerScope XMI.value="instance"/>
<isQuery XMI.value="false"/>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100115">
+ <Parameter XMI.id = "S.101809">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</Operation>
</feature>
<feature>
- <Operation XMI.id = "S.100116">
- <name>RelPosInAlice</name>
+ <Operation XMI.id = "S.100120">
+ <name>RelToAbsNumbering</name>
<visibility XMI.value = "public"/>
<ownerScope XMI.value="instance"/>
<isQuery XMI.value="false"/>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100117">
+ <Parameter XMI.id = "S.101812">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</Operation>
</feature>
<feature>
- <Operation XMI.id = "S.100118">
- <name>RelPosInModule</name>
+ <Operation XMI.id = "S.100122">
+ <name>AbsToRelNumbering</name>
<visibility XMI.value = "public"/>
<ownerScope XMI.value="instance"/>
<isQuery XMI.value="false"/>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100119">
+ <Parameter XMI.id = "S.101815">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</Operation>
</feature>
<feature>
- <Operation XMI.id = "S.100120">
- <name>RelToAbsNumbering</name>
+ <Operation XMI.id = "S.101816">
+ <name>many</name>
<visibility XMI.value = "public"/>
<ownerScope XMI.value="instance"/>
<isQuery XMI.value="false"/>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100121">
- <name>return</name>
+ <Parameter XMI.id = "S.101820">
+ <name>getter/putter</name>
<visibility XMI.value = "public"/>
<defaultValue>
</defaultValue>
- <kind XMI.value="return"/>
- <type> <XMI.reference target="S.100004"/> </type>
- <!-- Type is: void -->
+ <kind XMI.value="in"/>
+ <type> <XMI.reference target="S.101819"/> </type>
+ <!-- Type is: more -->
</Parameter>
</parameter>
- </Operation>
- </feature>
- <feature>
- <Operation XMI.id = "S.100122">
- <name>AbsToRelNumbering</name>
- <visibility XMI.value = "public"/>
- <ownerScope XMI.value="instance"/>
- <isQuery XMI.value="false"/>
- <concurrency XMI.value="sequential"/>
- <isPolymorphic XMI.value="false"/>
- <operationSpecification>
- </operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100123">
+ <Parameter XMI.id = "S.101821">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</defaultValue>
<kind XMI.value="return"/>
- <type> <XMI.reference target="S.100004"/> </type>
- <!-- Type is: void -->
+ <type> <XMI.reference target="S.101817"/> </type>
+ <!-- Type is: and -->
</Parameter>
</parameter>
</Operation>
</feature>
</Class>
</ownedElement>
- <ownedElement>
- <Association XMI.id="S.100095">
- <name>* fGeom</name>
- <visibility XMI.value = "public"/>
- <isAbstract XMI.value="false"/>
- <isLeaf XMI.value="false"/>
- <isRoot XMI.value="false"/>
- <connection>
- <AssociationEnd XMI.id = "S.100096">
- <name></name>
- <visibility XMI.value = "public"/>
- <isNavigable XMI.value="true"/>
- <isOrdered XMI.value="false"/>
- <aggregation XMI.value="aggregate"/>
- <multiplicity>1</multiplicity>
- <changeable XMI.value="none"/>
- <targetScope XMI.value="instance"/>
- <type> <XMI.reference target="S.100080"/> </type>
- <!-- Type is: AliPHOSv4 -->
- </AssociationEnd>
- </connection>
- <connection>
- <AssociationEnd XMI.id = "S.100097">
- <name></name>
- <visibility XMI.value = "public"/>
- <isNavigable XMI.value="true"/>
- <isOrdered XMI.value="false"/>
- <aggregation XMI.value="none"/>
- <multiplicity>1</multiplicity>
- <changeable XMI.value="none"/>
- <targetScope XMI.value="instance"/>
- <type> <XMI.reference target="S.100094"/> </type>
- <!-- Type is: AliPHOSGeometry -->
- </AssociationEnd>
- </connection>
- </Association>
- </ownedElement>
<ownedElement>
<Interface XMI.id = "S.100124">
<name>AliHit</name>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100151">
+ <Parameter XMI.id = "S.101852">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</defaultValue>
<kind XMI.value="return"/>
- <type> <XMI.reference target="S.100010"/> </type>
- <!-- Type is: float -->
+ <type> <XMI.reference target="S.101850"/> </type>
+ <!-- Type is: Float_t -->
</Parameter>
</parameter>
</Operation>
</feature>
<feature>
- <Operation XMI.id = "S.100152">
- <name>G
-
- etId</name>
+ <Operation XMI.id = "S.101853">
+ <name>GetId</name>
<visibility XMI.value = "public"/>
<ownerScope XMI.value="instance"/>
<isQuery XMI.value="false"/>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100153">
+ <Parameter XMI.id = "S.101855">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</defaultValue>
<kind XMI.value="return"/>
- <type> <XMI.reference target="S.100006"/> </type>
- <!-- Type is: int -->
+ <type> <XMI.reference target="S.101118"/> </type>
+ <!-- Type is: Int_t -->
</Parameter>
</parameter>
</Operation>
</feature>
<feature>
- <Attribute XMI.id = "S.100127">
- <name>fEnergy</name>
+ <Attribute XMI.id = "S.101856">
+ <name>fELOS</name>
<visibility XMI.value = "private"/>
<ownerScope XMI.value="instance"/>
<changeable XMI.value="none"/>
<initialValue>
0
</initialValue>
+ <type> <XMI.reference target="S.101850"/> </type>
+ <!-- Type is: Float_t -->
</Attribute>
</feature>
<feature>
<initialValue>
0
</initialValue>
- <type> <XMI.reference target="S.100006"/> </type>
- <!-- Type is: int -->
+ <type> <XMI.reference target="S.101118"/> </type>
+ <!-- Type is: Int_t -->
</Attribute>
</feature>
</Class>
</ownedElement>
- <ownedElement>
- <Association XMI.id="S.100156">
- <name>create</name>
- <visibility XMI.value = "public"/>
- <isAbstract XMI.value="false"/>
- <isLeaf XMI.value="false"/>
- <isRoot XMI.value="false"/>
- <connection>
- <AssociationEnd XMI.id = "S.100157">
- <name></name>
- <visibility XMI.value = "public"/>
- <isNavigable XMI.value="true"/>
- <isOrdered XMI.value="false"/>
- <aggregation XMI.value="none"/>
- <multiplicity>0..*</multiplicity>
- <changeable XMI.value="none"/>
- <targetScope XMI.value="instance"/>
- <type> <XMI.reference target="S.100125"/> </type>
- <!-- Type is: AliPHOSHit -->
- </AssociationEnd>
- </connection>
- <connection>
- <AssociationEnd XMI.id = "S.100158">
- <name></name>
- <visibility XMI.value = "public"/>
- <isNavigable XMI.value="false"/>
- <isOrdered XMI.value="false"/>
- <aggregation XMI.value="none"/>
- <multiplicity>1</multiplicity>
- <changeable XMI.value="none"/>
- <targetScope XMI.value="instance"/>
- <type> <XMI.reference target="S.100080"/> </type>
- <!-- Type is: AliPHOSv4 -->
- </AssociationEnd>
- </connection>
- </Association>
- </ownedElement>
<ownedElement>
<Interface XMI.id = "S.100159">
<name>AliDigit</name>
<!-- specification is: AliDigit -->
<!-- specification is: AliDigit -->
<feature>
- <Operation XMI.id = "S.100186">
- <name>GetEnergy</name>
+ <Operation XMI.id = "S.101910">
+ <name>Compare</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102333">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.101912">
+ <name>GetAmp</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102336">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.101118"/> </type>
+ <!-- Type is: Int_t -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.101918">
+ <name>IsSortable</name>
<visibility XMI.value = "public"/>
<ownerScope XMI.value="instance"/>
<isQuery XMI.value="false"/>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100187">
+ <Parameter XMI.id = "S.102339">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</defaultValue>
<kind XMI.value="return"/>
- <type> <XMI.reference target="S.100010"/> </type>
- <!-- Type is: float -->
+ <type> <XMI.reference target="S.101919"/> </type>
+ <!-- Type is: Bool_t -->
</Parameter>
</parameter>
</Operation>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100189">
+ <Parameter XMI.id = "S.102342">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</defaultValue>
<kind XMI.value="return"/>
- <type> <XMI.reference target="S.100006"/> </type>
- <!-- Type is: int -->
+ <type> <XMI.reference target="S.101118"/> </type>
+ <!-- Type is: Int_t -->
</Parameter>
</parameter>
</Operation>
</feature>
<feature>
- <Attribute XMI.id = "S.100162">
- <name>fEnergy</name>
+ <Attribute XMI.id = "S.101900">
+ <name>fAmp</name>
<visibility XMI.value = "private"/>
<ownerScope XMI.value="instance"/>
<changeable XMI.value="none"/>
<initialValue>
0
</initialValue>
+ <type> <XMI.reference target="S.101118"/> </type>
+ <!-- Type is: Int_t -->
</Attribute>
</feature>
<feature>
<initialValue>
0
</initialValue>
- <type> <XMI.reference target="S.100006"/> </type>
- <!-- Type is: int -->
+ <type> <XMI.reference target="S.101118"/> </type>
+ <!-- Type is: Int_t -->
</Attribute>
</feature>
</Class>
</ownedElement>
<ownedElement>
- <Association XMI.id="S.100190">
- <name></name>
+ <Interface XMI.id = "S.100193">
+ <name>AliPHOSClusterizer</name>
<visibility XMI.value = "public"/>
- <isAbstract XMI.value="false"/>
- <isLeaf XMI.value="false"/>
- <isRoot XMI.value="false"/>
- <connection>
- <AssociationEnd XMI.id = "S.100191">
- <name>create</name>
- <visibility XMI.value = "public"/>
- <isNavigable XMI.value="false"/>
- <isOrdered XMI.value="false"/>
- <aggregation XMI.value="none"/>
- <multiplicity>1</multiplicity>
- <changeable XMI.value="none"/>
- <targetScope XMI.value="instance"/>
- <type> <XMI.reference target="S.100080"/> </type>
- <!-- Type is: AliPHOSv4 -->
- </AssociationEnd>
- </connection>
- <connection>
- <AssociationEnd XMI.id = "S.100192">
- <name></name>
- <visibility XMI.value = "public"/>
- <isNavigable XMI.value="true"/>
- <isOrdered XMI.value="false"/>
- <aggregation XMI.value="none"/>
- <multiplicity>0..*</multiplicity>
- <changeable XMI.value="none"/>
- <targetScope XMI.value="instance"/>
- <type> <XMI.reference target="S.100160"/> </type>
- <!-- Type is: AliPHOSDigit -->
- </AssociationEnd>
- </connection>
- </Association>
- </ownedElement>
- <ownedElement>
- <Interface XMI.id = "S.100193">
- <name>AliPHOSClusterizer</name>
- <visibility XMI.value = "public"/>
- <isAbstract XMI.value="true"/>
+ <isAbstract XMI.value="true"/>
<isLeaf XMI.value="false"/>
<isRoot XMI.value="false"/>
<realization> <XMI.reference target="S.100198"/> </realization>
<!-- realizations is: AliPHOSClusterizerv1 -->
+ <feature>
+ <Operation XMI.id = "S.102512">
+ <name>Calibrate</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102514">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
<feature>
<Operation XMI.id = "S.100194">
<name>GetNumberOfClustersFound</name>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100195">
+ <Parameter XMI.id = "S.102517">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</defaultValue>
<kind XMI.value="return"/>
- <type> <XMI.reference target="S.100006"/> </type>
- <!-- Type is: int -->
+ <type> <XMI.reference target="S.101118"/> </type>
+ <!-- Type is: Int_t -->
</Parameter>
</parameter>
</Operation>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100197">
+ <Parameter XMI.id = "S.102520">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100287">
+ <Parameter XMI.id = "S.102370">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.102368"/> </type>
+ <!-- Type is: Boo_tl -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.102371">
+ <name>Calibrate</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102373">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</defaultValue>
<kind XMI.value="return"/>
- <type> <XMI.reference target="S.100288"/> </type>
- <!-- Type is: bool -->
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
</Parameter>
</parameter>
</Operation>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100290">
+ <Parameter XMI.id = "S.102376">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.102377">
+ <name>GetLocalMaxCut</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102379">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.101850"/> </type>
+ <!-- Type is: Float_t -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.102380">
+ <name>GetLocalWeightCut</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102382">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.101850"/> </type>
+ <!-- Type is: Float_t -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.102383">
+ <name>GetNumberOfClustersFound</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102385">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100292">
+ <Parameter XMI.id = "S.102388">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.101919"/> </type>
+ <!-- Type is: Bool_t -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.102389">
+ <name>MakeClusters</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102391">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100294">
+ <Parameter XMI.id = "S.102394">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.102395">
+ <name>SetCalibrationParameters</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102397">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100296">
+ <Parameter XMI.id = "S.102400">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100298">
+ <Parameter XMI.id = "S.102403">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.102404">
+ <name>SetLocalMaxCut</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102406">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.102407">
+ <name>SetLogWeightCut</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102409">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100300">
+ <Parameter XMI.id = "S.102412">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100302">
+ <Parameter XMI.id = "S.102415">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</parameter>
</Operation>
</feature>
+ <feature>
+ <Attribute XMI.id = "S.102416">
+ <name>fA</name>
+ <visibility XMI.value = "private"/>
+ <ownerScope XMI.value="instance"/>
+ <changeable XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <targetScope XMI.value="instance"/>
+ <initialValue>
+ 0.
+ </initialValue>
+ <type> <XMI.reference target="S.101850"/> </type>
+ <!-- Type is: Float_t -->
+ </Attribute>
+ </feature>
+ <feature>
+ <Attribute XMI.id = "S.102418">
+ <name>fB</name>
+ <visibility XMI.value = "private"/>
+ <ownerScope XMI.value="instance"/>
+ <changeable XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <targetScope XMI.value="instance"/>
+ <initialValue>
+ 0.1
+ </initialValue>
+ <type> <XMI.reference target="S.101850"/> </type>
+ <!-- Type is: Float_t -->
+ </Attribute>
+ </feature>
+ <feature>
+ <Attribute XMI.id = "S.102419">
+ <name>fLocMaxCut</name>
+ <visibility XMI.value = "private"/>
+ <ownerScope XMI.value="instance"/>
+ <changeable XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <targetScope XMI.value="instance"/>
+ <initialValue>
+ 0.06
+ </initialValue>
+ <type> <XMI.reference target="S.101850"/> </type>
+ <!-- Type is: Float_t -->
+ </Attribute>
+ </feature>
<feature>
<Attribute XMI.id = "S.100200">
<name>fNumberOfEmcClusters</name>
<initialValue>
0
</initialValue>
- <type> <XMI.reference target="S.100006"/> </type>
- <!-- Type is: int -->
+ <type> <XMI.reference target="S.101118"/> </type>
+ <!-- Type is: Int_t -->
</Attribute>
</feature>
<feature>
<initialValue>
0
</initialValue>
- <type> <XMI.reference target="S.100006"/> </type>
- <!-- Type is: int -->
+ <type> <XMI.reference target="S.101118"/> </type>
+ <!-- Type is: Int_t -->
</Attribute>
</feature>
<feature>
<multiplicity>1</multiplicity>
<targetScope XMI.value="instance"/>
<initialValue>
- 0
+ 0.1
</initialValue>
+ <type> <XMI.reference target="S.101850"/> </type>
+ <!-- Type is: Float_t -->
</Attribute>
</feature>
<feature>
<multiplicity>1</multiplicity>
<targetScope XMI.value="instance"/>
<initialValue>
- 0
+ 0.01
</initialValue>
+ <type> <XMI.reference target="S.101850"/> </type>
+ <!-- Type is: Float_t -->
</Attribute>
</feature>
<feature>
<multiplicity>1</multiplicity>
<targetScope XMI.value="instance"/>
<initialValue>
- 0
+ 0.00000015
</initialValue>
+ <type> <XMI.reference target="S.101850"/> </type>
+ <!-- Type is: Float_t -->
</Attribute>
</feature>
<feature>
<multiplicity>1</multiplicity>
<targetScope XMI.value="instance"/>
<initialValue>
- 0
+ 0.0000001
+ </initialValue>
+ <type> <XMI.reference target="S.101850"/> </type>
+ <!-- Type is: Float_t -->
+ </Attribute>
+ </feature>
+ <feature>
+ <Attribute XMI.id = "S.102433">
+ <name>fW0</name>
+ <visibility XMI.value = "private"/>
+ <ownerScope XMI.value="instance"/>
+ <changeable XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <targetScope XMI.value="instance"/>
+ <initialValue>
+ 5.5
</initialValue>
+ <type> <XMI.reference target="S.101850"/> </type>
+ <!-- Type is: Float_t -->
</Attribute>
</feature>
</Class>
</Association>
</ownedElement>
<ownedElement>
- <Association XMI.id="S.100307">
+ <Association XMI.id="S.100313">
<name></name>
<visibility XMI.value = "public"/>
<isAbstract XMI.value="false"/>
<isLeaf XMI.value="false"/>
<isRoot XMI.value="false"/>
<connection>
- <AssociationEnd XMI.id = "S.100308">
- <name>create</name>
+ <AssociationEnd XMI.id = "S.100314">
+ <name>use</name>
<visibility XMI.value = "public"/>
<isNavigable XMI.value="false"/>
<isOrdered XMI.value="false"/>
<multiplicity>1</multiplicity>
<changeable XMI.value="none"/>
<targetScope XMI.value="instance"/>
- <type> <XMI.reference target="S.100080"/> </type>
- <!-- Type is: AliPHOSv4 -->
+ <type> <XMI.reference target="S.100198"/> </type>
+ <!-- Type is: AliPHOSClusterizerv1 -->
</AssociationEnd>
</connection>
<connection>
- <AssociationEnd XMI.id = "S.100309">
+ <AssociationEnd XMI.id = "S.100315">
<name></name>
<visibility XMI.value = "public"/>
<isNavigable XMI.value="true"/>
<isOrdered XMI.value="false"/>
<aggregation XMI.value="none"/>
- <multiplicity>0..*</multiplicity>
+ <multiplicity>1</multiplicity>
<changeable XMI.value="none"/>
<targetScope XMI.value="instance"/>
- <type> <XMI.reference target="S.100160"/> </type>
- <!-- Type is: AliPHOSDigit -->
+ <type> <XMI.reference target="S.100094"/> </type>
+ <!-- Type is: AliPHOSGeometry -->
</AssociationEnd>
</connection>
</Association>
</ownedElement>
<ownedElement>
- <Association XMI.id="S.100313">
- <name></name>
+ <Class XMI.id = "S.100334">
+ <name>AliPHOSEmcRecPoint</name>
<visibility XMI.value = "public"/>
<isAbstract XMI.value="false"/>
<isLeaf XMI.value="false"/>
<isRoot XMI.value="false"/>
- <connection>
- <AssociationEnd XMI.id = "S.100314">
- <name>use</name>
- <visibility XMI.value = "public"/>
- <isNavigable XMI.value="false"/>
- <isOrdered XMI.value="false"/>
- <aggregation XMI.value="none"/>
- <multiplicity>1</multiplicity>
- <changeable XMI.value="none"/>
- <targetScope XMI.value="instance"/>
- <type> <XMI.reference target="S.100198"/> </type>
- <!-- Type is: AliPHOSClusterizerv1 -->
- </AssociationEnd>
- </connection>
- <connection>
- <AssociationEnd XMI.id = "S.100315">
- <name></name>
- <visibility XMI.value = "public"/>
- <isNavigable XMI.value="true"/>
- <isOrdered XMI.value="false"/>
- <aggregation XMI.value="none"/>
- <multiplicity>1</multiplicity>
- <changeable XMI.value="none"/>
- <targetScope XMI.value="instance"/>
- <type> <XMI.reference target="S.100094"/> </type>
- <!-- Type is: AliPHOSGeometry -->
- </AssociationEnd>
- </connection>
- </Association>
+ <isActive XMI.value = "false"/>
+ </Class>
</ownedElement>
<ownedElement>
- <Interface XMI.id = "S.100322">
- <name>AliPHOSCluster</name>
+ <Class XMI.id = "S.100336">
+ <name>AliPHOSPpsdRecPoint</name>
<visibility XMI.value = "public"/>
- <isAbstract XMI.value="true"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
+ </ownedElement>
+ <ownedElement>
+ <Class XMI.id = "S.100649">
+ <name>AliPHOSTrackSegmentMakerv1</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
<isLeaf XMI.value="false"/>
<isRoot XMI.value="false"/>
- <realization> <XMI.reference target="S.100334"/> </realization>
- <realization> <XMI.reference target="S.100336"/> </realization>
- <!-- realizations is: AliPHOSEmcCluster -->
- <!-- realizations is: AliPHOSPpsdCluster -->
+ <isActive XMI.value = "false"/>
<feature>
- <Operation XMI.id = "S.100323">
- <name>AddDigit</name>
+ <Operation XMI.id = "S.102723">
+ <name>FillOneModule</name>
<visibility XMI.value = "public"/>
<ownerScope XMI.value="instance"/>
<isQuery XMI.value="false"/>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100324">
+ <Parameter XMI.id = "S.102725">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</Operation>
</feature>
<feature>
- <Operation XMI.id = "S.100325">
- <name>GetMultiplicity</name>
+ <Operation XMI.id = "S.102726">
+ <name>FindFit</name>
<visibility XMI.value = "public"/>
<ownerScope XMI.value="instance"/>
<isQuery XMI.value="false"/>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100326">
+ <Parameter XMI.id = "S.102728">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</defaultValue>
<kind XMI.value="return"/>
- <type> <XMI.reference target="S.100006"/> </type>
- <!-- Type is: int -->
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
</Parameter>
</parameter>
</Operation>
</feature>
<feature>
- <Operation XMI.id = "S.100327">
- <name>GetDigitsList</name>
+ <Operation XMI.id = "S.100683">
+ <name>GetDistanceInPHOSPlane</name>
<visibility XMI.value = "public"/>
<ownerScope XMI.value="instance"/>
<isQuery XMI.value="false"/>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100328">
+ <Parameter XMI.id = "S.102731">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</Operation>
</feature>
<feature>
- <Operation XMI.id = "S.100329">
- <name>Print</name>
+ <Operation XMI.id = "S.102732">
+ <name>MakeLinks</name>
<visibility XMI.value = "public"/>
<ownerScope XMI.value="instance"/>
<isQuery XMI.value="false"/>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100330">
+ <Parameter XMI.id = "S.102734">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</Operation>
</feature>
<feature>
- <Operation XMI.id = "S.100562">
- <name>GetRelPosition</name>
+ <Operation XMI.id = "S.102735">
+ <name>MakePairs</name>
<visibility XMI.value = "public"/>
<ownerScope XMI.value="instance"/>
<isQuery XMI.value="false"/>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100563">
+ <Parameter XMI.id = "S.102737">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</parameter>
</Operation>
</feature>
- </Interface>
- </ownedElement>
- <ownedElement>
- <Class XMI.id = "S.100334">
- <name>AliPHOSEmcCluster</name>
- <visibility XMI.value = "public"/>
- <isAbstract XMI.value="false"/>
- <isLeaf XMI.value="false"/>
- <isRoot XMI.value="false"/>
- <isActive XMI.value = "false"/>
- <specification> <XMI.reference target="S.100322"/> </specification>
- <!-- specification is: AliPHOSCluster -->
<feature>
- <Operation XMI.id = "S.100535">
- <name>AreNeighbours</name>
+ <Operation XMI.id = "S.102738">
+ <name>MakeTrackSegments</name>
<visibility XMI.value = "public"/>
<ownerScope XMI.value="instance"/>
<isQuery XMI.value="false"/>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100536">
+ <Parameter XMI.id = "S.102740">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</defaultValue>
<kind XMI.value="return"/>
- <type> <XMI.reference target="S.100288"/> </type>
- <!-- Type is: bool -->
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
</Parameter>
</parameter>
</Operation>
</feature>
<feature>
- <Operation XMI.id = "S.100537">
- <name>Compare</name>
+ <Operation XMI.id = "S.102741">
+ <name>SetMaxEmcPpsdDistance</name>
<visibility XMI.value = "public"/>
<ownerScope XMI.value="instance"/>
<isQuery XMI.value="false"/>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100538">
+ <Parameter XMI.id = "S.102743">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</Operation>
</feature>
<feature>
- <Operation XMI.id = "S.100539">
- <name>GetAbsPosition</name>
+ <Operation XMI.id = "S.102744">
+ <name>ShowerShape</name>
<visibility XMI.value = "public"/>
<ownerScope XMI.value="instance"/>
<isQuery XMI.value="false"/>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100540">
+ <Parameter XMI.id = "S.102746">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</Operation>
</feature>
<feature>
- <Operation XMI.id = "S.100541">
- <name>GetDispersion</name>
+ <Operation XMI.id = "S.102747">
+ <name>UnfoldClusters</name>
<visibility XMI.value = "public"/>
<ownerScope XMI.value="instance"/>
<isQuery XMI.value="false"/>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100542">
+ <Parameter XMI.id = "S.102749">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</defaultValue>
<kind XMI.value="return"/>
- <type> <XMI.reference target="S.100010"/> </type>
- <!-- Type is: float -->
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
</Parameter>
</parameter>
</Operation>
</feature>
<feature>
- <Operation XMI.id = "S.100543">
- <name>GetElipsAxis</name>
+ <Operation XMI.id = "S.102750">
+ <name>UnfoldingChiSquare</name>
<visibility XMI.value = "public"/>
<ownerScope XMI.value="instance"/>
<isQuery XMI.value="false"/>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100544">
+ <Parameter XMI.id = "S.102752">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</Operation>
</feature>
<feature>
- <Operation XMI.id = "S.100545">
- <name>GetMaximalEnergy</name>
+ <Attribute XMI.id = "S.100651">
+ <name>fDelta</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <changeable XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <targetScope XMI.value="instance"/>
+ <initialValue>
+ 0
+ </initialValue>
+ </Attribute>
+ </feature>
+ <feature>
+ <Attribute XMI.id = "S.100653">
+ <name>fR0</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <changeable XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <targetScope XMI.value="instance"/>
+ <initialValue>
+ 0
+ </initialValue>
+ </Attribute>
+ </feature>
+ </Class>
+ </ownedElement>
+ <ownedElement>
+ <Association XMI.id="S.100685">
+ <name></name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <connection>
+ <AssociationEnd XMI.id = "S.100686">
+ <name>use</name>
+ <visibility XMI.value = "public"/>
+ <isNavigable XMI.value="false"/>
+ <isOrdered XMI.value="false"/>
+ <aggregation XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <changeable XMI.value="none"/>
+ <targetScope XMI.value="instance"/>
+ <type> <XMI.reference target="S.100649"/> </type>
+ <!-- Type is: AliPHOSTrackSegmentMakerv1 -->
+ </AssociationEnd>
+ </connection>
+ <connection>
+ <AssociationEnd XMI.id = "S.100687">
+ <name></name>
+ <visibility XMI.value = "public"/>
+ <isNavigable XMI.value="true"/>
+ <isOrdered XMI.value="false"/>
+ <aggregation XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <changeable XMI.value="none"/>
+ <targetScope XMI.value="instance"/>
+ <type> <XMI.reference target="S.100094"/> </type>
+ <!-- Type is: AliPHOSGeometry -->
+ </AssociationEnd>
+ </connection>
+ </Association>
+ </ownedElement>
+ <ownedElement>
+ <Class XMI.id = "S.100688">
+ <name>AliPHOSSubTrack</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ <feature>
+ <Operation XMI.id = "S.102804">
+ <name>GetDistannceInPHOSPlane</name>
<visibility XMI.value = "public"/>
<ownerScope XMI.value="instance"/>
<isQuery XMI.value="false"/>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100546">
+ <Parameter XMI.id = "S.102806">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</defaultValue>
<kind XMI.value="return"/>
- <type> <XMI.reference target="S.100010"/> </type>
- <!-- Type is: float -->
+ <type> <XMI.reference target="S.101850"/> </type>
+ <!-- Type is: Float_t -->
</Parameter>
</parameter>
</Operation>
</feature>
<feature>
- <Operation XMI.id = "S.100547">
- <name>GetMultiplicityAtLevel</name>
+ <Operation XMI.id = "S.102807">
+ <name>GetEnergy</name>
<visibility XMI.value = "public"/>
<ownerScope XMI.value="instance"/>
<isQuery XMI.value="false"/>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100548">
+ <Parameter XMI.id = "S.102809">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</defaultValue>
<kind XMI.value="return"/>
- <type> <XMI.reference target="S.100004"/> </type>
- <!-- Type is: void -->
+ <type> <XMI.reference target="S.101850"/> </type>
+ <!-- Type is: Float_t -->
</Parameter>
</parameter>
</Operation>
</feature>
<feature>
- <Operation XMI.id = "S.100549">
- <name>GetNumberOfLocalMaxima</name>
+ <Operation XMI.id = "S.102810">
+ <name>GetMomentumDirection</name>
<visibility XMI.value = "public"/>
<ownerScope XMI.value="instance"/>
<isQuery XMI.value="false"/>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100550">
+ <Parameter XMI.id = "S.102812">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</defaultValue>
<kind XMI.value="return"/>
- <type> <XMI.reference target="S.100004"/> </type>
- <!-- Type is: void -->
+ <type> <XMI.reference target="S.101919"/> </type>
+ <!-- Type is: Bool_t -->
</Parameter>
</parameter>
</Operation>
</feature>
<feature>
- <Operation XMI.id = "S.100551">
- <name>GetRelPosition</name>
+ <Operation XMI.id = "S.102813">
+ <name>GetParticuleType</name>
<visibility XMI.value = "public"/>
<ownerScope XMI.value="instance"/>
<isQuery XMI.value="false"/>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100552">
+ <Parameter XMI.id = "S.102815">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</defaultValue>
<kind XMI.value="return"/>
- <type> <XMI.reference target="S.100004"/> </type>
- <!-- Type is: void -->
+ <type> <XMI.reference target="S.101118"/> </type>
+ <!-- Type is: Int_t -->
</Parameter>
</parameter>
</Operation>
</feature>
<feature>
- <Operation XMI.id = "S.100553">
- <name>GetTotalEnergy</name>
+ <Operation XMI.id = "S.102816">
+ <name>GetPosition</name>
<visibility XMI.value = "public"/>
<ownerScope XMI.value="instance"/>
<isQuery XMI.value="false"/>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100554">
+ <Parameter XMI.id = "S.102818">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</Operation>
</feature>
<feature>
- <Operation XMI.id = "S.100555">
- <name>SetLocalMaxCut</name>
+ <Operation XMI.id = "S.102819">
+ <name>Print</name>
<visibility XMI.value = "public"/>
<ownerScope XMI.value="instance"/>
<isQuery XMI.value="false"/>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100556">
+ <Parameter XMI.id = "S.102821">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</Operation>
</feature>
<feature>
- <Operation XMI.id = "S.100557">
- <name>SetLowWeightCut</name>
+ <Operation XMI.id = "S.102822">
+ <name>SetDispersionCutOff</name>
<visibility XMI.value = "public"/>
<ownerScope XMI.value="instance"/>
<isQuery XMI.value="false"/>
<operationSpecification>
</operationSpecification>
<parameter>
- <Parameter XMI.id = "S.100558">
+ <Parameter XMI.id = "S.102824">
<name>return</name>
<visibility XMI.value = "public"/>
<defaultValue>
</Operation>
</feature>
<feature>
- <Attribute XMI.id = "S.100338">
- <name>fDigitsList</name>
- <visibility XMI.value = "private"/>
- <ownerScope XMI.value="instance"/>
- <changeable XMI.value="none"/>
- <multiplicity>1</multiplicity>
- <targetScope XMI.value="instance"/>
- <initialValue>
- 0
- </initialValue>
- </Attribute>
- </feature>
- <feature>
- <Attribute XMI.id = "S.100401">
- <name>fEnergy</name>
+ <Attribute XMI.id = "S.100692">
+ <name>fCutOnDispersion</name>
<visibility XMI.value = "private"/>
<ownerScope XMI.value="instance"/>
<changeable XMI.value="none"/>
<multiplicity>1</multiplicity>
<targetScope XMI.value="instance"/>
<initialValue>
- 0
+ 1.5
</initialValue>
+ <type> <XMI.reference target="S.101850"/> </type>
+ <!-- Type is: Float_t -->
</Attribute>
</feature>
<feature>
- <Attribute XMI.id = "S.100403">
- <name>fMultiplicity</name>
+ <Attribute XMI.id = "S.102793">
+ <name>fEmcRecPoint</name>
<visibility XMI.value = "private"/>
<ownerScope XMI.value="instance"/>
<changeable XMI.value="none"/>
<multiplicity>1</multiplicity>
<targetScope XMI.value="instance"/>
<initialValue>
- 0
</initialValue>
- <type> <XMI.reference target="S.100006"/> </type>
- <!-- Type is: int -->
+ <type> <XMI.reference target="S.102794"/> </type>
+ <!-- Type is: AliPHOSEmcRecPoint* -->
</Attribute>
</feature>
<feature>
- <Attribute XMI.id = "S.100465">
- <name>fDelta</name>
+ <Attribute XMI.id = "S.100696">
+ <name>fPpsdLow</name>
<visibility XMI.value = "private"/>
<ownerScope XMI.value="instance"/>
<changeable XMI.value="none"/>
<multiplicity>1</multiplicity>
<targetScope XMI.value="instance"/>
<initialValue>
- 4.
</initialValue>
+ <type> <XMI.reference target="S.102796"/> </type>
+ <!-- Type is: AliPHOSPpsdRecPoint* -->
</Attribute>
</feature>
<feature>
- <Attribute XMI.id = "S.100481">
- <name>fLocMaxCut</name>
+ <Attribute XMI.id = "S.100698">
+ <name>fPpsdUp</name>
<visibility XMI.value = "private"/>
<ownerScope XMI.value="instance"/>
<changeable XMI.value="none"/>
<multiplicity>1</multiplicity>
<targetScope XMI.value="instance"/>
<initialValue>
- 0.6
- </initialValue>
- </Attribute>
- </feature>
- <feature>
- <Attribute XMI.id = "S.100497">
- <name>fW0</name>
- <visibility XMI.value = "public"/>
- <ownerScope XMI.value="instance"/>
- <changeable XMI.value="none"/>
- <multiplicity>1</multiplicity>
- <targetScope XMI.value="instance"/>
- <initialValue>
- 4.
</initialValue>
+ <type> <XMI.reference target="S.102798"/> </type>
+ <!-- Type is: AliPHOSAppsdRecPoint* -->
</Attribute>
</feature>
</Class>
</ownedElement>
<ownedElement>
- <Class XMI.id = "S.100336">
- <name>AliPHOSPpsdCluster</name>
- <visibility XMI.value = "public"/>
- <isAbstract XMI.value="false"/>
- <isLeaf XMI.value="false"/>
- <isRoot XMI.value="false"/>
- <isActive XMI.value = "false"/>
- <specification> <XMI.reference target="S.100322"/> </specification>
- <!-- specification is: AliPHOSCluster -->
- <feature>
- <Operation XMI.id = "S.100360">
- <name>Compare</name>
- <visibility XMI.value = "public"/>
- <ownerScope XMI.value="instance"/>
- <isQuery XMI.value="false"/>
- <concurrency XMI.value="sequential"/>
- <isPolymorphic XMI.value="false"/>
- <operationSpecification>
- </operationSpecification>
- <parameter>
- <Parameter XMI.id = "S.100795">
- <name>return</name>
- <visibility XMI.value = "public"/>
- <defaultValue>
- </defaultValue>
- <kind XMI.value="return"/>
- <type> <XMI.reference target="S.100006"/> </type>
- <!-- Type is: int -->
- </Parameter>
- </parameter>
- </Operation>
- </feature>
- <feature>
- <Operation XMI.id = "S.100560">
- <name>GetRelPosition</name>
- <visibility XMI.value = "public"/>
- <ownerScope XMI.value="instance"/>
- <isQuery XMI.value="false"/>
- <concurrency XMI.value="sequential"/>
- <isPolymorphic XMI.value="false"/>
- <operationSpecification>
- </operationSpecification>
- <parameter>
- <Parameter XMI.id = "S.100798">
- <name>return</name>
- <visibility XMI.value = "public"/>
- <defaultValue>
- </defaultValue>
- <kind XMI.value="return"/>
- <type> <XMI.reference target="S.100004"/> </type>
- <!-- Type is: void -->
- </Parameter>
- </parameter>
- </Operation>
- </feature>
- <feature>
- <Operation XMI.id = "S.100564">
- <name>GetUp</name>
- <visibility XMI.value = "public"/>
- <ownerScope XMI.value="instance"/>
- <isQuery XMI.value="false"/>
- <concurrency XMI.value="sequential"/>
- <isPolymorphic XMI.value="false"/>
- <operationSpecification>
- </operationSpecification>
- <parameter>
- <Parameter XMI.id = "S.100801">
- <name>return</name>
- <visibility XMI.value = "public"/>
- <defaultValue>
- </defaultValue>
- <kind XMI.value="return"/>
- <type> <XMI.reference target="S.100288"/> </type>
- <!-- Type is: bool -->
- </Parameter>
- </parameter>
- </Operation>
- </feature>
- <feature>
- <Attribute XMI.id = "S.100362">
- <name>fDigitsList</name>
- <visibility XMI.value = "public"/>
- <ownerScope XMI.value="instance"/>
- <changeable XMI.value="none"/>
- <multiplicity>1</multiplicity>
- <targetScope XMI.value="instance"/>
- <initialValue>
- 0
- </initialValue>
- </Attribute>
- </feature>
- <feature>
- <Attribute XMI.id = "S.100441">
- <name>fEnergy</name>
- <visibility XMI.value = "private"/>
- <ownerScope XMI.value="instance"/>
- <changeable XMI.value="none"/>
- <multiplicity>1</multiplicity>
- <targetScope XMI.value="instance"/>
- <initialValue>
- 0
- </initialValue>
- </Attribute>
- </feature>
- <feature>
- <Attribute XMI.id = "S.100443">
- <name>fMultiplicity</name>
- <visibility XMI.value = "private"/>
- <ownerScope XMI.value="instance"/>
- <changeable XMI.value="none"/>
- <multiplicity>1</multiplicity>
- <targetScope XMI.value="instance"/>
- <initialValue>
- 0
- </initialValue>
- <type> <XMI.reference target="S.100006"/> </type>
- <!-- Type is: int -->
- </Attribute>
- </feature>
- </Class>
- </ownedElement>
- <ownedElement>
- <Interface XMI.id = "S.100566">
- <name>AliPHOSSubTracker</name>
- <visibility XMI.value = "public"/>
- <isAbstract XMI.value="true"/>
- <isLeaf XMI.value="false"/>
- <isRoot XMI.value="false"/>
- <realization> <XMI.reference target="S.100649"/> </realization>
- <!-- realizations is: AliPHOSSubTrackerv1 -->
- <feature>
- <Operation XMI.id = "S.100567">
- <name>MakeSubTracks</name>
- <visibility XMI.value = "public"/>
- <ownerScope XMI.value="instance"/>
- <isQuery XMI.value="false"/>
- <concurrency XMI.value="sequential"/>
- <isPolymorphic XMI.value="false"/>
- <operationSpecification>
- </operationSpecification>
- <parameter>
- <Parameter XMI.id = "S.100568">
- <name>return</name>
- <visibility XMI.value = "public"/>
- <defaultValue>
- </defaultValue>
- <kind XMI.value="return"/>
- <type> <XMI.reference target="S.100004"/> </type>
- <!-- Type is: void -->
- </Parameter>
- </parameter>
- </Operation>
- </feature>
- </Interface>
- </ownedElement>
- <ownedElement>
- <Class XMI.id = "S.100649">
- <name>AliPHOSSubTrackerv1</name>
- <visibility XMI.value = "public"/>
- <isAbstract XMI.value="false"/>
- <isLeaf XMI.value="false"/>
- <isRoot XMI.value="false"/>
- <isActive XMI.value = "false"/>
- <specification> <XMI.reference target="S.100566"/> </specification>
- <!-- specification is: AliPHOSSubTracker -->
- <feature>
- <Operation XMI.id = "S.100683">
- <name>GetDistanceInPHOSPlane</name>
- <visibility XMI.value = "public"/>
- <ownerScope XMI.value="instance"/>
- <isQuery XMI.value="false"/>
- <concurrency XMI.value="sequential"/>
- <isPolymorphic XMI.value="false"/>
- <operationSpecification>
- </operationSpecification>
- <parameter>
- <Parameter XMI.id = "S.100684">
- <name>return</name>
- <visibility XMI.value = "public"/>
- <defaultValue>
- </defaultValue>
- <kind XMI.value="return"/>
- <type> <XMI.reference target="S.100010"/> </type>
- <!-- Type is: float -->
- </Parameter>
- </parameter>
- </Operation>
- </feature>
- <feature>
- <Attribute XMI.id = "S.100651">
- <name>fDelta</name>
- <visibility XMI.value = "public"/>
- <ownerScope XMI.value="instance"/>
- <changeable XMI.value="none"/>
- <multiplicity>1</multiplicity>
- <targetScope XMI.value="instance"/>
- <initialValue>
- 0
- </initialValue>
- </Attribute>
- </feature>
- <feature>
- <Attribute XMI.id = "S.100653">
- <name>fR0</name>
- <visibility XMI.value = "public"/>
- <ownerScope XMI.value="instance"/>
- <changeable XMI.value="none"/>
- <multiplicity>1</multiplicity>
- <targetScope XMI.value="instance"/>
- <initialValue>
- 0
- </initialValue>
- </Attribute>
- </feature>
- </Class>
- </ownedElement>
- <ownedElement>
- <Association XMI.id="S.100685">
- <name></name>
- <visibility XMI.value = "public"/>
- <isAbstract XMI.value="false"/>
- <isLeaf XMI.value="false"/>
- <isRoot XMI.value="false"/>
- <connection>
- <AssociationEnd XMI.id = "S.100686">
- <name>use</name>
- <visibility XMI.value = "public"/>
- <isNavigable XMI.value="false"/>
- <isOrdered XMI.value="false"/>
- <aggregation XMI.value="none"/>
- <multiplicity>1</multiplicity>
- <changeable XMI.value="none"/>
- <targetScope XMI.value="instance"/>
- <type> <XMI.reference target="S.100649"/> </type>
- <!-- Type is: AliPHOSSubTrackerv1 -->
- </AssociationEnd>
- </connection>
- <connection>
- <AssociationEnd XMI.id = "S.100687">
- <name></name>
- <visibility XMI.value = "public"/>
- <isNavigable XMI.value="true"/>
- <isOrdered XMI.value="false"/>
- <aggregation XMI.value="none"/>
- <multiplicity>1</multiplicity>
- <changeable XMI.value="none"/>
- <targetScope XMI.value="instance"/>
- <type> <XMI.reference target="S.100094"/> </type>
- <!-- Type is: AliPHOSGeometry -->
- </AssociationEnd>
- </connection>
- </Association>
- </ownedElement>
- <ownedElement>
- <Class XMI.id = "S.100688">
- <name>AliPHOSSubTrack</name>
- <visibility XMI.value = "public"/>
- <isAbstract XMI.value="false"/>
- <isLeaf XMI.value="false"/>
- <isRoot XMI.value="false"/>
- <isActive XMI.value = "false"/>
- <feature>
- <Attribute XMI.id = "S.100692">
- <name>fCutOnDispersion</name>
- <visibility XMI.value = "private"/>
- <ownerScope XMI.value="instance"/>
- <changeable XMI.value="none"/>
- <multiplicity>1</multiplicity>
- <targetScope XMI.value="instance"/>
- <initialValue>
- 1.5
- </initialValue>
- </Attribute>
- </feature>
- <feature>
- <Attribute XMI.id = "S.100694">
- <name>fEmcCluster</name>
- <visibility XMI.value = "public"/>
- <ownerScope XMI.value="instance"/>
- <changeable XMI.value="none"/>
- <multiplicity>1</multiplicity>
- <targetScope XMI.value="instance"/>
- <initialValue>
- 0
- </initialValue>
- </Attribute>
- </feature>
- <feature>
- <Attribute XMI.id = "S.100696">
- <name>fPpsdLow</name>
- <visibility XMI.value = "public"/>
- <ownerScope XMI.value="instance"/>
- <changeable XMI.value="none"/>
- <multiplicity>1</multiplicity>
- <targetScope XMI.value="instance"/>
- <initialValue>
- 0
- </initialValue>
- </Attribute>
- </feature>
- <feature>
- <Attribute XMI.id = "S.100698">
- <name>fPpsdUp</name>
- <visibility XMI.value = "public"/>
- <ownerScope XMI.value="instance"/>
- <changeable XMI.value="none"/>
- <multiplicity>1</multiplicity>
- <targetScope XMI.value="instance"/>
- <initialValue>
- 0
- </initialValue>
- </Attribute>
- </feature>
- </Class>
- </ownedElement>
- <ownedElement>
- <Association XMI.id="S.100689">
- <name></name>
+ <Association XMI.id="S.100689">
+ <name></name>
<visibility XMI.value = "public"/>
<isAbstract XMI.value="false"/>
<isLeaf XMI.value="false"/>
<changeable XMI.value="none"/>
<targetScope XMI.value="instance"/>
<type> <XMI.reference target="S.100649"/> </type>
- <!-- Type is: AliPHOSSubTrackerv1 -->
+ <!-- Type is: AliPHOSTrackSegmentMakerv1 -->
</AssociationEnd>
</connection>
<connection>
<changeable XMI.value="none"/>
<targetScope XMI.value="instance"/>
<type> <XMI.reference target="S.100334"/> </type>
- <!-- Type is: AliPHOSEmcCluster -->
+ <!-- Type is: AliPHOSEmcRecPoint -->
</AssociationEnd>
</connection>
</Association>
<changeable XMI.value="none"/>
<targetScope XMI.value="instance"/>
<type> <XMI.reference target="S.100336"/> </type>
- <!-- Type is: AliPHOSPpsdCluster -->
+ <!-- Type is: AliPHOSPpsdRecPoint -->
</AssociationEnd>
</connection>
</Association>
<changeable XMI.value="none"/>
<targetScope XMI.value="instance"/>
<type> <XMI.reference target="S.100649"/> </type>
- <!-- Type is: AliPHOSSubTrackerv1 -->
+ <!-- Type is: AliPHOSTrackSegmentMakerv1 -->
</AssociationEnd>
</connection>
<connection>
<changeable XMI.value="none"/>
<targetScope XMI.value="instance"/>
<type> <XMI.reference target="S.100334"/> </type>
- <!-- Type is: AliPHOSEmcCluster -->
+ <!-- Type is: AliPHOSEmcRecPoint -->
</AssociationEnd>
</connection>
</Association>
<changeable XMI.value="none"/>
<targetScope XMI.value="instance"/>
<type> <XMI.reference target="S.100649"/> </type>
- <!-- Type is: AliPHOSSubTrackerv1 -->
+ <!-- Type is: AliPHOSTrackSegmentMakerv1 -->
</AssociationEnd>
</connection>
<connection>
<changeable XMI.value="none"/>
<targetScope XMI.value="instance"/>
<type> <XMI.reference target="S.100336"/> </type>
- <!-- Type is: AliPHOSPpsdCluster -->
+ <!-- Type is: AliPHOSPpsdRecPoint -->
</AssociationEnd>
</connection>
</Association>
<changeable XMI.value="none"/>
<targetScope XMI.value="instance"/>
<type> <XMI.reference target="S.100334"/> </type>
- <!-- Type is: AliPHOSEmcCluster -->
+ <!-- Type is: AliPHOSEmcRecPoint -->
</AssociationEnd>
</connection>
</Association>
<changeable XMI.value="none"/>
<targetScope XMI.value="instance"/>
<type> <XMI.reference target="S.100336"/> </type>
- <!-- Type is: AliPHOSPpsdCluster -->
+ <!-- Type is: AliPHOSPpsdRecPoint -->
</AssociationEnd>
</connection>
</Association>
</connection>
</Association>
</ownedElement>
- <ownedElement>
- <Association XMI.id="S.100994">
- <name>fSubTracker</name>
- <visibility XMI.value = "public"/>
- <isAbstract XMI.value="false"/>
- <isLeaf XMI.value="false"/>
- <isRoot XMI.value="false"/>
- <connection>
- <AssociationEnd XMI.id = "S.100995">
- <name></name>
- <visibility XMI.value = "public"/>
- <isNavigable XMI.value="true"/>
- <isOrdered XMI.value="false"/>
- <aggregation XMI.value="aggregate"/>
- <multiplicity>1</multiplicity>
- <changeable XMI.value="none"/>
- <targetScope XMI.value="instance"/>
- <type> <XMI.reference target="S.100975"/> </type>
- <!-- Type is: AliPHOSReconstructioner -->
- </AssociationEnd>
- </connection>
- <connection>
- <AssociationEnd XMI.id = "S.100996">
- <name></name>
- <visibility XMI.value = "public"/>
- <isNavigable XMI.value="true"/>
- <isOrdered XMI.value="false"/>
- <aggregation XMI.value="none"/>
- <multiplicity>1</multiplicity>
- <changeable XMI.value="none"/>
- <targetScope XMI.value="instance"/>
- <type> <XMI.reference target="S.100566"/> </type>
- <!-- Type is: AliPHOSSubTracker -->
- </AssociationEnd>
- </connection>
- </Association>
- </ownedElement>
<ownedElement>
<Actor XMI.id = "S.101003">
<name>PHOS actor</name>
<visibility XMI.value = "public"/>
<discriminator>
</discriminator>
- <stereotype> <XMI.reference target="S.100348" /> </stereotype>
<subtype> <XMI.reference target="S.101022"/> </subtype>
<!-- subtype is: Photon:
conversion probability
<UseCase XMI.id = "S.101024">
<name>Charged and Neutral hadrons:
energy loss
-momentum smearing
-</name>
+momentum smearing</name>
<visibility XMI.value = "public"/>
<isAbstract XMI.value="false"/>
<isLeaf XMI.value="false"/>
<visibility XMI.value = "public"/>
<discriminator>
</discriminator>
- <stereotype> <XMI.reference target="S.100348" /> </stereotype>
<subtype> <XMI.reference target="S.101024"/> </subtype>
<!-- subtype is: Charged and Neutral hadrons:
energy loss
-momentum smearing
- -->
+momentum smearing -->
<supertype> <XMI.reference target="S.101008"/> </supertype>
<!-- supertype is: 2. What is the incidence
of other detectors on
</connection>
</Association>
</ownedElement>
- </Model>
- <Class XMI.id = "S.100024">
- <name>Stack</name>
- <visibility XMI.value = "public"/>
- <isAbstract XMI.value="false"/>
- <isLeaf XMI.value="false"/>
- <isRoot XMI.value="false"/>
- <isActive XMI.value = "false"/>
- </Class>
- <DataType XMI.id = "S.100007">
- <name>boolean</name>
+ <ownedElement>
+ <Class XMI.id = "S.101042">
+ <name>AliPHOSv0</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ <specification> <XMI.reference target="S.100078"/> </specification>
+ <!-- specification is: AliPHOS -->
+ <feature>
+ <Operation XMI.id = "S.101045">
+ <name>AddHit</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102243">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.101048">
+ <name>BuildGeometry</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102246">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.101082">
+ <name>BuildGeometryforPHOS</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102249">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.101085">
+ <name>BuildGeometryforPPSD</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102252">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.101051">
+ <name>CreateGeometry</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102255">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.101091">
+ <name>CreateGeometryforPHOS</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102258">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.101094">
+ <name>CreateGeometryforPPSD</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102261">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.101097">
+ <name>Digitize</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102264">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.102265">
+ <name>EmcClusters</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102267">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.101947"/> </type>
+ <!-- Type is: RecPointsList* -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.102136">
+ <name>GetGeometry</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102270">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.101957"/> </type>
+ <!-- Type is: AliPHOSGeometry* -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.101106">
+ <name>FinishEvent</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102273">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.101114">
+ <name>Init</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102276">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.101117">
+ <name>IsVersion</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102279">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.101118"/> </type>
+ <!-- Type is: Int_t -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.101121">
+ <name>MakeBranch</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102282">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.101124">
+ <name>PpsdClusters</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102285">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.101101"/> </type>
+ <!-- Type is: RecPointsList -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.101127">
+ <name>Reconstruction</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102288">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.101130">
+ <name>ResetClusters</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102291">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.101133">
+ <name>SetReconstructioner</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102294">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.101135">
+ <name>StepManager</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102297">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.101138">
+ <name>ShowMembers</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102300">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.101141">
+ <name>Streamer</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102303">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.101144">
+ <name>TrqackSegments</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102306">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.101145"/> </type>
+ <!-- Type is: TObjArray -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Attribute XMI.id = "S.101946">
+ <name>fEmcClusters</name>
+ <visibility XMI.value = "private"/>
+ <ownerScope XMI.value="instance"/>
+ <changeable XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <targetScope XMI.value="instance"/>
+ <initialValue>
+ </initialValue>
+ <type> <XMI.reference target="S.101947"/> </type>
+ <!-- Type is: RecPointsList* -->
+ </Attribute>
+ </feature>
+ <feature>
+ <Attribute XMI.id = "S.101956">
+ <name>fGeom</name>
+ <visibility XMI.value = "private"/>
+ <ownerScope XMI.value="instance"/>
+ <changeable XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <targetScope XMI.value="instance"/>
+ <initialValue>
+ </initialValue>
+ <type> <XMI.reference target="S.101957"/> </type>
+ <!-- Type is: AliPHOSGeometry* -->
+ </Attribute>
+ </feature>
+ <feature>
+ <Attribute XMI.id = "S.101958">
+ <name>fPpsdClusters</name>
+ <visibility XMI.value = "private"/>
+ <ownerScope XMI.value="instance"/>
+ <changeable XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <targetScope XMI.value="instance"/>
+ <initialValue>
+ </initialValue>
+ <type> <XMI.reference target="S.101947"/> </type>
+ <!-- Type is: RecPointsList* -->
+ </Attribute>
+ </feature>
+ <feature>
+ <Attribute XMI.id = "S.101959">
+ <name>fReconstructioner</name>
+ <visibility XMI.value = "private"/>
+ <ownerScope XMI.value="instance"/>
+ <changeable XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <targetScope XMI.value="instance"/>
+ <initialValue>
+ </initialValue>
+ <type> <XMI.reference target="S.101960"/> </type>
+ <!-- Type is: AliPHOSReconstructioner* -->
+ </Attribute>
+ </feature>
+ <feature>
+ <Attribute XMI.id = "S.101961">
+ <name>fTmpHits</name>
+ <visibility XMI.value = "private"/>
+ <ownerScope XMI.value="instance"/>
+ <changeable XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <targetScope XMI.value="instance"/>
+ <initialValue>
+ </initialValue>
+ <type> <XMI.reference target="S.101962"/> </type>
+ <!-- Type is: TClonesArray* -->
+ </Attribute>
+ </feature>
+ <feature>
+ <Attribute XMI.id = "S.101963">
+ <name>fTrackSegmentsMaker</name>
+ <visibility XMI.value = "private"/>
+ <ownerScope XMI.value="instance"/>
+ <changeable XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <targetScope XMI.value="instance"/>
+ <initialValue>
+ </initialValue>
+ <type> <XMI.reference target="S.101964"/> </type>
+ <!-- Type is: AliPHOSTrackSegmentMaker* -->
+ </Attribute>
+ </feature>
+ <feature>
+ <Attribute XMI.id = "S.101965">
+ <name>fTrackSegments</name>
+ <visibility XMI.value = "private"/>
+ <ownerScope XMI.value="instance"/>
+ <changeable XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <targetScope XMI.value="instance"/>
+ <initialValue>
+ </initialValue>
+ <type> <XMI.reference target="S.101966"/> </type>
+ <!-- Type is: TObjArray* -->
+ </Attribute>
+ </feature>
+ <feature>
+ <Attribute XMI.id = "S.101150">
+ <name>fNTmpHits</name>
+ <visibility XMI.value = "private"/>
+ <ownerScope XMI.value="instance"/>
+ <changeable XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <targetScope XMI.value="instance"/>
+ <initialValue>
+ </initialValue>
+ <type> <XMI.reference target="S.101118"/> </type>
+ <!-- Type is: Int_t -->
+ </Attribute>
+ </feature>
+ </Class>
+ </ownedElement>
+ <ownedElement>
+ <Association XMI.id="S.101055">
+ <name></name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <connection>
+ <AssociationEnd XMI.id = "S.101056">
+ <name>uses</name>
+ <visibility XMI.value = "public"/>
+ <isNavigable XMI.value="false"/>
+ <isOrdered XMI.value="false"/>
+ <aggregation XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <changeable XMI.value="none"/>
+ <targetScope XMI.value="instance"/>
+ <type> <XMI.reference target="S.101042"/> </type>
+ <!-- Type is: AliPHOSv0 -->
+ </AssociationEnd>
+ </connection>
+ <connection>
+ <AssociationEnd XMI.id = "S.101057">
+ <name></name>
+ <visibility XMI.value = "public"/>
+ <isNavigable XMI.value="true"/>
+ <isOrdered XMI.value="false"/>
+ <aggregation XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <changeable XMI.value="none"/>
+ <targetScope XMI.value="instance"/>
+ <type> <XMI.reference target="S.100094"/> </type>
+ <!-- Type is: AliPHOSGeometry -->
+ </AssociationEnd>
+ </connection>
+ </Association>
+ </ownedElement>
+ <ownedElement>
+ <Association XMI.id="S.101158">
+ <name></name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <connection>
+ <AssociationEnd XMI.id = "S.101159">
+ <name>creates</name>
+ <visibility XMI.value = "public"/>
+ <isNavigable XMI.value="false"/>
+ <isOrdered XMI.value="false"/>
+ <aggregation XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <changeable XMI.value="none"/>
+ <targetScope XMI.value="instance"/>
+ <type> <XMI.reference target="S.101042"/> </type>
+ <!-- Type is: AliPHOSv0 -->
+ </AssociationEnd>
+ </connection>
+ <connection>
+ <AssociationEnd XMI.id = "S.101160">
+ <name></name>
+ <visibility XMI.value = "public"/>
+ <isNavigable XMI.value="true"/>
+ <isOrdered XMI.value="false"/>
+ <aggregation XMI.value="none"/>
+ <multiplicity>0..*</multiplicity>
+ <changeable XMI.value="none"/>
+ <targetScope XMI.value="instance"/>
+ <type> <XMI.reference target="S.100125"/> </type>
+ <!-- Type is: AliPHOSHit -->
+ </AssociationEnd>
+ </connection>
+ </Association>
+ </ownedElement>
+ <ownedElement>
+ <Association XMI.id="S.101161">
+ <name></name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <connection>
+ <AssociationEnd XMI.id = "S.101162">
+ <name>creates</name>
+ <visibility XMI.value = "public"/>
+ <isNavigable XMI.value="false"/>
+ <isOrdered XMI.value="false"/>
+ <aggregation XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <changeable XMI.value="none"/>
+ <targetScope XMI.value="instance"/>
+ <type> <XMI.reference target="S.101042"/> </type>
+ <!-- Type is: AliPHOSv0 -->
+ </AssociationEnd>
+ </connection>
+ <connection>
+ <AssociationEnd XMI.id = "S.101163">
+ <name></name>
+ <visibility XMI.value = "public"/>
+ <isNavigable XMI.value="true"/>
+ <isOrdered XMI.value="false"/>
+ <aggregation XMI.value="none"/>
+ <multiplicity>0..*</multiplicity>
+ <changeable XMI.value="none"/>
+ <targetScope XMI.value="instance"/>
+ <type> <XMI.reference target="S.100160"/> </type>
+ <!-- Type is: AliPHOSDigit -->
+ </AssociationEnd>
+ </connection>
+ </Association>
+ </ownedElement>
+ <ownedElement>
+ <Class XMI.id = "S.102526">
+ <name>AliRecPoint</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ <feature>
+ <Operation XMI.id = "S.102542">
+ <name>AddDigit</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102675">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.102545">
+ <name>AddTrack</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102678">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.101218"/> </type>
+ <!-- Type is: void?? -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.102547">
+ <name>GetCovarianceMatrix</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102681">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.102550">
+ <name>GetGeom</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102684">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.102532"/> </type>
+ <!-- Type is: AliGeometry* -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.102553">
+ <name>GetGlobalPosition</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102687">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.102556">
+ <name>GetDigitsList</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102690">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.102530"/> </type>
+ <!-- Type is: int* -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.102559">
+ <name>GetEnergy</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102693">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.101850"/> </type>
+ <!-- Type is: Float_t -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.102562">
+ <name>GetLocalPosition</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102696">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.102565">
+ <name>GetDigitsMultiplicity</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102699">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.101118"/> </type>
+ <!-- Type is: Int_t -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.102700">
+ <name>GetMaximumDigitMultiplicity</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102702">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.101118"/> </type>
+ <!-- Type is: Int_t -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.102573">
+ <name>GetMaximumTrackMultiplicity</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102705">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.101118"/> </type>
+ <!-- Type is: Int_t -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.102576">
+ <name>getTracksList</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102708">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.102530"/> </type>
+ <!-- Type is: int* -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.102579">
+ <name>GetTracksMutliplicity</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102711">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.101118"/> </type>
+ <!-- Type is: Int_t -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.102582">
+ <name>Print</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102714">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Attribute XMI.id = "S.102528">
+ <name>fAmp</name>
+ <visibility XMI.value = "protected"/>
+ <ownerScope XMI.value="instance"/>
+ <changeable XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <targetScope XMI.value="instance"/>
+ <initialValue>
+ </initialValue>
+ <type> <XMI.reference target="S.101850"/> </type>
+ <!-- Type is: Float_t -->
+ </Attribute>
+ </feature>
+ <feature>
+ <Attribute XMI.id = "S.102529">
+ <name>fDigitsList</name>
+ <visibility XMI.value = "protected"/>
+ <ownerScope XMI.value="instance"/>
+ <changeable XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <targetScope XMI.value="instance"/>
+ <initialValue>
+ </initialValue>
+ <type> <XMI.reference target="S.102530"/> </type>
+ <!-- Type is: int* -->
+ </Attribute>
+ </feature>
+ <feature>
+ <Attribute XMI.id = "S.102531">
+ <name>fGeom</name>
+ <visibility XMI.value = "protected"/>
+ <ownerScope XMI.value="instance"/>
+ <changeable XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <targetScope XMI.value="instance"/>
+ <initialValue>
+ </initialValue>
+ <type> <XMI.reference target="S.102532"/> </type>
+ <!-- Type is: AliGeometry* -->
+ </Attribute>
+ </feature>
+ <feature>
+ <Attribute XMI.id = "S.102533">
+ <name>fLocPos</name>
+ <visibility XMI.value = "protected"/>
+ <ownerScope XMI.value="instance"/>
+ <changeable XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <targetScope XMI.value="instance"/>
+ <initialValue>
+ </initialValue>
+ <type> <XMI.reference target="S.102534"/> </type>
+ <!-- Type is: TVector3 -->
+ </Attribute>
+ </feature>
+ <feature>
+ <Attribute XMI.id = "S.102535">
+ <name>fLocPosM</name>
+ <visibility XMI.value = "protected"/>
+ <ownerScope XMI.value="instance"/>
+ <changeable XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <targetScope XMI.value="instance"/>
+ <initialValue>
+ </initialValue>
+ <type> <XMI.reference target="S.102536"/> </type>
+ <!-- Type is: TMatrix* -->
+ </Attribute>
+ </feature>
+ <feature>
+ <Attribute XMI.id = "S.102537">
+ <name>fMaxDigit</name>
+ <visibility XMI.value = "protected"/>
+ <ownerScope XMI.value="instance"/>
+ <changeable XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <targetScope XMI.value="instance"/>
+ <initialValue>
+ </initialValue>
+ <type> <XMI.reference target="S.101118"/> </type>
+ <!-- Type is: Int_t -->
+ </Attribute>
+ </feature>
+ <feature>
+ <Attribute XMI.id = "S.102538">
+ <name>fMulDigit</name>
+ <visibility XMI.value = "protected"/>
+ <ownerScope XMI.value="instance"/>
+ <changeable XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <targetScope XMI.value="instance"/>
+ <initialValue>
+ </initialValue>
+ <type> <XMI.reference target="S.101118"/> </type>
+ <!-- Type is: Int_t -->
+ </Attribute>
+ </feature>
+ <feature>
+ <Attribute XMI.id = "S.102539">
+ <name>fMaxTrack</name>
+ <visibility XMI.value = "protected"/>
+ <ownerScope XMI.value="instance"/>
+ <changeable XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <targetScope XMI.value="instance"/>
+ <initialValue>
+ </initialValue>
+ <type> <XMI.reference target="S.101118"/> </type>
+ <!-- Type is: Int_t -->
+ </Attribute>
+ </feature>
+ <feature>
+ <Attribute XMI.id = "S.102540">
+ <name>fMulTrack</name>
+ <visibility XMI.value = "protected"/>
+ <ownerScope XMI.value="instance"/>
+ <changeable XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <targetScope XMI.value="instance"/>
+ <initialValue>
+ </initialValue>
+ <type> <XMI.reference target="S.101118"/> </type>
+ <!-- Type is: Int_t -->
+ </Attribute>
+ </feature>
+ <feature>
+ <Attribute XMI.id = "S.102541">
+ <name>fTracksList</name>
+ <visibility XMI.value = "protected"/>
+ <ownerScope XMI.value="instance"/>
+ <changeable XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <targetScope XMI.value="instance"/>
+ <initialValue>
+ </initialValue>
+ <type> <XMI.reference target="S.102530"/> </type>
+ <!-- Type is: int* -->
+ </Attribute>
+ </feature>
+ </Class>
+ </ownedElement>
+ <ownedElement>
+ <Class XMI.id = "S.102588">
+ <name>AliPHOSRecPoint</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ <feature>
+ <Operation XMI.id = "S.102589">
+ <name>AddDigit</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102591">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.102592">
+ <name>Compare</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102594">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.102595">
+ <name>GetPHOSMod</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102597">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.101118"/> </type>
+ <!-- Type is: Int_t -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.102598">
+ <name>IsEmc</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102600">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.101919"/> </type>
+ <!-- Type is: Bool_t -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.102601">
+ <name>IsSortable</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102603">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.101919"/> </type>
+ <!-- Type is: Bool_t -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.102604">
+ <name>Print</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102606">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Attribute XMI.id = "S.102607">
+ <name>fPhosMod</name>
+ <visibility XMI.value = "protected"/>
+ <ownerScope XMI.value="instance"/>
+ <changeable XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <targetScope XMI.value="instance"/>
+ <initialValue>
+ </initialValue>
+ <type> <XMI.reference target="S.101118"/> </type>
+ <!-- Type is: Int_t -->
+ </Attribute>
+ </feature>
+ </Class>
+ </ownedElement>
+ <ownedElement>
+ <Generalization XMI.id = "S.102608">
+ <name></name>
+ <visibility XMI.value = "public"/>
+ <discriminator>
+ </discriminator>
+ <subtype> <XMI.reference target="S.102588"/> </subtype>
+ <!-- subtype is: AliPHOSRecPoint -->
+ <supertype> <XMI.reference target="S.102526"/> </supertype>
+ <!-- supertype is: AliRecPoint -->
+ </Generalization>
+ </ownedElement>
+ <ownedElement>
+ <Generalization XMI.id = "S.102609">
+ <name></name>
+ <visibility XMI.value = "public"/>
+ <discriminator>
+ </discriminator>
+ <subtype> <XMI.reference target="S.100334"/> </subtype>
+ <!-- subtype is: AliPHOSEmcRecPoint -->
+ <supertype> <XMI.reference target="S.102588"/> </supertype>
+ <!-- supertype is: AliPHOSRecPoint -->
+ </Generalization>
+ </ownedElement>
+ <ownedElement>
+ <Generalization XMI.id = "S.102610">
+ <name></name>
+ <visibility XMI.value = "public"/>
+ <discriminator>
+ </discriminator>
+ <subtype> <XMI.reference target="S.100336"/> </subtype>
+ <!-- subtype is: AliPHOSPpsdRecPoint -->
+ <supertype> <XMI.reference target="S.102588"/> </supertype>
+ <!-- supertype is: AliPHOSRecPoint -->
+ </Generalization>
+ </ownedElement>
+ <ownedElement>
+ <Class XMI.id = "S.102715">
+ <name>AliPHOSTrackSegmentMaker</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ <feature>
+ <Operation XMI.id = "S.102717">
+ <name>MakeTrackSegments</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102719">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Operation XMI.id = "S.102720">
+ <name>SetMaxEmcPpsdDistance</name>
+ <visibility XMI.value = "public"/>
+ <ownerScope XMI.value="instance"/>
+ <isQuery XMI.value="false"/>
+ <concurrency XMI.value="sequential"/>
+ <isPolymorphic XMI.value="false"/>
+ <operationSpecification>
+ </operationSpecification>
+ <parameter>
+ <Parameter XMI.id = "S.102722">
+ <name>return</name>
+ <visibility XMI.value = "public"/>
+ <defaultValue>
+ </defaultValue>
+ <kind XMI.value="return"/>
+ <type> <XMI.reference target="S.100004"/> </type>
+ <!-- Type is: void -->
+ </Parameter>
+ </parameter>
+ </Operation>
+ </feature>
+ <feature>
+ <Attribute XMI.id = "S.102716">
+ <name>fR0</name>
+ <visibility XMI.value = "private"/>
+ <ownerScope XMI.value="instance"/>
+ <changeable XMI.value="none"/>
+ <multiplicity>1</multiplicity>
+ <targetScope XMI.value="instance"/>
+ <initialValue>
+ </initialValue>
+ <type> <XMI.reference target="S.101850"/> </type>
+ <!-- Type is: Float_t -->
+ </Attribute>
+ </feature>
+ </Class>
+ </ownedElement>
+ <ownedElement>
+ <Generalization XMI.id = "S.102753">
+ <name></name>
+ <visibility XMI.value = "public"/>
+ <discriminator>
+ </discriminator>
+ <subtype> <XMI.reference target="S.100649"/> </subtype>
+ <!-- subtype is: AliPHOSTrackSegmentMakerv1 -->
+ <supertype> <XMI.reference target="S.102715"/> </supertype>
+ <!-- supertype is: AliPHOSTrackSegmentMaker -->
+ </Generalization>
+ </ownedElement>
+ </Model>
+ <Class XMI.id = "S.100024">
+ <name>Stack</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
+ <DataType XMI.id = "S.100007">
+ <name>boolean</name>
<visibility XMI.value = "public"/>
<isAbstract XMI.value="false"/>
<isLeaf XMI.value="false"/>
<isRoot XMI.value="false"/>
<isActive XMI.value = "false"/>
</Class>
+ <Class XMI.id = "S.101154">
+ <name>TClonesArray</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
+ <Class XMI.id = "S.101111">
+ <name>GetGeometry</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
+ <Class XMI.id = "S.101964">
+ <name>AliPHOSTrackSegmentMaker*</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
<Class XMI.id = "S.100021">
<name>Color</name>
<visibility XMI.value = "public"/>
<isRoot XMI.value="false"/>
<isActive XMI.value = "false"/>
</Class>
+ <Class XMI.id = "S.102662">
+ <name>fEnergy</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
<Class XMI.id = "S.100022">
<name>Vector</name>
<visibility XMI.value = "public"/>
<isRoot XMI.value="false"/>
<isActive XMI.value = "false"/>
</Class>
+ <Class XMI.id = "S.101040">
+ <name>AliPHOSGeometry *</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
<Class XMI.id = "S.100013">
<name>Integer</name>
<visibility XMI.value = "public"/>
<isLeaf XMI.value="false"/>
<isRoot XMI.value="false"/>
</DataType>
+ <Class XMI.id = "S.102530">
+ <name>int*</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
+ <Class XMI.id = "S.102640">
+ <name>Float_t*</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
+ <Class XMI.id = "S.102534">
+ <name>TVector3</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
+ <Class XMI.id = "S.101960">
+ <name>AliPHOSReconstructioner*</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
+ <Class XMI.id = "S.101962">
+ <name>TClonesArray*</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
+ <Class XMI.id = "S.102623">
+ <name>getters</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
+ <Class XMI.id = "S.101103">
+ <name>EmcClusers</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
+ <Class XMI.id = "S.102794">
+ <name>AliPHOSEmcRecPoint*</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
+ <Class XMI.id = "S.102532">
+ <name>AliGeometry*</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
<DataType XMI.id = "S.100004">
<name>void</name>
<visibility XMI.value = "public"/>
<isLeaf XMI.value="false"/>
<isRoot XMI.value="false"/>
</DataType>
+ <Class XMI.id = "S.101145">
+ <name>TObjArray</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
<Class XMI.id = "S.100012">
<name>Character</name>
<visibility XMI.value = "public"/>
<isLeaf XMI.value="false"/>
<isRoot XMI.value="false"/>
</DataType>
+ <Class XMI.id = "S.102368">
+ <name>Boo_tl</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
+ <Class XMI.id = "S.101218">
+ <name>void??</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
<Class XMI.id = "S.100023">
<name>Hashtable</name>
<visibility XMI.value = "public"/>
<isRoot XMI.value="false"/>
<isActive XMI.value = "false"/>
</Class>
+ <Class XMI.id = "S.101101">
+ <name>RecPointsList</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
+ <Class XMI.id = "S.101919">
+ <name>Bool_t</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
+ <Class XMI.id = "S.102659">
+ <name>fDigitsList</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
+ <Class XMI.id = "S.101156">
+ <name>AliPHOSTrackSegmentMaker</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
+ <Class XMI.id = "S.102796">
+ <name>AliPHOSPpsdRecPoint*</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
<Class XMI.id = "S.100015">
<name>Byte</name>
<visibility XMI.value = "public"/>
<isRoot XMI.value="false"/>
<isActive XMI.value = "false"/>
</Class>
+ <Class XMI.id = "S.101118">
+ <name>Int_t</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
+ <Class XMI.id = "S.101850">
+ <name>Float_t</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
<DataType XMI.id = "S.100009">
<name>long</name>
<visibility XMI.value = "public"/>
<isLeaf XMI.value="false"/>
<isRoot XMI.value="false"/>
</DataType>
+ <Class XMI.id = "S.102536">
+ <name>TMatrix*</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
+ <Class XMI.id = "S.101819">
+ <name>more</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
<Class XMI.id = "S.100020">
<name>Point</name>
<visibility XMI.value = "public"/>
<isRoot XMI.value="false"/>
<isActive XMI.value = "false"/>
</Class>
+ <Class XMI.id = "S.101947">
+ <name>RecPointsList*</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
+ <Class XMI.id = "S.100003">
+ <name>String</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
<DataType XMI.id = "S.100006">
<name>int</name>
<visibility XMI.value = "public"/>
<isLeaf XMI.value="false"/>
<isRoot XMI.value="false"/>
</DataType>
- <Class XMI.id = "S.100003">
- <name>String</name>
+ <Class XMI.id = "S.100288">
+ <name>bool</name>
<visibility XMI.value = "public"/>
<isAbstract XMI.value="false"/>
<isLeaf XMI.value="false"/>
<isRoot XMI.value="false"/>
<isActive XMI.value = "false"/>
</Class>
- <Class XMI.id = "S.100288">
- <name>bool</name>
+ <Class XMI.id = "S.101966">
+ <name>TObjArray*</name>
<visibility XMI.value = "public"/>
<isAbstract XMI.value="false"/>
<isLeaf XMI.value="false"/>
<isLeaf XMI.value="false"/>
<isRoot XMI.value="false"/>
</DataType>
+ <Class XMI.id = "S.102130">
+ <name>parameterName</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
<DataType XMI.id = "S.100005">
<name>char</name>
<visibility XMI.value = "public"/>
<isLeaf XMI.value="false"/>
<isRoot XMI.value="false"/>
</DataType>
+ <Class XMI.id = "S.102798">
+ <name>AliPHOSAppsdRecPoint*</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
+ <Class XMI.id = "S.101817">
+ <name>and</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
+ <Class XMI.id = "S.102621">
+ <name>...</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
+ <Class XMI.id = "S.102570">
+ <name>MaximumDigitMultiplicity</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
<Class XMI.id = "S.100016">
<name>Long</name>
<visibility XMI.value = "public"/>
<isRoot XMI.value="false"/>
<isActive XMI.value = "false"/>
</Class>
+ <Class XMI.id = "S.101957">
+ <name>AliPHOSGeometry*</name>
+ <visibility XMI.value = "public"/>
+ <isAbstract XMI.value="false"/>
+ <isLeaf XMI.value="false"/>
+ <isRoot XMI.value="false"/>
+ <isActive XMI.value = "false"/>
+ </Class>
</XMI.content>
</XMI>
name="simulation"
>
<group name="Fig0"
- description="uci.uml.visual.FigInterface[64, 24, 104, 64]"
+ description="uci.uml.visual.FigInterface[40, 32, 104, 64]"
href="S.100075"
fill="1"
fillcolor="-56"
</private>
<rectangle name="Fig0.0"
- x="65"
- y="25"
+ x="41"
+ y="33"
width="102"
height="62"
fill="1"
strokecolor="-256"
/>
<rectangle name="Fig0.1"
- x="64"
- y="24"
+ x="40"
+ y="32"
width="104"
- height="36"
+ height="28"
fill="1"
fillcolor="-56"
stroke="1"
strokecolor="-256"
/>
<text name="Fig0.2"
- x="65"
- y="25"
+ x="41"
+ y="33"
fill="1"
fillcolor="-56"
stroke="0"
textsize="10"
><<Interface>></text>
<text name="Fig0.3"
- x="65"
- y="43"
+ x="41"
+ y="46"
fill="1"
fillcolor="-56"
stroke="0"
textsize="9"
>AliDetector</text>
<text name="Fig0.4"
- x="64"
+ x="40"
y="59"
fill="1"
fillcolor="-56"
></text>
</group>
<group name="Fig1"
- description="uci.uml.visual.FigInterface[64, 160, 104, 64]"
+ description="uci.uml.visual.FigInterface[8, 128, 172, 64]"
href="S.100078"
fill="1"
fillcolor="-56"
</private>
<rectangle name="Fig1.0"
- x="65"
- y="161"
- width="102"
+ x="9"
+ y="129"
+ width="170"
height="62"
fill="1"
fillcolor="-56"
strokecolor="-256"
/>
<rectangle name="Fig1.1"
- x="64"
- y="160"
- width="104"
- height="36"
+ x="8"
+ y="128"
+ width="172"
+ height="28"
fill="1"
fillcolor="-56"
stroke="1"
strokecolor="-256"
/>
<text name="Fig1.2"
- x="65"
- y="161"
+ x="9"
+ y="129"
fill="1"
fillcolor="-56"
stroke="0"
textsize="10"
><<Interface>></text>
<text name="Fig1.3"
- x="65"
- y="179"
+ x="9"
+ y="142"
fill="1"
fillcolor="-56"
stroke="0"
textsize="9"
>AliPHOS</text>
<text name="Fig1.4"
- x="64"
- y="195"
+ x="8"
+ y="155"
fill="1"
fillcolor="-56"
stroke="1"
strokecolor="-256"
font="Dialog"
textsize="9"
- ></text>
+ >public void CreateMaterials()
+public AliPHOSGeometry * GetGeometry()</text>
</group>
<group name="Fig2"
- description="uci.uml.visual.FigClass[56, 276, 181, 125]"
- href="S.100080"
- fill="1"
- fillcolor="-1"
- stroke="1"
- strokecolor="-16777216"
- >
- <private>
- </private>
-
- <rectangle name="Fig2.0"
- x="57"
- y="277"
- width="179"
- height="123"
- fill="1"
- fillcolor="-1"
- stroke="1"
- strokecolor="-16777216"
- />
- <text name="Fig2.1"
- x="56"
- y="276"
- fill="1"
- fillcolor="-1"
- stroke="1"
- strokecolor="-16777216"
- font="Dialog"
- textsize="9"
- >AliPHOSv4</text>
- <text name="Fig2.2"
- x="56"
- y="294"
- fill="1"
- fillcolor="-1"
- stroke="1"
- strokecolor="-16777216"
- font="Dialog"
- textsize="9"
- ></text>
- <text name="Fig2.3"
- x="56"
- y="312"
- fill="1"
- fillcolor="-1"
- stroke="1"
- strokecolor="-16777216"
- font="Dialog"
- textsize="9"
- >public void AddHit()
-public void BuildGeometry()
-public void CreateGeometry()
-public void FinishEvent()
-public void MakeBranch()
-public void StepManager()</text>
- </group>
- <group name="Fig3"
- description="uci.uml.visual.FigClass[278, 316, 206, 111]"
+ description="uci.uml.visual.FigClass[342, 212, 206, 112]"
href="S.100094"
fill="1"
fillcolor="-1"
<private>
</private>
- <rectangle name="Fig3.0"
- x="279"
- y="317"
+ <rectangle name="Fig2.0"
+ x="343"
+ y="213"
width="204"
- height="109"
+ height="110"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
/>
- <text name="Fig3.1"
- x="278"
- y="316"
+ <text name="Fig2.1"
+ x="342"
+ y="212"
fill="1"
fillcolor="-1"
stroke="1"
font="Dialog"
textsize="9"
>AliPHOSGeometry</text>
- <text name="Fig3.2"
- x="278"
- y="334"
+ <text name="Fig2.2"
+ x="342"
+ y="227"
fill="1"
fillcolor="-1"
stroke="1"
font="Dialog"
textsize="9"
>private many data</text>
- <text name="Fig3.3"
- x="278"
- y="352"
+ <text name="Fig2.3"
+ x="342"
+ y="250"
fill="1"
fillcolor="-1"
stroke="1"
public void RelPosInAlice()
public void RelPosInModule()
public void RelToAbsNumbering()
-public void AbsToRelNumbering()</text>
+public void AbsToRelNumbering()
+public and many(more getter/putter)</text>
</group>
- <group name="Fig4"
- description="uci.uml.visual.FigInterface[304, 448, 104, 64]"
+ <group name="Fig3"
+ description="uci.uml.visual.FigInterface[368, 392, 104, 64]"
href="S.100124"
fill="1"
fillcolor="-56"
<private>
</private>
- <rectangle name="Fig4.0"
- x="305"
- y="449"
+ <rectangle name="Fig3.0"
+ x="369"
+ y="393"
width="102"
height="62"
fill="1"
stroke="1"
strokecolor="-256"
/>
- <rectangle name="Fig4.1"
- x="304"
- y="448"
+ <rectangle name="Fig3.1"
+ x="368"
+ y="392"
width="104"
- height="36"
+ height="28"
fill="1"
fillcolor="-56"
stroke="1"
strokecolor="-256"
/>
- <text name="Fig4.2"
- x="305"
- y="449"
+ <text name="Fig3.2"
+ x="369"
+ y="393"
fill="1"
fillcolor="-56"
stroke="0"
font="Times"
textsize="10"
><<Interface>></text>
- <text name="Fig4.3"
- x="305"
- y="467"
+ <text name="Fig3.3"
+ x="369"
+ y="406"
fill="1"
fillcolor="-56"
stroke="0"
font="Dialog"
textsize="9"
>AliHit</text>
- <text name="Fig4.4"
- x="304"
- y="483"
+ <text name="Fig3.4"
+ x="368"
+ y="419"
fill="1"
fillcolor="-56"
stroke="1"
textsize="9"
></text>
</group>
- <group name="Fig5"
- description="uci.uml.visual.FigClass[104, 444, 146, 111]"
+ <group name="Fig4"
+ description="uci.uml.visual.FigClass[336, 516, 146, 112]"
href="S.100125"
fill="1"
fillcolor="-1"
<private>
</private>
- <rectangle name="Fig5.0"
- x="105"
- y="445"
+ <rectangle name="Fig4.0"
+ x="337"
+ y="517"
width="144"
- height="109"
+ height="110"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
/>
- <text name="Fig5.1"
- x="104"
- y="444"
+ <text name="Fig4.1"
+ x="336"
+ y="516"
fill="1"
fillcolor="-1"
stroke="1"
font="Dialog"
textsize="9"
>AliPHOSHit</text>
- <text name="Fig5.2"
- x="104"
- y="462"
+ <text name="Fig4.2"
+ x="336"
+ y="531"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
font="Dialog"
textsize="9"
- >private fEnergy = 0
-private int fId = 0</text>
- <text name="Fig5.3"
- x="104"
- y="494"
+ >private Float_t fELOS = 0
+private Int_t fId = 0</text>
+ <text name="Fig4.3"
+ x="336"
+ y="579"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
font="Dialog"
textsize="9"
- >public float GetEnergy()
-public int G
-
- etId()</text>
+ >public Float_t GetEnergy()
+public Int_t GetId()</text>
</group>
- <group name="Fig6"
- description="uci.uml.visual.FigInterface[304, 560, 104, 64]"
+ <group name="Fig5"
+ description="uci.uml.visual.FigInterface[104, 576, 104, 64]"
href="S.100159"
fill="1"
fillcolor="-56"
<private>
</private>
- <rectangle name="Fig6.0"
- x="305"
- y="561"
+ <rectangle name="Fig5.0"
+ x="105"
+ y="577"
width="102"
height="62"
fill="1"
stroke="1"
strokecolor="-256"
/>
- <rectangle name="Fig6.1"
- x="304"
- y="560"
+ <rectangle name="Fig5.1"
+ x="104"
+ y="576"
width="104"
- height="36"
+ height="28"
fill="1"
fillcolor="-56"
stroke="1"
strokecolor="-256"
/>
- <text name="Fig6.2"
- x="305"
- y="561"
+ <text name="Fig5.2"
+ x="105"
+ y="577"
fill="1"
fillcolor="-56"
stroke="0"
font="Times"
textsize="10"
><<Interface>></text>
- <text name="Fig6.3"
- x="305"
- y="579"
+ <text name="Fig5.3"
+ x="105"
+ y="590"
fill="1"
fillcolor="-56"
stroke="0"
font="Dialog"
textsize="9"
>AliDigit</text>
- <text name="Fig6.4"
- x="304"
- y="595"
+ <text name="Fig5.4"
+ x="104"
+ y="603"
fill="1"
fillcolor="-56"
stroke="1"
textsize="9"
></text>
</group>
- <group name="Fig7"
- description="uci.uml.visual.FigClass[104, 556, 146, 83]"
+ <group name="Fig6"
+ description="uci.uml.visual.FigClass[152, 668, 146, 86]"
href="S.100160"
fill="1"
fillcolor="-1"
<private>
</private>
- <rectangle name="Fig7.0"
- x="105"
- y="557"
+ <rectangle name="Fig6.0"
+ x="153"
+ y="669"
width="144"
- height="81"
+ height="84"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
/>
- <text name="Fig7.1"
- x="104"
- y="556"
+ <text name="Fig6.1"
+ x="152"
+ y="668"
fill="1"
fillcolor="-1"
stroke="1"
font="Dialog"
textsize="9"
>AliPHOSDigit</text>
- <text name="Fig7.2"
- x="104"
- y="574"
+ <text name="Fig6.2"
+ x="152"
+ y="683"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
font="Dialog"
textsize="9"
- >private fEnergy = 0
-private int fId = 0</text>
- <text name="Fig7.3"
- x="104"
- y="606"
+ >private Int_t fAmp = 0
+private Int_t fId = 0</text>
+ <text name="Fig6.3"
+ x="152"
+ y="708"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
font="Dialog"
textsize="9"
- >public float GetEnergy()
-public int GetId()</text>
+ >public void?? Compare()
+public Int_t GetAmp()
+public Bool_t IsSortable()
+public Int_t GetId()</text>
</group>
- <text name="Fig8"
- x="352"
- y="400"
+ <text name="Fig7"
+ x="473"
+ y="320"
fill="1"
fillcolor="-1"
stroke="1"
font="dialog"
textsize="10"
>singleton</text>
+ <group name="Fig8"
+ description="uci.uml.visual.FigClass[16, 237, 256, 326]"
+ href="S.101042"
+ fill="1"
+ fillcolor="-1"
+ stroke="1"
+ strokecolor="-16777216"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig8.0"
+ x="17"
+ y="238"
+ width="254"
+ height="324"
+ fill="1"
+ fillcolor="-1"
+ stroke="1"
+ strokecolor="-16777216"
+ />
+ <text name="Fig8.1"
+ x="16"
+ y="237"
+ fill="1"
+ fillcolor="-1"
+ stroke="1"
+ strokecolor="-16777216"
+ font="Dialog"
+ textsize="9"
+ >AliPHOSv0</text>
+ <text name="Fig8.2"
+ x="16"
+ y="252"
+ fill="1"
+ fillcolor="-1"
+ stroke="1"
+ strokecolor="-16777216"
+ font="Dialog"
+ textsize="9"
+ >private RecPointsList* fEmcClusters
+private AliPHOSGeometry* fGeom
+private RecPointsList* fPpsdClusters
+private AliPHOSReconstructioner* fReconstructioner
+private TClonesArray* fTmpHits
+private AliPHOSTrackSegmentMaker* fTrackSegmentsMaker
+private TObjArray* fTrackSegments
+private Int_t fNTmpHits</text>
+ <text name="Fig8.3"
+ x="16"
+ y="337"
+ fill="1"
+ fillcolor="-1"
+ stroke="1"
+ strokecolor="-16777216"
+ font="Dialog"
+ textsize="9"
+ >public void AddHit()
+public void BuildGeometry()
+public void BuildGeometryforPHOS()
+public void BuildGeometryforPPSD()
+public void CreateGeometry()
+public void CreateGeometryforPHOS()
+public void CreateGeometryforPPSD()
+public void Digitize()
+public RecPointsList* EmcClusters()
+public AliPHOSGeometry* GetGeometry()
+public void FinishEvent()
+public void Init()
+public Int_t IsVersion()
+public void MakeBranch()
+public RecPointsList PpsdClusters()
+public void Reconstruction()
+public void ResetClusters()
+public void SetReconstructioner()
+public void StepManager()
+public void ShowMembers()
+public void Streamer()
+public TObjArray TrqackSegments()</text>
+ </group>
<group name="Fig9"
description="uci.uml.visual.FigGeneralization"
href="S.100079"
stroke="1"
strokecolor="-16777216"
>
- <moveto x="120"
- y="161" />
- <lineto x="120"
- y="87" />
+ <moveto x="96"
+ y="129" />
+ <lineto x="96"
+ y="95" />
</path>
</group>
<group name="Fig10"
strokecolor="-16777216"
>
<private>
- sourcePortFig="Fig2"
- destPortFig="Fig1"
- sourceFigNode="Fig2"
- destFigNode="Fig1"
+ sourcePortFig="Fig4"
+ destPortFig="Fig3"
+ sourceFigNode="Fig4"
+ destFigNode="Fig3"
</private>
<path name="Fig10.1"
description="uci.gef.FigPoly"
stroke="1"
strokecolor="-16777216"
>
- <moveto x="116"
- y="276" />
- <lineto x="116"
- y="224" />
+ <moveto x="432"
+ y="516" />
+ <lineto x="432"
+ y="456" />
</path>
</group>
<group name="Fig11"
- description="uci.uml.visual.FigAssociation"
- href="S.100095"
+ description="uci.uml.visual.FigRealization"
stroke="1"
strokecolor="-16777216"
>
<private>
- sourcePortFig="Fig2"
- destPortFig="Fig3"
- sourceFigNode="Fig2"
- destFigNode="Fig3"
+ sourcePortFig="Fig6.0"
+ destPortFig="Fig5.0"
+ sourceFigNode="Fig6"
+ destFigNode="Fig5"
</private>
<path name="Fig11.1"
description="uci.gef.FigPoly"
stroke="1"
strokecolor="-16777216"
>
- <moveto x="237"
- y="324" />
- <lineto x="278"
- y="324" />
+ <moveto x="159"
+ y="669" />
+ <lineto x="159"
+ y="639" />
</path>
</group>
<group name="Fig12"
strokecolor="-16777216"
>
<private>
- sourcePortFig="Fig5"
- destPortFig="Fig4"
- sourceFigNode="Fig5"
- destFigNode="Fig4"
+ sourcePortFig="Fig8.0"
+ destPortFig="Fig1.0"
+ sourceFigNode="Fig8"
+ destFigNode="Fig1"
</private>
<path name="Fig12.1"
description="uci.gef.FigPoly"
stroke="1"
strokecolor="-16777216"
>
- <moveto x="250"
- y="472" />
- <lineto x="304"
- y="472" />
+ <moveto x="96"
+ y="238" />
+ <lineto x="96"
+ y="191" />
</path>
</group>
<group name="Fig13"
description="uci.uml.visual.FigAssociation"
- href="S.100156"
+ href="S.101055"
stroke="1"
strokecolor="-16777216"
>
<private>
- sourcePortFig="Fig5.0"
+ sourcePortFig="Fig8.0"
destPortFig="Fig2.0"
- sourceFigNode="Fig5"
+ sourceFigNode="Fig8"
destFigNode="Fig2"
</private>
<path name="Fig13.1"
stroke="1"
strokecolor="-16777216"
>
- <moveto x="137"
- y="445" />
- <lineto x="137"
- y="400" />
+ <moveto x="271"
+ y="238" />
+ <lineto x="343"
+ y="238" />
</path>
</group>
<group name="Fig14"
- description="uci.uml.visual.FigRealization"
+ description="uci.uml.visual.FigAssociation"
+ href="S.101158"
stroke="1"
strokecolor="-16777216"
>
<private>
- sourcePortFig="Fig7.0"
- destPortFig="Fig6.0"
- sourceFigNode="Fig7"
- destFigNode="Fig6"
+ sourcePortFig="Fig8.0"
+ destPortFig="Fig4.0"
+ sourceFigNode="Fig8"
+ destFigNode="Fig4"
</private>
<path name="Fig14.1"
description="uci.gef.FigPoly"
stroke="1"
strokecolor="-16777216"
>
- <moveto x="249"
- y="584" />
- <lineto x="305"
- y="584" />
+ <moveto x="271"
+ y="520" />
+ <lineto x="337"
+ y="520" />
</path>
</group>
<group name="Fig15"
description="uci.uml.visual.FigAssociation"
- href="S.100307"
+ href="S.101161"
stroke="1"
strokecolor="-16777216"
>
<private>
- sourcePortFig="Fig2.0"
- destPortFig="Fig7.0"
- sourceFigNode="Fig2"
- destFigNode="Fig7"
+ sourcePortFig="Fig8.0"
+ destPortFig="Fig6.0"
+ sourceFigNode="Fig8"
+ destFigNode="Fig6"
</private>
<path name="Fig15.1"
description="uci.gef.FigPoly"
stroke="1"
strokecolor="-16777216"
>
- <moveto x="72"
- y="400" />
- <lineto x="72"
- y="568" />
- <lineto x="105"
- y="568" />
+ <moveto x="271"
+ y="562" />
+ <lineto x="271"
+ y="669" />
</path>
</group>
</pgml>
name="Clusterisation"
>
<group name="Fig0"
- description="uci.uml.visual.FigInterface[16, 176, 246, 68]"
+ description="uci.uml.visual.FigInterface[272, 8, 192, 63]"
href="S.100193"
fill="1"
fillcolor="-56"
</private>
<rectangle name="Fig0.0"
- x="17"
- y="177"
- width="244"
- height="66"
+ x="273"
+ y="9"
+ width="190"
+ height="61"
fill="1"
fillcolor="-56"
stroke="1"
strokecolor="-256"
/>
<rectangle name="Fig0.1"
- x="16"
- y="176"
- width="246"
- height="36"
+ x="272"
+ y="8"
+ width="192"
+ height="28"
fill="1"
fillcolor="-56"
stroke="1"
strokecolor="-256"
/>
<text name="Fig0.2"
- x="17"
- y="177"
+ x="273"
+ y="9"
fill="1"
fillcolor="-56"
stroke="0"
textsize="10"
><<Interface>></text>
<text name="Fig0.3"
- x="17"
- y="195"
+ x="273"
+ y="22"
fill="1"
fillcolor="-56"
stroke="0"
textsize="9"
>AliPHOSClusterizer</text>
<text name="Fig0.4"
- x="16"
- y="211"
+ x="272"
+ y="35"
fill="1"
fillcolor="-56"
stroke="1"
strokecolor="-256"
font="Dialog"
textsize="9"
- >public int GetNumberOfClustersFound()
+ >public void Calibrate()
+public Int_t GetNumberOfClustersFound()
public void MakeClusters()</text>
</group>
<group name="Fig1"
- description="uci.uml.visual.FigClass[272, 172, 255, 223]"
+ description="uci.uml.visual.FigClass[240, 124, 255, 286]"
href="S.100198"
fill="1"
fillcolor="-1"
</private>
<rectangle name="Fig1.0"
- x="273"
- y="173"
+ x="241"
+ y="125"
width="253"
- height="221"
+ height="284"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
/>
<text name="Fig1.1"
- x="272"
- y="172"
+ x="240"
+ y="124"
fill="1"
fillcolor="-1"
stroke="1"
textsize="9"
>AliPHOSClusterizerv1</text>
<text name="Fig1.2"
- x="272"
- y="190"
+ x="240"
+ y="139"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
font="Dialog"
textsize="9"
- >private int fNumberOfEmcClusters = 0
-private int fNumberOfPpsdClusters = 0
-private fEmcClusteringThreshold = 0
-private fEmcEnergyThreshold = 0
-private fPpsdClusteringThreshold = 0
-private fPpsdEnergyThreshold = 0</text>
+ >private Float_t fA = 0.
+private Float_t fB = 0.1
+private Float_t fLocMaxCut = 0.06
+private Int_t fNumberOfEmcClusters = 0
+private Int_t fNumberOfPpsdClusters = 0
+private Float_t fEmcClusteringThreshold = 0.1
+private Float_t fEmcEnergyThreshold = 0.01
+private Float_t fPpsdClusteringThreshold = 0.00000015
+private Float_t fPpsdEnergyThreshold = 0.0000001
+private Float_t fW0 = 5.5</text>
<text name="Fig1.3"
- x="272"
- y="278"
+ x="240"
+ y="244"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
font="Dialog"
textsize="9"
- >public bool AreNeighbours()
+ >public Boo_tl AreNeighbours()
+public void Calibrate()
public void FillandSort()
-public void IsInEmc()
+public Float_t GetLocalMaxCut()
+public Float_t GetLocalWeightCut()
+public void GetNumberOfClustersFound()
+public Bool_t IsInEmc()
+public void MakeClusters()
public void PrintParameters()
+public void SetCalibrationParameters()
public void SetEmcClusteringThreshold()
public void SetEmcEnergyThreshold()
+public void SetLocalMaxCut()
+public void SetLogWeightCut()
public void SetPpsdClusteringThreshold()
public void SetPpsdEnergyThreshold()</text>
</group>
<group name="Fig2"
- description="uci.uml.visual.FigClass[336, 36, 146, 83]"
+ description="uci.uml.visual.FigClass[552, 12, 146, 86]"
href="S.100160"
fill="1"
fillcolor="-1"
</private>
<rectangle name="Fig2.0"
- x="337"
- y="37"
+ x="553"
+ y="13"
width="144"
- height="81"
+ height="84"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
/>
<text name="Fig2.1"
- x="336"
- y="36"
+ x="552"
+ y="12"
fill="1"
fillcolor="-1"
stroke="1"
textsize="9"
>AliPHOSDigit</text>
<text name="Fig2.2"
- x="336"
- y="54"
+ x="552"
+ y="27"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
font="Dialog"
textsize="9"
- >private fEnergy = 0
-private int fId = 0</text>
+ >private Int_t fAmp = 0
+private Int_t fId = 0</text>
<text name="Fig2.3"
- x="336"
- y="86"
+ x="552"
+ y="52"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
font="Dialog"
textsize="9"
- >public float GetEnergy()
-public int GetId()</text>
+ >public void Compare()
+public Int_t GetAmp()
+public Bool_t IsSortable()
+public Int_t GetId()</text>
</group>
<group name="Fig3"
- description="uci.uml.visual.FigClass[542, 172, 206, 111]"
+ description="uci.uml.visual.FigClass[526, 108, 206, 112]"
href="S.100094"
fill="1"
fillcolor="-1"
</private>
<rectangle name="Fig3.0"
- x="543"
- y="173"
+ x="527"
+ y="109"
width="204"
- height="109"
+ height="110"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
/>
<text name="Fig3.1"
- x="542"
- y="172"
+ x="526"
+ y="108"
fill="1"
fillcolor="-1"
stroke="1"
textsize="9"
>AliPHOSGeometry</text>
<text name="Fig3.2"
- x="542"
- y="190"
+ x="526"
+ y="123"
fill="1"
fillcolor="-1"
stroke="1"
textsize="9"
>private many data</text>
<text name="Fig3.3"
- x="542"
- y="208"
+ x="526"
+ y="146"
fill="1"
fillcolor="-1"
stroke="1"
public void RelPosInAlice()
public void RelPosInModule()
public void RelToAbsNumbering()
-public void AbsToRelNumbering()</text>
+public void AbsToRelNumbering()
+public and many(more getter/putter)</text>
</group>
<text name="Fig4"
- x="600"
- y="264"
+ x="681"
+ y="208"
fill="1"
fillcolor="-1"
stroke="1"
textsize="10"
>singleton</text>
<group name="Fig5"
- description="uci.uml.visual.FigInterface[272, 400, 171, 110]"
- href="S.100322"
+ description="uci.uml.visual.FigClass[24, 21, 168, 116]"
+ href="S.100334"
fill="1"
- fillcolor="-56"
+ fillcolor="-1"
stroke="1"
- strokecolor="-256"
+ strokecolor="-16777216"
>
<private>
</private>
<rectangle name="Fig5.0"
- x="273"
- y="401"
- width="169"
- height="108"
+ x="25"
+ y="22"
+ width="166"
+ height="114"
fill="1"
- fillcolor="-56"
+ fillcolor="-1"
stroke="1"
- strokecolor="-256"
+ strokecolor="-16777216"
/>
- <rectangle name="Fig5.1"
- x="272"
- y="400"
- width="171"
- height="36"
+ <text name="Fig5.1"
+ x="24"
+ y="21"
fill="1"
- fillcolor="-56"
+ fillcolor="-1"
stroke="1"
- strokecolor="-256"
- />
+ strokecolor="-16777216"
+ font="Dialog"
+ textsize="9"
+ >AliPHOSEmcRecPoint</text>
<text name="Fig5.2"
- x="273"
- y="401"
- fill="1"
- fillcolor="-56"
- stroke="0"
- strokecolor="-256"
- font="Times"
- textsize="10"
- ><<Interface>></text>
- <text name="Fig5.3"
- x="273"
- y="419"
+ x="24"
+ y="36"
fill="1"
- fillcolor="-56"
- stroke="0"
- strokecolor="-256"
+ fillcolor="-1"
+ stroke="1"
+ strokecolor="-16777216"
font="Dialog"
textsize="9"
- >AliPHOSCluster</text>
- <text name="Fig5.4"
- x="272"
- y="435"
+ ></text>
+ <text name="Fig5.3"
+ x="24"
+ y="86"
fill="1"
- fillcolor="-56"
+ fillcolor="-1"
stroke="1"
- strokecolor="-256"
+ strokecolor="-16777216"
font="Dialog"
textsize="9"
- >public void AddDigit()
-public int GetMultiplicity()
-public void GetDigitsList()
-public void Print()
-public void GetRelPosition()</text>
+ ></text>
</group>
<group name="Fig6"
- description="uci.uml.visual.FigClass[16, 277, 245, 279]"
- href="S.100334"
+ description="uci.uml.visual.FigClass[24, 165, 171, 112]"
+ href="S.100336"
fill="1"
fillcolor="-1"
stroke="1"
</private>
<rectangle name="Fig6.0"
- x="17"
- y="278"
- width="243"
- height="277"
+ x="25"
+ y="166"
+ width="169"
+ height="110"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
/>
<text name="Fig6.1"
- x="16"
- y="277"
+ x="24"
+ y="165"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
font="Dialog"
textsize="9"
- >AliPHOSEmcCluster</text>
+ >AliPHOSPpsdRecPoint</text>
<text name="Fig6.2"
- x="16"
- y="295"
+ x="24"
+ y="180"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
font="Dialog"
textsize="9"
- >private fDigitsList = 0
-private fEnergy = 0
-private int fMultiplicity = 0
-private fDelta = 4.
-private fLocMaxCut = 0.6
-public fW0 = 4.</text>
+ ></text>
<text name="Fig6.3"
- x="16"
- y="383"
+ x="24"
+ y="228"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
font="Dialog"
textsize="9"
- >public bool AreNeighbours()
-public void Compare()
-public void GetAbsPosition()
-public float GetDispersion()
-public void GetElipsAxis()
-public float GetMaximalEnergy()
-public void GetMultiplicityAtLevel()
-public void GetNumberOfLocalMaxima()
-public void GetRelPosition()
-public void GetTotalEnergy()
-public void SetLocalMaxCut()
-public void SetLowWeightCut()</text>
+ ></text>
</group>
- <group name="Fig7"
- description="uci.uml.visual.FigClass[440, 397, 171, 111]"
- href="S.100336"
+ <group name="Fig12"
+ description="uci.uml.visual.FigClass[520, 240, 246, 266]"
+ href="S.102526"
fill="1"
fillcolor="-1"
stroke="1"
<private>
</private>
- <rectangle name="Fig7.0"
- x="441"
- y="398"
- width="169"
- height="109"
+ <rectangle name="Fig12.0"
+ x="521"
+ y="241"
+ width="244"
+ height="264"
+ fill="1"
+ fillcolor="-16711681"
+ stroke="1"
+ strokecolor="-16711681"
+ />
+ <text name="Fig12.1"
+ x="520"
+ y="240"
+ fill="1"
+ fillcolor="-1"
+ stroke="1"
+ strokecolor="-16777216"
+ font="Dialog"
+ textsize="9"
+ >AliRecPoint</text>
+ <text name="Fig12.2"
+ x="520"
+ y="255"
+ fill="1"
+ fillcolor="-1"
+ stroke="1"
+ strokecolor="-16777216"
+ font="Dialog"
+ textsize="9"
+ >protected Float_t fAmp
+protected int* fDigitsList
+protected AliGeometry* fGeom
+protected TVector3 fLocPos
+protected TMatrix* fLocPosM
+protected Int_t fMaxDigit
+protected Int_t fMulDigit
+protected Int_t fMaxTrack
+protected Int_t fMulTrack
+protected int* fTracksList</text>
+ <text name="Fig12.3"
+ x="520"
+ y="360"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
+ font="Dialog"
+ textsize="9"
+ >public void AddDigit()
+public void?? AddTrack()
+public void GetCovarianceMatrix()
+public AliGeometry* GetGeom()
+public void GetGlobalPosition()
+public int* GetDigitsList()
+public Float_t GetEnergy()
+public void GetLocalPosition()
+public Int_t GetDigitsMultiplicity()
+public Int_t GetMaximumDigitMultiplicity()
+public Int_t GetMaximumTrackMultiplicity()
+public int* getTracksList()
+public Int_t GetTracksMutliplicity()
+public void Print()</text>
+ </group>
+ <group name="Fig13"
+ description="uci.uml.visual.FigClass[40, 312, 114, 96]"
+ href="S.102588"
+ fill="1"
+ fillcolor="-1"
+ stroke="1"
+ strokecolor="-16777216"
+ >
+ <private>
+ </private>
+
+ <rectangle name="Fig13.0"
+ x="41"
+ y="313"
+ width="112"
+ height="94"
+ fill="1"
+ fillcolor="-16711681"
+ stroke="1"
+ strokecolor="-16711681"
/>
- <text name="Fig7.1"
- x="440"
- y="397"
+ <text name="Fig13.1"
+ x="40"
+ y="312"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
font="Dialog"
textsize="9"
- >AliPHOSPpsdCluster</text>
- <text name="Fig7.2"
- x="440"
- y="415"
+ >AliPHOSRecPoint</text>
+ <text name="Fig13.2"
+ x="40"
+ y="327"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
font="Dialog"
textsize="9"
- >public fDigitsList = 0
-private fEnergy = 0
-private int fMultiplicity = 0</text>
- <text name="Fig7.3"
- x="440"
- y="461"
+ >protected Int_t fPhosMod</text>
+ <text name="Fig13.3"
+ x="40"
+ y="342"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
font="Dialog"
textsize="9"
- >public int Compare()
-public void GetRelPosition()
-public bool GetUp()</text>
+ >public void AddDigit()
+public void Compare()
+public Int_t GetPHOSMod()
+public Bool_t IsEmc()
+public Bool_t IsSortable()
+public void Print()</text>
</group>
- <group name="Fig8"
+ <group name="Fig7"
description="uci.uml.visual.FigAssociation"
href="S.100303"
stroke="1"
sourceFigNode="Fig1"
destFigNode="Fig2"
</private>
- <path name="Fig8.1"
+ <path name="Fig7.1"
description="uci.gef.FigPoly"
fill="0"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
>
- <moveto x="280"
- y="173" />
- <lineto x="280"
- y="48" />
- <lineto x="337"
- y="48" />
+ <moveto x="488"
+ y="125" />
+ <lineto x="488"
+ y="64" />
+ <lineto x="553"
+ y="64" />
</path>
</group>
- <group name="Fig9"
+ <group name="Fig8"
description="uci.uml.visual.FigAssociation"
href="S.100313"
stroke="1"
sourceFigNode="Fig1"
destFigNode="Fig3"
</private>
+ <path name="Fig8.1"
+ description="uci.gef.FigPoly"
+ fill="0"
+ fillcolor="-1"
+ stroke="1"
+ strokecolor="-16777216"
+ >
+ <moveto x="494"
+ y="189" />
+ <lineto x="527"
+ y="189" />
+ </path>
+ </group>
+ <group name="Fig9"
+ description="uci.uml.visual.FigRealization"
+ stroke="1"
+ strokecolor="-16777216"
+ >
+ <private>
+ sourcePortFig="Fig1.0"
+ destPortFig="Fig0.0"
+ sourceFigNode="Fig1"
+ destFigNode="Fig0"
+ </private>
<path name="Fig9.1"
description="uci.gef.FigPoly"
fill="0"
stroke="1"
strokecolor="-16777216"
>
- <moveto x="526"
- y="177" />
- <lineto x="543"
- y="177" />
+ <moveto x="368"
+ y="125" />
+ <lineto x="368"
+ y="70" />
</path>
</group>
<group name="Fig10"
- description="uci.uml.visual.FigRealization"
+ description="uci.uml.visual.FigAssociation"
+ href="S.100969"
stroke="1"
strokecolor="-16777216"
>
<private>
- sourcePortFig="Fig6"
- destPortFig="Fig5"
- sourceFigNode="Fig6"
+ sourcePortFig="Fig1.0"
+ destPortFig="Fig5.0"
+ sourceFigNode="Fig1"
destFigNode="Fig5"
</private>
<path name="Fig10.1"
stroke="1"
strokecolor="-16777216"
>
- <moveto x="261"
- y="440" />
- <lineto x="272"
- y="440" />
+ <moveto x="241"
+ y="125" />
+ <lineto x="191"
+ y="125" />
</path>
</group>
<group name="Fig11"
- description="uci.uml.visual.FigRealization"
+ description="uci.uml.visual.FigAssociation"
+ href="S.100972"
stroke="1"
strokecolor="-16777216"
>
<private>
- sourcePortFig="Fig7"
- destPortFig="Fig5"
- sourceFigNode="Fig7"
- destFigNode="Fig5"
+ sourcePortFig="Fig1.0"
+ destPortFig="Fig6.0"
+ sourceFigNode="Fig1"
+ destFigNode="Fig6"
</private>
<path name="Fig11.1"
description="uci.gef.FigPoly"
stroke="1"
strokecolor="-16777216"
>
- <moveto x="440"
- y="440" />
- <lineto x="440"
- y="440" />
+ <moveto x="241"
+ y="220" />
+ <lineto x="194"
+ y="220" />
</path>
</group>
- <group name="Fig12"
- description="uci.uml.visual.FigRealization"
+ <group name="Fig14"
+ description="uci.uml.visual.FigGeneralization"
+ href="S.102608"
stroke="1"
strokecolor="-16777216"
>
<private>
- sourcePortFig="Fig1.0"
- destPortFig="Fig0.0"
- sourceFigNode="Fig1"
- destFigNode="Fig0"
+ sourcePortFig="Fig13.0"
+ destPortFig="Fig12.0"
+ sourceFigNode="Fig13"
+ destFigNode="Fig12"
</private>
- <path name="Fig12.1"
+ <path name="Fig14.1"
description="uci.gef.FigPoly"
fill="0"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
>
- <moveto x="273"
- y="184" />
- <lineto x="261"
- y="184" />
+ <moveto x="144"
+ y="407" />
+ <lineto x="144"
+ y="448" />
+ <lineto x="521"
+ y="448" />
</path>
</group>
- <group name="Fig13"
- description="uci.uml.visual.FigAssociation"
- href="S.100969"
+ <group name="Fig15"
+ description="uci.uml.visual.FigGeneralization"
+ href="S.102609"
stroke="1"
strokecolor="-16777216"
>
<private>
- sourcePortFig="Fig1.0"
- destPortFig="Fig6.0"
- sourceFigNode="Fig1"
- destFigNode="Fig6"
+ sourcePortFig="Fig5.0"
+ destPortFig="Fig13.0"
+ sourceFigNode="Fig5"
+ destFigNode="Fig13"
</private>
- <path name="Fig13.1"
+ <path name="Fig15.1"
description="uci.gef.FigPoly"
fill="0"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
>
- <moveto x="273"
- y="288" />
- <lineto x="260"
- y="288" />
+ <moveto x="25"
+ y="128" />
+ <lineto x="8"
+ y="128" />
+ <lineto x="8"
+ y="368" />
+ <lineto x="41"
+ y="368" />
</path>
</group>
- <group name="Fig14"
- description="uci.uml.visual.FigAssociation"
- href="S.100972"
+ <group name="Fig16"
+ description="uci.uml.visual.FigGeneralization"
+ href="S.102610"
stroke="1"
strokecolor="-16777216"
>
<private>
- sourcePortFig="Fig1.0"
- destPortFig="Fig7.0"
- sourceFigNode="Fig1"
- destFigNode="Fig7"
+ sourcePortFig="Fig6.0"
+ destPortFig="Fig13.0"
+ sourceFigNode="Fig6"
+ destFigNode="Fig13"
</private>
- <path name="Fig14.1"
+ <path name="Fig16.1"
description="uci.gef.FigPoly"
fill="0"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
>
- <moveto x="512"
- y="394" />
- <lineto x="512"
- y="398" />
+ <moveto x="96"
+ y="276" />
+ <lineto x="96"
+ y="313" />
</path>
</group>
</pgml>
name="subtracking"
>
<group name="Fig0"
- description="uci.uml.visual.FigInterface[32, 16, 176, 64]"
- href="S.100566"
+ description="uci.uml.visual.FigClass[8, 156, 237, 146]"
+ href="S.100649"
fill="1"
- fillcolor="-56"
+ fillcolor="-1"
stroke="1"
- strokecolor="-256"
+ strokecolor="-16777216"
>
<private>
</private>
<rectangle name="Fig0.0"
- x="33"
- y="17"
- width="174"
- height="62"
+ x="9"
+ y="157"
+ width="235"
+ height="144"
fill="1"
- fillcolor="-56"
+ fillcolor="-1"
stroke="1"
- strokecolor="-256"
+ strokecolor="-16777216"
/>
- <rectangle name="Fig0.1"
- x="32"
- y="16"
- width="176"
- height="36"
+ <text name="Fig0.1"
+ x="8"
+ y="156"
fill="1"
- fillcolor="-56"
+ fillcolor="-1"
stroke="1"
- strokecolor="-256"
- />
+ strokecolor="-16777216"
+ font="Dialog"
+ textsize="9"
+ >AliPHOSTrackSegmentMakerv1</text>
<text name="Fig0.2"
- x="33"
- y="17"
- fill="1"
- fillcolor="-56"
- stroke="0"
- strokecolor="-256"
- font="Times"
- textsize="10"
- ><<Interface>></text>
- <text name="Fig0.3"
- x="33"
- y="35"
+ x="8"
+ y="171"
fill="1"
- fillcolor="-56"
- stroke="0"
- strokecolor="-256"
+ fillcolor="-1"
+ stroke="1"
+ strokecolor="-16777216"
font="Dialog"
textsize="9"
- >AliPHOSSubTracker</text>
- <text name="Fig0.4"
- x="32"
- y="51"
+ >public fDelta = 0
+public fR0 = 0</text>
+ <text name="Fig0.3"
+ x="8"
+ y="196"
fill="1"
- fillcolor="-56"
+ fillcolor="-1"
stroke="1"
- strokecolor="-256"
+ strokecolor="-16777216"
font="Dialog"
textsize="9"
- >public void MakeSubTracks()</text>
+ >public void FillOneModule()
+public void FindFit()
+public void GetDistanceInPHOSPlane()
+public void MakeLinks()
+public void MakePairs()
+public void MakeTrackSegments()
+public void SetMaxEmcPpsdDistance()
+public void ShowerShape()
+public void UnfoldClusters()
+public void UnfoldingChiSquare()</text>
</group>
<group name="Fig1"
- description="uci.uml.visual.FigClass[16, 148, 237, 69]"
- href="S.100649"
+ description="uci.uml.visual.FigClass[294, 148, 206, 112]"
+ href="S.100094"
fill="1"
fillcolor="-1"
stroke="1"
</private>
<rectangle name="Fig1.0"
- x="17"
+ x="295"
y="149"
- width="235"
- height="67"
+ width="204"
+ height="110"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
/>
<text name="Fig1.1"
- x="16"
+ x="294"
y="148"
fill="1"
fillcolor="-1"
strokecolor="-16777216"
font="Dialog"
textsize="9"
- >AliPHOSSubTrackerv1</text>
+ >AliPHOSGeometry</text>
<text name="Fig1.2"
- x="16"
- y="166"
+ x="294"
+ y="163"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
font="Dialog"
textsize="9"
- >public fDelta = 0
-public fR0 = 0</text>
+ >private many data</text>
<text name="Fig1.3"
- x="16"
- y="198"
+ x="294"
+ y="186"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
font="Dialog"
textsize="9"
- >public float GetDistanceInPHOSPlane()</text>
+ >public void IsInitialized()
+public void RelPosInAlice()
+public void RelPosInModule()
+public void RelToAbsNumbering()
+public void AbsToRelNumbering()
+public and many(more getter/putter)</text>
</group>
- <group name="Fig2"
- description="uci.uml.visual.FigClass[270, 148, 206, 111]"
- href="S.100094"
+ <text name="Fig2"
+ x="441"
+ y="232"
+ fill="1"
+ fillcolor="-1"
+ stroke="1"
+ strokecolor="-3654596"
+ font="dialog"
+ textsize="10"
+ >singleton</text>
+ <group name="Fig3"
+ description="uci.uml.visual.FigClass[8, 360, 196, 146]"
+ href="S.100688"
fill="1"
fillcolor="-1"
stroke="1"
<private>
</private>
- <rectangle name="Fig2.0"
- x="271"
- y="149"
- width="204"
- height="109"
+ <rectangle name="Fig3.0"
+ x="9"
+ y="361"
+ width="194"
+ height="144"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
/>
- <text name="Fig2.1"
- x="270"
- y="148"
+ <text name="Fig3.1"
+ x="8"
+ y="360"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
font="Dialog"
textsize="9"
- >AliPHOSGeometry</text>
- <text name="Fig2.2"
- x="270"
- y="166"
+ >AliPHOSSubTrack</text>
+ <text name="Fig3.2"
+ x="8"
+ y="375"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
font="Dialog"
textsize="9"
- >private many data</text>
- <text name="Fig2.3"
- x="270"
- y="184"
+ >private Float_t fCutOnDispersion = 1.5
+private AliPHOSEmcRecPoint* fEmcRecPoint
+private AliPHOSPpsdRecPoint* fPpsdLow
+private AliPHOSAppsdRecPoint* fPpsdUp</text>
+ <text name="Fig3.3"
+ x="8"
+ y="420"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
font="Dialog"
textsize="9"
- >public void IsInitialized()
-public void RelPosInAlice()
-public void RelPosInModule()
-public void RelToAbsNumbering()
-public void AbsToRelNumbering()</text>
+ >public Float_t GetDistannceInPHOSPlane()
+public Float_t GetEnergy()
+public Bool_t GetMomentumDirection()
+public Int_t GetParticuleType()
+public void GetPosition()
+public void Print()
+public void SetDispersionCutOff()
+</text>
</group>
- <text name="Fig3"
- x="336"
- y="208"
- fill="1"
- fillcolor="-1"
- stroke="1"
- strokecolor="-3654596"
- font="dialog"
- textsize="10"
- >singleton</text>
<group name="Fig4"
- description="uci.uml.visual.FigClass[8, 288, 196, 97]"
- href="S.100688"
+ description="uci.uml.visual.FigClass[296, 285, 216, 46]"
+ href="S.100334"
fill="1"
fillcolor="-1"
stroke="1"
</private>
<rectangle name="Fig4.0"
- x="9"
- y="289"
- width="194"
- height="95"
+ x="297"
+ y="286"
+ width="214"
+ height="44"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
/>
<text name="Fig4.1"
- x="8"
- y="288"
+ x="296"
+ y="285"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
font="Dialog"
textsize="9"
- >AliPHOSSubTrack</text>
+ >AliPHOSEmcRecPoint</text>
<text name="Fig4.2"
- x="8"
- y="306"
+ x="296"
+ y="300"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
font="Dialog"
textsize="9"
- >private fCutOnDispersion = 1.5
-public fEmcCluster = 0
-public fPpsdLow = 0
-public fPpsdUp = 0</text>
+ ></text>
<text name="Fig4.3"
- x="8"
- y="366"
+ x="296"
+ y="315"
fill="1"
fillcolor="-1"
stroke="1"
></text>
</group>
<group name="Fig5"
- description="uci.uml.visual.FigClass[352, 285, 245, 279]"
- href="S.100334"
+ description="uci.uml.visual.FigClass[296, 349, 168, 46]"
+ href="S.100336"
fill="1"
fillcolor="-1"
stroke="1"
</private>
<rectangle name="Fig5.0"
- x="353"
- y="286"
- width="243"
- height="277"
+ x="297"
+ y="350"
+ width="166"
+ height="44"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
/>
<text name="Fig5.1"
- x="352"
- y="285"
+ x="296"
+ y="349"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
font="Dialog"
textsize="9"
- >AliPHOSEmcCluster</text>
+ >AliPHOSPpsdRecPoint</text>
<text name="Fig5.2"
- x="352"
- y="303"
+ x="296"
+ y="364"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
font="Dialog"
textsize="9"
- >private fDigitsList = 0
-private fEnergy = 0
-private int fMultiplicity = 0
-private fDelta = 4.
-private fLocMaxCut = 0.6
-public fW0 = 4.</text>
+ ></text>
<text name="Fig5.3"
- x="352"
- y="391"
+ x="296"
+ y="379"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
font="Dialog"
textsize="9"
- >public bool AreNeighbours()
-public void Compare()
-public void GetAbsPosition()
-public float GetDispersion()
-public void GetElipsAxis()
-public float GetMaximalEnergy()
-public void GetMultiplicityAtLevel()
-public void GetNumberOfLocalMaxima()
-public void GetRelPosition()
-public void GetTotalEnergy()
-public void SetLocalMaxCut()
-public void SetLowWeightCut()</text>
+ ></text>
</group>
- <group name="Fig6"
- description="uci.uml.visual.FigClass[368, 525, 171, 111]"
- href="S.100336"
+ <group name="Fig12"
+ description="uci.uml.visual.FigClass[32, 16, 157, 60]"
+ href="S.102715"
fill="1"
fillcolor="-1"
stroke="1"
<private>
</private>
- <rectangle name="Fig6.0"
- x="369"
- y="526"
- width="169"
- height="109"
+ <rectangle name="Fig12.0"
+ x="33"
+ y="17"
+ width="155"
+ height="58"
fill="1"
- fillcolor="-1"
+ fillcolor="-16711681"
stroke="1"
- strokecolor="-16777216"
+ strokecolor="-16711681"
/>
- <text name="Fig6.1"
- x="368"
- y="525"
+ <text name="Fig12.1"
+ x="32"
+ y="16"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
font="Dialog"
textsize="9"
- >AliPHOSPpsdCluster</text>
- <text name="Fig6.2"
- x="368"
- y="543"
+ >AliPHOSTrackSegmentMaker</text>
+ <text name="Fig12.2"
+ x="32"
+ y="31"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
font="Dialog"
textsize="9"
- >public fDigitsList = 0
-private fEnergy = 0
-private int fMultiplicity = 0</text>
- <text name="Fig6.3"
- x="368"
- y="589"
+ >private Float_t fR0</text>
+ <text name="Fig12.3"
+ x="32"
+ y="48"
fill="1"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
font="Dialog"
textsize="9"
- >public int Compare()
-public void GetRelPosition()
-public bool GetUp()</text>
+ >public void MakeTrackSegments()
+public void SetMaxEmcPpsdDistance()</text>
</group>
- <group name="Fig7"
- description="uci.uml.visual.FigRealization"
+ <group name="Fig6"
+ description="uci.uml.visual.FigAssociation"
+ href="S.100685"
stroke="1"
strokecolor="-16777216"
>
<private>
- sourcePortFig="Fig1"
- destPortFig="Fig0"
- sourceFigNode="Fig1"
- destFigNode="Fig0"
+ sourcePortFig="Fig0.0"
+ destPortFig="Fig1.0"
+ sourceFigNode="Fig0"
+ destFigNode="Fig1"
</private>
- <path name="Fig7.1"
+ <path name="Fig6.1"
description="uci.gef.FigPoly"
fill="0"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
>
- <moveto x="96"
- y="148" />
- <lineto x="96"
- y="80" />
+ <moveto x="244"
+ y="157" />
+ <lineto x="295"
+ y="157" />
</path>
</group>
- <group name="Fig8"
+ <group name="Fig7"
description="uci.uml.visual.FigAssociation"
- href="S.100685"
+ href="S.100689"
stroke="1"
strokecolor="-16777216"
>
<private>
- sourcePortFig="Fig1.0"
- destPortFig="Fig2.0"
- sourceFigNode="Fig1"
- destFigNode="Fig2"
+ sourcePortFig="Fig0"
+ destPortFig="Fig3"
+ sourceFigNode="Fig0"
+ destFigNode="Fig3"
</private>
- <path name="Fig8.1"
+ <path name="Fig7.1"
description="uci.gef.FigPoly"
fill="0"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
>
- <moveto x="252"
- y="153" />
- <lineto x="271"
- y="153" />
+ <moveto x="96"
+ y="302" />
+ <lineto x="96"
+ y="360" />
</path>
</group>
- <group name="Fig9"
+ <group name="Fig8"
description="uci.uml.visual.FigAssociation"
- href="S.100689"
+ href="S.100781"
stroke="1"
strokecolor="-16777216"
>
<private>
- sourcePortFig="Fig1"
- destPortFig="Fig4"
- sourceFigNode="Fig1"
+ sourcePortFig="Fig3.0"
+ destPortFig="Fig4.0"
+ sourceFigNode="Fig3"
destFigNode="Fig4"
</private>
- <path name="Fig9.1"
+ <path name="Fig8.1"
description="uci.gef.FigPoly"
fill="0"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
>
- <moveto x="96"
- y="217" />
- <lineto x="96"
- y="288" />
+ <moveto x="184"
+ y="361" />
+ <lineto x="184"
+ y="320" />
+ <lineto x="297"
+ y="320" />
</path>
</group>
- <group name="Fig10"
+ <group name="Fig9"
description="uci.uml.visual.FigAssociation"
- href="S.100781"
+ href="S.100784"
stroke="1"
strokecolor="-16777216"
>
<private>
- sourcePortFig="Fig4.0"
+ sourcePortFig="Fig3.0"
destPortFig="Fig5.0"
- sourceFigNode="Fig4"
+ sourceFigNode="Fig3"
destFigNode="Fig5"
</private>
- <path name="Fig10.1"
+ <path name="Fig9.1"
description="uci.gef.FigPoly"
fill="0"
fillcolor="-1"
strokecolor="-16777216"
>
<moveto x="203"
- y="290" />
- <lineto x="353"
- y="290" />
+ y="384" />
+ <lineto x="297"
+ y="384" />
</path>
</group>
- <group name="Fig11"
+ <group name="Fig10"
description="uci.uml.visual.FigAssociation"
- href="S.100784"
+ href="S.100787"
stroke="1"
strokecolor="-16777216"
>
<private>
- sourcePortFig="Fig4.0"
- destPortFig="Fig6.0"
- sourceFigNode="Fig4"
- destFigNode="Fig6"
+ sourcePortFig="Fig0.0"
+ destPortFig="Fig4.0"
+ sourceFigNode="Fig0"
+ destFigNode="Fig4"
</private>
- <path name="Fig11.1"
+ <path name="Fig10.1"
description="uci.gef.FigPoly"
fill="0"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
>
- <moveto x="203"
- y="336" />
- <lineto x="288"
- y="336" />
- <lineto x="288"
- y="528" />
- <lineto x="369"
- y="528" />
+ <moveto x="160"
+ y="157" />
+ <lineto x="160"
+ y="96" />
+ <lineto x="512"
+ y="96" />
+ <lineto x="511"
+ y="286" />
</path>
</group>
- <group name="Fig12"
+ <group name="Fig11"
description="uci.uml.visual.FigAssociation"
- href="S.100787"
+ href="S.100790"
stroke="1"
strokecolor="-16777216"
>
<private>
- sourcePortFig="Fig1.0"
+ sourcePortFig="Fig0.0"
destPortFig="Fig5.0"
- sourceFigNode="Fig1"
+ sourceFigNode="Fig0"
destFigNode="Fig5"
</private>
- <path name="Fig12.1"
+ <path name="Fig11.1"
description="uci.gef.FigPoly"
fill="0"
fillcolor="-1"
stroke="1"
strokecolor="-16777216"
>
- <moveto x="152"
- y="149" />
- <lineto x="152"
- y="120" />
- <lineto x="464"
- y="120" />
- <lineto x="464"
- y="286" />
+ <moveto x="136"
+ y="157" />
+ <lineto x="136"
+ y="80" />
+ <lineto x="552"
+ y="80" />
+ <lineto x="552"
+ y="368" />
+ <lineto x="463"
+ y="368" />
</path>
</group>
<group name="Fig13"
- description="uci.uml.visual.FigAssociation"
- href="S.100790"
+ description="uci.uml.visual.FigGeneralization"
+ href="S.102753"
stroke="1"
strokecolor="-16777216"
>
<private>
- sourcePortFig="Fig1.0"
- destPortFig="Fig6.0"
- sourceFigNode="Fig1"
- destFigNode="Fig6"
+ sourcePortFig="Fig0.0"
+ destPortFig="Fig12.0"
+ sourceFigNode="Fig0"
+ destFigNode="Fig12"
</private>
<path name="Fig13.1"
description="uci.gef.FigPoly"
stroke="1"
strokecolor="-16777216"
>
- <moveto x="136"
- y="149" />
- <lineto x="136"
- y="96" />
- <lineto x="552"
- y="96" />
- <lineto x="552"
- y="528" />
- <lineto x="538"
- y="528" />
+ <moveto x="80"
+ y="157" />
+ <lineto x="80"
+ y="75" />
</path>
</group>
</pgml>
name="TreeR"
>
<text name="Fig0"
- x="14"
+ x="-61"
y="32"
fill="1"
fillcolor="-3618561"
textsize="24"
>TreeR</text>
<text name="Fig1"
- x="25"
+ x="-188"
y="104"
fill="1"
fillcolor="-1"
y="120" />
</path>
<text name="Fig4"
- x="17"
+ x="-205"
y="144"
fill="1"
fillcolor="-1"
textsize="18"
>PHOSPpsdClusters</text>
<text name="Fig5"
- x="46"
+ x="-140"
y="184"
fill="1"
fillcolor="-1"
textsize="18"
>PHOSSubTracks</text>
<text name="Fig6"
- x="39"
+ x="-156"
y="224"
fill="1"
fillcolor="-1"
y="240" />
</path>
<text name="Fig11"
- x="8"
+ x="-67"
y="296"
fill="1"
fillcolor="-3618561"
textsize="24"
>TreeD</text>
<text name="Fig12"
- x="156"
+ x="111"
y="352"
fill="1"
fillcolor="-1"
name="reconstructioner"
>
<group name="Fig0"
- description="uci.uml.visual.FigClass[16, 136, 154, 89]"
+ description="uci.uml.visual.FigClass[16, 136, 154, 90]"
href="S.100975"
fill="1"
fillcolor="-1"
x="17"
y="137"
width="152"
- height="87"
+ height="88"
fill="1"
fillcolor="-1"
stroke="1"
>AliPHOSReconstructioner</text>
<text name="Fig0.2"
x="16"
- y="154"
+ y="151"
fill="1"
fillcolor="-1"
stroke="1"
></text>
<text name="Fig0.3"
x="16"
- y="189"
+ y="188"
fill="1"
fillcolor="-1"
stroke="1"
x="208"
y="128"
width="246"
- height="36"
+ height="28"
fill="1"
fillcolor="-56"
stroke="1"
><<Interface>></text>
<text name="Fig1.3"
x="209"
- y="147"
+ y="142"
fill="1"
fillcolor="-56"
stroke="0"
>AliPHOSClusterizer</text>
<text name="Fig1.4"
x="208"
- y="163"
+ y="155"
fill="1"
fillcolor="-56"
stroke="1"
</group>
<group name="Fig2"
description="uci.uml.visual.FigInterface[208, 200, 176, 64]"
- href="S.100566"
fill="1"
fillcolor="-56"
stroke="1"
x="208"
y="200"
width="176"
- height="36"
+ height="28"
fill="1"
fillcolor="-56"
stroke="1"
><<Interface>></text>
<text name="Fig2.3"
x="209"
- y="219"
+ y="214"
fill="1"
fillcolor="-56"
stroke="0"
strokecolor="-256"
font="Dialog"
textsize="9"
- >AliPHOSSubTracker</text>
+ >AliPHOSTrackSegmentMaker</text>
<text name="Fig2.4"
x="208"
- y="235"
+ y="227"
fill="1"
fillcolor="-56"
stroke="1"
x="24"
y="24"
width="176"
- height="36"
+ height="28"
fill="1"
fillcolor="-1"
stroke="1"
><<Interface>></text>
<text name="Fig3.3"
x="25"
- y="43"
+ y="38"
fill="1"
fillcolor="-1"
stroke="0"
>AliReconstructioner</text>
<text name="Fig3.4"
x="24"
- y="59"
+ y="51"
fill="1"
fillcolor="-1"
stroke="1"
</group>
<group name="Fig6"
description="uci.uml.visual.FigAssociation"
- href="S.100994"
stroke="1"
strokecolor="-16777216"
>
y="177" />
</path>
<text name="Fig0.6"
- x="56"
- y="179"
+ x="68"
+ y="182"
fill="0"
fillcolor="-1"
stroke="0"
strokecolor="-12829496"
/>
<text name="Fig1.2"
- x="195"
- y="27"
+ x="222"
+ y="28"
fill="0"
fillcolor="-1"
stroke="0"
strokecolor="-12829496"
/>
<text name="Fig2.2"
- x="378"
- y="27"
+ x="405"
+ y="28"
fill="0"
fillcolor="-1"
stroke="0"
strokecolor="-12829496"
/>
<text name="Fig3.2"
- x="211"
- y="117"
+ x="228"
+ y="118"
fill="0"
fillcolor="-1"
stroke="0"
strokecolor="-12829496"
/>
<text name="Fig4.2"
- x="409"
- y="115"
+ x="420"
+ y="116"
fill="0"
fillcolor="-1"
stroke="0"
strokecolor="-12829496"
/>
<text name="Fig5.2"
- x="211"
- y="207"
+ x="225"
+ y="208"
fill="0"
fillcolor="-1"
stroke="0"
strokecolor="-12829496"
/>
<text name="Fig6.2"
- x="211"
- y="271"
+ x="226"
+ y="272"
fill="0"
fillcolor="-1"
stroke="0"
strokecolor="-3654596"
/>
<text name="Fig7.2"
- x="211"
- y="335"
+ x="227"
+ y="336"
fill="0"
fillcolor="-1"
stroke="0"
strokecolor="-3654596"
/>
<text name="Fig8.2"
- x="517"
- y="275"
+ x="528"
+ y="276"
fill="0"
fillcolor="-1"
stroke="0"
strokecolor="-3654596"
/>
<text name="Fig9.2"
- x="352"
- y="403"
+ x="365"
+ y="404"
fill="0"
fillcolor="-1"
stroke="0"
strokecolor="-3654596"
/>
<text name="Fig10.2"
- x="194"
- y="459"
+ x="223"
+ y="460"
fill="0"
fillcolor="-1"
stroke="0"
strokecolor="-12829496"
/>
<text name="Fig14.2"
- x="338"
- y="275"
+ x="351"
+ y="276"
fill="0"
fillcolor="-1"
stroke="0"
strokecolor="-12829496"
/>
<text name="Fig15.2"
- x="587"
- y="163"
+ x="597"
+ y="164"
fill="0"
fillcolor="-1"
stroke="0"
y="217" />
</path>
<text name="Fig0.6"
- x="80"
- y="219"
+ x="92"
+ y="222"
fill="0"
fillcolor="-1"
stroke="0"
strokecolor="-12829496"
/>
<text name="Fig1.2"
- x="237"
- y="163"
+ x="265"
+ y="164"
fill="0"
fillcolor="-1"
stroke="0"
strokecolor="-12829496"
/>
<text name="Fig2.2"
- x="237"
- y="219"
+ x="267"
+ y="220"
fill="0"
fillcolor="-1"
stroke="0"
strokecolor="-12829496"
/>
<text name="Fig3.2"
- x="237"
- y="107"
+ x="256"
+ y="108"
fill="0"
fillcolor="-1"
stroke="0"
strokecolor="-12829496"
/>
<text name="Fig4.2"
- x="237"
- y="275"
+ x="252"
+ y="276"
fill="0"
fillcolor="-1"
stroke="0"
strokecolor="-16777216"
/>
<text name="Fig5.2"
- x="245"
- y="339"
+ x="268"
+ y="340"
fill="0"
fillcolor="-1"
stroke="0"
strokecolor="-3654596"
/>
<text name="Fig6.2"
- x="245"
- y="411"
+ x="284"
+ y="412"
fill="0"
fillcolor="-1"
stroke="0"
strokecolor="-12829496"
/>
<text name="Fig7.2"
- x="434"
- y="179"
+ x="448"
+ y="180"
fill="0"
fillcolor="-1"
stroke="0"
y="125" />
</path>
<text name="Fig0.6"
- x="64"
- y="127"
+ x="76"
+ y="130"
fill="0"
fillcolor="-1"
stroke="0"
strokecolor="-16777216"
/>
<text name="Fig1.2"
- x="172"
- y="10"
+ x="190"
+ y="13"
fill="0"
fillcolor="-1"
stroke="0"
>1 . Get a Particle
from TreeK</text>
</group>
- <group name="Fig3"
+ <group name="Fig2"
description="uci.uml.visual.FigUseCase[218, 64, 182, 72]"
href="S.101008"
fill="1"
<private>
</private>
- <ellipse name="Fig3.0"
+ <ellipse name="Fig2.0"
x="309"
y="100"
rx="91"
stroke="1"
strokecolor="-16777216"
/>
- <ellipse name="Fig3.1"
+ <ellipse name="Fig2.1"
x="309"
y="100"
rx="91"
stroke="1"
strokecolor="-16777216"
/>
- <text name="Fig3.2"
- x="235"
- y="77"
+ <text name="Fig2.2"
+ x="258"
+ y="82"
fill="0"
fillcolor="-1"
stroke="0"
of other detectors on
the way of the particle</text>
</group>
- <group name="Fig5"
+ <group name="Fig3"
description="uci.uml.visual.FigUseCase[218, 208, 177, 52]"
href="S.101012"
fill="1"
<private>
</private>
- <ellipse name="Fig5.0"
+ <ellipse name="Fig3.0"
x="306"
y="234"
rx="88"
stroke="1"
strokecolor="-16777216"
/>
- <ellipse name="Fig5.1"
+ <ellipse name="Fig3.1"
x="306"
y="234"
rx="88"
stroke="1"
strokecolor="-16777216"
/>
- <text name="Fig5.2"
- x="231"
- y="218"
+ <text name="Fig3.2"
+ x="256"
+ y="221"
fill="0"
fillcolor="-1"
stroke="0"
>3. Get the average PHOS
response to this particle</text>
</group>
- <group name="Fig7"
+ <group name="Fig4"
description="uci.uml.visual.FigUseCase[49, 272, 155, 66]"
href="S.101016"
fill="1"
<private>
</private>
- <ellipse name="Fig7.0"
+ <ellipse name="Fig4.0"
x="126"
y="305"
rx="77"
stroke="1"
strokecolor="-16777216"
/>
- <ellipse name="Fig7.1"
+ <ellipse name="Fig4.1"
x="126"
y="305"
rx="77"
stroke="1"
strokecolor="-16777216"
/>
- <text name="Fig7.2"
- x="59"
- y="282"
+ <text name="Fig4.2"
+ x="80"
+ y="287"
fill="0"
fillcolor="-1"
stroke="0"
and properties of the
detected particle</text>
</group>
- <group name="Fig9"
+ <group name="Fig5"
description="uci.uml.visual.FigUseCase[480, 8, 158, 66]"
href="S.101022"
fill="1"
<private>
</private>
- <ellipse name="Fig9.0"
+ <ellipse name="Fig5.0"
x="559"
y="41"
rx="79"
stroke="1"
strokecolor="-16777216"
/>
- <ellipse name="Fig9.1"
+ <ellipse name="Fig5.1"
x="559"
y="41"
rx="79"
stroke="1"
strokecolor="-16777216"
/>
- <text name="Fig9.2"
- x="490"
- y="18"
+ <text name="Fig5.2"
+ x="512"
+ y="23"
fill="0"
fillcolor="-1"
stroke="0"
conversion probability
energy loss</text>
</group>
- <group name="Fig11"
+ <group name="Fig6"
description="uci.uml.visual.FigUseCase[488, 80, 216, 96]"
href="S.101024"
fill="1"
<private>
</private>
- <ellipse name="Fig11.0"
+ <ellipse name="Fig6.0"
x="596"
y="128"
rx="108"
stroke="1"
strokecolor="-16777216"
/>
- <ellipse name="Fig11.1"
+ <ellipse name="Fig6.1"
x="596"
y="128"
rx="108"
stroke="1"
strokecolor="-16777216"
/>
- <text name="Fig11.2"
- x="503"
- y="98"
+ <text name="Fig6.2"
+ x="531"
+ y="110"
fill="0"
fillcolor="-1"
stroke="0"
textsize="9"
>Charged and Neutral hadrons:
energy loss
-momentum smearing
-</text>
+momentum smearing</text>
</group>
- <group name="Fig13"
+ <group name="Fig7"
description="uci.uml.visual.FigUseCase[488, 192, 208, 80]"
href="S.101026"
fill="1"
<private>
</private>
- <ellipse name="Fig13.0"
+ <ellipse name="Fig7.0"
x="592"
y="232"
rx="104"
stroke="1"
strokecolor="-16777216"
/>
- <ellipse name="Fig13.1"
+ <ellipse name="Fig7.1"
x="592"
y="232"
rx="104"
stroke="1"
strokecolor="-16777216"
/>
- <text name="Fig13.2"
- x="506"
- y="209"
+ <text name="Fig7.2"
+ x="532"
+ y="214"
fill="0"
fillcolor="-1"
stroke="0"
identify a photon,
a charged or neutral hadron</text>
</group>
- <group name="Fig15"
+ <group name="Fig8"
description="uci.uml.visual.FigUseCase[512, 296, 165, 52]"
href="S.101030"
fill="1"
<private>
</private>
- <ellipse name="Fig15.0"
+ <ellipse name="Fig8.0"
x="594"
y="322"
rx="82"
stroke="1"
strokecolor="-16777216"
/>
- <ellipse name="Fig15.1"
+ <ellipse name="Fig8.1"
x="594"
y="322"
rx="82"
stroke="1"
strokecolor="-16777216"
/>
- <text name="Fig15.2"
- x="522"
- y="306"
+ <text name="Fig8.2"
+ x="544"
+ y="309"
fill="0"
fillcolor="-1"
stroke="0"
>Energy and momentum
resolution</text>
</group>
- <group name="Fig2"
+ <group name="Fig9"
description="uci.uml.visual.FigAssociation"
href="S.101005"
stroke="1"
sourceFigNode="Fig0"
destFigNode="Fig1"
</private>
- <path name="Fig2.1"
+ <path name="Fig9.1"
description="uci.gef.FigPoly"
fill="0"
fillcolor="-1"
y="52" />
</path>
</group>
- <group name="Fig4"
+ <group name="Fig10"
description="uci.uml.visual.FigAssociation"
href="S.101009"
stroke="1"
>
<private>
sourcePortFig="Fig0"
- destPortFig="Fig3"
+ destPortFig="Fig2"
sourceFigNode="Fig0"
- destFigNode="Fig3"
+ destFigNode="Fig2"
</private>
- <path name="Fig4.1"
+ <path name="Fig10.1"
description="uci.gef.FigPoly"
fill="0"
fillcolor="-1"
y="96" />
</path>
</group>
- <group name="Fig6"
+ <group name="Fig11"
description="uci.uml.visual.FigAssociation"
href="S.101013"
stroke="1"
>
<private>
sourcePortFig="Fig0"
- destPortFig="Fig5"
+ destPortFig="Fig3"
sourceFigNode="Fig0"
- destFigNode="Fig5"
+ destFigNode="Fig3"
</private>
- <path name="Fig6.1"
+ <path name="Fig11.1"
description="uci.gef.FigPoly"
fill="0"
fillcolor="-1"
y="208" />
</path>
</group>
- <group name="Fig8"
+ <group name="Fig12"
description="uci.uml.visual.FigAssociation"
href="S.101017"
stroke="1"
>
<private>
sourcePortFig="Fig0"
- destPortFig="Fig7"
+ destPortFig="Fig4"
sourceFigNode="Fig0"
- destFigNode="Fig7"
+ destFigNode="Fig4"
</private>
- <path name="Fig8.1"
+ <path name="Fig12.1"
description="uci.gef.FigPoly"
fill="0"
fillcolor="-1"
y="272" />
</path>
</group>
- <group name="Fig10"
+ <group name="Fig13"
description="uci.uml.visual.FigGeneralization"
href="S.101023"
stroke="1"
strokecolor="-16777216"
>
<private>
- sourcePortFig="Fig9.0"
- destPortFig="Fig3.0"
- sourceFigNode="Fig9"
- destFigNode="Fig3"
+ sourcePortFig="Fig5.0"
+ destPortFig="Fig2.0"
+ sourceFigNode="Fig5"
+ destFigNode="Fig2"
</private>
- <path name="Fig10.1"
+ <path name="Fig13.1"
description="uci.gef.FigPoly"
fill="0"
fillcolor="-1"
y="64" />
</path>
</group>
- <group name="Fig12"
+ <group name="Fig14"
description="uci.uml.visual.FigGeneralization"
href="S.101025"
stroke="1"
strokecolor="-16777216"
>
<private>
- sourcePortFig="Fig11.0"
- destPortFig="Fig3.0"
- sourceFigNode="Fig11"
- destFigNode="Fig3"
+ sourcePortFig="Fig6.0"
+ destPortFig="Fig2.0"
+ sourceFigNode="Fig6"
+ destFigNode="Fig2"
</private>
- <path name="Fig12.1"
+ <path name="Fig14.1"
description="uci.gef.FigPoly"
fill="0"
fillcolor="-1"
y="128" />
</path>
</group>
- <group name="Fig14"
+ <group name="Fig15"
description="uci.uml.visual.FigAssociation"
href="S.101027"
stroke="1"
strokecolor="-16777216"
>
<private>
- sourcePortFig="Fig13.0"
- destPortFig="Fig5.0"
- sourceFigNode="Fig13"
- destFigNode="Fig5"
+ sourcePortFig="Fig7.0"
+ destPortFig="Fig3.0"
+ sourceFigNode="Fig7"
+ destFigNode="Fig3"
</private>
- <path name="Fig14.1"
+ <path name="Fig15.1"
description="uci.gef.FigPoly"
fill="0"
fillcolor="-1"
strokecolor="-16777216"
>
<private>
- sourcePortFig="Fig5.0"
- destPortFig="Fig15.0"
- sourceFigNode="Fig5"
- destFigNode="Fig15"
+ sourcePortFig="Fig3.0"
+ destPortFig="Fig8.0"
+ sourceFigNode="Fig3"
+ destFigNode="Fig8"
</private>
<path name="Fig16.1"
description="uci.gef.FigPoly"
+++ /dev/null
-%!PS-Adobe-3.0
-%%Title: TreeR
-%%Pages: (atend)
-%%PageOrder: Ascend
-%%DocumentFonts: Helvetica Helvetica-Bold
-%%+Helvetica-Oblique Helvetica-BoldOblique
-%%+Times-Roman Times-Bold Times-Italic Times-BoldItalic
-%%+Courier Courier-Bold Courier-Oblique Courier-BoldOblique
-%%EndComments
-%%BeginProlog
-/BD {bind def} bind def
-/D {def} BD
-/ISOF {
- dup findfont dup length 1 add dict begin {
- 1 index /FID eq {pop pop} {D} ifelse
- } forall /Encoding ISOLatin1Encoding D
- currentdict end definefont
-} BD
-/F [
- /Helvetica ISOF
- /Helvetica-Bold ISOF
- /Helvetica-Oblique ISOF
- /Helvetica-BoldOblique ISOF
- /Times-Roman ISOF
- /Times-Bold ISOF
- /Times-Italic ISOF
- /Times-BoldItalic ISOF
- /Courier ISOF
- /Courier-Bold ISOF
- /Courier-Oblique ISOF
- /Courier-BoldOblique ISOF
-] D
-/R {4 2 roll moveto 1 index 0 rlineto
- 0 exch rlineto neg 0 rlineto closepath} BD
-/Adict 8 dict D
-Adict /mtrx matrix put
-/A { Adict begin
- /endangle exch D /startangle exch D
- /yrad exch D /xrad exch D
- /y exch D /x exch D
- /savematrix mtrx currentmatrix D
- x y translate xrad yrad scale
- 0 0 1 startangle endangle arc
- savematrix setmatrix
- end } BD
-/PY {
- dup 1 ge {3 1 roll moveto} if
- -1 2 {pop lineto} for
- {closepath} if
-} BD
-/CL { dup 0 exch -1 1 arct} BD
-/RCL { dup 0 exch 1 1 arct} BD
-/RRdict 8 dict D
-RRdict /mtrx matrix put
-/RR {RRdict begin
- /yrad exch D /xrad exch D
- /height exch D /width exch D
- /y exch D /x exch D
- /width width xrad div D /height height yrad div D
- /savematrix mtrx currentmatrix D
- x y translate xrad yrad scale -90 rotate
- 1 0 moveto width RCL width 0 translate -90 rotate
- height CL height 0 translate -90 rotate
- width RCL width 0 translate -90 rotate height CL closepath
- savematrix setmatrix
- end } BD
-/SC {3 {255 div 3 1 roll} repeat setrgbcolor} BD
-/SF {
- F exch get exch scalefont setfont
- (abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890) stringwidth pop div
- currentfont exch scalefont setfont} BD
-/RC {R clip newpath} BD
-/IC {initclip} BD
-/RF {R fill} BD
-/RS {R stroke} BD
-/RRF {RR fill} BD
-/RRS {RR stroke} BD
-/AS {A stroke} BD
-/AF {6 -2 roll 2 copy moveto 6 2 roll A fill} BD
-/PYS {PY stroke} BD
-/PYF {PY eofill} BD
-/NZ {dup 1 lt {pop 1} if} BD
-/DS {
- moveto 1 index stringwidth pop NZ sub
- 1 index length 1 sub NZ div 0
- 3 2 roll ashow} BD
-/DL {moveto lineto stroke} BD
-/S {scale} BD
-/SP {/P save D} BD
-/EP {showpage P restore} BD
-/GS {gsave} BD
-/GR {grestore} BD
-/CM {
- /cmapr 256 array D
- /cmapg 256 array D
- /cmapb 256 array D
- /cmapgray null D
- 3 string exch 0 exch 1 exch 1 sub {
- currentfile 2 index readhexstring pop
- cmapr 2 index 2 index 0 get put
- cmapg 2 index 2 index 1 get put
- cmapb 2 index 2 index 2 get put
- pop pop } for pop
-} BD
-/DII {
- GS
- /imgsave save D
- translate scale
- /imgh exch D
- /imgw exch D
- /imgy exch neg D
- /imgx exch neg D
- /imgstr imgw string D
- /colorimage where {
- pop
- /cimgstr imgw 3 mul string D
- imgw imgh 8 [imgw 0 0 imgh neg imgx imgy] {
- currentfile imgstr readhexstring pop
- 0 1 imgw 1 sub {
- 2 copy get
- cmapr 1 index get
- cimgstr exch 3 index
- 3 mul exch put
- cmapg 1 index get
- cimgstr exch 3 index
- 3 mul 1 add exch put
- cmapb 1 index get
- cimgstr exch 3 index
- 3 mul 2 add exch put
- pop pop } for pop cimgstr
- } false 3 colorimage
- } {
- cmapgray null eq {
- /cmapgray cmapr length array D
- 0 1 cmapr length 1 sub {
- cmapgray exch
- cmapr 1 index get .299 mul
- cmapg 2 index get .587 mul
- cmapb 3 index get .114 mul
- add add cvi put
- } for
- } if
- imgw imgh 8 [imgw 0 0 imgh neg 0 0] {
- currentfile imgstr readhexstring pop
- 0 1 imgw 1 sub {
- imgstr exch 2 copy get
- cmapgray exch get put
- } for
- } image
- } ifelse
- imgsave restore
- GR
-} BD
-/DI {
- GS
- /imgsave save D
- translate scale
- /imgh exch D
- /imgw exch D
- /imgy exch neg D
- /imgx exch neg D
- /imgstr imgw 3 mul string D
- imgw imgh 8 [imgw 0 0 imgh neg imgx imgy] {
- currentfile imgstr readhexstring pop
- } bind false 3 colorimage
- imgsave restore
- GR
-} BD
-%%EndProlog
-%%BeginSetup
-mark {
-%%BeginFeature: ManualFeed false
-1 dict dup /ManualFeed false put setpagedevice
-%%EndFeature
-} stopped {
-%%BeginFeature: *ManualFeed false
- statusdict /manualfeed false put
-%%EndFeature
-} if cleartomark mark {
-%%BeginFeature: PageSize *Letter
-3 dict begin
- /PageSize [612 792] def
- /ImagingBBox null def
- /Policies 1 dict dup/PageSize 3 put def
- currentdict end setpagedevice
-%%EndFeature
-} stopped {
- cleartomark statusdict begin mark {
-%%BeginFeature: *PageSize Letter
- lettertray
-%%EndFeature
- } stopped end
-} if cleartomark
-% now make sure we got what we requested!
-gsave initgraphics clippath pathbbox grestore
-5 dict begin
- 3 -1 roll /yoff exch def 3 -1 roll /xoff exch def
- yoff sub /h exch def xoff sub /w exch def
- w 576 lt h 756 lt or {
- w 2 div xoff add h 2 div yoff add translate
- w xoff 2 mul add 612 div
- h yoff 2 mul add 792 div
- 2 copy gt {exch} if pop dup scale
- -306 -396 translate
- } if
-end
-
-%%EndSetup
-
-%%Page: 1 1
-SP
-IC
-15 777 582 -717 RC
-200 200 255 SC
-89 745 72 -35 RF
-0 0 0 SC
-89 745 71 -34 RS
-0 0 255 SC
-% Font[sanserif, 1, 24]
-935 24 9 SF
-(TreeR) 70 90 716 DS
-255 255 255 SC
-208 673 183 -25 RF
-0 0 0 SC
-208 673 182 -24 RS
-0 0 255 SC
-% Font[dialog, 1, 18]
-786 18 9 SF
-(PHOSEmcClusters) 181 209 652 DS
-0 0 0 SC
-127 713 127 657 DL
-127 657 207 657 DL
-255 255 255 SC
-208 633 191 -25 RF
-0 0 0 SC
-208 633 190 -24 RS
-0 0 255 SC
-(PHOSPpsdClusters) 189 209 612 DS
-255 255 255 SC
-208 593 164 -25 RF
-0 0 0 SC
-208 593 163 -24 RS
-0 0 255 SC
-(PHOSSubTracks) 162 209 572 DS
-255 255 255 SC
-208 553 172 -25 RF
-0 0 0 SC
-208 553 171 -24 RS
-0 0 255 SC
-% Font[dialog, 1, 18]
-786 18 9 SF
-(PHOSParameters) 170 209 532 DS
-0 0 0 SC
-127 657 127 537 DL
-127 617 207 617 DL
-127 577 207 577 DL
-127 537 207 537 DL
-200 200 255 SC
-84 481 74 -35 RF
-0 0 0 SC
-84 481 73 -34 RS
-0 0 255 SC
-% Font[sanserif, 1, 24]
-935 24 9 SF
-(TreeD) 72 85 452 DS
-255 255 255 SC
-208 425 57 -25 RF
-0 0 0 SC
-208 425 56 -24 RS
-0 0 255 SC
-% Font[dialog, 1, 18]
-786 18 9 SF
-(PHOS) 55 209 404 DS
-0 0 0 SC
-127 449 127 409 DL
-127 409 207 409 DL
-false 391 657 1 PYS
-60 60 200 SC
-391 670 527 670 DL
-527 668 263 419 DL
-399 627 527 627 DL
-528 626 264 418 DL
-200 60 60 SC
-391 657 471 657 DL
-471 657 375 585 DL
-399 617 455 617 DL
-453 616 373 584 DL
-60 200 60 SC
-391 649 439 649 DL
-437 649 381 553 DL
-255 255 255 SC
-639 617 583 521 DL
-399 737 399 729 DL
-60 200 60 SC
-396 609 380 553 DL
-371 570 379 554 DL
-IC
--29985 30777 60000 -60000 RC
-0 0 0 SC
-% Font[TimesRoman, 0, 9]
-314 9 4 SF
-(TreeR) 24 25 40 DS
-% Font[TimesRoman, 0, 9]
-314 9 4 SF
-(Page 1) 23 557 40 DS
-EP
-
-%%Page: 2 2
-SP
-IC
-15 777 582 -717 RC
-255 255 255 SC
-57 617 1 521 DL
-IC
--30567 30777 60000 -60000 RC
-0 0 0 SC
-% Font[TimesRoman, 0, 9]
-314 9 4 SF
-(TreeR) 24 25 40 DS
-% Font[TimesRoman, 0, 9]
-314 9 4 SF
-(Page 2) 23 557 40 DS
-EP
-%%Trailer
-%%Pages: 2
-%%EOF
+++ /dev/null
-%!PS-Adobe-3.0
-%%Title: Clusterisation
-%%Pages: (atend)
-%%PageOrder: Ascend
-%%DocumentFonts: Helvetica Helvetica-Bold
-%%+Helvetica-Oblique Helvetica-BoldOblique
-%%+Times-Roman Times-Bold Times-Italic Times-BoldItalic
-%%+Courier Courier-Bold Courier-Oblique Courier-BoldOblique
-%%EndComments
-%%BeginProlog
-/BD {bind def} bind def
-/D {def} BD
-/ISOF {
- dup findfont dup length 1 add dict begin {
- 1 index /FID eq {pop pop} {D} ifelse
- } forall /Encoding ISOLatin1Encoding D
- currentdict end definefont
-} BD
-/F [
- /Helvetica ISOF
- /Helvetica-Bold ISOF
- /Helvetica-Oblique ISOF
- /Helvetica-BoldOblique ISOF
- /Times-Roman ISOF
- /Times-Bold ISOF
- /Times-Italic ISOF
- /Times-BoldItalic ISOF
- /Courier ISOF
- /Courier-Bold ISOF
- /Courier-Oblique ISOF
- /Courier-BoldOblique ISOF
-] D
-/R {4 2 roll moveto 1 index 0 rlineto
- 0 exch rlineto neg 0 rlineto closepath} BD
-/Adict 8 dict D
-Adict /mtrx matrix put
-/A { Adict begin
- /endangle exch D /startangle exch D
- /yrad exch D /xrad exch D
- /y exch D /x exch D
- /savematrix mtrx currentmatrix D
- x y translate xrad yrad scale
- 0 0 1 startangle endangle arc
- savematrix setmatrix
- end } BD
-/PY {
- dup 1 ge {3 1 roll moveto} if
- -1 2 {pop lineto} for
- {closepath} if
-} BD
-/CL { dup 0 exch -1 1 arct} BD
-/RCL { dup 0 exch 1 1 arct} BD
-/RRdict 8 dict D
-RRdict /mtrx matrix put
-/RR {RRdict begin
- /yrad exch D /xrad exch D
- /height exch D /width exch D
- /y exch D /x exch D
- /width width xrad div D /height height yrad div D
- /savematrix mtrx currentmatrix D
- x y translate xrad yrad scale -90 rotate
- 1 0 moveto width RCL width 0 translate -90 rotate
- height CL height 0 translate -90 rotate
- width RCL width 0 translate -90 rotate height CL closepath
- savematrix setmatrix
- end } BD
-/SC {3 {255 div 3 1 roll} repeat setrgbcolor} BD
-/SF {
- F exch get exch scalefont setfont
- (abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890) stringwidth pop div
- currentfont exch scalefont setfont} BD
-/RC {R clip newpath} BD
-/IC {initclip} BD
-/RF {R fill} BD
-/RS {R stroke} BD
-/RRF {RR fill} BD
-/RRS {RR stroke} BD
-/AS {A stroke} BD
-/AF {6 -2 roll 2 copy moveto 6 2 roll A fill} BD
-/PYS {PY stroke} BD
-/PYF {PY eofill} BD
-/NZ {dup 1 lt {pop 1} if} BD
-/DS {
- moveto 1 index stringwidth pop NZ sub
- 1 index length 1 sub NZ div 0
- 3 2 roll ashow} BD
-/DL {moveto lineto stroke} BD
-/S {scale} BD
-/SP {/P save D} BD
-/EP {showpage P restore} BD
-/GS {gsave} BD
-/GR {grestore} BD
-/CM {
- /cmapr 256 array D
- /cmapg 256 array D
- /cmapb 256 array D
- /cmapgray null D
- 3 string exch 0 exch 1 exch 1 sub {
- currentfile 2 index readhexstring pop
- cmapr 2 index 2 index 0 get put
- cmapg 2 index 2 index 1 get put
- cmapb 2 index 2 index 2 get put
- pop pop } for pop
-} BD
-/DII {
- GS
- /imgsave save D
- translate scale
- /imgh exch D
- /imgw exch D
- /imgy exch neg D
- /imgx exch neg D
- /imgstr imgw string D
- /colorimage where {
- pop
- /cimgstr imgw 3 mul string D
- imgw imgh 8 [imgw 0 0 imgh neg imgx imgy] {
- currentfile imgstr readhexstring pop
- 0 1 imgw 1 sub {
- 2 copy get
- cmapr 1 index get
- cimgstr exch 3 index
- 3 mul exch put
- cmapg 1 index get
- cimgstr exch 3 index
- 3 mul 1 add exch put
- cmapb 1 index get
- cimgstr exch 3 index
- 3 mul 2 add exch put
- pop pop } for pop cimgstr
- } false 3 colorimage
- } {
- cmapgray null eq {
- /cmapgray cmapr length array D
- 0 1 cmapr length 1 sub {
- cmapgray exch
- cmapr 1 index get .299 mul
- cmapg 2 index get .587 mul
- cmapb 3 index get .114 mul
- add add cvi put
- } for
- } if
- imgw imgh 8 [imgw 0 0 imgh neg 0 0] {
- currentfile imgstr readhexstring pop
- 0 1 imgw 1 sub {
- imgstr exch 2 copy get
- cmapgray exch get put
- } for
- } image
- } ifelse
- imgsave restore
- GR
-} BD
-/DI {
- GS
- /imgsave save D
- translate scale
- /imgh exch D
- /imgw exch D
- /imgy exch neg D
- /imgx exch neg D
- /imgstr imgw 3 mul string D
- imgw imgh 8 [imgw 0 0 imgh neg imgx imgy] {
- currentfile imgstr readhexstring pop
- } bind false 3 colorimage
- imgsave restore
- GR
-} BD
-%%EndProlog
-%%BeginSetup
-mark {
-%%BeginFeature: ManualFeed false
-1 dict dup /ManualFeed false put setpagedevice
-%%EndFeature
-} stopped {
-%%BeginFeature: *ManualFeed false
- statusdict /manualfeed false put
-%%EndFeature
-} if cleartomark mark {
-%%BeginFeature: PageSize *Letter
-3 dict begin
- /PageSize [612 792] def
- /ImagingBBox null def
- /Policies 1 dict dup/PageSize 3 put def
- currentdict end setpagedevice
-%%EndFeature
-} stopped {
- cleartomark statusdict begin mark {
-%%BeginFeature: *PageSize Letter
- lettertray
-%%EndFeature
- } stopped end
-} if cleartomark
-% now make sure we got what we requested!
-gsave initgraphics clippath pathbbox grestore
-5 dict begin
- 3 -1 roll /yoff exch def 3 -1 roll /xoff exch def
- yoff sub /h exch def xoff sub /w exch def
- w 576 lt h 756 lt or {
- w 2 div xoff add h 2 div yoff add translate
- w xoff 2 mul add 612 div
- h yoff 2 mul add 792 div
- 2 copy gt {exch} if pop dup scale
- -306 -396 translate
- } if
-end
-
-90 rotate 0 -612 translate
-%%EndSetup
-
-%%Page: 1 1
-SP
-IC
-15 597 762 -537 RC
-255 255 200 SC
-32 420 175 -62 RF
-255 255 0 SC
-32 420 174 -61 RS
-255 255 200 SC
-31 421 177 -28 RF
-255 255 0 SC
-31 421 176 -27 RS
-255 255 200 SC
-32 420 175 -17 RF
-0 0 0 SC
-% Font[Times, 0, 10]
-381 10 4 SF
-(<<Interface>>) 65 87 406 DS
-255 255 200 SC
-32 407 175 -15 RF
-0 0 0 SC
-% Font[Dialog, 0, 9]
-340 9 0 SF
-(AliPHOSClusterizer) 77 81 396 DS
-255 255 200 SC
-31 394 177 -37 RF
-255 255 0 SC
-31 394 176 -36 RS
-0 0 0 SC
-(public int GetNumberOfClustersFound\(\)) 168 32 383 DS
-(public void MakeClusters\(\)) 111 32 373 DS
-255 255 255 SC
-288 424 177 -164 RF
-0 0 0 SC
-288 424 176 -163 RS
-255 255 255 SC
-287 425 179 -16 RF
-0 0 0 SC
-287 425 178 -15 RS
-0 0 0 SC
-(AliPHOSClusterizerv1) 87 333 414 DS
-255 255 255 SC
-287 410 179 -66 RF
-0 0 0 SC
-287 410 178 -65 RS
-0 0 0 SC
-(private int fNumberOfEmcClusters = 0) 157 288 399 DS
-(private int fNumberOfPpsdClusters = 0) 161 288 389 DS
-(private fEmcClusteringThreshold = 0) 152 288 379 DS
-(private fEmcEnergyThreshold = 0) 136 288 369 DS
-(private fPpsdClusteringThreshold = 0) 156 288 359 DS
-(private fPpsdEnergyThreshold = 0) 140 288 349 DS
-255 255 255 SC
-287 345 179 -86 RF
-0 0 0 SC
-287 345 178 -85 RS
-0 0 0 SC
-(public bool AreNeighbours\(\)) 122 288 334 DS
-(public void FillandSort\(\)) 98 288 324 DS
-(public void IsInEmc\(\)) 86 288 314 DS
-(public void PrintParameters\(\)) 115 288 304 DS
-(public void SetEmcClusteringThreshold\(\)) 169 288 294 DS
-(public void SetEmcEnergyThreshold\(\)) 153 288 284 DS
-(public void SetPpsdClusteringThreshold\(\)) 173 288 274 DS
-(public void SetPpsdEnergyThreshold\(\)) 157 288 264 DS
-255 255 255 SC
-352 560 114 -68 RF
-0 0 0 SC
-352 560 113 -67 RS
-255 255 255 SC
-351 561 116 -16 RF
-0 0 0 SC
-351 561 115 -15 RS
-0 0 0 SC
-(AliPHOSDigit) 53 382 550 DS
-255 255 255 SC
-351 546 116 -28 RF
-0 0 0 SC
-351 546 115 -27 RS
-0 0 0 SC
-(private fEnergy = 0) 77 352 535 DS
-(private int fId = 0) 72 352 525 DS
-255 255 255 SC
-351 519 116 -28 RF
-0 0 0 SC
-351 519 115 -27 RS
-0 0 0 SC
-(public float GetEnergy\(\)) 97 352 508 DS
-(public int GetId\(\)) 71 352 498 DS
-255 255 255 SC
-558 424 145 -88 RF
-0 0 0 SC
-558 424 144 -87 RS
-255 255 255 SC
-557 425 147 -16 RF
-0 0 0 SC
-557 425 146 -15 RS
-0 0 0 SC
-(AliPHOSGeometry) 72 594 414 DS
-255 255 255 SC
-557 410 147 -18 RF
-0 0 0 SC
-557 410 146 -17 RS
-0 0 0 SC
-(private many data) 71 558 399 DS
-255 255 255 SC
-557 393 147 -58 RF
-0 0 0 SC
-557 393 146 -57 RS
-0 0 0 SC
-(public void IsInitialized\(\)) 101 558 382 DS
-(public void RelPosInAlice\(\)) 109 558 372 DS
-(public void RelPosInModule\(\)) 122 558 362 DS
-(public void RelToAbsNumbering\(\)) 145 558 352 DS
-(public void AbsToRelNumbering\(\)) 145 558 342 DS
-255 255 255 SC
-637 333 47 -16 RF
-200 60 60 SC
-637 333 46 -15 RS
-0 0 255 SC
-% Font[dialog, 0, 10]
-383 10 8 SF
-(singleton) 45 638 320 DS
-255 255 200 SC
-288 196 115 -81 RF
-255 255 0 SC
-288 196 114 -80 RS
-255 255 200 SC
-287 197 117 -28 RF
-255 255 0 SC
-287 197 116 -27 RS
-255 255 200 SC
-288 196 115 -17 RF
-0 0 0 SC
-% Font[Times, 0, 10]
-381 10 4 SF
-(<<Interface>>) 65 313 182 DS
-255 255 200 SC
-288 183 115 -15 RF
-0 0 0 SC
-% Font[Dialog, 0, 9]
-340 9 0 SF
-(AliPHOSCluster) 62 314 172 DS
-255 255 200 SC
-287 170 117 -56 RF
-255 255 0 SC
-287 170 116 -55 RS
-0 0 0 SC
-(public void AddDigit\(\)) 95 288 159 DS
-(public int GetMultiplicity\(\)) 107 288 149 DS
-(public void GetDigitsList\(\)) 107 288 139 DS
-(public void Print\(\)) 74 288 129 DS
-(public void GetRelPosition\(\)) 115 288 119 DS
-255 255 255 SC
-32 319 166 -204 RF
-0 0 0 SC
-32 319 165 -203 RS
-255 255 255 SC
-31 320 168 -16 RF
-0 0 0 SC
-31 320 167 -15 RS
-0 0 0 SC
-(AliPHOSEmcCluster) 78 76 309 DS
-255 255 255 SC
-31 305 168 -66 RF
-0 0 0 SC
-31 305 167 -65 RS
-0 0 0 SC
-(private fDigitsList = 0) 87 32 294 DS
-(private fEnergy = 0) 77 32 284 DS
-(private int fMultiplicity = 0) 108 32 274 DS
-(private fDelta = 4.) 73 32 264 DS
-(private fLocMaxCut = 0.6) 107 32 254 DS
-(public fW0 = 4.) 67 32 244 DS
-255 255 255 SC
-31 240 168 -126 RF
-0 0 0 SC
-31 240 167 -125 RS
-0 0 0 SC
-(public bool AreNeighbours\(\)) 122 32 229 DS
-(public void Compare\(\)) 94 32 219 DS
-(public void GetAbsPosition\(\)) 120 32 209 DS
-(public float GetDispersion\(\)) 114 32 199 DS
-(public void GetElipsAxis\(\)) 107 32 189 DS
-(public float GetMaximalEnergy\(\)) 131 32 179 DS
-(public void GetMultiplicityAtLevel\(\)) 142 32 169 DS
-(public void GetNumberOfLocalMaxima\(\)) 166 32 159 DS
-(public void GetRelPosition\(\)) 115 32 149 DS
-(public void GetTotalEnergy\(\)) 118 32 139 DS
-(public void SetLocalMaxCut\(\)) 121 32 129 DS
-(public void SetLowWeightCut\(\)) 129 32 119 DS
-255 255 255 SC
-456 199 137 -84 RF
-0 0 0 SC
-456 199 136 -83 RS
-255 255 255 SC
-455 200 139 -16 RF
-0 0 0 SC
-455 200 138 -15 RS
-0 0 0 SC
-(AliPHOSPpsdCluster) 82 483 189 DS
-255 255 255 SC
-455 185 139 -36 RF
-0 0 0 SC
-455 185 138 -35 RS
-0 0 0 SC
-(public fDigitsList = 0) 87 456 174 DS
-(private fEnergy = 0) 77 456 164 DS
-(private int fMultiplicity = 0) 108 456 154 DS
-255 255 255 SC
-455 150 139 -36 RF
-0 0 0 SC
-455 150 138 -35 RS
-0 0 0 SC
-(public int Compare\(\)) 87 456 139 DS
-(public void GetRelPosition\(\)) 115 456 129 DS
-(public bool GetUp\(\)) 85 456 119 DS
-0 0 0 SC
-false 295 424 295 549 352 549 3 PYS
-0 0 0 SC
-339 542 351 549 DL
-339 556 351 549 DL
-(use) 14 303 455 DS
-(0..*) 16 329 560 DS
-0 0 0 SC
-false 465 420 558 420 2 PYS
-0 0 0 SC
-545 413 557 420 DL
-545 427 557 420 DL
-(use) 14 493 401 DS
-0 0 0 SC
-199 157 204 157 DL
-209 157 214 157 DL
-219 157 224 157 DL
-229 157 234 157 DL
-239 157 244 157 DL
-249 157 254 157 DL
-259 157 264 157 DL
-269 157 274 157 DL
-279 157 284 157 DL
-255 255 255 SC
-false 286 157 274 150 274 164 3 PYF
-0 0 0 SC
-true 286 157 274 150 274 164 3 PYS
-0 0 0 SC
-455 157 450 157 DL
-445 157 440 157 DL
-435 157 430 157 DL
-425 157 420 157 DL
-415 157 410 157 DL
-405 157 404 157 DL
-255 255 255 SC
-false 405 157 417 164 417 150 3 PYF
-0 0 0 SC
-true 405 157 417 164 417 150 3 PYS
-0 0 0 SC
-288 413 283 413 DL
-278 413 273 413 DL
-268 413 263 413 DL
-258 413 253 413 DL
-248 413 243 413 DL
-238 413 233 413 DL
-228 413 223 413 DL
-218 413 213 413 DL
-208 413 207 413 DL
-255 255 255 SC
-false 208 413 220 420 220 406 3 PYF
-0 0 0 SC
-true 208 413 220 420 220 406 3 PYS
-false 288 309 198 309 2 PYS
-211 316 199 309 DL
-211 302 199 309 DL
-(create) 22 242 320 DS
-(0..*) 16 205 290 DS
-false 465 301 527 301 527 199 3 PYS
-520 212 527 200 DL
-534 212 527 200 DL
-(create) 22 489 282 DS
-(0..*) 16 534 210 DS
-IC
--29985 30597 60000 -60000 RC
-% Font[TimesRoman, 0, 9]
-314 9 4 SF
-(Clusterisation) 48 25 40 DS
-% Font[TimesRoman, 0, 9]
-314 9 4 SF
-(Page 1) 23 737 40 DS
-EP
-%%Trailer
-%%Pages: 1
-%%EOF
+++ /dev/null
-%!PS-Adobe-3.0
-%%Title: reconstructioner
-%%Pages: (atend)
-%%PageOrder: Ascend
-%%DocumentFonts: Helvetica Helvetica-Bold
-%%+Helvetica-Oblique Helvetica-BoldOblique
-%%+Times-Roman Times-Bold Times-Italic Times-BoldItalic
-%%+Courier Courier-Bold Courier-Oblique Courier-BoldOblique
-%%EndComments
-%%BeginProlog
-/BD {bind def} bind def
-/D {def} BD
-/ISOF {
- dup findfont dup length 1 add dict begin {
- 1 index /FID eq {pop pop} {D} ifelse
- } forall /Encoding ISOLatin1Encoding D
- currentdict end definefont
-} BD
-/F [
- /Helvetica ISOF
- /Helvetica-Bold ISOF
- /Helvetica-Oblique ISOF
- /Helvetica-BoldOblique ISOF
- /Times-Roman ISOF
- /Times-Bold ISOF
- /Times-Italic ISOF
- /Times-BoldItalic ISOF
- /Courier ISOF
- /Courier-Bold ISOF
- /Courier-Oblique ISOF
- /Courier-BoldOblique ISOF
-] D
-/R {4 2 roll moveto 1 index 0 rlineto
- 0 exch rlineto neg 0 rlineto closepath} BD
-/Adict 8 dict D
-Adict /mtrx matrix put
-/A { Adict begin
- /endangle exch D /startangle exch D
- /yrad exch D /xrad exch D
- /y exch D /x exch D
- /savematrix mtrx currentmatrix D
- x y translate xrad yrad scale
- 0 0 1 startangle endangle arc
- savematrix setmatrix
- end } BD
-/PY {
- dup 1 ge {3 1 roll moveto} if
- -1 2 {pop lineto} for
- {closepath} if
-} BD
-/CL { dup 0 exch -1 1 arct} BD
-/RCL { dup 0 exch 1 1 arct} BD
-/RRdict 8 dict D
-RRdict /mtrx matrix put
-/RR {RRdict begin
- /yrad exch D /xrad exch D
- /height exch D /width exch D
- /y exch D /x exch D
- /width width xrad div D /height height yrad div D
- /savematrix mtrx currentmatrix D
- x y translate xrad yrad scale -90 rotate
- 1 0 moveto width RCL width 0 translate -90 rotate
- height CL height 0 translate -90 rotate
- width RCL width 0 translate -90 rotate height CL closepath
- savematrix setmatrix
- end } BD
-/SC {3 {255 div 3 1 roll} repeat setrgbcolor} BD
-/SF {
- F exch get exch scalefont setfont
- (abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890) stringwidth pop div
- currentfont exch scalefont setfont} BD
-/RC {R clip newpath} BD
-/IC {initclip} BD
-/RF {R fill} BD
-/RS {R stroke} BD
-/RRF {RR fill} BD
-/RRS {RR stroke} BD
-/AS {A stroke} BD
-/AF {6 -2 roll 2 copy moveto 6 2 roll A fill} BD
-/PYS {PY stroke} BD
-/PYF {PY eofill} BD
-/NZ {dup 1 lt {pop 1} if} BD
-/DS {
- moveto 1 index stringwidth pop NZ sub
- 1 index length 1 sub NZ div 0
- 3 2 roll ashow} BD
-/DL {moveto lineto stroke} BD
-/S {scale} BD
-/SP {/P save D} BD
-/EP {showpage P restore} BD
-/GS {gsave} BD
-/GR {grestore} BD
-/CM {
- /cmapr 256 array D
- /cmapg 256 array D
- /cmapb 256 array D
- /cmapgray null D
- 3 string exch 0 exch 1 exch 1 sub {
- currentfile 2 index readhexstring pop
- cmapr 2 index 2 index 0 get put
- cmapg 2 index 2 index 1 get put
- cmapb 2 index 2 index 2 get put
- pop pop } for pop
-} BD
-/DII {
- GS
- /imgsave save D
- translate scale
- /imgh exch D
- /imgw exch D
- /imgy exch neg D
- /imgx exch neg D
- /imgstr imgw string D
- /colorimage where {
- pop
- /cimgstr imgw 3 mul string D
- imgw imgh 8 [imgw 0 0 imgh neg imgx imgy] {
- currentfile imgstr readhexstring pop
- 0 1 imgw 1 sub {
- 2 copy get
- cmapr 1 index get
- cimgstr exch 3 index
- 3 mul exch put
- cmapg 1 index get
- cimgstr exch 3 index
- 3 mul 1 add exch put
- cmapb 1 index get
- cimgstr exch 3 index
- 3 mul 2 add exch put
- pop pop } for pop cimgstr
- } false 3 colorimage
- } {
- cmapgray null eq {
- /cmapgray cmapr length array D
- 0 1 cmapr length 1 sub {
- cmapgray exch
- cmapr 1 index get .299 mul
- cmapg 2 index get .587 mul
- cmapb 3 index get .114 mul
- add add cvi put
- } for
- } if
- imgw imgh 8 [imgw 0 0 imgh neg 0 0] {
- currentfile imgstr readhexstring pop
- 0 1 imgw 1 sub {
- imgstr exch 2 copy get
- cmapgray exch get put
- } for
- } image
- } ifelse
- imgsave restore
- GR
-} BD
-/DI {
- GS
- /imgsave save D
- translate scale
- /imgh exch D
- /imgw exch D
- /imgy exch neg D
- /imgx exch neg D
- /imgstr imgw 3 mul string D
- imgw imgh 8 [imgw 0 0 imgh neg imgx imgy] {
- currentfile imgstr readhexstring pop
- } bind false 3 colorimage
- imgsave restore
- GR
-} BD
-%%EndProlog
-%%BeginSetup
-mark {
-%%BeginFeature: ManualFeed false
-1 dict dup /ManualFeed false put setpagedevice
-%%EndFeature
-} stopped {
-%%BeginFeature: *ManualFeed false
- statusdict /manualfeed false put
-%%EndFeature
-} if cleartomark mark {
-%%BeginFeature: PageSize *Letter
-3 dict begin
- /PageSize [612 792] def
- /ImagingBBox null def
- /Policies 1 dict dup/PageSize 3 put def
- currentdict end setpagedevice
-%%EndFeature
-} stopped {
- cleartomark statusdict begin mark {
-%%BeginFeature: *PageSize Letter
- lettertray
-%%EndFeature
- } stopped end
-} if cleartomark
-% now make sure we got what we requested!
-gsave initgraphics clippath pathbbox grestore
-5 dict begin
- 3 -1 roll /yoff exch def 3 -1 roll /xoff exch def
- yoff sub /h exch def xoff sub /w exch def
- w 576 lt h 756 lt or {
- w 2 div xoff add h 2 div yoff add translate
- w xoff 2 mul add 612 div
- h yoff 2 mul add 792 div
- 2 copy gt {exch} if pop dup scale
- -306 -396 translate
- } if
-end
-
-%%EndSetup
-
-%%Page: 1 1
-SP
-IC
-15 777 582 -717 RC
-255 255 255 SC
-32 640 118 -86 RF
-0 0 0 SC
-32 640 117 -85 RS
-255 255 255 SC
-31 641 120 -16 RF
-0 0 0 SC
-31 641 119 -15 RS
-% Font[Dialog, 0, 9]
-340 9 0 SF
-(AliPHOSReconstructioner) 103 39 630 DS
-255 255 255 SC
-31 626 120 -37 RF
-0 0 0 SC
-31 626 119 -36 RS
-255 255 255 SC
-31 590 120 -37 RF
-0 0 0 SC
-31 590 119 -36 RS
-255 255 200 SC
-224 648 175 -62 RF
-255 255 0 SC
-224 648 174 -61 RS
-255 255 200 SC
-223 649 177 -28 RF
-255 255 0 SC
-223 649 176 -27 RS
-255 255 200 SC
-224 648 175 -17 RF
-0 0 0 SC
-% Font[Times, 0, 10]
-381 10 4 SF
-(<<Interface>>) 65 279 634 DS
-255 255 200 SC
-224 635 175 -15 RF
-0 0 0 SC
-% Font[Dialog, 0, 9]
-340 9 0 SF
-(AliPHOSClusterizer) 77 273 624 DS
-255 255 200 SC
-223 622 177 -37 RF
-255 255 0 SC
-223 622 176 -36 RS
-0 0 0 SC
-(public int GetNumberOfClustersFound\(\)) 168 224 611 DS
-(public void MakeClusters\(\)) 111 224 601 DS
-255 255 200 SC
-224 576 121 -62 RF
-255 255 0 SC
-224 576 120 -61 RS
-255 255 200 SC
-223 577 123 -28 RF
-255 255 0 SC
-223 577 122 -27 RS
-255 255 200 SC
-224 576 121 -17 RF
-0 0 0 SC
-% Font[Times, 0, 10]
-381 10 4 SF
-(<<Interface>>) 65 252 562 DS
-255 255 200 SC
-224 563 121 -15 RF
-0 0 0 SC
-% Font[Dialog, 0, 9]
-340 9 0 SF
-(AliPHOSSubTracker) 79 245 552 DS
-255 255 200 SC
-223 550 123 -37 RF
-255 255 0 SC
-223 550 122 -36 RS
-0 0 0 SC
-(public void MakeSubTracks\(\)) 121 224 539 DS
-255 255 255 SC
-40 752 121 -62 RF
-0 0 0 SC
-40 752 120 -61 RS
-255 255 255 SC
-39 753 123 -28 RF
-0 0 0 SC
-39 753 122 -27 RS
-255 255 255 SC
-40 752 121 -17 RF
-0 0 0 SC
-% Font[Times, 0, 10]
-381 10 4 SF
-(<<Interface>>) 65 68 738 DS
-255 255 255 SC
-40 739 121 -15 RF
-0 0 0 SC
-% Font[Dialog, 0, 9]
-340 9 0 SF
-(AliReconstructioner) 81 60 728 DS
-255 255 255 SC
-39 726 123 -37 RF
-0 0 0 SC
-39 726 122 -36 RS
-(public void MakeClusters\(\)) 111 40 715 DS
-(public void MakeSubTracks\(\)) 121 40 705 DS
-93 640 93 645 DL
-93 650 93 655 DL
-93 660 93 665 DL
-93 670 93 675 DL
-93 680 93 685 DL
-255 255 255 SC
-false 93 689 100 677 86 677 3 PYF
-0 0 0 SC
-true 93 689 100 677 86 677 3 PYS
-false 150 616 224 616 2 PYS
-255 255 255 SC
-false 150 616 160 621 170 616 160 611 4 PYF
-0 0 0 SC
-true 150 616 160 621 170 616 160 611 4 PYS
-(fClusterizer) 47 164 622 DS
-false 150 569 224 569 2 PYS
-255 255 255 SC
-false 150 569 160 574 170 569 160 564 4 PYF
-0 0 0 SC
-true 150 569 160 574 170 569 160 564 4 PYS
-(fSubTracker) 49 163 575 DS
-IC
--29985 30777 60000 -60000 RC
-% Font[TimesRoman, 0, 9]
-314 9 4 SF
-(reconstructioner) 56 25 40 DS
-% Font[TimesRoman, 0, 9]
-314 9 4 SF
-(Page 1) 23 557 40 DS
-EP
-%%Trailer
-%%Pages: 1
-%%EOF
+++ /dev/null
-%!PS-Adobe-3.0
-%%Title: Clusterisation
-%%Pages: (atend)
-%%PageOrder: Ascend
-%%DocumentFonts: Helvetica Helvetica-Bold
-%%+Helvetica-Oblique Helvetica-BoldOblique
-%%+Times-Roman Times-Bold Times-Italic Times-BoldItalic
-%%+Courier Courier-Bold Courier-Oblique Courier-BoldOblique
-%%EndComments
-%%BeginProlog
-/BD {bind def} bind def
-/D {def} BD
-/ISOF {
- dup findfont dup length 1 add dict begin {
- 1 index /FID eq {pop pop} {D} ifelse
- } forall /Encoding ISOLatin1Encoding D
- currentdict end definefont
-} BD
-/F [
- /Helvetica ISOF
- /Helvetica-Bold ISOF
- /Helvetica-Oblique ISOF
- /Helvetica-BoldOblique ISOF
- /Times-Roman ISOF
- /Times-Bold ISOF
- /Times-Italic ISOF
- /Times-BoldItalic ISOF
- /Courier ISOF
- /Courier-Bold ISOF
- /Courier-Oblique ISOF
- /Courier-BoldOblique ISOF
-] D
-/R {4 2 roll moveto 1 index 0 rlineto
- 0 exch rlineto neg 0 rlineto closepath} BD
-/Adict 8 dict D
-Adict /mtrx matrix put
-/A { Adict begin
- /endangle exch D /startangle exch D
- /yrad exch D /xrad exch D
- /y exch D /x exch D
- /savematrix mtrx currentmatrix D
- x y translate xrad yrad scale
- 0 0 1 startangle endangle arc
- savematrix setmatrix
- end } BD
-/PY {
- dup 1 ge {3 1 roll moveto} if
- -1 2 {pop lineto} for
- {closepath} if
-} BD
-/CL { dup 0 exch -1 1 arct} BD
-/RCL { dup 0 exch 1 1 arct} BD
-/RRdict 8 dict D
-RRdict /mtrx matrix put
-/RR {RRdict begin
- /yrad exch D /xrad exch D
- /height exch D /width exch D
- /y exch D /x exch D
- /width width xrad div D /height height yrad div D
- /savematrix mtrx currentmatrix D
- x y translate xrad yrad scale -90 rotate
- 1 0 moveto width RCL width 0 translate -90 rotate
- height CL height 0 translate -90 rotate
- width RCL width 0 translate -90 rotate height CL closepath
- savematrix setmatrix
- end } BD
-/SC {3 {255 div 3 1 roll} repeat setrgbcolor} BD
-/SF {
- F exch get exch scalefont setfont
- (abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890) stringwidth pop div
- currentfont exch scalefont setfont} BD
-/RC {R clip newpath} BD
-/IC {initclip} BD
-/RF {R fill} BD
-/RS {R stroke} BD
-/RRF {RR fill} BD
-/RRS {RR stroke} BD
-/AS {A stroke} BD
-/AF {6 -2 roll 2 copy moveto 6 2 roll A fill} BD
-/PYS {PY stroke} BD
-/PYF {PY eofill} BD
-/NZ {dup 1 lt {pop 1} if} BD
-/DS {
- moveto 1 index stringwidth pop NZ sub
- 1 index length 1 sub NZ div 0
- 3 2 roll ashow} BD
-/DL {moveto lineto stroke} BD
-/S {scale} BD
-/SP {/P save D} BD
-/EP {showpage P restore} BD
-/GS {gsave} BD
-/GR {grestore} BD
-/CM {
- /cmapr 256 array D
- /cmapg 256 array D
- /cmapb 256 array D
- /cmapgray null D
- 3 string exch 0 exch 1 exch 1 sub {
- currentfile 2 index readhexstring pop
- cmapr 2 index 2 index 0 get put
- cmapg 2 index 2 index 1 get put
- cmapb 2 index 2 index 2 get put
- pop pop } for pop
-} BD
-/DII {
- GS
- /imgsave save D
- translate scale
- /imgh exch D
- /imgw exch D
- /imgy exch neg D
- /imgx exch neg D
- /imgstr imgw string D
- /colorimage where {
- pop
- /cimgstr imgw 3 mul string D
- imgw imgh 8 [imgw 0 0 imgh neg imgx imgy] {
- currentfile imgstr readhexstring pop
- 0 1 imgw 1 sub {
- 2 copy get
- cmapr 1 index get
- cimgstr exch 3 index
- 3 mul exch put
- cmapg 1 index get
- cimgstr exch 3 index
- 3 mul 1 add exch put
- cmapb 1 index get
- cimgstr exch 3 index
- 3 mul 2 add exch put
- pop pop } for pop cimgstr
- } false 3 colorimage
- } {
- cmapgray null eq {
- /cmapgray cmapr length array D
- 0 1 cmapr length 1 sub {
- cmapgray exch
- cmapr 1 index get .299 mul
- cmapg 2 index get .587 mul
- cmapb 3 index get .114 mul
- add add cvi put
- } for
- } if
- imgw imgh 8 [imgw 0 0 imgh neg 0 0] {
- currentfile imgstr readhexstring pop
- 0 1 imgw 1 sub {
- imgstr exch 2 copy get
- cmapgray exch get put
- } for
- } image
- } ifelse
- imgsave restore
- GR
-} BD
-/DI {
- GS
- /imgsave save D
- translate scale
- /imgh exch D
- /imgw exch D
- /imgy exch neg D
- /imgx exch neg D
- /imgstr imgw 3 mul string D
- imgw imgh 8 [imgw 0 0 imgh neg imgx imgy] {
- currentfile imgstr readhexstring pop
- } bind false 3 colorimage
- imgsave restore
- GR
-} BD
-%%EndProlog
-%%BeginSetup
-mark {
-%%BeginFeature: ManualFeed false
-1 dict dup /ManualFeed false put setpagedevice
-%%EndFeature
-} stopped {
-%%BeginFeature: *ManualFeed false
- statusdict /manualfeed false put
-%%EndFeature
-} if cleartomark mark {
-%%BeginFeature: PageSize *Letter
-3 dict begin
- /PageSize [612 792] def
- /ImagingBBox null def
- /Policies 1 dict dup/PageSize 3 put def
- currentdict end setpagedevice
-%%EndFeature
-} stopped {
- cleartomark statusdict begin mark {
-%%BeginFeature: *PageSize Letter
- lettertray
-%%EndFeature
- } stopped end
-} if cleartomark
-% now make sure we got what we requested!
-gsave initgraphics clippath pathbbox grestore
-5 dict begin
- 3 -1 roll /yoff exch def 3 -1 roll /xoff exch def
- yoff sub /h exch def xoff sub /w exch def
- w 576 lt h 756 lt or {
- w 2 div xoff add h 2 div yoff add translate
- w xoff 2 mul add 612 div
- h yoff 2 mul add 792 div
- 2 copy gt {exch} if pop dup scale
- -306 -396 translate
- } if
-end
-
-90 rotate 0 -612 translate
-%%EndSetup
-
-%%Page: 1 1
-SP
-IC
-15 597 762 -537 RC
-255 255 200 SC
-32 420 175 -62 RF
-255 255 0 SC
-32 420 174 -61 RS
-255 255 200 SC
-31 421 177 -28 RF
-255 255 0 SC
-31 421 176 -27 RS
-255 255 200 SC
-32 420 175 -17 RF
-0 0 0 SC
-% Font[Times, 0, 10]
-381 10 4 SF
-(<<Interface>>) 65 87 406 DS
-255 255 200 SC
-32 407 175 -15 RF
-0 0 0 SC
-% Font[Dialog, 0, 9]
-340 9 0 SF
-(AliPHOSClusterizer) 77 81 396 DS
-255 255 200 SC
-31 394 177 -37 RF
-255 255 0 SC
-31 394 176 -36 RS
-0 0 0 SC
-(public int GetNumberOfClustersFound\(\)) 168 32 383 DS
-(public void MakeClusters\(\)) 111 32 373 DS
-0 255 255 SC
-288 424 177 -164 RF
-288 424 176 -163 RS
-255 255 255 SC
-287 425 179 -16 RF
-0 0 0 SC
-287 425 178 -15 RS
-(AliPHOSClusterizerv1) 87 333 414 DS
-255 255 255 SC
-287 410 179 -66 RF
-0 0 0 SC
-287 410 178 -65 RS
-(private int fNumberOfEmcClusters = 0) 157 288 399 DS
-(private int fNumberOfPpsdClusters = 0) 161 288 389 DS
-(private float fEmcClusteringThreshold = 0) 173 288 379 DS
-(private float fEmcEnergyThreshold = 0) 157 288 369 DS
-(private float fPpsdClusteringThreshold = 0) 177 288 359 DS
-(private float fPpsdEnergyThreshold = 0) 161 288 349 DS
-255 255 255 SC
-287 345 179 -86 RF
-0 0 0 SC
-287 345 178 -85 RS
-(public bool AreNeighbours\(\)) 122 288 334 DS
-(public void FillandSort\(\)) 98 288 324 DS
-(public void IsInEmc\(\)) 86 288 314 DS
-(public void PrintParameters\(\)) 115 288 304 DS
-(public void SetEmcClusteringThreshold\(\)) 169 288 294 DS
-(public void SetEmcEnergyThreshold\(\)) 153 288 284 DS
-(public void SetPpsdClusteringThreshold\(\)) 173 288 274 DS
-(public void SetPpsdEnergyThreshold\(\)) 157 288 264 DS
-0 255 255 SC
-351 561 116 -5 RF
-351 561 115 -4 RS
-255 255 255 SC
-351 557 116 -16 RF
-0 0 0 SC
-351 557 115 -15 RS
-(AliPHOSDigit) 53 382 546 DS
-255 255 255 SC
-351 542 116 -26 RF
-0 0 0 SC
-351 542 115 -25 RS
-(private float fEnergy = 0) 98 352 531 DS
-(private int fId = 0) 72 352 521 DS
-255 255 255 SC
-351 517 116 -26 RF
-0 0 0 SC
-351 517 115 -25 RS
-(public float GetEnergy\(\)) 97 352 506 DS
-(public int GetId\(\)) 71 352 496 DS
-false 295 424 295 549 351 549 3 PYS
-338 542 350 549 DL
-338 556 350 549 DL
-(use) 14 303 455 DS
-(0..*) 16 328 560 DS
-0 255 255 SC
-557 425 147 -5 RF
-557 425 146 -4 RS
-255 255 255 SC
-557 421 147 -16 RF
-0 0 0 SC
-557 421 146 -15 RS
-(AliPHOSGeometry) 72 594 410 DS
-255 255 255 SC
-557 406 147 -16 RF
-0 0 0 SC
-557 406 146 -15 RS
-(private many data) 74 558 395 DS
-255 255 255 SC
-557 391 147 -56 RF
-0 0 0 SC
-557 391 146 -55 RS
-(public void IsInitialized\(\)) 101 558 380 DS
-(public void RelPosInAlice\(\)) 109 558 370 DS
-(public void RelPosInModule\(\)) 122 558 360 DS
-(public void RelToAbsNumbering\(\)) 145 558 350 DS
-(public void AbsToRelNumbering\(\)) 145 558 340 DS
-false 465 420 557 420 2 PYS
-544 413 556 420 DL
-544 427 556 420 DL
-(use) 14 493 401 DS
-255 255 255 SC
-663 333 47 -16 RF
-200 60 60 SC
-663 333 46 -15 RS
-255 175 175 SC
-664 332 45 -12 RF
-0 0 255 SC
-% Font[dialog, 0, 10]
-383 10 8 SF
-(singleton) 45 664 320 DS
-255 255 200 SC
-288 196 115 -81 RF
-255 255 0 SC
-288 196 114 -80 RS
-255 255 200 SC
-287 197 117 -28 RF
-255 255 0 SC
-287 197 116 -27 RS
-255 255 200 SC
-288 196 115 -17 RF
-0 0 0 SC
-% Font[Times, 0, 10]
-381 10 4 SF
-(<<Interface>>) 65 313 182 DS
-255 255 200 SC
-288 183 115 -15 RF
-0 0 0 SC
-% Font[Dialog, 0, 9]
-340 9 0 SF
-(AliPHOSCluster) 62 314 172 DS
-255 255 200 SC
-287 170 117 -56 RF
-255 255 0 SC
-287 170 116 -55 RS
-0 0 0 SC
-(public void AddDigit\(\)) 95 288 159 DS
-(public int GetMultiplicity\(\)) 107 288 149 DS
-(public void GetDigitsList\(\)) 107 288 139 DS
-(public void Print\(\)) 74 288 129 DS
-(public void GetRelPosition\(\)) 115 288 119 DS
-false 343 260 343 196 2 PYS
-336 209 343 197 DL
-350 209 343 197 DL
-(create) 22 317 221 DS
-(0..*) 16 350 207 DS
-0 255 255 SC
-32 319 166 -204 RF
-32 319 165 -203 RS
-255 255 255 SC
-31 320 168 -16 RF
-0 0 0 SC
-31 320 167 -15 RS
-(AliPHOSEmcCluster) 78 76 309 DS
-255 255 255 SC
-31 305 168 -66 RF
-0 0 0 SC
-31 305 167 -65 RS
-(private DigitsList * fDigitsList = 0) 137 32 294 DS
-(private float fEnergy = 0) 98 32 284 DS
-(private int fMultiplicity = 0) 108 32 274 DS
-(private float fDelta = 4.) 94 32 264 DS
-(private float fLocMaxCut = 0.6) 128 32 254 DS
-(public float fW0 = 4.) 88 32 244 DS
-255 255 255 SC
-31 240 168 -126 RF
-0 0 0 SC
-31 240 167 -125 RS
-(public bool AreNeighbours\(\)) 122 32 229 DS
-(public void Compare\(\)) 94 32 219 DS
-(public void GetAbsPosition\(\)) 120 32 209 DS
-(public float GetDispersion\(\)) 114 32 199 DS
-(public void GetElipsAxis\(\)) 107 32 189 DS
-(public float GetMaximalEnergy\(\)) 131 32 179 DS
-(public void GetMultiplicityAtLevel\(\)) 142 32 169 DS
-(public void GetNumberOfLocalMaxima\(\)) 166 32 159 DS
-(public void GetRelPosition\(\)) 115 32 149 DS
-(public void GetTotalEnergy\(\)) 118 32 139 DS
-(public void SetLocalMaxCut\(\)) 121 32 129 DS
-(public void SetLowWeightCut\(\)) 129 32 119 DS
-199 157 204 157 DL
-209 157 214 157 DL
-219 157 224 157 DL
-229 157 234 157 DL
-239 157 244 157 DL
-249 157 254 157 DL
-259 157 264 157 DL
-269 157 274 157 DL
-279 157 284 157 DL
-255 255 255 SC
-false 286 157 274 150 274 164 3 PYF
-0 0 0 SC
-true 286 157 274 150 274 164 3 PYS
-0 255 255 SC
-456 199 137 -84 RF
-456 199 136 -83 RS
-255 255 255 SC
-455 200 139 -16 RF
-0 0 0 SC
-455 200 138 -15 RS
-(AliPHOSPpsdCluster) 82 483 189 DS
-255 255 255 SC
-455 185 139 -36 RF
-0 0 0 SC
-455 185 138 -35 RS
-(public DigitsList fDigitsList = 0) 127 456 174 DS
-(private float fEnergy = 0) 98 456 164 DS
-(private int fMultiplicity = 0) 108 456 154 DS
-255 255 255 SC
-455 150 139 -36 RF
-0 0 0 SC
-455 150 138 -35 RS
-(public int Compare\(\)) 87 456 139 DS
-(public void GetRelPosition\(\)) 115 456 129 DS
-(public bool GetUp\(\)) 85 456 119 DS
-455 157 450 157 DL
-445 157 440 157 DL
-435 157 430 157 DL
-425 157 420 157 DL
-415 157 410 157 DL
-405 157 404 157 DL
-255 255 255 SC
-false 405 157 417 164 417 150 3 PYF
-0 0 0 SC
-true 405 157 417 164 417 150 3 PYS
-288 413 283 413 DL
-278 413 273 413 DL
-268 413 263 413 DL
-258 413 253 413 DL
-248 413 243 413 DL
-238 413 233 413 DL
-228 413 223 413 DL
-218 413 213 413 DL
-208 413 207 413 DL
-255 255 255 SC
-false 208 413 220 420 220 406 3 PYF
-0 0 0 SC
-true 208 413 220 420 220 406 3 PYS
-IC
--29985 30597 60000 -60000 RC
-% Font[TimesRoman, 0, 9]
-314 9 4 SF
-(Clusterisation) 48 25 40 DS
-% Font[TimesRoman, 0, 9]
-314 9 4 SF
-(Page 1) 23 737 40 DS
-EP
-%%Trailer
-%%Pages: 1
-%%EOF
+++ /dev/null
-%!PS-Adobe-3.0
-%%Title: YS Proposal
-%%Pages: (atend)
-%%PageOrder: Ascend
-%%DocumentFonts: Helvetica Helvetica-Bold
-%%+Helvetica-Oblique Helvetica-BoldOblique
-%%+Times-Roman Times-Bold Times-Italic Times-BoldItalic
-%%+Courier Courier-Bold Courier-Oblique Courier-BoldOblique
-%%EndComments
-%%BeginProlog
-/BD {bind def} bind def
-/D {def} BD
-/ISOF {
- dup findfont dup length 1 add dict begin {
- 1 index /FID eq {pop pop} {D} ifelse
- } forall /Encoding ISOLatin1Encoding D
- currentdict end definefont
-} BD
-/F [
- /Helvetica ISOF
- /Helvetica-Bold ISOF
- /Helvetica-Oblique ISOF
- /Helvetica-BoldOblique ISOF
- /Times-Roman ISOF
- /Times-Bold ISOF
- /Times-Italic ISOF
- /Times-BoldItalic ISOF
- /Courier ISOF
- /Courier-Bold ISOF
- /Courier-Oblique ISOF
- /Courier-BoldOblique ISOF
-] D
-/R {4 2 roll moveto 1 index 0 rlineto
- 0 exch rlineto neg 0 rlineto closepath} BD
-/Adict 8 dict D
-Adict /mtrx matrix put
-/A { Adict begin
- /endangle exch D /startangle exch D
- /yrad exch D /xrad exch D
- /y exch D /x exch D
- /savematrix mtrx currentmatrix D
- x y translate xrad yrad scale
- 0 0 1 startangle endangle arc
- savematrix setmatrix
- end } BD
-/PY {
- dup 1 ge {3 1 roll moveto} if
- -1 2 {pop lineto} for
- {closepath} if
-} BD
-/CL { dup 0 exch -1 1 arct} BD
-/RCL { dup 0 exch 1 1 arct} BD
-/RRdict 8 dict D
-RRdict /mtrx matrix put
-/RR {RRdict begin
- /yrad exch D /xrad exch D
- /height exch D /width exch D
- /y exch D /x exch D
- /width width xrad div D /height height yrad div D
- /savematrix mtrx currentmatrix D
- x y translate xrad yrad scale -90 rotate
- 1 0 moveto width RCL width 0 translate -90 rotate
- height CL height 0 translate -90 rotate
- width RCL width 0 translate -90 rotate height CL closepath
- savematrix setmatrix
- end } BD
-/SC {3 {255 div 3 1 roll} repeat setrgbcolor} BD
-/SF {
- F exch get exch scalefont setfont
- (abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890) stringwidth pop div
- currentfont exch scalefont setfont} BD
-/RC {R clip newpath} BD
-/IC {initclip} BD
-/RF {R fill} BD
-/RS {R stroke} BD
-/RRF {RR fill} BD
-/RRS {RR stroke} BD
-/AS {A stroke} BD
-/AF {6 -2 roll 2 copy moveto 6 2 roll A fill} BD
-/PYS {PY stroke} BD
-/PYF {PY eofill} BD
-/NZ {dup 1 lt {pop 1} if} BD
-/DS {
- moveto 1 index stringwidth pop NZ sub
- 1 index length 1 sub NZ div 0
- 3 2 roll ashow} BD
-/DL {moveto lineto stroke} BD
-/S {scale} BD
-/SP {/P save D} BD
-/EP {showpage P restore} BD
-/GS {gsave} BD
-/GR {grestore} BD
-/CM {
- /cmapr 256 array D
- /cmapg 256 array D
- /cmapb 256 array D
- /cmapgray null D
- 3 string exch 0 exch 1 exch 1 sub {
- currentfile 2 index readhexstring pop
- cmapr 2 index 2 index 0 get put
- cmapg 2 index 2 index 1 get put
- cmapb 2 index 2 index 2 get put
- pop pop } for pop
-} BD
-/DII {
- GS
- /imgsave save D
- translate scale
- /imgh exch D
- /imgw exch D
- /imgy exch neg D
- /imgx exch neg D
- /imgstr imgw string D
- /colorimage where {
- pop
- /cimgstr imgw 3 mul string D
- imgw imgh 8 [imgw 0 0 imgh neg imgx imgy] {
- currentfile imgstr readhexstring pop
- 0 1 imgw 1 sub {
- 2 copy get
- cmapr 1 index get
- cimgstr exch 3 index
- 3 mul exch put
- cmapg 1 index get
- cimgstr exch 3 index
- 3 mul 1 add exch put
- cmapb 1 index get
- cimgstr exch 3 index
- 3 mul 2 add exch put
- pop pop } for pop cimgstr
- } false 3 colorimage
- } {
- cmapgray null eq {
- /cmapgray cmapr length array D
- 0 1 cmapr length 1 sub {
- cmapgray exch
- cmapr 1 index get .299 mul
- cmapg 2 index get .587 mul
- cmapb 3 index get .114 mul
- add add cvi put
- } for
- } if
- imgw imgh 8 [imgw 0 0 imgh neg 0 0] {
- currentfile imgstr readhexstring pop
- 0 1 imgw 1 sub {
- imgstr exch 2 copy get
- cmapgray exch get put
- } for
- } image
- } ifelse
- imgsave restore
- GR
-} BD
-/DI {
- GS
- /imgsave save D
- translate scale
- /imgh exch D
- /imgw exch D
- /imgy exch neg D
- /imgx exch neg D
- /imgstr imgw 3 mul string D
- imgw imgh 8 [imgw 0 0 imgh neg imgx imgy] {
- currentfile imgstr readhexstring pop
- } bind false 3 colorimage
- imgsave restore
- GR
-} BD
-%%EndProlog
-%%BeginSetup
-mark {
-%%BeginFeature: ManualFeed false
-1 dict dup /ManualFeed false put setpagedevice
-%%EndFeature
-} stopped {
-%%BeginFeature: *ManualFeed false
- statusdict /manualfeed false put
-%%EndFeature
-} if cleartomark mark {
-%%BeginFeature: PageSize *Letter
-3 dict begin
- /PageSize [612 792] def
- /ImagingBBox null def
- /Policies 1 dict dup/PageSize 3 put def
- currentdict end setpagedevice
-%%EndFeature
-} stopped {
- cleartomark statusdict begin mark {
-%%BeginFeature: *PageSize Letter
- lettertray
-%%EndFeature
- } stopped end
-} if cleartomark
-% now make sure we got what we requested!
-gsave initgraphics clippath pathbbox grestore
-5 dict begin
- 3 -1 roll /yoff exch def 3 -1 roll /xoff exch def
- yoff sub /h exch def xoff sub /w exch def
- w 576 lt h 756 lt or {
- w 2 div xoff add h 2 div yoff add translate
- w xoff 2 mul add 612 div
- h yoff 2 mul add 792 div
- 2 copy gt {exch} if pop dup scale
- -306 -396 translate
- } if
-end
-
-90 rotate 0 -612 translate
-%%EndSetup
-
-%%Page: 1 1
-SP
-IC
-15 597 762 -537 RC
-255 255 255 SC
-424 556 251 -16 RF
-0 0 0 SC
-424 556 250 -15 RS
-255 255 255 SC
-423 557 253 -19 RF
-0 0 0 SC
-423 557 252 -18 RS
-0 0 0 SC
-% Font[Dialog, 0, 9]
-474 9 0 SF
-(AliRecPoint) 69 515 542 DS
-255 255 255 SC
-32 588 167 -59 RF
-0 0 0 SC
-32 588 166 -58 RS
-255 255 255 SC
-31 589 169 -19 RF
-0 0 0 SC
-31 589 168 -18 RS
-0 0 0 SC
-(AliDigit) 45 93 574 DS
-255 255 255 SC
-31 571 169 -22 RF
-0 0 0 SC
-31 571 168 -21 RS
-0 0 0 SC
-(private fAmp = 0) 104 32 556 DS
-255 255 255 SC
-31 550 169 -22 RF
-0 0 0 SC
-31 550 168 -21 RS
-0 0 0 SC
-(public Float GetAmp\(\)) 133 32 535 DS
-255 255 255 SC
-168 444 224 -59 RF
-0 0 0 SC
-168 444 223 -58 RS
-255 255 255 SC
-167 445 226 -19 RF
-0 0 0 SC
-167 445 225 -18 RS
-0 0 0 SC
-(AliGeometry) 75 242 430 DS
-255 255 255 SC
-167 427 226 -22 RF
-0 0 0 SC
-167 427 225 -21 RS
-255 255 255 SC
-167 406 226 -22 RF
-0 0 0 SC
-167 406 225 -21 RS
-0 0 0 SC
-(public void ConvertLocalToGlobal\(\)) 212 168 391 DS
-255 255 255 SC
-224 532 105 -59 RF
-0 0 0 SC
-224 532 104 -58 RS
-255 255 255 SC
-223 533 107 -19 RF
-0 0 0 SC
-223 533 106 -18 RS
-0 0 0 SC
-(Tnamed) 50 251 518 DS
-255 255 255 SC
-223 515 107 -22 RF
-0 0 0 SC
-223 515 106 -21 RS
-255 255 255 SC
-223 494 107 -22 RF
-0 0 0 SC
-223 494 106 -21 RS
-255 255 255 SC
-384 353 293 -59 RF
-0 0 0 SC
-384 353 292 -58 RS
-255 255 255 SC
-383 354 295 -19 RF
-0 0 0 SC
-383 354 294 -18 RS
-0 0 0 SC
-(AliPHOSRecPoint) 103 479 339 DS
-255 255 255 SC
-383 336 295 -22 RF
-0 0 0 SC
-383 336 294 -21 RS
-0 0 0 SC
-(public int fGeom = AliPHOSGeometry::Instance\(\)) 293 384 321 DS
-255 255 255 SC
-383 315 295 -22 RF
-0 0 0 SC
-383 315 294 -21 RS
-255 255 255 SC
-88 355 275 -67 RF
-0 0 0 SC
-88 355 274 -66 RS
-255 255 255 SC
-87 356 277 -19 RF
-0 0 0 SC
-87 356 276 -18 RS
-0 0 0 SC
-(AliPHOSGeometry) 109 171 341 DS
-255 255 255 SC
-87 338 277 -19 RF
-0 0 0 SC
-87 338 276 -18 RS
-0 0 0 SC
-(private fGeom = 0) 111 88 323 DS
-255 255 255 SC
-87 320 277 -33 RF
-0 0 0 SC
-87 320 276 -32 RS
-0 0 0 SC
-(public static AliPHOSGeometry * Instance\(\)) 261 88 305 DS
-(public void ConvertLocalToGlobal\(\)) 212 88 291 DS
-255 255 255 SC
-281 299 66 -22 RF
-0 0 0 SC
-281 299 65 -21 RS
-0 0 255 SC
-% Font[dialog, 0, 10]
-529 10 8 SF
-(singleton) 64 282 281 DS
-255 255 255 SC
-407 249 128 -59 RF
-0 0 0 SC
-407 249 127 -58 RS
-255 255 255 SC
-406 250 130 -19 RF
-0 0 0 SC
-406 250 129 -18 RS
-0 0 0 SC
-% Font[Dialog, 0, 9]
-474 9 0 SF
-(AliPHOSEmcRecPoint) 128 407 235 DS
-255 255 255 SC
-406 232 130 -22 RF
-0 0 0 SC
-406 232 129 -21 RS
-255 255 255 SC
-406 211 130 -22 RF
-0 0 0 SC
-406 211 129 -21 RS
-255 255 255 SC
-561 251 133 -59 RF
-0 0 0 SC
-561 251 132 -58 RS
-255 255 255 SC
-560 252 135 -19 RF
-0 0 0 SC
-560 252 134 -18 RS
-0 0 0 SC
-(AliPHOSPpsdRecPoint) 133 561 237 DS
-255 255 255 SC
-560 234 135 -22 RF
-0 0 0 SC
-560 234 134 -21 RS
-255 255 255 SC
-560 213 135 -22 RF
-0 0 0 SC
-560 213 134 -21 RS
-255 255 255 SC
-40 249 136 -59 RF
-0 0 0 SC
-40 249 135 -58 RS
-255 255 255 SC
-39 250 138 -19 RF
-0 0 0 SC
-39 250 137 -18 RS
-0 0 0 SC
-(AliPHOSDigit) 79 68 235 DS
-255 255 255 SC
-39 232 138 -22 RF
-0 0 0 SC
-39 232 137 -21 RS
-0 0 0 SC
-(private fId) 64 40 217 DS
-255 255 255 SC
-39 211 138 -22 RF
-0 0 0 SC
-39 211 137 -21 RS
-255 255 255 SC
-192 205 196 -81 RF
-0 0 0 SC
-192 205 195 -80 RS
-255 255 255 SC
-191 206 198 -19 RF
-0 0 0 SC
-191 206 197 -18 RS
-0 0 0 SC
-(AliDetector) 67 256 191 DS
-255 255 255 SC
-191 188 198 -47 RF
-0 0 0 SC
-191 188 197 -46 RS
-0 0 0 SC
-(private fDigits = 0) 111 192 173 DS
-(private fPoints = 0) 114 192 159 DS
-(private fGeom = 0) 111 192 145 DS
-255 255 255 SC
-191 142 198 -19 RF
-0 0 0 SC
-191 142 197 -18 RS
-255 255 255 SC
-552 131 105 -59 RF
-0 0 0 SC
-552 131 104 -58 RS
-255 255 255 SC
-551 132 107 -19 RF
-0 0 0 SC
-551 132 106 -18 RS
-0 0 0 SC
-(AliPHOS) 50 579 117 DS
-255 255 255 SC
-551 114 107 -22 RF
-0 0 0 SC
-551 114 106 -21 RS
-255 255 255 SC
-551 93 107 -22 RF
-0 0 0 SC
-551 93 106 -21 RS
-0 0 0 SC
-false 200 546 423 546 2 PYS
-255 255 255 SC
-false 422 546 412 541 402 546 412 551 4 PYF
-0 0 0 SC
-true 422 546 412 541 402 546 412 551 4 PYS
-(fDigitsList[0..]=AliDigit*) 142 240 550 DS
-(0..*) 20 398 555 DS
-0 0 0 SC
-false 383 445 383 541 423 541 3 PYS
-255 255 255 SC
-false 422 541 412 536 402 541 412 546 4 PYF
-0 0 0 SC
-true 422 541 412 536 402 541 412 546 4 PYS
-(AliGeometry*) 81 333 507 DS
-0 0 0 SC
-false 392 444 424 540 2 PYS
-0 0 0 SC
-427 526 423 539 DL
-413 529 423 539 DL
-(uses) 27 412 496 DS
-0 0 0 SC
-false 263 445 263 472 2 PYS
-255 255 255 SC
-false 263 471 270 459 256 459 3 PYF
-0 0 0 SC
-true 263 471 270 459 256 459 3 PYS
-0 0 0 SC
-false 546 354 546 538 2 PYS
-255 255 255 SC
-false 546 537 553 525 539 525 3 PYF
-0 0 0 SC
-true 546 537 553 525 539 525 3 PYS
-0 0 0 SC
-false 250 356 250 384 2 PYS
-255 255 255 SC
-false 250 383 257 371 243 371 3 PYF
-0 0 0 SC
-true 250 383 257 371 243 371 3 PYS
-0 0 0 SC
-false 473 250 473 293 2 PYS
-255 255 255 SC
-false 473 292 480 280 466 280 3 PYF
-0 0 0 SC
-true 473 292 480 280 466 280 3 PYS
-0 0 0 SC
-false 667 252 667 293 2 PYS
-255 255 255 SC
-false 667 292 674 280 660 280 3 PYF
-0 0 0 SC
-true 667 292 674 280 660 280 3 PYS
-0 0 0 SC
-false 55 250 55 528 2 PYS
-255 255 255 SC
-false 55 527 62 515 48 515 3 PYF
-0 0 0 SC
-true 55 527 62 515 48 515 3 PYS
-0 0 0 SC
-false 551 123 389 123 2 PYS
-255 255 255 SC
-false 390 123 402 130 402 116 3 PYF
-0 0 0 SC
-true 390 123 402 130 402 116 3 PYS
-0 0 0 SC
-false 159 190 159 173 192 173 3 PYS
-255 255 255 SC
-false 191 173 181 168 171 173 181 178 4 PYF
-0 0 0 SC
-true 191 173 181 168 171 173 181 178 4 PYS
-(0..*) 20 167 182 DS
-0 0 0 SC
-false 88 333 23 333 23 165 192 165 4 PYS
-255 255 255 SC
-false 191 165 181 160 171 165 181 170 4 PYF
-0 0 0 SC
-true 191 165 181 160 171 165 181 170 4 PYS
-false 675 549 703 549 703 157 388 157 4 PYS
-255 255 255 SC
-false 389 157 399 162 409 157 399 152 4 PYF
-0 0 0 SC
-true 389 157 399 162 409 157 399 152 4 PYS
-(0..*) 20 393 136 DS
-IC
--29985 30597 60000 -60000 RC
-% Font[TimesRoman, 0, 9]
-420 9 4 SF
-(YS Proposal) 63 25 40 DS
-% Font[TimesRoman, 0, 9]
-420 9 4 SF
-(Page 1) 34 737 40 DS
-EP
-
-%%Page: 2 2
-SP
-IC
-15 597 762 -537 RC
-255 255 255 SC
-223 494 253 -5 RF
-0 0 0 SC
-223 494 252 -4 RS
-255 255 255 SC
-223 490 253 -19 RF
-0 0 0 SC
-223 490 252 -18 RS
-0 0 0 SC
-% Font[Dialog, 0, 9]
-474 9 0 SF
-(AliRecPoint) 69 315 475 DS
-255 255 255 SC
-223 472 253 -131 RF
-0 0 0 SC
-223 472 252 -130 RS
-0 0 0 SC
-(private float fAmp = 0) 136 224 457 DS
-(private int * fDigitsList = 0) 163 224 443 DS
-(private AliGeometry * fGeom = 0) 200 224 429 DS
-(private TVector3 fLocPos = 0) 174 224 415 DS
-(private TMatrix * fLocPosM = 0) 188 224 401 DS
-(private int fMul = 0) 120 224 387 DS
-(private int fMaxDigits = 100) 173 224 373 DS
-(private int * fTracksList = 0) 167 224 359 DS
-(public int fMaxTracks = 5) 156 224 345 DS
-255 255 255 SC
-223 342 253 -117 RF
-0 0 0 SC
-223 342 252 -116 RS
-0 0 0 SC
-(public void AddDigit\(\)) 133 224 327 DS
-(public void GetCovarianceMatrix\(\)) 207 224 313 DS
-(public void GetGlobalPosition\(\)) 189 224 299 DS
-(public int * GetDigitsList\(\)) 158 224 285 DS
-(public void GetLocalPosition\(\)) 180 224 271 DS
-(public void GetMultiplicity\(\)) 171 224 257 DS
-(public void AddTrack\(\)) 137 224 243 DS
-(public void GetTrackList\(\)) 155 224 229 DS
-IC
--29985 31134 60000 -60000 RC
-% Font[TimesRoman, 0, 9]
-420 9 4 SF
-(YS Proposal) 63 25 40 DS
-% Font[TimesRoman, 0, 9]
-420 9 4 SF
-(Page 2) 34 737 40 DS
-EP
-%%Trailer
-%%Pages: 2
-%%EOF
+++ /dev/null
-%!PS-Adobe-3.0
-%%Title: simulation
-%%Pages: (atend)
-%%PageOrder: Ascend
-%%DocumentFonts: Helvetica Helvetica-Bold
-%%+Helvetica-Oblique Helvetica-BoldOblique
-%%+Times-Roman Times-Bold Times-Italic Times-BoldItalic
-%%+Courier Courier-Bold Courier-Oblique Courier-BoldOblique
-%%EndComments
-%%BeginProlog
-/BD {bind def} bind def
-/D {def} BD
-/ISOF {
- dup findfont dup length 1 add dict begin {
- 1 index /FID eq {pop pop} {D} ifelse
- } forall /Encoding ISOLatin1Encoding D
- currentdict end definefont
-} BD
-/F [
- /Helvetica ISOF
- /Helvetica-Bold ISOF
- /Helvetica-Oblique ISOF
- /Helvetica-BoldOblique ISOF
- /Times-Roman ISOF
- /Times-Bold ISOF
- /Times-Italic ISOF
- /Times-BoldItalic ISOF
- /Courier ISOF
- /Courier-Bold ISOF
- /Courier-Oblique ISOF
- /Courier-BoldOblique ISOF
-] D
-/R {4 2 roll moveto 1 index 0 rlineto
- 0 exch rlineto neg 0 rlineto closepath} BD
-/Adict 8 dict D
-Adict /mtrx matrix put
-/A { Adict begin
- /endangle exch D /startangle exch D
- /yrad exch D /xrad exch D
- /y exch D /x exch D
- /savematrix mtrx currentmatrix D
- x y translate xrad yrad scale
- 0 0 1 startangle endangle arc
- savematrix setmatrix
- end } BD
-/PY {
- dup 1 ge {3 1 roll moveto} if
- -1 2 {pop lineto} for
- {closepath} if
-} BD
-/CL { dup 0 exch -1 1 arct} BD
-/RCL { dup 0 exch 1 1 arct} BD
-/RRdict 8 dict D
-RRdict /mtrx matrix put
-/RR {RRdict begin
- /yrad exch D /xrad exch D
- /height exch D /width exch D
- /y exch D /x exch D
- /width width xrad div D /height height yrad div D
- /savematrix mtrx currentmatrix D
- x y translate xrad yrad scale -90 rotate
- 1 0 moveto width RCL width 0 translate -90 rotate
- height CL height 0 translate -90 rotate
- width RCL width 0 translate -90 rotate height CL closepath
- savematrix setmatrix
- end } BD
-/SC {3 {255 div 3 1 roll} repeat setrgbcolor} BD
-/SF {
- F exch get exch scalefont setfont
- (abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890) stringwidth pop div
- currentfont exch scalefont setfont} BD
-/RC {R clip newpath} BD
-/IC {initclip} BD
-/RF {R fill} BD
-/RS {R stroke} BD
-/RRF {RR fill} BD
-/RRS {RR stroke} BD
-/AS {A stroke} BD
-/AF {6 -2 roll 2 copy moveto 6 2 roll A fill} BD
-/PYS {PY stroke} BD
-/PYF {PY eofill} BD
-/NZ {dup 1 lt {pop 1} if} BD
-/DS {
- moveto 1 index stringwidth pop NZ sub
- 1 index length 1 sub NZ div 0
- 3 2 roll ashow} BD
-/DL {moveto lineto stroke} BD
-/S {scale} BD
-/SP {/P save D} BD
-/EP {showpage P restore} BD
-/GS {gsave} BD
-/GR {grestore} BD
-/CM {
- /cmapr 256 array D
- /cmapg 256 array D
- /cmapb 256 array D
- /cmapgray null D
- 3 string exch 0 exch 1 exch 1 sub {
- currentfile 2 index readhexstring pop
- cmapr 2 index 2 index 0 get put
- cmapg 2 index 2 index 1 get put
- cmapb 2 index 2 index 2 get put
- pop pop } for pop
-} BD
-/DII {
- GS
- /imgsave save D
- translate scale
- /imgh exch D
- /imgw exch D
- /imgy exch neg D
- /imgx exch neg D
- /imgstr imgw string D
- /colorimage where {
- pop
- /cimgstr imgw 3 mul string D
- imgw imgh 8 [imgw 0 0 imgh neg imgx imgy] {
- currentfile imgstr readhexstring pop
- 0 1 imgw 1 sub {
- 2 copy get
- cmapr 1 index get
- cimgstr exch 3 index
- 3 mul exch put
- cmapg 1 index get
- cimgstr exch 3 index
- 3 mul 1 add exch put
- cmapb 1 index get
- cimgstr exch 3 index
- 3 mul 2 add exch put
- pop pop } for pop cimgstr
- } false 3 colorimage
- } {
- cmapgray null eq {
- /cmapgray cmapr length array D
- 0 1 cmapr length 1 sub {
- cmapgray exch
- cmapr 1 index get .299 mul
- cmapg 2 index get .587 mul
- cmapb 3 index get .114 mul
- add add cvi put
- } for
- } if
- imgw imgh 8 [imgw 0 0 imgh neg 0 0] {
- currentfile imgstr readhexstring pop
- 0 1 imgw 1 sub {
- imgstr exch 2 copy get
- cmapgray exch get put
- } for
- } image
- } ifelse
- imgsave restore
- GR
-} BD
-/DI {
- GS
- /imgsave save D
- translate scale
- /imgh exch D
- /imgw exch D
- /imgy exch neg D
- /imgx exch neg D
- /imgstr imgw 3 mul string D
- imgw imgh 8 [imgw 0 0 imgh neg imgx imgy] {
- currentfile imgstr readhexstring pop
- } bind false 3 colorimage
- imgsave restore
- GR
-} BD
-%%EndProlog
-%%BeginSetup
-mark {
-%%BeginFeature: ManualFeed false
-1 dict dup /ManualFeed false put setpagedevice
-%%EndFeature
-} stopped {
-%%BeginFeature: *ManualFeed false
- statusdict /manualfeed false put
-%%EndFeature
-} if cleartomark mark {
-%%BeginFeature: PageSize *Letter
-3 dict begin
- /PageSize [612 792] def
- /ImagingBBox null def
- /Policies 1 dict dup/PageSize 3 put def
- currentdict end setpagedevice
-%%EndFeature
-} stopped {
- cleartomark statusdict begin mark {
-%%BeginFeature: *PageSize Letter
- lettertray
-%%EndFeature
- } stopped end
-} if cleartomark
-% now make sure we got what we requested!
-gsave initgraphics clippath pathbbox grestore
-5 dict begin
- 3 -1 roll /yoff exch def 3 -1 roll /xoff exch def
- yoff sub /h exch def xoff sub /w exch def
- w 576 lt h 756 lt or {
- w 2 div xoff add h 2 div yoff add translate
- w xoff 2 mul add 612 div
- h yoff 2 mul add 792 div
- 2 copy gt {exch} if pop dup scale
- -306 -396 translate
- } if
-end
-
-%%EndSetup
-
-%%Page: 1 1
-SP
-IC
-15 777 582 -717 RC
-255 255 200 SC
-80 752 102 -62 RF
-255 255 0 SC
-80 752 101 -61 RS
-255 255 200 SC
-79 753 104 -28 RF
-255 255 0 SC
-79 753 103 -27 RS
-255 255 200 SC
-80 752 102 -17 RF
-0 0 0 SC
-% Font[Times, 0, 10]
-381 10 4 SF
-(<<Interface>>) 65 98 738 DS
-255 255 200 SC
-80 739 102 -15 RF
-0 0 0 SC
-% Font[Dialog, 0, 9]
-340 9 0 SF
-(AliDetector) 45 108 728 DS
-255 255 200 SC
-79 726 104 -37 RF
-255 255 0 SC
-79 726 103 -36 RS
-255 255 200 SC
-80 616 102 -62 RF
-255 255 0 SC
-80 616 101 -61 RS
-255 255 200 SC
-79 617 104 -28 RF
-255 255 0 SC
-79 617 103 -27 RS
-255 255 200 SC
-80 616 102 -17 RF
-0 0 0 SC
-% Font[Times, 0, 10]
-381 10 4 SF
-(<<Interface>>) 65 98 602 DS
-255 255 200 SC
-80 603 102 -15 RF
-0 0 0 SC
-% Font[Dialog, 0, 9]
-340 9 0 SF
-(AliPHOS) 33 114 592 DS
-255 255 200 SC
-79 590 104 -37 RF
-255 255 0 SC
-79 590 103 -36 RS
-0 0 0 SC
-false 135 616 135 690 2 PYS
-255 255 255 SC
-false 135 689 142 677 128 677 3 PYF
-0 0 0 SC
-true 135 689 142 677 128 677 3 PYS
-0 255 255 SC
-72 500 120 -94 RF
-72 500 119 -93 RS
-255 255 255 SC
-71 501 122 -16 RF
-0 0 0 SC
-71 501 121 -15 RS
-(AliPHOSv4) 43 110 490 DS
-255 255 255 SC
-71 486 122 -16 RF
-0 0 0 SC
-71 486 121 -15 RS
-255 255 255 SC
-71 471 122 -66 RF
-0 0 0 SC
-71 471 121 -65 RS
-(public void AddHit\(\)) 87 72 460 DS
-(public void BuildGeometry\(\)) 117 72 450 DS
-(public void CreateGeometry\(\)) 120 72 440 DS
-(public void FinishEvent\(\)) 101 72 430 DS
-(public void MakeBranch\(\)) 107 72 420 DS
-(public void StepManager\(\)) 108 72 410 DS
-131 501 131 506 DL
-131 511 131 516 DL
-131 521 131 526 DL
-131 531 131 536 DL
-131 541 131 546 DL
-131 551 131 553 DL
-255 255 255 SC
-false 131 552 138 540 124 540 3 PYF
-0 0 0 SC
-true 131 552 138 540 124 540 3 PYS
-0 255 255 SC
-294 460 145 -84 RF
-294 460 144 -83 RS
-255 255 255 SC
-293 461 147 -16 RF
-0 0 0 SC
-293 461 146 -15 RS
-(AliPHOSGeometry) 72 330 450 DS
-255 255 255 SC
-293 446 147 -16 RF
-0 0 0 SC
-293 446 146 -15 RS
-(private many data) 74 294 435 DS
-255 255 255 SC
-293 431 147 -56 RF
-0 0 0 SC
-293 431 146 -55 RS
-(public void IsInitialized\(\)) 101 294 420 DS
-(public void RelPosInAlice\(\)) 109 294 410 DS
-(public void RelPosInModule\(\)) 122 294 400 DS
-(public void RelToAbsNumbering\(\)) 145 294 390 DS
-(public void AbsToRelNumbering\(\)) 145 294 380 DS
-false 193 453 293 453 2 PYS
-255 255 255 SC
-false 193 453 203 458 213 453 203 448 4 PYF
-0 0 0 SC
-true 193 453 203 458 213 453 203 448 4 PYS
-( * fGeom) 38 224 459 DS
-255 255 200 SC
-320 328 102 -62 RF
-255 255 0 SC
-320 328 101 -61 RS
-255 255 200 SC
-319 329 104 -28 RF
-255 255 0 SC
-319 329 103 -27 RS
-255 255 200 SC
-320 328 102 -17 RF
-0 0 0 SC
-% Font[Times, 0, 10]
-381 10 4 SF
-(<<Interface>>) 65 338 314 DS
-255 255 200 SC
-320 315 102 -15 RF
-0 0 0 SC
-% Font[Dialog, 0, 9]
-340 9 0 SF
-(AliHit) 23 359 304 DS
-255 255 200 SC
-319 302 104 -37 RF
-255 255 0 SC
-319 302 103 -36 RS
-0 255 255 SC
-120 332 114 -64 RF
-120 332 113 -63 RS
-255 255 255 SC
-119 333 116 -16 RF
-0 0 0 SC
-119 333 115 -15 RS
-(AliPHOSHit) 45 154 322 DS
-255 255 255 SC
-119 318 116 -26 RF
-0 0 0 SC
-119 318 115 -25 RS
-(private float fEnergy = 0) 98 120 307 DS
-(private int fId = 0) 72 120 297 DS
-255 255 255 SC
-119 293 116 -26 RF
-0 0 0 SC
-119 293 115 -25 RS
-(public float GetEnergy\(\)) 97 120 282 DS
-(public int GetId\(\)) 71 120 272 DS
-235 305 240 305 DL
-245 305 250 305 DL
-255 305 260 305 DL
-265 305 270 305 DL
-275 305 280 305 DL
-285 305 290 305 DL
-295 305 300 305 DL
-305 305 310 305 DL
-315 305 319 305 DL
-255 255 255 SC
-false 318 305 306 298 306 312 3 PYF
-0 0 0 SC
-true 318 305 306 298 306 312 3 PYS
-false 152 332 152 406 2 PYS
-145 344 152 332 DL
-159 344 152 332 DL
-(create) 22 131 365 DS
-(0..*) 16 129 343 DS
-255 255 200 SC
-320 216 102 -62 RF
-255 255 0 SC
-320 216 101 -61 RS
-255 255 200 SC
-319 217 104 -28 RF
-255 255 0 SC
-319 217 103 -27 RS
-255 255 200 SC
-320 216 102 -17 RF
-0 0 0 SC
-% Font[Times, 0, 10]
-381 10 4 SF
-(<<Interface>>) 65 338 202 DS
-255 255 200 SC
-320 203 102 -15 RF
-0 0 0 SC
-% Font[Dialog, 0, 9]
-340 9 0 SF
-(AliDigit) 31 355 192 DS
-255 255 200 SC
-319 190 104 -37 RF
-255 255 0 SC
-319 190 103 -36 RS
-0 255 255 SC
-120 220 114 -64 RF
-120 220 113 -63 RS
-255 255 255 SC
-119 221 116 -16 RF
-0 0 0 SC
-119 221 115 -15 RS
-(AliPHOSDigit) 53 150 210 DS
-255 255 255 SC
-119 206 116 -26 RF
-0 0 0 SC
-119 206 115 -25 RS
-(private float fEnergy = 0) 98 120 195 DS
-(private int fId = 0) 72 120 185 DS
-255 255 255 SC
-119 181 116 -26 RF
-0 0 0 SC
-119 181 115 -25 RS
-(public float GetEnergy\(\)) 97 120 170 DS
-(public int GetId\(\)) 71 120 160 DS
-255 255 255 SC
-415 377 47 -16 RF
-200 60 60 SC
-415 377 46 -15 RS
-255 175 175 SC
-416 376 45 -12 RF
-0 0 255 SC
-% Font[dialog, 0, 10]
-383 10 8 SF
-(singleton) 45 416 364 DS
-0 0 0 SC
-234 193 239 193 DL
-244 193 249 193 DL
-254 193 259 193 DL
-264 193 269 193 DL
-274 193 279 193 DL
-284 193 289 193 DL
-294 193 299 193 DL
-304 193 309 193 DL
-314 193 319 193 DL
-255 255 255 SC
-false 319 193 307 186 307 200 3 PYF
-0 0 0 SC
-true 319 193 307 186 307 200 3 PYS
-false 87 406 87 209 120 209 3 PYS
-107 202 119 209 DL
-107 216 119 209 DL
-% Font[Dialog, 0, 9]
-340 9 0 SF
-(create) 22 61 367 DS
-(0..*) 16 97 220 DS
-IC
--29985 30777 60000 -60000 RC
-% Font[TimesRoman, 0, 9]
-314 9 4 SF
-(simulation) 35 25 40 DS
-% Font[TimesRoman, 0, 9]
-314 9 4 SF
-(Page 1) 23 557 40 DS
-EP
-%%Trailer
-%%Pages: 1
-%%EOF
+++ /dev/null
-%!PS-Adobe-3.0
-%%Title: subtracking
-%%Pages: (atend)
-%%PageOrder: Ascend
-%%DocumentFonts: Helvetica Helvetica-Bold
-%%+Helvetica-Oblique Helvetica-BoldOblique
-%%+Times-Roman Times-Bold Times-Italic Times-BoldItalic
-%%+Courier Courier-Bold Courier-Oblique Courier-BoldOblique
-%%EndComments
-%%BeginProlog
-/BD {bind def} bind def
-/D {def} BD
-/ISOF {
- dup findfont dup length 1 add dict begin {
- 1 index /FID eq {pop pop} {D} ifelse
- } forall /Encoding ISOLatin1Encoding D
- currentdict end definefont
-} BD
-/F [
- /Helvetica ISOF
- /Helvetica-Bold ISOF
- /Helvetica-Oblique ISOF
- /Helvetica-BoldOblique ISOF
- /Times-Roman ISOF
- /Times-Bold ISOF
- /Times-Italic ISOF
- /Times-BoldItalic ISOF
- /Courier ISOF
- /Courier-Bold ISOF
- /Courier-Oblique ISOF
- /Courier-BoldOblique ISOF
-] D
-/R {4 2 roll moveto 1 index 0 rlineto
- 0 exch rlineto neg 0 rlineto closepath} BD
-/Adict 8 dict D
-Adict /mtrx matrix put
-/A { Adict begin
- /endangle exch D /startangle exch D
- /yrad exch D /xrad exch D
- /y exch D /x exch D
- /savematrix mtrx currentmatrix D
- x y translate xrad yrad scale
- 0 0 1 startangle endangle arc
- savematrix setmatrix
- end } BD
-/PY {
- dup 1 ge {3 1 roll moveto} if
- -1 2 {pop lineto} for
- {closepath} if
-} BD
-/CL { dup 0 exch -1 1 arct} BD
-/RCL { dup 0 exch 1 1 arct} BD
-/RRdict 8 dict D
-RRdict /mtrx matrix put
-/RR {RRdict begin
- /yrad exch D /xrad exch D
- /height exch D /width exch D
- /y exch D /x exch D
- /width width xrad div D /height height yrad div D
- /savematrix mtrx currentmatrix D
- x y translate xrad yrad scale -90 rotate
- 1 0 moveto width RCL width 0 translate -90 rotate
- height CL height 0 translate -90 rotate
- width RCL width 0 translate -90 rotate height CL closepath
- savematrix setmatrix
- end } BD
-/SC {3 {255 div 3 1 roll} repeat setrgbcolor} BD
-/SF {
- F exch get exch scalefont setfont
- (abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890) stringwidth pop div
- currentfont exch scalefont setfont} BD
-/RC {R clip newpath} BD
-/IC {initclip} BD
-/RF {R fill} BD
-/RS {R stroke} BD
-/RRF {RR fill} BD
-/RRS {RR stroke} BD
-/AS {A stroke} BD
-/AF {6 -2 roll 2 copy moveto 6 2 roll A fill} BD
-/PYS {PY stroke} BD
-/PYF {PY eofill} BD
-/NZ {dup 1 lt {pop 1} if} BD
-/DS {
- moveto 1 index stringwidth pop NZ sub
- 1 index length 1 sub NZ div 0
- 3 2 roll ashow} BD
-/DL {moveto lineto stroke} BD
-/S {scale} BD
-/SP {/P save D} BD
-/EP {showpage P restore} BD
-/GS {gsave} BD
-/GR {grestore} BD
-/CM {
- /cmapr 256 array D
- /cmapg 256 array D
- /cmapb 256 array D
- /cmapgray null D
- 3 string exch 0 exch 1 exch 1 sub {
- currentfile 2 index readhexstring pop
- cmapr 2 index 2 index 0 get put
- cmapg 2 index 2 index 1 get put
- cmapb 2 index 2 index 2 get put
- pop pop } for pop
-} BD
-/DII {
- GS
- /imgsave save D
- translate scale
- /imgh exch D
- /imgw exch D
- /imgy exch neg D
- /imgx exch neg D
- /imgstr imgw string D
- /colorimage where {
- pop
- /cimgstr imgw 3 mul string D
- imgw imgh 8 [imgw 0 0 imgh neg imgx imgy] {
- currentfile imgstr readhexstring pop
- 0 1 imgw 1 sub {
- 2 copy get
- cmapr 1 index get
- cimgstr exch 3 index
- 3 mul exch put
- cmapg 1 index get
- cimgstr exch 3 index
- 3 mul 1 add exch put
- cmapb 1 index get
- cimgstr exch 3 index
- 3 mul 2 add exch put
- pop pop } for pop cimgstr
- } false 3 colorimage
- } {
- cmapgray null eq {
- /cmapgray cmapr length array D
- 0 1 cmapr length 1 sub {
- cmapgray exch
- cmapr 1 index get .299 mul
- cmapg 2 index get .587 mul
- cmapb 3 index get .114 mul
- add add cvi put
- } for
- } if
- imgw imgh 8 [imgw 0 0 imgh neg 0 0] {
- currentfile imgstr readhexstring pop
- 0 1 imgw 1 sub {
- imgstr exch 2 copy get
- cmapgray exch get put
- } for
- } image
- } ifelse
- imgsave restore
- GR
-} BD
-/DI {
- GS
- /imgsave save D
- translate scale
- /imgh exch D
- /imgw exch D
- /imgy exch neg D
- /imgx exch neg D
- /imgstr imgw 3 mul string D
- imgw imgh 8 [imgw 0 0 imgh neg imgx imgy] {
- currentfile imgstr readhexstring pop
- } bind false 3 colorimage
- imgsave restore
- GR
-} BD
-%%EndProlog
-%%BeginSetup
-mark {
-%%BeginFeature: ManualFeed false
-1 dict dup /ManualFeed false put setpagedevice
-%%EndFeature
-} stopped {
-%%BeginFeature: *ManualFeed false
- statusdict /manualfeed false put
-%%EndFeature
-} if cleartomark mark {
-%%BeginFeature: PageSize *Letter
-3 dict begin
- /PageSize [612 792] def
- /ImagingBBox null def
- /Policies 1 dict dup/PageSize 3 put def
- currentdict end setpagedevice
-%%EndFeature
-} stopped {
- cleartomark statusdict begin mark {
-%%BeginFeature: *PageSize Letter
- lettertray
-%%EndFeature
- } stopped end
-} if cleartomark
-% now make sure we got what we requested!
-gsave initgraphics clippath pathbbox grestore
-5 dict begin
- 3 -1 roll /yoff exch def 3 -1 roll /xoff exch def
- yoff sub /h exch def xoff sub /w exch def
- w 576 lt h 756 lt or {
- w 2 div xoff add h 2 div yoff add translate
- w xoff 2 mul add 612 div
- h yoff 2 mul add 792 div
- 2 copy gt {exch} if pop dup scale
- -306 -396 translate
- } if
-end
-
-%%EndSetup
-
-%%Page: 1 1
-SP
-IC
-15 777 582 -717 RC
-255 255 200 SC
-48 760 121 -62 RF
-255 255 0 SC
-48 760 120 -61 RS
-255 255 200 SC
-47 761 123 -28 RF
-255 255 0 SC
-47 761 122 -27 RS
-255 255 200 SC
-48 760 121 -17 RF
-0 0 0 SC
-% Font[Times, 0, 10]
-381 10 4 SF
-(<<Interface>>) 65 76 746 DS
-255 255 200 SC
-48 747 121 -15 RF
-0 0 0 SC
-% Font[Dialog, 0, 9]
-340 9 0 SF
-(AliPHOSSubTracker) 79 69 736 DS
-255 255 200 SC
-47 734 123 -37 RF
-255 255 0 SC
-47 734 122 -36 RS
-0 0 0 SC
-(public void MakeSubTracks\(\)) 121 48 723 DS
-0 255 255 SC
-32 628 154 -58 RF
-32 628 153 -57 RS
-255 255 255 SC
-31 629 156 -16 RF
-0 0 0 SC
-31 629 155 -15 RS
-(AliPHOSSubTrackerv1) 89 64 618 DS
-255 255 255 SC
-31 614 156 -28 RF
-0 0 0 SC
-31 614 155 -27 RS
-(public float fDelta = 0) 91 32 603 DS
-(public float fR0 = 0) 83 32 593 DS
-255 255 255 SC
-31 587 156 -18 RF
-0 0 0 SC
-31 587 155 -17 RS
-(public float GetDistanceInPHOSPlane\(\)) 154 32 576 DS
-111 629 111 634 DL
-111 639 111 644 DL
-111 649 111 654 DL
-111 659 111 664 DL
-111 669 111 674 DL
-111 679 111 684 DL
-111 689 111 694 DL
-255 255 255 SC
-false 111 696 118 684 104 684 3 PYF
-0 0 0 SC
-true 111 696 118 684 104 684 3 PYS
-0 255 255 SC
-285 629 147 -5 RF
-285 629 146 -4 RS
-255 255 255 SC
-285 625 147 -16 RF
-0 0 0 SC
-285 625 146 -15 RS
-(AliPHOSGeometry) 72 322 614 DS
-255 255 255 SC
-285 610 147 -16 RF
-0 0 0 SC
-285 610 146 -15 RS
-(private many data) 74 286 599 DS
-255 255 255 SC
-285 595 147 -56 RF
-0 0 0 SC
-285 595 146 -55 RS
-(public void IsInitialized\(\)) 101 286 584 DS
-(public void RelPosInAlice\(\)) 109 286 574 DS
-(public void RelPosInModule\(\)) 122 286 564 DS
-(public void RelToAbsNumbering\(\)) 145 286 554 DS
-(public void AbsToRelNumbering\(\)) 145 286 544 DS
-255 255 255 SC
-399 569 47 -16 RF
-200 60 60 SC
-399 569 46 -15 RS
-255 175 175 SC
-400 568 45 -12 RF
-0 0 255 SC
-% Font[dialog, 0, 10]
-383 10 8 SF
-(singleton) 45 400 556 DS
-0 0 0 SC
-false 186 624 285 624 2 PYS
-272 617 284 624 DL
-272 631 284 624 DL
-% Font[Dialog, 0, 9]
-340 9 0 SF
-(use) 14 214 605 DS
-0 255 255 SC
-24 488 194 -74 RF
-24 488 193 -73 RS
-255 255 255 SC
-23 489 196 -16 RF
-0 0 0 SC
-23 489 195 -15 RS
-(AliPHOSSubTrack) 72 85 478 DS
-255 255 255 SC
-23 474 196 -46 RF
-0 0 0 SC
-23 474 195 -45 RS
-(private float fCutOnDispersion = 1.5) 153 24 463 DS
-(public AliPHOSEmcCluster * fEmcCluster = 0) 183 24 453 DS
-(public AliPHOSPpsdCluster * fPpsdLow = 0) 182 24 443 DS
-(public AliPHOSPpsdCluster * fPpsdUp = 0) 178 24 433 DS
-255 255 255 SC
-23 429 196 -16 RF
-0 0 0 SC
-23 429 195 -15 RS
-false 111 569 111 489 2 PYS
-104 502 111 490 DL
-118 502 111 490 DL
-(create) 22 85 530 DS
-0 255 255 SC
-367 492 168 -5 RF
-367 492 167 -4 RS
-255 255 255 SC
-367 488 168 -16 RF
-0 0 0 SC
-367 488 167 -15 RS
-(AliPHOSEmcCluster) 78 412 477 DS
-255 255 255 SC
-367 473 168 -66 RF
-0 0 0 SC
-367 473 167 -65 RS
-(private DigitsList * fDigitsList = 0) 137 368 462 DS
-(private float fEnergy = 0) 98 368 452 DS
-(private int fMultiplicity = 0) 108 368 442 DS
-(private float fDelta = 4.) 94 368 432 DS
-(private float fLocMaxCut = 0.6) 128 368 422 DS
-(public float fW0 = 4.) 88 368 412 DS
-255 255 255 SC
-367 408 168 -126 RF
-0 0 0 SC
-367 408 167 -125 RS
-(public bool AreNeighbours\(\)) 122 368 397 DS
-(public void Compare\(\)) 94 368 387 DS
-(public void GetAbsPosition\(\)) 120 368 377 DS
-(public float GetDispersion\(\)) 114 368 367 DS
-(public void GetElipsAxis\(\)) 107 368 357 DS
-(public float GetMaximalEnergy\(\)) 131 368 347 DS
-(public void GetMultiplicityAtLevel\(\)) 142 368 337 DS
-(public void GetNumberOfLocalMaxima\(\)) 166 368 327 DS
-(public void GetRelPosition\(\)) 115 368 317 DS
-(public void GetTotalEnergy\(\)) 118 368 307 DS
-(public void SetLocalMaxCut\(\)) 121 368 297 DS
-(public void SetLowWeightCut\(\)) 129 368 287 DS
-false 218 487 367 487 2 PYS
-255 255 255 SC
-false 218 487 228 492 238 487 228 482 4 PYF
-0 0 0 SC
-true 218 487 228 492 238 487 228 482 4 PYS
-(0..*) 16 225 498 DS
-0 255 255 SC
-383 252 139 -5 RF
-383 252 138 -4 RS
-255 255 255 SC
-383 248 139 -16 RF
-0 0 0 SC
-383 248 138 -15 RS
-(AliPHOSPpsdCluster) 82 411 237 DS
-255 255 255 SC
-383 233 139 -36 RF
-0 0 0 SC
-383 233 138 -35 RS
-(public DigitsList fDigitsList = 0) 127 384 222 DS
-(private float fEnergy = 0) 98 384 212 DS
-(private int fMultiplicity = 0) 108 384 202 DS
-255 255 255 SC
-383 198 139 -36 RF
-0 0 0 SC
-383 198 138 -35 RS
-(public int Compare\(\)) 87 384 187 DS
-(public void GetRelPosition\(\)) 115 384 177 DS
-(public bool GetUp\(\)) 85 384 167 DS
-false 218 441 303 441 303 249 383 249 4 PYS
-255 255 255 SC
-false 218 441 228 446 238 441 228 436 4 PYF
-0 0 0 SC
-true 218 441 228 446 238 441 228 436 4 PYS
-(0..*) 16 225 452 DS
-false 167 628 167 657 479 657 479 492 4 PYS
-472 505 479 493 DL
-486 505 479 493 DL
-(use) 14 166 638 DS
-(0..*) 16 486 503 DS
-false 151 628 151 681 567 681 567 249 522 249 5 PYS
-535 256 523 249 DL
-535 242 523 249 DL
-(use) 14 569 674 DS
-(0..*) 16 529 230 DS
-IC
--29985 30777 60000 -60000 RC
-% Font[TimesRoman, 0, 9]
-314 9 4 SF
-(subtracking) 38 25 40 DS
-% Font[TimesRoman, 0, 9]
-314 9 4 SF
-(Page 1) 23 557 40 DS
-EP
-%%Trailer
-%%Pages: 1
-%%EOF
+++ /dev/null
-%!PS-Adobe-3.0
-%%Title: use case fast simulation
-%%Pages: (atend)
-%%PageOrder: Ascend
-%%DocumentFonts: Helvetica Helvetica-Bold
-%%+Helvetica-Oblique Helvetica-BoldOblique
-%%+Times-Roman Times-Bold Times-Italic Times-BoldItalic
-%%+Courier Courier-Bold Courier-Oblique Courier-BoldOblique
-%%EndComments
-%%BeginProlog
-/BD {bind def} bind def
-/D {def} BD
-/ISOF {
- dup findfont dup length 1 add dict begin {
- 1 index /FID eq {pop pop} {D} ifelse
- } forall /Encoding ISOLatin1Encoding D
- currentdict end definefont
-} BD
-/F [
- /Helvetica ISOF
- /Helvetica-Bold ISOF
- /Helvetica-Oblique ISOF
- /Helvetica-BoldOblique ISOF
- /Times-Roman ISOF
- /Times-Bold ISOF
- /Times-Italic ISOF
- /Times-BoldItalic ISOF
- /Courier ISOF
- /Courier-Bold ISOF
- /Courier-Oblique ISOF
- /Courier-BoldOblique ISOF
-] D
-/R {4 2 roll moveto 1 index 0 rlineto
- 0 exch rlineto neg 0 rlineto closepath} BD
-/Adict 8 dict D
-Adict /mtrx matrix put
-/A { Adict begin
- /endangle exch D /startangle exch D
- /yrad exch D /xrad exch D
- /y exch D /x exch D
- /savematrix mtrx currentmatrix D
- x y translate xrad yrad scale
- 0 0 1 startangle endangle arc
- savematrix setmatrix
- end } BD
-/PY {
- dup 1 ge {3 1 roll moveto} if
- -1 2 {pop lineto} for
- {closepath} if
-} BD
-/CL { dup 0 exch -1 1 arct} BD
-/RCL { dup 0 exch 1 1 arct} BD
-/RRdict 8 dict D
-RRdict /mtrx matrix put
-/RR {RRdict begin
- /yrad exch D /xrad exch D
- /height exch D /width exch D
- /y exch D /x exch D
- /width width xrad div D /height height yrad div D
- /savematrix mtrx currentmatrix D
- x y translate xrad yrad scale -90 rotate
- 1 0 moveto width RCL width 0 translate -90 rotate
- height CL height 0 translate -90 rotate
- width RCL width 0 translate -90 rotate height CL closepath
- savematrix setmatrix
- end } BD
-/SC {3 {255 div 3 1 roll} repeat setrgbcolor} BD
-/SF {
- F exch get exch scalefont setfont
- (abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890) stringwidth pop div
- currentfont exch scalefont setfont} BD
-/RC {R clip newpath} BD
-/IC {initclip} BD
-/RF {R fill} BD
-/RS {R stroke} BD
-/RRF {RR fill} BD
-/RRS {RR stroke} BD
-/AS {A stroke} BD
-/AF {6 -2 roll 2 copy moveto 6 2 roll A fill} BD
-/PYS {PY stroke} BD
-/PYF {PY eofill} BD
-/NZ {dup 1 lt {pop 1} if} BD
-/DS {
- moveto 1 index stringwidth pop NZ sub
- 1 index length 1 sub NZ div 0
- 3 2 roll ashow} BD
-/DL {moveto lineto stroke} BD
-/S {scale} BD
-/SP {/P save D} BD
-/EP {showpage P restore} BD
-/GS {gsave} BD
-/GR {grestore} BD
-/CM {
- /cmapr 256 array D
- /cmapg 256 array D
- /cmapb 256 array D
- /cmapgray null D
- 3 string exch 0 exch 1 exch 1 sub {
- currentfile 2 index readhexstring pop
- cmapr 2 index 2 index 0 get put
- cmapg 2 index 2 index 1 get put
- cmapb 2 index 2 index 2 get put
- pop pop } for pop
-} BD
-/DII {
- GS
- /imgsave save D
- translate scale
- /imgh exch D
- /imgw exch D
- /imgy exch neg D
- /imgx exch neg D
- /imgstr imgw string D
- /colorimage where {
- pop
- /cimgstr imgw 3 mul string D
- imgw imgh 8 [imgw 0 0 imgh neg imgx imgy] {
- currentfile imgstr readhexstring pop
- 0 1 imgw 1 sub {
- 2 copy get
- cmapr 1 index get
- cimgstr exch 3 index
- 3 mul exch put
- cmapg 1 index get
- cimgstr exch 3 index
- 3 mul 1 add exch put
- cmapb 1 index get
- cimgstr exch 3 index
- 3 mul 2 add exch put
- pop pop } for pop cimgstr
- } false 3 colorimage
- } {
- cmapgray null eq {
- /cmapgray cmapr length array D
- 0 1 cmapr length 1 sub {
- cmapgray exch
- cmapr 1 index get .299 mul
- cmapg 2 index get .587 mul
- cmapb 3 index get .114 mul
- add add cvi put
- } for
- } if
- imgw imgh 8 [imgw 0 0 imgh neg 0 0] {
- currentfile imgstr readhexstring pop
- 0 1 imgw 1 sub {
- imgstr exch 2 copy get
- cmapgray exch get put
- } for
- } image
- } ifelse
- imgsave restore
- GR
-} BD
-/DI {
- GS
- /imgsave save D
- translate scale
- /imgh exch D
- /imgw exch D
- /imgy exch neg D
- /imgx exch neg D
- /imgstr imgw 3 mul string D
- imgw imgh 8 [imgw 0 0 imgh neg imgx imgy] {
- currentfile imgstr readhexstring pop
- } bind false 3 colorimage
- imgsave restore
- GR
-} BD
-%%EndProlog
-%%BeginSetup
-mark {
-%%BeginFeature: ManualFeed false
-1 dict dup /ManualFeed false put setpagedevice
-%%EndFeature
-} stopped {
-%%BeginFeature: *ManualFeed false
- statusdict /manualfeed false put
-%%EndFeature
-} if cleartomark mark {
-%%BeginFeature: PageSize *Letter
-3 dict begin
- /PageSize [612 792] def
- /ImagingBBox null def
- /Policies 1 dict dup/PageSize 3 put def
- currentdict end setpagedevice
-%%EndFeature
-} stopped {
- cleartomark statusdict begin mark {
-%%BeginFeature: *PageSize Letter
- lettertray
-%%EndFeature
- } stopped end
-} if cleartomark
-% now make sure we got what we requested!
-gsave initgraphics clippath pathbbox grestore
-5 dict begin
- 3 -1 roll /yoff exch def 3 -1 roll /xoff exch def
- yoff sub /h exch def xoff sub /w exch def
- w 576 lt h 756 lt or {
- w 2 div xoff add h 2 div yoff add translate
- w xoff 2 mul add 612 div
- h yoff 2 mul add 792 div
- 2 copy gt {exch} if pop dup scale
- -306 -396 translate
- } if
-end
-
-90 rotate 0 -612 translate
-%%EndSetup
-
-%%Page: 1 1
-SP
-IC
-15 597 762 -537 RC
-128 128 128 SC
-114 522 10 15 0 360 AF
-113 523 9 14 0 360 AS
-255 255 255 SC
-114 522 10 15 0 360 AF
-0 0 0 SC
-113 523 9 14 0 360 AS
-114 507 114 487 DL
-104 497 124 497 DL
-114 487 109 472 DL
-114 487 119 472 DL
-% Font[Dialog, 0, 9]
-474 9 0 SF
-(PHOS actor) 68 80 455 DS
-255 255 255 SC
-238 571 61 26 0 360 AF
-0 0 0 SC
-238 572 61 25 0 360 AS
-255 255 255 SC
-238 571 61 26 0 360 AF
-0 0 0 SC
-238 572 61 25 0 360 AS
-(1 . Get a Particle) 101 188 572 DS
-(from TreeK) 68 204 558 DS
-false 149 537 177 545 2 PYS
-255 255 255 SC
-324 497 91 36 0 360 AF
-0 0 0 SC
-323 498 90 35 0 360 AS
-255 255 255 SC
-324 497 91 36 0 360 AF
-0 0 0 SC
-323 498 90 35 0 360 AS
-(2. What is the incidence) 146 251 505 DS
-(of other detectors on) 127 260 491 DS
-(the way of the particle) 139 254 477 DS
-false 149 501 233 501 2 PYS
-255 255 255 SC
-321 363 88 26 0 360 AF
-0 0 0 SC
-321 364 88 25 0 360 AS
-255 255 255 SC
-321 363 88 26 0 360 AF
-0 0 0 SC
-321 364 88 25 0 360 AS
-(3. Get the average PHOS) 149 247 364 DS
-(response to this particle) 147 248 350 DS
-false 149 452 233 389 2 PYS
-255 255 255 SC
-141 292 77 33 0 360 AF
-0 0 0 SC
-141 293 77 32 0 360 AS
-255 255 255 SC
-141 292 77 33 0 360 AF
-0 0 0 SC
-141 293 77 32 0 360 AS
-(4. Output the type) 114 84 300 DS
-(and properties of the ) 133 75 286 DS
-(detected particle) 103 90 272 DS
-false 135 452 135 325 2 PYS
-255 255 255 SC
-574 556 79 33 0 360 AF
-0 0 0 SC
-573 557 78 32 0 360 AS
-255 255 255 SC
-574 556 79 33 0 360 AF
-0 0 0 SC
-573 557 78 32 0 360 AS
-(Photon: ) 50 549 564 DS
-(conversion probability) 136 506 550 DS
-(energy loss) 68 540 536 DS
-false 495 533 415 533 2 PYS
-255 255 255 SC
-false 416 533 428 540 428 526 3 PYF
-0 0 0 SC
-true 416 533 428 540 428 526 3 PYS
-(<<extends>>) 80 415 517 DS
-255 255 255 SC
-611 469 108 48 0 360 AF
-0 0 0 SC
-610 470 107 47 0 360 AS
-255 255 255 SC
-611 469 108 48 0 360 AF
-0 0 0 SC
-610 470 107 47 0 360 AS
-(Charged and Neutral hadrons:) 183 519 484 DS
-(energy loss) 68 576 470 DS
-(momentum smearing) 131 545 456 DS
-false 503 469 415 469 2 PYS
-255 255 255 SC
-false 416 469 428 476 428 462 3 PYF
-0 0 0 SC
-true 416 469 428 476 428 462 3 PYS
-(<<extends>>) 80 419 453 DS
-255 255 255 SC
-607 365 104 40 0 360 AF
-0 0 0 SC
-606 366 103 39 0 360 AS
-255 255 255 SC
-607 365 104 40 0 360 AF
-0 0 0 SC
-606 366 103 39 0 360 AS
-(Probability to ) 87 563 373 DS
-(identify a photon, ) 113 550 359 DS
-(a charged or neutral hadron) 170 522 345 DS
-false 503 365 410 365 2 PYS
-255 255 255 SC
-609 275 82 26 0 360 AF
-0 0 0 SC
-609 276 82 25 0 360 AS
-255 255 255 SC
-609 275 82 26 0 360 AF
-0 0 0 SC
-609 276 82 25 0 360 AS
-(Energy and momentum) 143 538 276 DS
-(resolution) 61 579 262 DS
-false 410 337 527 301 2 PYS
-IC
--29985 30597 60000 -60000 RC
-% Font[TimesRoman, 0, 9]
-420 9 4 SF
-(use case fast simulation) 121 25 40 DS
-% Font[TimesRoman, 0, 9]
-420 9 4 SF
-(Page 1) 34 737 40 DS
-EP
-%%Trailer
-%%Pages: 1
-%%EOF
+++ /dev/null
-%!PS-Adobe-3.0
-%%Title: use case general
-%%Pages: (atend)
-%%PageOrder: Ascend
-%%DocumentFonts: Helvetica Helvetica-Bold
-%%+Helvetica-Oblique Helvetica-BoldOblique
-%%+Times-Roman Times-Bold Times-Italic Times-BoldItalic
-%%+Courier Courier-Bold Courier-Oblique Courier-BoldOblique
-%%EndComments
-%%BeginProlog
-/BD {bind def} bind def
-/D {def} BD
-/ISOF {
- dup findfont dup length 1 add dict begin {
- 1 index /FID eq {pop pop} {D} ifelse
- } forall /Encoding ISOLatin1Encoding D
- currentdict end definefont
-} BD
-/F [
- /Helvetica ISOF
- /Helvetica-Bold ISOF
- /Helvetica-Oblique ISOF
- /Helvetica-BoldOblique ISOF
- /Times-Roman ISOF
- /Times-Bold ISOF
- /Times-Italic ISOF
- /Times-BoldItalic ISOF
- /Courier ISOF
- /Courier-Bold ISOF
- /Courier-Oblique ISOF
- /Courier-BoldOblique ISOF
-] D
-/R {4 2 roll moveto 1 index 0 rlineto
- 0 exch rlineto neg 0 rlineto closepath} BD
-/Adict 8 dict D
-Adict /mtrx matrix put
-/A { Adict begin
- /endangle exch D /startangle exch D
- /yrad exch D /xrad exch D
- /y exch D /x exch D
- /savematrix mtrx currentmatrix D
- x y translate xrad yrad scale
- 0 0 1 startangle endangle arc
- savematrix setmatrix
- end } BD
-/PY {
- dup 1 ge {3 1 roll moveto} if
- -1 2 {pop lineto} for
- {closepath} if
-} BD
-/CL { dup 0 exch -1 1 arct} BD
-/RCL { dup 0 exch 1 1 arct} BD
-/RRdict 8 dict D
-RRdict /mtrx matrix put
-/RR {RRdict begin
- /yrad exch D /xrad exch D
- /height exch D /width exch D
- /y exch D /x exch D
- /width width xrad div D /height height yrad div D
- /savematrix mtrx currentmatrix D
- x y translate xrad yrad scale -90 rotate
- 1 0 moveto width RCL width 0 translate -90 rotate
- height CL height 0 translate -90 rotate
- width RCL width 0 translate -90 rotate height CL closepath
- savematrix setmatrix
- end } BD
-/SC {3 {255 div 3 1 roll} repeat setrgbcolor} BD
-/SF {
- F exch get exch scalefont setfont
- (abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890) stringwidth pop div
- currentfont exch scalefont setfont} BD
-/RC {R clip newpath} BD
-/IC {initclip} BD
-/RF {R fill} BD
-/RS {R stroke} BD
-/RRF {RR fill} BD
-/RRS {RR stroke} BD
-/AS {A stroke} BD
-/AF {6 -2 roll 2 copy moveto 6 2 roll A fill} BD
-/PYS {PY stroke} BD
-/PYF {PY eofill} BD
-/NZ {dup 1 lt {pop 1} if} BD
-/DS {
- moveto 1 index stringwidth pop NZ sub
- 1 index length 1 sub NZ div 0
- 3 2 roll ashow} BD
-/DL {moveto lineto stroke} BD
-/S {scale} BD
-/SP {/P save D} BD
-/EP {showpage P restore} BD
-/GS {gsave} BD
-/GR {grestore} BD
-/CM {
- /cmapr 256 array D
- /cmapg 256 array D
- /cmapb 256 array D
- /cmapgray null D
- 3 string exch 0 exch 1 exch 1 sub {
- currentfile 2 index readhexstring pop
- cmapr 2 index 2 index 0 get put
- cmapg 2 index 2 index 1 get put
- cmapb 2 index 2 index 2 get put
- pop pop } for pop
-} BD
-/DII {
- GS
- /imgsave save D
- translate scale
- /imgh exch D
- /imgw exch D
- /imgy exch neg D
- /imgx exch neg D
- /imgstr imgw string D
- /colorimage where {
- pop
- /cimgstr imgw 3 mul string D
- imgw imgh 8 [imgw 0 0 imgh neg imgx imgy] {
- currentfile imgstr readhexstring pop
- 0 1 imgw 1 sub {
- 2 copy get
- cmapr 1 index get
- cimgstr exch 3 index
- 3 mul exch put
- cmapg 1 index get
- cimgstr exch 3 index
- 3 mul 1 add exch put
- cmapb 1 index get
- cimgstr exch 3 index
- 3 mul 2 add exch put
- pop pop } for pop cimgstr
- } false 3 colorimage
- } {
- cmapgray null eq {
- /cmapgray cmapr length array D
- 0 1 cmapr length 1 sub {
- cmapgray exch
- cmapr 1 index get .299 mul
- cmapg 2 index get .587 mul
- cmapb 3 index get .114 mul
- add add cvi put
- } for
- } if
- imgw imgh 8 [imgw 0 0 imgh neg 0 0] {
- currentfile imgstr readhexstring pop
- 0 1 imgw 1 sub {
- imgstr exch 2 copy get
- cmapgray exch get put
- } for
- } image
- } ifelse
- imgsave restore
- GR
-} BD
-/DI {
- GS
- /imgsave save D
- translate scale
- /imgh exch D
- /imgw exch D
- /imgy exch neg D
- /imgx exch neg D
- /imgstr imgw 3 mul string D
- imgw imgh 8 [imgw 0 0 imgh neg imgx imgy] {
- currentfile imgstr readhexstring pop
- } bind false 3 colorimage
- imgsave restore
- GR
-} BD
-%%EndProlog
-%%BeginSetup
-mark {
-%%BeginFeature: ManualFeed false
-1 dict dup /ManualFeed false put setpagedevice
-%%EndFeature
-} stopped {
-%%BeginFeature: *ManualFeed false
- statusdict /manualfeed false put
-%%EndFeature
-} if cleartomark mark {
-%%BeginFeature: PageSize *Letter
-3 dict begin
- /PageSize [612 792] def
- /ImagingBBox null def
- /Policies 1 dict dup/PageSize 3 put def
- currentdict end setpagedevice
-%%EndFeature
-} stopped {
- cleartomark statusdict begin mark {
-%%BeginFeature: *PageSize Letter
- lettertray
-%%EndFeature
- } stopped end
-} if cleartomark
-% now make sure we got what we requested!
-gsave initgraphics clippath pathbbox grestore
-5 dict begin
- 3 -1 roll /yoff exch def 3 -1 roll /xoff exch def
- yoff sub /h exch def xoff sub /w exch def
- w 576 lt h 756 lt or {
- w 2 div xoff add h 2 div yoff add translate
- w xoff 2 mul add 612 div
- h yoff 2 mul add 792 div
- 2 copy gt {exch} if pop dup scale
- -306 -396 translate
- } if
-end
-
-90 rotate 0 -612 translate
-%%EndSetup
-
-%%Page: 1 1
-SP
-IC
-15 597 762 -537 RC
-128 128 128 SC
-94 470 10 15 0 360 AF
-93 471 9 14 0 360 AS
-200 255 255 SC
-94 470 10 15 0 360 AF
-60 60 200 SC
-93 471 9 14 0 360 AS
-94 455 94 435 DL
-84 445 104 445 DL
-94 435 89 420 DL
-94 435 99 420 DL
-0 0 0 SC
-% Font[Dialog, 0, 9]
-340 9 0 SF
-(PHOS actor) 45 72 404 DS
-255 255 255 SC
-265 561 65 20 0 360 AF
-0 0 0 SC
-264 562 64 19 0 360 AS
-200 255 255 SC
-265 561 65 20 0 360 AF
-60 60 200 SC
-264 562 64 19 0 360 AS
-0 0 0 SC
-(Create/Build the geometry) 108 211 558 DS
-60 60 200 SC
-false 118 485 200 541 2 PYS
-255 255 255 SC
-451 561 68 20 0 360 AF
-0 0 0 SC
-451 562 68 19 0 360 AS
-200 255 255 SC
-451 561 68 20 0 360 AF
-60 60 200 SC
-451 562 68 19 0 360 AS
-0 0 0 SC
-(description of the geometry) 115 394 558 DS
-60 60 200 SC
-false 330 565 383 565 2 PYS
-0 0 0 SC
-342 572 330 565 DL
-342 558 330 565 DL
-(use) 14 341 546 DS
-255 255 255 SC
-266 471 50 20 0 360 AF
-0 0 0 SC
-265 472 49 19 0 360 AS
-200 255 255 SC
-266 471 50 20 0 360 AF
-60 60 200 SC
-265 472 49 19 0 360 AS
-0 0 0 SC
-(generate events) 62 235 468 DS
-60 60 200 SC
-false 118 469 216 469 2 PYS
-255 255 255 SC
-455 473 56 20 0 360 AF
-0 0 0 SC
-454 474 55 19 0 360 AS
-200 255 255 SC
-455 473 56 20 0 360 AF
-60 60 200 SC
-454 474 55 19 0 360 AS
-0 0 0 SC
-(Fill TreeD) 37 436 470 DS
-60 60 200 SC
-false 316 469 399 469 2 PYS
-0 0 0 SC
-386 462 398 469 DL
-386 476 398 469 DL
-(Fill) 10 346 450 DS
-255 255 255 SC
-266 381 50 20 0 360 AF
-0 0 0 SC
-265 382 49 19 0 360 AS
-200 255 255 SC
-266 381 50 20 0 360 AF
-60 60 200 SC
-265 382 49 19 0 360 AS
-0 0 0 SC
-(make clusters) 55 238 378 DS
-255 255 255 SC
-266 317 50 20 0 360 AF
-0 0 0 SC
-265 318 49 19 0 360 AS
-200 255 255 SC
-266 317 50 20 0 360 AF
-60 60 200 SC
-265 318 49 19 0 360 AS
-0 0 0 SC
-(make sub tracks) 68 232 314 DS
-255 255 255 SC
-266 253 50 20 0 360 AF
-0 0 0 SC
-265 254 49 19 0 360 AS
-255 200 255 SC
-266 253 50 20 0 360 AF
-200 60 60 SC
-265 254 49 19 0 360 AS
-0 0 0 SC
-(make particles) 57 237 250 DS
-255 255 255 SC
-561 313 50 20 0 360 AF
-0 0 0 SC
-560 314 49 19 0 360 AS
-255 200 255 SC
-561 313 50 20 0 360 AF
-200 60 60 SC
-560 314 49 19 0 360 AS
-0 0 0 SC
-(Fill TreeR) 36 543 310 DS
-255 255 255 SC
-401 185 50 20 0 360 AF
-0 0 0 SC
-400 186 49 19 0 360 AS
-255 200 255 SC
-401 185 50 20 0 360 AF
-200 60 60 SC
-400 186 49 19 0 360 AS
-0 0 0 SC
-(parameters) 43 379 182 DS
-255 255 255 SC
-271 129 72 20 0 360 AF
-0 0 0 SC
-271 130 72 19 0 360 AS
-255 200 255 SC
-271 129 72 20 0 360 AF
-200 60 60 SC
-271 130 72 19 0 360 AS
-0 0 0 SC
-(leran from other subdetectors) 123 210 126 DS
-200 60 60 SC
-false 271 149 271 233 2 PYS
-0 0 0 SC
-278 220 271 232 DL
-264 220 271 232 DL
-(use) 14 279 180 DS
-60 60 200 SC
-106 433 218 385 DL
-111 413 223 325 DL
-200 60 60 SC
-95 413 223 261 DL
-255 255 255 SC
-393 313 50 20 0 360 AF
-0 0 0 SC
-392 314 49 19 0 360 AS
-200 255 255 SC
-393 313 50 20 0 360 AF
-60 60 200 SC
-392 314 49 19 0 360 AS
-0 0 0 SC
-(reconstruction) 60 363 310 DS
-60 60 200 SC
-false 316 361 343 333 2 PYS
-255 255 255 SC
-false 342 334 328 338 338 348 3 PYF
-0 0 0 SC
-true 342 334 328 338 338 348 3 PYS
-(<<extends>>) 57 307 350 DS
-60 60 200 SC
-false 316 317 343 317 2 PYS
-255 255 255 SC
-false 342 317 330 310 330 324 3 PYF
-0 0 0 SC
-true 342 317 330 310 330 324 3 PYS
-(<<extends>>) 57 301 323 DS
-200 60 60 SC
-false 316 273 343 293 2 PYS
-255 255 255 SC
-false 342 292 336 280 328 291 3 PYF
-0 0 0 SC
-true 342 292 336 280 328 291 3 PYS
-(<<extends>>) 57 295 286 DS
-200 60 60 SC
-false 443 309 511 309 2 PYS
-0 0 0 SC
-498 302 510 309 DL
-498 316 510 309 DL
-255 255 255 SC
-633 425 50 20 0 360 AF
-0 0 0 SC
-632 426 49 19 0 360 AS
-200 255 255 SC
-633 425 50 20 0 360 AF
-60 60 200 SC
-632 426 49 19 0 360 AS
-0 0 0 SC
-(galice.root) 43 611 422 DS
-60 60 200 SC
-false 511 453 583 445 2 PYS
-0 0 0 SC
-570 439 582 446 DL
-570 453 582 446 DL
-60 60 200 SC
-false 520 541 583 445 2 PYS
-0 0 0 SC
-569 453 582 446 DL
-581 460 582 446 DL
-60 60 200 SC
-false 599 333 599 405 2 PYS
-0 0 0 SC
-606 392 599 404 DL
-592 392 599 404 DL
-200 60 60 SC
-false 451 181 663 181 663 405 3 PYS
-0 0 0 SC
-670 392 663 404 DL
-656 392 663 404 DL
-200 60 60 SC
-false 399 205 399 293 2 PYS
-0 0 0 SC
-406 280 399 292 DL
-392 280 399 292 DL
-(use) 14 407 254 DS
-IC
--29985 30597 60000 -60000 RC
-% Font[TimesRoman, 0, 9]
-314 9 4 SF
-(use case general) 54 25 40 DS
-% Font[TimesRoman, 0, 9]
-314 9 4 SF
-(Page 1) 23 737 40 DS
-EP
-%%Trailer
-%%Pages: 1
-%%EOF
+++ /dev/null
-%!PS-Adobe-3.0
-%%Title: use case reconstruction
-%%Pages: (atend)
-%%PageOrder: Ascend
-%%DocumentFonts: Helvetica Helvetica-Bold
-%%+Helvetica-Oblique Helvetica-BoldOblique
-%%+Times-Roman Times-Bold Times-Italic Times-BoldItalic
-%%+Courier Courier-Bold Courier-Oblique Courier-BoldOblique
-%%EndComments
-%%BeginProlog
-/BD {bind def} bind def
-/D {def} BD
-/ISOF {
- dup findfont dup length 1 add dict begin {
- 1 index /FID eq {pop pop} {D} ifelse
- } forall /Encoding ISOLatin1Encoding D
- currentdict end definefont
-} BD
-/F [
- /Helvetica ISOF
- /Helvetica-Bold ISOF
- /Helvetica-Oblique ISOF
- /Helvetica-BoldOblique ISOF
- /Times-Roman ISOF
- /Times-Bold ISOF
- /Times-Italic ISOF
- /Times-BoldItalic ISOF
- /Courier ISOF
- /Courier-Bold ISOF
- /Courier-Oblique ISOF
- /Courier-BoldOblique ISOF
-] D
-/R {4 2 roll moveto 1 index 0 rlineto
- 0 exch rlineto neg 0 rlineto closepath} BD
-/Adict 8 dict D
-Adict /mtrx matrix put
-/A { Adict begin
- /endangle exch D /startangle exch D
- /yrad exch D /xrad exch D
- /y exch D /x exch D
- /savematrix mtrx currentmatrix D
- x y translate xrad yrad scale
- 0 0 1 startangle endangle arc
- savematrix setmatrix
- end } BD
-/PY {
- dup 1 ge {3 1 roll moveto} if
- -1 2 {pop lineto} for
- {closepath} if
-} BD
-/CL { dup 0 exch -1 1 arct} BD
-/RCL { dup 0 exch 1 1 arct} BD
-/RRdict 8 dict D
-RRdict /mtrx matrix put
-/RR {RRdict begin
- /yrad exch D /xrad exch D
- /height exch D /width exch D
- /y exch D /x exch D
- /width width xrad div D /height height yrad div D
- /savematrix mtrx currentmatrix D
- x y translate xrad yrad scale -90 rotate
- 1 0 moveto width RCL width 0 translate -90 rotate
- height CL height 0 translate -90 rotate
- width RCL width 0 translate -90 rotate height CL closepath
- savematrix setmatrix
- end } BD
-/SC {3 {255 div 3 1 roll} repeat setrgbcolor} BD
-/SF {
- F exch get exch scalefont setfont
- (abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890) stringwidth pop div
- currentfont exch scalefont setfont} BD
-/RC {R clip newpath} BD
-/IC {initclip} BD
-/RF {R fill} BD
-/RS {R stroke} BD
-/RRF {RR fill} BD
-/RRS {RR stroke} BD
-/AS {A stroke} BD
-/AF {6 -2 roll 2 copy moveto 6 2 roll A fill} BD
-/PYS {PY stroke} BD
-/PYF {PY eofill} BD
-/NZ {dup 1 lt {pop 1} if} BD
-/DS {
- moveto 1 index stringwidth pop NZ sub
- 1 index length 1 sub NZ div 0
- 3 2 roll ashow} BD
-/DL {moveto lineto stroke} BD
-/S {scale} BD
-/SP {/P save D} BD
-/EP {showpage P restore} BD
-/GS {gsave} BD
-/GR {grestore} BD
-/CM {
- /cmapr 256 array D
- /cmapg 256 array D
- /cmapb 256 array D
- /cmapgray null D
- 3 string exch 0 exch 1 exch 1 sub {
- currentfile 2 index readhexstring pop
- cmapr 2 index 2 index 0 get put
- cmapg 2 index 2 index 1 get put
- cmapb 2 index 2 index 2 get put
- pop pop } for pop
-} BD
-/DII {
- GS
- /imgsave save D
- translate scale
- /imgh exch D
- /imgw exch D
- /imgy exch neg D
- /imgx exch neg D
- /imgstr imgw string D
- /colorimage where {
- pop
- /cimgstr imgw 3 mul string D
- imgw imgh 8 [imgw 0 0 imgh neg imgx imgy] {
- currentfile imgstr readhexstring pop
- 0 1 imgw 1 sub {
- 2 copy get
- cmapr 1 index get
- cimgstr exch 3 index
- 3 mul exch put
- cmapg 1 index get
- cimgstr exch 3 index
- 3 mul 1 add exch put
- cmapb 1 index get
- cimgstr exch 3 index
- 3 mul 2 add exch put
- pop pop } for pop cimgstr
- } false 3 colorimage
- } {
- cmapgray null eq {
- /cmapgray cmapr length array D
- 0 1 cmapr length 1 sub {
- cmapgray exch
- cmapr 1 index get .299 mul
- cmapg 2 index get .587 mul
- cmapb 3 index get .114 mul
- add add cvi put
- } for
- } if
- imgw imgh 8 [imgw 0 0 imgh neg 0 0] {
- currentfile imgstr readhexstring pop
- 0 1 imgw 1 sub {
- imgstr exch 2 copy get
- cmapgray exch get put
- } for
- } image
- } ifelse
- imgsave restore
- GR
-} BD
-/DI {
- GS
- /imgsave save D
- translate scale
- /imgh exch D
- /imgw exch D
- /imgy exch neg D
- /imgx exch neg D
- /imgstr imgw 3 mul string D
- imgw imgh 8 [imgw 0 0 imgh neg imgx imgy] {
- currentfile imgstr readhexstring pop
- } bind false 3 colorimage
- imgsave restore
- GR
-} BD
-%%EndProlog
-%%BeginSetup
-mark {
-%%BeginFeature: ManualFeed false
-1 dict dup /ManualFeed false put setpagedevice
-%%EndFeature
-} stopped {
-%%BeginFeature: *ManualFeed false
- statusdict /manualfeed false put
-%%EndFeature
-} if cleartomark mark {
-%%BeginFeature: PageSize *Letter
-3 dict begin
- /PageSize [612 792] def
- /ImagingBBox null def
- /Policies 1 dict dup/PageSize 3 put def
- currentdict end setpagedevice
-%%EndFeature
-} stopped {
- cleartomark statusdict begin mark {
-%%BeginFeature: *PageSize Letter
- lettertray
-%%EndFeature
- } stopped end
-} if cleartomark
-% now make sure we got what we requested!
-gsave initgraphics clippath pathbbox grestore
-5 dict begin
- 3 -1 roll /yoff exch def 3 -1 roll /xoff exch def
- yoff sub /h exch def xoff sub /w exch def
- w 576 lt h 756 lt or {
- w 2 div xoff add h 2 div yoff add translate
- w xoff 2 mul add 612 div
- h yoff 2 mul add 792 div
- 2 copy gt {exch} if pop dup scale
- -306 -396 translate
- } if
-end
-
-%%EndSetup
-
-%%Page: 1 1
-SP
-IC
-15 777 582 -717 RC
-128 128 128 SC
-118 610 10 15 0 360 AF
-117 611 9 14 0 360 AS
-255 255 255 SC
-118 610 10 15 0 360 AF
-0 0 0 SC
-117 611 9 14 0 360 AS
-118 595 118 575 DL
-108 585 128 585 DL
-118 575 113 560 DL
-118 575 123 560 DL
-% Font[Dialog, 0, 9]
-340 9 0 SF
-(PHOS actor) 45 96 544 DS
-255 255 255 SC
-310 605 68 20 0 360 AF
-0 0 0 SC
-309 606 67 19 0 360 AS
-200 255 255 SC
-310 605 68 20 0 360 AF
-60 60 200 SC
-309 606 67 19 0 360 AS
-0 0 0 SC
-(Make clusters in PHOS/EMC) 114 253 602 DS
-60 60 200 SC
-false 142 609 242 609 2 PYS
-255 255 255 SC
-310 549 68 20 0 360 AF
-0 0 0 SC
-309 550 67 19 0 360 AS
-200 255 255 SC
-310 549 68 20 0 360 AF
-60 60 200 SC
-309 550 67 19 0 360 AS
-0 0 0 SC
-(Make clusters in PHOS/PPSD) 114 253 546 DS
-60 60 200 SC
-false 135 585 247 561 2 PYS
-255 255 255 SC
-292 661 50 20 0 360 AF
-0 0 0 SC
-291 662 49 19 0 360 AS
-200 255 255 SC
-292 661 50 20 0 360 AF
-60 60 200 SC
-291 662 49 19 0 360 AS
-0 0 0 SC
-(Get Digits from file) 78 253 658 DS
-60 60 200 SC
-false 142 625 231 641 242 641 3 PYS
-255 255 255 SC
-292 493 50 20 0 360 AF
-0 0 0 SC
-291 494 49 19 0 360 AS
-200 255 255 SC
-292 493 50 20 0 360 AF
-60 60 200 SC
-291 494 49 19 0 360 AS
-0 0 0 SC
-(Make sub tracks) 68 258 490 DS
-60 60 200 SC
-false 143 561 242 513 2 PYS
-255 255 255 SC
-305 429 55 20 0 360 AF
-0 0 0 SC
-304 430 54 19 0 360 AS
-255 200 255 SC
-305 429 55 20 0 360 AF
-0 0 0 SC
-304 430 54 19 0 360 AS
-(Save sub tracks to file) 88 261 426 DS
-200 60 60 SC
-false 142 540 250 449 2 PYS
-255 255 255 SC
-336 357 86 20 0 360 AF
-0 0 0 SC
-335 358 85 19 0 360 AS
-255 200 255 SC
-336 357 86 20 0 360 AF
-200 60 60 SC
-335 358 85 19 0 360 AS
-0 0 0 SC
-(Save methods and parameters to file ) 150 261 354 DS
-200 60 60 SC
-false 142 540 250 377 2 PYS
-255 255 255 SC
-489 589 50 20 0 360 AF
-0 0 0 SC
-488 590 49 19 0 360 AS
-200 255 255 SC
-489 589 50 20 0 360 AF
-60 60 200 SC
-488 590 49 19 0 360 AS
-0 0 0 SC
-(Make clusters) 55 461 586 DS
-60 60 200 SC
-false 378 609 447 593 2 PYS
-255 255 255 SC
-false 446 594 432 590 435 604 3 PYF
-0 0 0 SC
-true 446 594 432 590 435 604 3 PYS
-(<<extends>>) 57 386 606 DS
-60 60 200 SC
-false 375 553 455 577 2 PYS
-255 255 255 SC
-false 454 576 443 567 440 581 3 PYF
-0 0 0 SC
-true 454 576 443 567 440 581 3 PYS
-(<<extends>>) 57 384 569 DS
-IC
--29985 30777 60000 -60000 RC
-% Font[TimesRoman, 0, 9]
-314 9 4 SF
-(use case reconstruction) 78 25 40 DS
-% Font[TimesRoman, 0, 9]
-314 9 4 SF
-(Page 1) 23 557 40 DS
-EP
-%%Trailer
-%%Pages: 1
-%%EOF
--- /dev/null
+/**************************************************************************
+ * 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. *
+ **************************************************************************/
+
+//_________________________________________________________________________
+// Cheking PHOSHistos procedure of PHOS
+//*-- Author : Gines MARTINEZ SUBATECH january 2000
+//////////////////////////////////////////////////////////////////////////////
+
+// --- ROOT system ---
+
+#include "TCanvas.h"
+#include "TFile.h"
+#include "TH1.h"
+#include "TPad.h"
+#include "TTree.h"
+
+// --- Standard library ---
+
+#include <iostream>
+#include <cstdio>
+
+
+// --- AliRoot header files ---
+#include "AliRun.h"
+#include "TFile.h"
+#include "AliPHOSGeometry.h"
+#include "AliPHOSv0.h"
+#include "AliPHOSDigit.h"
+#include "AliPHOSRecPoint.h"
+#include "AliPHOSEmcRecPoint.h"
+#include "AliPHOSPpsdRecPoint.h"
+#include "AliPHOSClusterizerv1.h"
+#include "AliPHOSReconstructioner.h"
+#include "AliPHOSTrackSegment.h"
+#include "AliPHOSTrackSegmentMakerv1.h"
+#include "PHOSHistos.h"
+
+
+void PHOSHistos (Text_t* infile, Int_t nevent, Int_t Module)
+{
+//========== Opening galice.root file
+ TFile * file = new TFile(infile);
+//========== Get AliRun object from file
+ gAlice = (AliRun*) file->Get("gAlice");//=========== Gets the PHOS object and associated geometry from the file
+ AliPHOSv0 * PHOS = (AliPHOSv0 *)gAlice->GetDetector("PHOS");
+ AliPHOSGeometry * Geom = AliPHOSGeometry::GetInstance(PHOS->GetGeometry()->GetName(),PHOS->GetGeometry()->GetTitle());
+//========== Creates the Clusterizer
+ AliPHOSClusterizerv1 clusterizer;
+ clusterizer.SetEmcEnergyThreshold(0.01) ;
+ clusterizer.SetEmcClusteringThreshold(0.1) ;
+ clusterizer.SetPpsdEnergyThreshold(0.00000005) ;
+ clusterizer.SetPpsdClusteringThreshold(0.0000005) ;
+ clusterizer.SetLocalMaxCut(0.03) ;
+ clusterizer.SetCalibrationParameters(0., 0.00000001) ;
+//========== Creates the track segment maker
+ AliPHOSTrackSegmentMakerv1 tracksegmentmaker ;
+//========== Creates the Reconstructioner
+ AliPHOSReconstructioner Reconstructioner(clusterizer,tracksegmentmaker);
+
+ TH1F * hEmcDigit = new TH1F("hEmcDigit","hEmcDigit",1000,0.,10.);
+ TH1F * hVetoDigit = new TH1F("hVetoDigit","hVetoDigit",1000,0.,3.e-5);
+ TH1F * hConvertorDigit = new TH1F("hConvertorDigit","hConvertorDigit",1000,0.,3.e-5);
+ TH1F * hEmcCluster = new TH1F("hEmcCluster","hEmcCluster",100,0.,10.);
+ TH1F * hVetoCluster = new TH1F("hVetoCluster","hVetoCluster",1000,0.,3.e-5);
+ TH1F * hConvertorCluster = new TH1F("hConvertorCluster","hConvertorCluster",1000,0.,3.e-5);
+ AliPHOSDigit * digit ;
+
+//========== Loop on events
+ Int_t ievent;
+ for(ievent=0;ievent<nevent; ievent++)
+ {
+ // cout << "Event " << ievent <<endl;
+
+ Int_t RelId[4] ;
+ //=========== Connects the various Tree's for evt
+ gAlice->GetEvent(ievent);
+ //=========== Gets the Digit TTree
+ gAlice->TreeD()->GetEvent(0) ;
+ //=========== Gets the number of entries in the Digits array
+ // Int_t nId = PHOS->Digits()->GetEntries();
+ TIter next(PHOS->Digits()) ;
+ Float_t Etot=0 ;
+ Int_t nVeto=0 ;
+ Int_t nConvertor=0 ;
+ while( ( digit = (AliPHOSDigit *)next() ) )
+ {
+ Etot+=clusterizer.Calibrate(digit->GetAmp()) ;
+ Geom->AbsToRelNumbering(digit->GetId(), RelId) ;
+
+ if (clusterizer.IsInEmc(digit))
+ { hEmcDigit->Fill(clusterizer.Calibrate(digit->GetAmp())) ; }
+ else
+ {
+ if (RelId[1]==9) {nVeto++; hVetoDigit->Fill(clusterizer.Calibrate(digit->GetAmp()));}
+ if (RelId[1]==25){nConvertor++; hConvertorDigit->Fill(clusterizer.Calibrate(digit->GetAmp()));}
+ }
+ }
+
+ // if (nVeto>1) printf("AnaPHOSv0.C> Number of Veto entries is %d \n",nVeto);
+ // if (nConvertor>1) printf("AnaPHOSv0.C> Number of Convertor entries is %d \n",nConvertor);
+
+// cout <<"TestRec> Found " << nId << " digits in PHOS with total energy " << Etot << endl ;
+//
+ PHOS->Reconstruction(Reconstructioner);
+ // PHOS->EmcClusters()->Delete();
+// PHOS->PpsdClusters()->Delete();
+//
+// //=========== Cluster in Module
+// TClonesArray * EmcRP = PHOS->EmcClusters() ;
+// Etot = 0.;
+// Int_t TotalNumberOfClusters = 0 ;
+// Int_t NumberOfClusters = 0 ;
+// TIter nextemc(EmcRP) ;
+// AliPHOSEmcRecPoint * emc ;
+// while((emc = (AliPHOSEmcRecPoint *)nextemc()))
+// {
+// TotalNumberOfClusters++ ;
+// if ( emc->GetPHOSMod() == Module )
+// {
+// NumberOfClusters++ ;
+// Energy = emc->GetTotalEnergy() ;
+// hEmcCluster->Fill(Energy);
+// Etot+=Energy ;
+// }
+// }
+// cout << "TestRec> Found " << TotalNumberOfClusters << " EMC Clusters in PHOS" << endl ;
+// cout << "TestRec> Found in Module " << Module << " " << NumberOfClusters << " EMC Clusters " << endl ;
+// cout << "TestRec> Total energy " <<Etot << endl ;
+//
+// //=========== Cluster in Module PPSD Down
+// TClonesArray * PpsdRP = PHOS->PpsdClusters() ;
+// Etot = 0.;
+// Int_t TotalNumberOfClusters = 0 ;
+// Int_t NumberOfClusters = 0 ;
+// TIter nextPpsd(PpsdRP) ;
+// AliPHOSPpsdRecPoint * Ppsd ;
+// while((Ppsd = (AliPHOSPpsdRecPoint *)nextPpsd()))
+// {
+// TotalNumberOfClusters++ ;
+// if ( Ppsd->GetPHOSMod() == Module )
+// {
+// NumberOfClusters++ ;
+// Energy = Ppsd->GetEnergy() ;
+// hConvertorCluster->Fill(Energy) ;
+// Etot+=Energy ;
+// if (!Ppsd->GetUp()) Ppsd->Draw("P") ;
+// }
+// }
+// cout << "TestRec> Found " << TotalNumberOfClusters << " Ppsd Down Clusters in PHOS" << endl ;
+// cout << "TestRec> Found in Module " << Module << " " << NumberOfClusters << " Ppsd Down Clusters " << endl ;
+// cout << "TestRec> Total energy " <<Etot << endl ;
+//
+// //=========== Cluster in Module PPSD Up
+// PpsdRP = PHOS->PpsdClusters() ;
+// Etot = 0.;
+// Int_t TotalNumberOfClusters = 0 ;
+// Int_t NumberOfClusters = 0 ;
+// TIter nextPpsdUp(PpsdRP) ;
+// while((Ppsd = (AliPHOSPpsdRecPoint *)nextPpsdUp()))
+// {
+// TotalNumberOfClusters++ ;
+// if ( Ppsd->GetPHOSMod() == Module )
+// {
+// NumberOfClusters++ ;
+// Energy = Ppsd->GetEnergy() ;
+// hVetoCluster->Fill(Energy);
+// Etot+=Energy ;
+// if (Ppsd->GetUp()) Ppsd->Draw("P") ;
+// }
+// }
+// cout << "TestRec> Found " << TotalNumberOfClusters << " Ppsd Up Clusters in PHOS" << endl ;
+// cout << "TestRec> Found in Module " << Module << " " << NumberOfClusters << " Ppsd Up Clusters " << endl ;
+// cout << "TestRec> Total energy " <<Etot << endl ;
+
+ }
+ TCanvas * cVetoDigit = new TCanvas("VetoDigit","VetoDigit");
+ hVetoDigit->Draw();
+ TCanvas * cConvertorDigit = new TCanvas("ConvertorDigit","ConvertorDigit");
+ hConvertorDigit->Draw();
+ TCanvas * cEmcDigit = new TCanvas("EmcDigit","EmcDigit");
+ hEmcDigit->Draw();
+
+
+}
+
+
--- /dev/null
+#ifndef PHOSHISTOS_H
+#define PHOSHISTOS_H
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice */
+
+////////////////////////////////////////////////
+// PHOSHistos function for PHOS //
+// Version SUBATECH //
+// Author G.Martinez, SUBATECH //
+// january 2000: //
+////////////////////////////////////////////////
+
+// --- ROOT system ---
+
+// --- AliRoot header files ---
+
+// --- Standard library ---
+
+
+void PHOSHistos(Text_t *,Int_t neventt, Int_t Module) ;
+
+//////////////////////////////////////////////////////////////////////////////
+
+#endif // PHOSHISTOS_H
#pragma link C++ class AliPHOSTrackSegment ;
#pragma link C++ class AliPHOSTrackSegmentMaker ;
#pragma link C++ class AliPHOSTrackSegmentMakerv1 ;
+#pragma link C++ function ReconstructionTest(Text_t*,Int_t, Int_t);
+#pragma link C++ function PHOSHistos(Text_t*,Int_t, Int_t);
+
#endif
--- /dev/null
+
+/**************************************************************************
+ * 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. *
+ **************************************************************************/
+
+//_________________________________________________________________________
+// Cheking Reconstruction procedure of PHOS
+//*-- Author : Gines MARTINEZ SUBATECH january 2000
+//////////////////////////////////////////////////////////////////////////////
+
+// --- ROOT system ---
+
+#include "TFile.h"
+#include "TH1.h"
+#include "TPad.h"
+#include "TTree.h"
+#include "TCanvas.h"
+#include "TParticle.h"
+
+// --- Standard library ---
+
+#include <iostream>
+#include <cstdio>
+
+
+// --- AliRoot header files ---
+#include "AliRun.h"
+#include "TFile.h"
+#include "AliPHOSGeometry.h"
+#include "AliPHOSv0.h"
+#include "AliPHOSDigit.h"
+#include "AliPHOSRecPoint.h"
+#include "AliPHOSEmcRecPoint.h"
+#include "AliPHOSPpsdRecPoint.h"
+#include "AliPHOSClusterizerv1.h"
+#include "AliPHOSReconstructioner.h"
+#include "AliPHOSTrackSegment.h"
+#include "AliPHOSTrackSegmentMakerv1.h"
+#include "ReconstructionTest.h"
+
+
+void ReconstructionTest(Text_t* infile,Int_t evt, Int_t Module)
+{
+ //========== Opening galice.root file
+ TFile * file = new TFile(infile);
+ //========== Get AliRun object from file
+ gAlice = (AliRun*) file->Get("gAlice");
+ //=========== Gets the PHOS object and associated geometry from the file
+ AliPHOSv0 * PHOS = (AliPHOSv0 *)gAlice->GetDetector("PHOS");
+ AliPHOSGeometry * Geom = AliPHOSGeometry::GetInstance(PHOS->GetGeometry()->GetName(),PHOS->GetGeometry()->GetTitle());
+ //========== Creates the Clusterizer
+ AliPHOSClusterizerv1 clusterizer;
+ clusterizer.SetEmcEnergyThreshold(0.01) ;
+ clusterizer.SetEmcClusteringThreshold(0.1) ;
+ clusterizer.SetPpsdEnergyThreshold(0.0000001) ;
+ clusterizer.SetPpsdClusteringThreshold(0.0000002) ;
+ clusterizer.SetLocalMaxCut(0.03) ;
+ clusterizer.SetCalibrationParameters(0., 0.0000001) ;
+ //========== Creates the track segment maker
+ AliPHOSTrackSegmentMakerv1 tracksegmentmaker ;
+ //========== Creates the Reconstructioner
+ AliPHOSReconstructioner Reconstructioner(clusterizer,tracksegmentmaker);
+ //=========== Connects the various Tree's for evt
+ gAlice->GetEvent(evt);
+ //=========== Gets the Digit TTree
+ gAlice->TreeD()->GetEvent(0) ;
+ //=========== Gets the number of entries in the Digits array
+ Int_t nId = PHOS->Digits()->GetEntries();
+ printf("ReconstructionTest> Number of entries in the Digit array is %d \n",nId);
+ //=========== Do the reconstruction
+ AliPHOSDigit * digit ;
+ TIter next(PHOS->Digits()) ;
+ Float_t Etot=0 ;
+ while( ( digit = (AliPHOSDigit *)next() ) )
+ Etot+=clusterizer.Calibrate(digit->GetAmp()) ;
+ cout <<"ReconstructionTest> Found " << nId << " digits in PHOS with total energy " << Etot << endl ;
+ PHOS->Reconstruction(Reconstructioner);
+ //================Make checks===========================
+
+ //=========== Creating Canvas
+ TCanvas * ModuleCanvas = new TCanvas("Module","Events in a single PHOS Module", 650, 500) ;
+ ModuleCanvas->Draw() ;
+
+ //=========== Creating 2d-histogram of the PHOS Module
+ // a little bit junkie but is used to test Geom functinalities
+
+ Double_t tm, tM, pm, pM ; // min and Max theta and phi covered by Module 1
+
+ Geom->EmcModuleCoverage(1, tm, tM, pm, pM);
+ // convert angles into coordinates local to the EMC module of interest
+
+ Int_t EmcModuleNumber ;
+ Double_t EmcModulexm, EmcModulezm ; // minimum local coordinate in a given EMCA module
+ Double_t EmcModulexM, EmcModulezM ; // maximum local coordinate in a given EMCA module
+ Geom->ImpactOnEmc(tm, pm, EmcModuleNumber, EmcModulezm, EmcModulexm) ;
+ Geom->ImpactOnEmc(tM, pM, EmcModuleNumber, EmcModulezM, EmcModulexM) ;
+ Int_t xdim = (Int_t)( ( EmcModulexM - EmcModulexm ) / Geom->GetCrystalSize(0) ) ;
+ Int_t zdim = (Int_t)( ( EmcModulezM - EmcModulezm ) / Geom->GetCrystalSize(2) ) ;
+ Float_t xmin = EmcModulexm - Geom->GetCrystalSize(0) ;
+ Float_t xMax = EmcModulexM + Geom->GetCrystalSize(0) ;
+ Float_t zmin = EmcModulezm - Geom->GetCrystalSize(2) ;
+ Float_t zMax = EmcModulezM + Geom->GetCrystalSize(2) ;
+ // histogram of reconstructed events
+ Text_t HistoName[80];
+ sprintf(HistoName,"Event %d: Reconstructed particles in module %d", evt, Module) ;
+ TH2F * hModule = new TH2F("HistoReconstructed", HistoName,
+ xdim, xmin, xMax, zdim, zmin, zMax) ;
+ hModule->SetMaximum(2.0);
+ hModule->SetMinimum(0.0);
+ hModule->SetStats(kFALSE);
+ // histogram of generated particles
+ sprintf(HistoName,"Event %d: Incident particles in module %d", evt, Module) ;
+ TH2F * HistoParticle = new TH2F("HistoParticle", HistoName,
+ xdim, xmin, xMax, zdim, zmin, zMax) ;
+ HistoParticle->SetStats(kFALSE) ;
+
+ //=========== Digits of Module
+ TIter next2(PHOS->Digits()) ;
+ Float_t Energy, y, z;
+ Int_t RelId[4]; Int_t NumberOfDigits = 0 ;
+ while((digit = (AliPHOSDigit *)next2()))
+ {
+ Geom->AbsToRelNumbering(digit->GetId(), RelId) ;
+ if (RelId[0] == Module)
+ {
+ NumberOfDigits++ ;
+ Energy = clusterizer.Calibrate(digit->GetAmp()) ;
+ Etot+=Energy ;
+ Geom->RelPosInModule(RelId,y,z) ;
+ if (Energy>0.01 )
+ hModule->Fill(y,z,Energy) ;
+ }
+ }
+ cout <<"TestRec> Found in Module " << Module << " " << NumberOfDigits << " digits with total energy " << Etot << endl ;
+ hModule->Draw("col2") ;
+
+ //=========== Cluster in Module
+ TClonesArray * EmcRP = PHOS->EmcClusters() ;
+ Etot = 0.;
+ Int_t TotalNumberOfClusters = 0 ;
+ Int_t NumberOfClusters = 0 ;
+ TIter nextemc(EmcRP) ;
+ AliPHOSEmcRecPoint * emc ;
+ while((emc = (AliPHOSEmcRecPoint *)nextemc()))
+ {
+ TotalNumberOfClusters++ ;
+ if ( emc->GetPHOSMod() == Module )
+ {
+ NumberOfClusters++ ;
+ Energy = emc->GetTotalEnergy() ;
+ Etot+=Energy ;
+ emc->Draw("P") ;
+ }
+ }
+ cout << "TestRec> Found " << TotalNumberOfClusters << " EMC Clusters in PHOS" << endl ;
+ cout << "TestRec> Found in Module " << Module << " " << NumberOfClusters << " EMC Clusters " << endl ;
+ cout << "TestRec> Total energy " <<Etot << endl ;
+
+ TPaveText * PaveText = new TPaveText(22, 80, 83, 90);
+ Text_t text[40] ;
+ sprintf(text, "digits: %d; clusters: %d", NumberOfDigits, NumberOfClusters) ;
+ PaveText->AddText(text) ;
+ PaveText->Draw() ;
+ ModuleCanvas->Update();
+
+ //=========== Cluster in Module PPSD Down
+ TClonesArray * PpsdRP = PHOS->PpsdClusters() ;
+ Etot = 0.;
+ TIter nextPpsd(PpsdRP) ;
+ AliPHOSPpsdRecPoint * Ppsd ;
+ while((Ppsd = (AliPHOSPpsdRecPoint *)nextPpsd()))
+ {
+ TotalNumberOfClusters++ ;
+ if ( Ppsd->GetPHOSMod() == Module )
+ {
+ NumberOfClusters++ ;
+ Energy = Ppsd->GetEnergy() ;
+ Etot+=Energy ;
+ if (!Ppsd->GetUp()) Ppsd->Draw("P") ;
+ }
+ }
+ cout << "TestRec> Found " << TotalNumberOfClusters << " Ppsd Down Clusters in PHOS" << endl ;
+ cout << "TestRec> Found in Module " << Module << " " << NumberOfClusters << " Ppsd Down Clusters " << endl ;
+ cout << "TestRec> Total energy " <<Etot << endl ;
+
+//=========== Cluster in Module PPSD Up
+ PpsdRP = PHOS->PpsdClusters() ;
+ Etot = 0.;
+ TIter nextPpsdUp(PpsdRP) ;
+ while((Ppsd = (AliPHOSPpsdRecPoint *)nextPpsdUp()))
+ {
+ TotalNumberOfClusters++ ;
+ if ( Ppsd->GetPHOSMod() == Module )
+ {
+ NumberOfClusters++ ;
+ Energy = Ppsd->GetEnergy() ;
+ Etot+=Energy ;
+ if (Ppsd->GetUp()) Ppsd->Draw("P") ;
+ }
+ }
+ cout << "TestRec> Found " << TotalNumberOfClusters << " Ppsd Up Clusters in PHOS" << endl ;
+ cout << "TestRec> Found in Module " << Module << " " << NumberOfClusters << " Ppsd Up Clusters " << endl ;
+ cout << "TestRec> Total energy " <<Etot << endl ;
+
+ // Get pointers to Alice Particle TClonesArray
+ TParticle * Particle;
+ TClonesArray * ArrayOfParticles = gAlice->Particles();
+ TCanvas * KineCanvas = new TCanvas("KineCnvas", "Incident particles", 650, 500) ;
+ // get the KINE Tree
+ TTree * Kine = gAlice->TreeK() ;
+ Stat_t NumberOfParticles = Kine->GetEntries() ;
+ cout << "events in Kine " << NumberOfParticles << endl ;
+
+ // loop over particles
+ Int_t index1 ;
+ Int_t nparticlein = 0 ;
+ for (index1 = 0 ; index1 < NumberOfParticles ; index1++){
+ Int_t nparticle = ArrayOfParticles->GetEntriesFast() ;
+ cout << nparticle << endl ;
+ Int_t index2 ;
+ for( index2 = 0 ; index2 < nparticle; index2++) {
+ Particle = (TParticle*)ArrayOfParticles->UncheckedAt(index2) ;
+ Int_t ParticleType = Particle->GetPdgCode() ;
+ Double_t Phi = Particle->Phi() ;
+ Double_t Theta = Particle->Theta() ;
+ Int_t mod ;
+ Double_t x, z ;
+ Geom->ImpactOnEmc(Theta, Phi, mod, z, x) ;
+ if ( mod == Module ) {
+ nparticlein++ ;
+ HistoParticle->Fill( x, -z, Particle->Energy() ) ; //-z don't know why, but that is how it works
+ }
+ }
+ }
+ KineCanvas->Draw() ;
+ HistoParticle->Draw("color") ;
+ TPaveText * PaveText2 = new TPaveText(22, 80, 83, 90);
+ sprintf(text, "Particles: %d ", nparticlein) ;
+ PaveText2->AddText(text) ;
+ PaveText2->Draw() ;
+ KineCanvas->Update();
+
+// TObjArray * trsegl = PHOS->TrackSegments() ;
+// AliPHOSTrackSegment trseg ;
+
+// Int_t NTrackSegments = trsegl->GetEntries() ;
+// Int_t index ;
+// Etot = 0 ;
+// for(index = 0; index < NTrackSegments ; index++){
+// trseg = (AliPHOSTrackSegment * )trsegl->At(index) ;
+// Etot+= trseg->GetEnergy() ;
+// if ( trseg->GetPHOSMod() == Module )
+// {
+// // trseg->Draw("P");
+// trseg->Print() ;
+// }
+// }
+// cout << "Found " << trsegl->GetEntries() << " Track segments with total energy "<< Etot << endl ;
+//
+
+
+
+}
+
+
--- /dev/null
+#ifndef RECONSTRUCTIONTEST_H
+#define RECONSTRUCTIONTEST_H
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice */
+
+////////////////////////////////////////////////
+// ReconstructionTest function for PHOS //
+// Version SUBATECH //
+// Author G.Martinez, SUBATECH //
+// january 2000: //
+////////////////////////////////////////////////
+
+// --- ROOT system ---
+
+// --- AliRoot header files ---
+
+// --- Standard library ---
+
+
+void ReconstructionTest(Text_t *,Int_t evt, Int_t Module) ;
+
+//////////////////////////////////////////////////////////////////////////////
+
+#endif // RECONSTRUCTIONTEST_H
//========== Creates the track segment maker
- AliPHOSTrackSegmentMakererv1 tracksegmentmaker ;
+ AliPHOSTrackSegmentMakerv1 tracksegmentmaker ;
//========== Creates the Reconstructioner
AliPHOSReconstructioner Reconstructioner(clusterizer,tracksegmentmaker);