/*
$Log$
+ Revision 1.25 2000/10/02 21:28:12 fca
+ Removal of useless dependecies via forward declarations
+
Revision 1.24 2000/10/02 15:43:17 jbarbosa
Fixed forward declarations.
Fixed honeycomb density.
#include <strings.h>
#include "AliRICH.h"
-#include "AliRICHSegmentation.h"
+#include "AliSegmentation.h"
#include "AliRICHHit.h"
#include "AliRICHCerenkov.h"
#include "AliRICHPadHit.h"
//End_Html
AliRICH *pRICH = (AliRICH *) gAlice->GetDetector("RICH");
- AliRICHSegmentation* segmentation;
+ AliSegmentation* segmentation;
AliRICHGeometry* geometry;
AliRICHChamber* iChamber;
}
//___________________________________________
-void AliRICH::SetSegmentationModel(Int_t id, AliRICHSegmentation *segmentation)
+void AliRICH::SetSegmentationModel(Int_t id, AliSegmentation *segmentation)
{
//
// Setter for the RICH segmentation model
//
- ((AliRICHChamber*) (*fChambers)[id])->SegmentationModel(segmentation);
+ ((AliRICHChamber*) (*fChambers)[id])->SetSegmentationModel(segmentation);
}
//___________________________________________
// Setter for the RICH reconstruction model (clusters)
//
- ((AliRICHChamber*) (*fChambers)[id])->ReconstructionModel(reconst);
+ ((AliRICHChamber*) (*fChambers)[id])->SetReconstructionModel(reconst);
}
void AliRICH::SetNsec(Int_t id, Int_t nsec)
// Get ready the current chamber stuff
//
AliRICHResponse* response = iChamber->GetResponseModel();
- AliRICHSegmentation* seg = iChamber->GetSegmentationModel();
+ AliSegmentation* seg = iChamber->GetSegmentationModel();
AliRICHClusterFinder* rec = iChamber->GetReconstructionModel();
if (seg) {
rec->SetSegmentation(seg);
{
// Stream an object of class AliRICH.
AliRICHChamber *iChamber;
- AliRICHSegmentation *segmentation;
+ AliSegmentation *segmentation;
AliRICHResponse *response;
TClonesArray *digitsaddress;
TClonesArray *rawcladdress;
points=fopen("points.dat","w");
AliRICHChamber* iChamber;
- AliRICHSegmentation* segmentation;
+ AliSegmentation* segmentation;
Int_t digitse=0;
Int_t trk[50];
Int_t digits[5];
AliRICH *pRICH = (AliRICH *) gAlice->GetDetector("RICH");
- AliRICHHitMap* pHitMap[10];
+ AliHitMap* pHitMap[10];
Int_t i;
for (i=0; i<10; i++) {pHitMap[i]=0;}
if (addBackground ) {
}
}
- AliRICHHitMap* hm;
+ AliHitMap* hm;
Int_t countadr=0;
Int_t counter=0;
for (i =0; i<kNCH; i++) {
//
//printf("X:%d, Y:%d, Q:%d\n",ipx,ipy,iqpad);
- Float_t thex, they;
+ Float_t thex, they, thez;
segmentation=iChamber->GetSegmentationModel(cathode);
- segmentation->GetPadCxy(ipx,ipy,thex,they);
+ segmentation->GetPadC(ipx,ipy,thex,they,thez);
new((*pAddress)[countadr++]) TVector(2);
TVector &trinfo=*((TVector*) (*pAddress)[countadr-1]);
trinfo(0)=(Float_t)track;
Int_t ipy = mPad->fPadY; // pad number on Y
Int_t iqpad = mPad->fQpad; // charge per pad
- Float_t thex, they;
+ Float_t thex, they, thez;
segmentation=iChamber->GetSegmentationModel(cathode);
- segmentation->GetPadCxy(ipx,ipy,thex,they);
+ segmentation->GetPadC(ipx,ipy,thex,they,thez);
Float_t rpad=TMath::Sqrt(thex*thex+they*they);
if (rpad < rmin || iqpad ==0 || rpad > rmax) continue;
new((*pAddress)[countadr++]) TVector(2);
class AliRICHDetect;
class AliRICHChamber;
class AliRICHCerenkov;
-class AliRICHSegmentation;
+class AliSegmentation;
class AliRICHResponse;
class AliRICHEllipse;
class AliRICHGeometry;
// id refers to the station and isec to the cathode plane
// Set Segmentation and Response Model
virtual void SetGeometryModel(Int_t id, AliRICHGeometry *geometry);
- virtual void SetSegmentationModel(Int_t id, AliRICHSegmentation *segmentation);
+ virtual void SetSegmentationModel(Int_t id, AliSegmentation *segmentation);
virtual void SetResponseModel(Int_t id, AliRICHResponse *response);
virtual void SetNsec(Int_t id, Int_t nsec);
// Set Reconstruction Model
/*
$Log$
+ Revision 1.6 2000/10/02 15:44:37 jbarbosa
+ Fixed forward declarations.
+
Revision 1.5 2000/07/13 16:19:45 fca
Mainly coding conventions + some small bug fixes
#include <TObjArray.h>
#include <TRotMatrix.h>
#include <AliRICHTresholdMap.h>
-#include <AliRICHSegmentation.h>
+#include <AliSegmentation.h>
#include <AliRICHGeometry.h>
#include <AliRICHResponse.h>
fResponse=thisResponse;
}
-void AliRICHChamber::Init()
+void AliRICHChamber::Init(Int_t id)
{
// Initialise chambers
- fSegmentation->Init(this);
+ fSegmentation->Init(id);
}
void AliRICHChamber::LocaltoGlobal(Float_t pos[3],Float_t Globalpos[3])
nnew=0;
for (Int_t i=1; i<=fnsec; i++) {
qcheck=0;
- for (fSegmentation->FirstPad(xhit, yhit, dx, dy);
+ for (fSegmentation->FirstPad(xhit, yhit, 0, dx, dy);
fSegmentation->MorePads();
fSegmentation->NextPad())
{
#include <TRotMatrix.h>
#include "AliRICHTresholdMap.h"
-#include "AliRICHSegmentation.h"
+#include "AliSegmentation.h"
#include "AliRICHGeometry.h"
#include "AliRICHResponse.h"
void SetGid(Int_t id) {fGid=id;}
//
// Initialisation and z-Position
- void Init();
+ void Init(Int_t id);
// Set inner radius of sensitive volume
void SetRInner(Float_t rmin) {frMin=rmin;}
// Set outer radius of sensitive volum
//
// Configure segmentation model
- void SegmentationModel(AliRICHSegmentation* thisSegmentation) {
+ void SetSegmentationModel(AliSegmentation* thisSegmentation) {
fSegmentation = thisSegmentation;
}
- void ReconstructionModel(AliRICHClusterFinder *thisReconstruction) {
+ void SetReconstructionModel(AliRICHClusterFinder *thisReconstruction) {
fReconstruction = thisReconstruction;
}
AliRICHResponse* GetResponseModel();
//
// Get reference to segmentation model
- AliRICHSegmentation* GetSegmentationModel() {
+ AliSegmentation* GetSegmentationModel() {
return fSegmentation;
}
}
- AliRICHSegmentation* GetSegmentationModel(Int_t i) {
+ AliSegmentation* GetSegmentationModel(Int_t i) {
return fSegmentation;
}
TRotMatrix *fChamberMatrix; //Rotation matrices for each chamber
Float_t fChamberTrans[3]; //Translaction vectors for each chamber
- AliRICHSegmentation *fSegmentation; //Segmentation model for each chamber
+ AliSegmentation *fSegmentation; //Segmentation model for each chamber
AliRICHResponse *fResponse; //Response model for each chamber
AliRICHGeometry *fGeometry; //Geometry model for each chamber
AliRICHClusterFinder *fReconstruction; //Reconstruction model for each chamber
/*
$Log$
+ Revision 1.6 2000/10/02 21:28:12 fca
+ Removal of useless dependecies via forward declarations
+
Revision 1.5 2000/10/02 15:45:58 jbarbosa
Fixed forward declarations.
#include <TMinuit.h>
//----------------------------------------------------------
-static AliRICHSegmentation* gSegmentation;
+static AliSegmentation* gSegmentation;
static AliRICHResponse* gResponse;
static Int_t gix[500];
static Int_t giy[500];
ClassImp(AliRICHClusterFinder)
AliRICHClusterFinder::AliRICHClusterFinder
-(AliRICHSegmentation *segmentation, AliRICHResponse *response,
+(AliSegmentation *segmentation, AliRICHResponse *response,
TClonesArray *digits, Int_t chamber)
{
AliRICHDigit* dig[100], *digt;
Int_t ix[100], iy[100], q[100];
- Float_t x[100], y[100];
+ Float_t x[100], y[100], zdum;
Int_t i; // loops over digits
Int_t j; // loops over local maxima
// Float_t xPeak[2];
ix[i]= dig[i]->fPadX;
iy[i]= dig[i]->fPadY;
q[i] = dig[i]->fSignal;
- fSegmentation->GetPadCxy(ix[i], iy[i], x[i], y[i]);
+ fSegmentation->GetPadC(ix[i], iy[i], x[i], y[i], zdum);
}
//
// Find local maxima
} else {
cnew.fQ=Int_t(gChargeTot*(1-qfrac));
}
- gSegmentation->SetHit(xrec[j],yrec[j]);
+ gSegmentation->SetHit(xrec[j],yrec[j],0);
for (i=0; i<mul; i++) {
cnew.fIndexMap[cnew.fMultiplicity]=c->fIndexMap[i];
gSegmentation->SetPad(gix[i], giy[i]);
// Completes cluster information starting from list of digits
//
AliRICHDigit* dig;
- Float_t x, y;
+ Float_t x, y, z;
Int_t ix, iy;
Float_t frac=0;
}
//
if (flag) {
- fSegmentation->GetPadCxy(ix, iy, x, y);
+ fSegmentation->GetPadC(ix, iy, x, y, z);
c->fX += q*x;
c->fY += q*y;
c->fQ += q;
//
x=c->fX;
y=c->fY;
- fSegmentation->GetPadIxy(x, y, ix, iy);
- fSegmentation->GetPadCxy(ix, iy, x, y);
+ fSegmentation->GetPadI(x, y, 0, ix, iy);
+ fSegmentation->GetPadC(ix, iy, x, y, z);
Int_t isec=fSegmentation->Sector(ix,iy);
TF1* cogCorr = fSegmentation->CorrFunc(isec-1);
}
// Prepare center of gravity calculation
- Float_t x, y;
- fSegmentation->GetPadCxy(i, j, x, y);
+ Float_t x, y, z;
+ fSegmentation->GetPadC(i, j, x, y, z);
c.fX += q*x;
c.fY += q*y;
c.fQ += q;
Int_t ix,iy;
Float_t x=c.fX;
Float_t y=c.fY;
- fSegmentation->GetPadIxy(x, y, ix, iy);
- fSegmentation->GetPadCxy(ix, iy, x, y);
+ Float_t z;
+
+ fSegmentation->GetPadI(x, y, 0, ix, iy);
+ fSegmentation->GetPadC(ix, iy, x, y, z);
Int_t isec=fSegmentation->Sector(ix,iy);
TF1* cogCorr=fSegmentation->CorrFunc(isec-1);
if (cogCorr) {
static Int_t count=0;
char canvasname[3];
+ Float_t z;
+
count++;
sprintf(canvasname,"c%d",count);
Float_t xg[kNs], yg[kNs], xrg[kNs], yrg[kNs];
Float_t xsig[kNs], ysig[kNs];
- AliRICHSegmentation *segmentation=fSegmentation;
+ AliSegmentation *segmentation=fSegmentation;
Int_t ix,iy;
- segmentation->GetPadIxy(x,y,ix,iy);
- segmentation->GetPadCxy(ix,iy,x,y);
+ segmentation->GetPadI(x,y,0,ix,iy);
+ segmentation->GetPadC(ix,iy,x,y,z);
Int_t isec=segmentation->Sector(ix,iy);
// Pad Limits
Float_t xmin = x-segmentation->Dpx(isec)/2;
Float_t qcheck=0;
segmentation->SigGenInit(x, yscan, 0);
- for (segmentation->FirstPad(x, yscan, dxI, dyI);
+ for (segmentation->FirstPad(x, yscan,0, dxI, dyI);
segmentation->MorePads();
segmentation->NextPad())
{
qcheck+=qp;
Int_t ixs=segmentation->Ix();
Int_t iys=segmentation->Iy();
- Float_t xs,ys;
- segmentation->GetPadCxy(ixs,iys,xs,ys);
+ Float_t xs,ys,zs;
+ segmentation->GetPadC(ixs,iys,xs,ys,zs);
sum+=qp*ys;
}
} // Pad loop
Float_t qcheck=0;
segmentation->SigGenInit(xscan, y, 0);
- for (segmentation->FirstPad(xscan, y, dxI, dyI);
+ for (segmentation->FirstPad(xscan, y, 0, dxI, dyI);
segmentation->MorePads();
segmentation->NextPad())
{
qcheck+=qp;
Int_t ixs=segmentation->Ix();
Int_t iys=segmentation->Iy();
- Float_t xs,ys;
- segmentation->GetPadCxy(ixs,iys,xs,ys);
+ Float_t xs,ys,zs;
+ segmentation->GetPadC(ixs,iys,xs,ys,zs);
sum+=qp*xs;
}
} // Pad loop
}
gSegmentation->SetPad(gix[i], giy[i]);
// First Cluster
- gSegmentation->SetHit(par[0],par[1]);
+ gSegmentation->SetHit(par[0],par[1],0);
Float_t q1=gResponse->IntXY(gSegmentation);
// Second Cluster
- gSegmentation->SetHit(par[2],par[3]);
+ gSegmentation->SetHit(par[2],par[3],0);
Float_t q2=gResponse->IntXY(gSegmentation);
Float_t value = qtot*(par[4]*q1+(1.-par[4])*q2);
#include "TF1.h"
#include "TObject.h"
class TClonesArray;
-class AliRICHSegmentation;
+class AliSegmentation;
class AliRICHRawCluster;
class AliRICHResponse;
class TClonesArray;
{
public:
AliRICHClusterFinder
- (AliRICHSegmentation *segmentation,
+ (AliSegmentation *segmentation,
AliRICHResponse *response, TClonesArray *digits, Int_t chamber);
AliRICHClusterFinder();
AliRICHClusterFinder(const AliRICHClusterFinder & ClusterFinder);
virtual ~AliRICHClusterFinder();
virtual void SetSegmentation(
- AliRICHSegmentation *segmentation){
+ AliSegmentation *segmentation){
fSegmentation=segmentation;
}
virtual void SetResponse(AliRICHResponse *response) {
ClassDef(AliRICHClusterFinder,1) //Class for clustering and reconstruction of space points
protected:
- AliRICHSegmentation* fSegmentation; //Segmentation model
+ AliSegmentation* fSegmentation; //Segmentation model
AliRICHResponse* fResponse; //Response model
TClonesArray* fRawClusters; //Raw clusters list
AliRICHHitMapA1* fHitMap; //Hit Map with digit positions
/*
$Log$
+ Revision 1.7 2000/10/02 21:28:12 fca
+ Removal of useless dependecies via forward declarations
+
Revision 1.6 2000/10/02 15:46:38 jbarbosa
Fixed forward declarations.
ResetPoints();
AliRICH *pRICH = (AliRICH*)gAlice->GetDetector("RICH");
AliRICHChamber* iChamber;
- AliRICHSegmentation* segmentation;
+ AliSegmentation* segmentation;
Int_t nAllDigits=0;
Int_t ich;
points->SetMarkerColor(color);
points->SetMarkerStyle(21);
points->SetMarkerSize(0.5);
- Float_t xpad, ypad;
- segmentation->GetPadCxy(mdig->fPadX, mdig->fPadY,xpad, ypad);
+ Float_t xpad, ypad, zpad;
+ segmentation->GetPadC(mdig->fPadX, mdig->fPadY,xpad, ypad, zpad);
Float_t vectorLoc[3]={xpad,6.276,ypad};
Float_t vectorGlob[3];
iChamber->LocaltoGlobal(vectorLoc,vectorGlob);
points->SetDigitIndex(digit);
points->SetPoint(0,vectorGlob[0],vectorGlob[1],vectorGlob[2]);
- segmentation->GetPadCxy(mdig->fPadX, mdig->fPadY, xpad, ypad);
+ segmentation->GetPadC(mdig->fPadX, mdig->fPadY, xpad, ypad, zpad);
Float_t theta = iChamber->GetRotMatrix()->GetTheta();
Float_t phi = iChamber->GetRotMatrix()->GetPhi();
marker=new TMarker3DBox(vectorGlob[0],vectorGlob[1],vectorGlob[2],
#include "AliRICHHitMapA1.h"
-#include "AliRICHSegmentation.h"
+#include "AliSegmentation.h"
#include "AliRICHDigit.h"
#include <TObjArray.h>
ClassImp(AliRICHHitMapA1)
-AliRICHHitMapA1::AliRICHHitMapA1(AliRICHSegmentation *seg, TObjArray *dig)
+AliRICHHitMapA1::AliRICHHitMapA1(AliSegmentation *seg, TObjArray *dig)
{
// Constructor for AliRICHMapA1
if (fHitMap) delete[] fHitMap;
}
-void AliRICHHitMapA1::Clear()
+void AliRICHHitMapA1::Clear(const char *opt = "")
{
// Clear contents of hit map
memset(fHitMap,0,sizeof(int)*fMaxIndex);
}
-Int_t AliRICHHitMapA1::CheckedIndex(Int_t ix, Int_t iy)
+Int_t AliRICHHitMapA1::CheckedIndex(Int_t ix, Int_t iy) const
{
// Check if index is valid
-TMath::Abs(fHitMap[CheckedIndex(ix, iy)]);
}
-Int_t AliRICHHitMapA1::GetHitIndex(Int_t ix, Int_t iy)
+Int_t AliRICHHitMapA1::GetHitIndex(Int_t ix, Int_t iy) const
{
// Return hit coordinates from index
}
-TObject* AliRICHHitMapA1::GetHit(Int_t ix, Int_t iy)
+TObject* AliRICHHitMapA1::GetHit(Int_t ix, Int_t iy) const
{
// Return index from coordinates
* See cxx source for full Copyright notice */
/* $Id$ */
-#include "AliRICHHitMap.h"
+#include "AliHitMap.h"
class TObjArray;
-class AliRICHSegmentation;
+class AliSegmentation;
class AliRICHHitMapA1 :
-public AliRICHHitMap
+public AliHitMap
{
public:
- AliRICHHitMapA1(AliRICHSegmentation *seg, TObjArray *dig);
+ AliRICHHitMapA1(AliSegmentation *seg, TObjArray *dig);
virtual ~AliRICHHitMapA1();
virtual void FillHits();
- virtual void Clear();
+ virtual void Clear(const char *opt = "");
virtual void SetHit(Int_t ix, Int_t iy, Int_t idigit);
virtual void DeleteHit(Int_t ix, Int_t iy);
- virtual Int_t GetHitIndex(Int_t ix, Int_t iy);
- virtual TObject* GetHit(Int_t ix, Int_t iy);
+ virtual Int_t GetHitIndex(Int_t ix, Int_t iy) const;
+ virtual TObject* GetHit(Int_t ix, Int_t iy) const;
virtual void FlagHit(Int_t ix, Int_t iy);
virtual FlagType TestHit(Int_t ix, Int_t iy);
private:
- Int_t CheckedIndex(Int_t ix, Int_t iy);
+ Int_t CheckedIndex(Int_t ix, Int_t iy) const;
private:
- AliRICHSegmentation *fSegmentation; //Segmentation model
+ AliSegmentation *fSegmentation; //Segmentation model
Int_t fNpx; //Pads in x
Int_t fNpy; //Pads in y
TObjArray *fDigits; //List of digits
/*
$Log$
+ Revision 1.6 2000/10/02 21:28:12 fca
+ Removal of useless dependecies via forward declarations
+
Revision 1.5 2000/10/02 15:50:25 jbarbosa
Fixed forward declarations.
#include "AliDetector.h"
#include "AliRICH.h"
#include "AliRICHPoints.h"
-#include "AliRICHSegmentation.h"
+#include "AliSegmentation.h"
#include "AliRICHPatRec.h"
#include "AliRICH.h"
#include "AliRICHConst.h"
#include "AliRICHPoints.h"
#include "AliConst.h"
-#include "AliRICHHitMap.h"
+#include "AliHitMap.h"
#include <TParticle.h>
#include <TMath.h>
// Pattern recognition algorithm
AliRICHChamber* iChamber;
- AliRICHSegmentation* segmentation;
+ AliSegmentation* segmentation;
Int_t ntracks, ndigits[kNCH];
Int_t itr, ich, i;
Int_t goodPhotons;
Int_t x,y,q;
- Float_t rx,ry;
+ Float_t rx,ry,rz;
Int_t nent,status;
Int_t padsUsedX[100];
Int_t padsUsedY[100];
x=padI->fPadX;
y=padI->fPadY;
q=padI->fSignal;
- segmentation->GetPadCxy(x,y,rx,ry);
+ segmentation->GetPadC(x,y,rx,ry,rz);
//printf("Pad coordinates x:%d, Real coordinates x:%f\n",x,rx);
//printf("Pad coordinates y:%d, Real coordinates y:%f\n",y,ry);
Int_t xpad;
Int_t ypad;
- segmentation->GetPadIxy(fXpad,fYpad,xpad,ypad);
+ segmentation->GetPadI(fXpad,fYpad,0,xpad,ypad);
padsUsedX[goodPhotons]=xpad;
padsUsedY[goodPhotons]=ypad;
// Get Local coordinates of track impact
AliRICHChamber* iChamber;
- AliRICHSegmentation* segmentation;
+ AliSegmentation* segmentation;
Float_t trackglob[3];
Float_t trackloc[3];
#include <TMath.h>
#include "AliRICH.h"
-#include "AliRICHHitMap.h"
+#include "AliHitMap.h"
class AliRICHPatRec;
/*
$Log$
+ Revision 1.5 2000/10/02 21:28:12 fca
+ Removal of useless dependecies via forward declarations
+
Revision 1.4 2000/10/02 15:50:43 jbarbosa
Fixed forward declarations.
AliRICH *pRICH = (AliRICH*)gAlice->GetDetector("RICH");
AliRICHChamber* iChamber;
- AliRICHSegmentation* segmentation;
+ AliSegmentation* segmentation;
AliRICHPoints *points = 0;
points->SetMarkerColor(color);
points->SetMarkerStyle(21);
points->SetMarkerSize(.5);
- Float_t xpad, ypad;
- segmentation->GetPadCxy(mdig->fPadX, mdig->fPadY,xpad, ypad);
+ Float_t xpad, ypad, zpad;
+ segmentation->GetPadC(mdig->fPadX, mdig->fPadY,xpad, ypad, zpad);
Float_t vectorLoc[3]={xpad,6.276,ypad};
Float_t vectorGlob[3];
points->SetParticle(-1);
iChamber->LocaltoGlobal(vectorLoc,vectorGlob);
points->SetPoint(0,vectorGlob[0],vectorGlob[1],vectorGlob[2]);
- segmentation->GetPadCxy(mdig->fPadX, mdig->fPadY, xpad, ypad);
+ segmentation->GetPadC(mdig->fPadX, mdig->fPadY, xpad, ypad, zpad);
Float_t theta = iChamber->GetRotMatrix()->GetTheta();
Float_t phi = iChamber->GetRotMatrix()->GetPhi();
marker=new TMarker3DBox(vectorGlob[0],vectorGlob[1],vectorGlob[2],
// Chamber response virtual base class
//
#include <TObject.h>
-class AliRICHSegmentation;
+class AliSegmentation;
class AliRICHResponse :
virtual Float_t IntPH(Float_t eloss) =0;
virtual Float_t IntPH() =0;
// Charge disintegration
- virtual Float_t IntXY(AliRICHSegmentation *) =0;
+ virtual Float_t IntXY(AliSegmentation *) =0;
virtual Int_t FeedBackPhotons(Float_t *source, Float_t qtot) =0;
//
// Mathieson parameters
};
#endif
+
+
+
+
/*
$Log$
+ Revision 1.2 2000/10/02 21:28:12 fca
+ Removal of useless dependecies via forward declarations
+
Revision 1.1 2000/06/12 15:29:37 jbarbosa
Cleaned up version.
*/
#include "AliRICHResponseV0.h"
-#include "AliRICHSegmentation.h"
+#include "AliSegmentation.h"
#include "AliRun.h"
#include "AliMC.h"
// -------------------------------------------
-Float_t AliRICHResponseV0::IntXY(AliRICHSegmentation * segmentation)
+Float_t AliRICHResponseV0::IntXY(AliSegmentation * segmentation)
{
const Float_t kInversePitch = 1/fPitch;
#include "AliRICHResponse.h"
+class AliSegmentation;
+
class AliRICHResponseV0 : //Mathieson response
public AliRICHResponse {
virtual Float_t IntPH(Float_t eloss);
virtual Float_t IntPH();
// Charge disintegration
- virtual Float_t IntXY(AliRICHSegmentation * segmentation);
+ virtual Float_t IntXY(AliSegmentation * segmentation);
virtual Int_t FeedBackPhotons(Float_t *source, Float_t qtot);
protected:
Float_t fChargeSlope; // Slope of the charge distribution
/*
$Log$
+ Revision 1.2 2000/10/02 15:48:19 jbarbosa
+ Fixed coding conventions.
+
Revision 1.1 2000/06/12 15:31:54 jbarbosa
Cleaned up version.
ClassImp(AliRICHSegmentationV0)
-void AliRICHSegmentationV0::Init(AliRICHChamber* Chamber)
+void AliRICHSegmentationV0::Init(Int_t id)
{
// Initialisation of chambers
- //fNpx=(Int_t) (Chamber->ROuter()/fDpx+1);
- //fNpy=(Int_t) (Chamber->ROuter()/fDpy+1);
fNpx=160;
fNpy=144;
//fNpx=80;
}
-Float_t AliRICHSegmentationV0::GetAnod(Float_t xhit)
+Float_t AliRICHSegmentationV0::GetAnod(Float_t xhit) const
{
// Get anod wire closer to hit
fDpx=p1;
fDpy=p2;
}
-void AliRICHSegmentationV0::GetPadIxy(Float_t x, Float_t y, Int_t &ix, Int_t &iy)
+void AliRICHSegmentationV0::GetPadI(Float_t x, Float_t y, Int_t &ix, Int_t &iy)
{
// returns pad coordinates (ix,iy) for given real coordinates (x,y)
//
if (ix < -fNpx) ix=-fNpx;
}
void AliRICHSegmentationV0::
-GetPadCxy(Int_t ix, Int_t iy, Float_t &x, Float_t &y)
+GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y)
{
// returns real coordinates (x,y) for given pad coordinates (ix,iy)
//
// Move to pad ix, iy
- GetPadCxy(ix,iy,fX,fY);
+ GetPadC(ix,iy,fX,fY);
}
Float_t y02=yhit + dy;
//
// find the pads over which the charge distributes
- GetPadIxy(x01,y01,fIxmin,fIymin);
- GetPadIxy(x02,y02,fIxmax,fIymax);
+ GetPadI(x01,y01,fIxmin,fIymin);
+ GetPadI(x02,y02,fIxmax,fIymax);
//
// Set current pad to lower left corner
fIx=fIxmin;
fIy=fIymin;
- GetPadCxy(fIx,fIy,fX,fY);
+ GetPadC(fIx,fIy,fX,fY);
//if (fSector==2)
//printf("fIx: %d, fIy: %d fX: %f, fY: %f\n",fIx,fIy,fX,fY);
} else {
printf("\n Error: Stepping outside integration region\n ");
}
- GetPadCxy(fIx,fIy,fX,fY);
+ GetPadC(fIx,fIy,fX,fY);
}
Int_t AliRICHSegmentationV0::MorePads()
// Initialises pad and wire position during stepping
fXt =x;
fYt =y;
- GetPadIxy(x,y,fIxt,fIyt);
+ GetPadI(x,y,fIxt,fIyt);
fIwt= (x>0) ? Int_t(x/fWireD)+1 : Int_t(x/fWireD)-1 ;
}
// Signal will be generated if particle crosses pad boundary or
// boundary between two wires.
Int_t ixt, iyt;
- GetPadIxy(x,y,ixt,iyt);
+ GetPadI(x,y,ixt,iyt);
Int_t iwt=(x>0) ? Int_t(x/fWireD)+1 : Int_t(x/fWireD)-1;
if ((ixt != fIxt) || (iyt !=fIyt) || (iwt != fIwt)) {
// labelled by its Channel numbers and a coordinate
Float_t x,y;
- GetPadCxy(iX,iY,x,y);
+ GetPadC(iX,iY,x,y);
return (x-X)*(x-X) + (y-Y)*(y-Y);
}
-void AliRICHSegmentationV0::GiveTestPoints(Int_t &n, Float_t *x, Float_t *y)
+void AliRICHSegmentationV0::GiveTestPoints(Int_t &n, Float_t *x, Float_t *y) const
{
// Test
y[0]=x[0];
}
-void AliRICHSegmentationV0::Draw()
+void AliRICHSegmentationV0::Draw(const char* opt) const
{
// Dummy draw routine
/* $Id$ */
-#include "AliRICHSegmentation.h"
+#include "AliSegmentation.h"
class AliRICHSegmentationV0 :
-public AliRICHSegmentation {
+public AliSegmentation {
public:
AliRICHSegmentationV0(){}
virtual ~AliRICHSegmentationV0(){}
// Transform from pad (wire) to real coordinates and vice versa
//
// Anod wire coordinate closest to xhit
- virtual Float_t GetAnod(Float_t xhit);
+ virtual Float_t GetAnod(Float_t xhit) const;
// Transform from pad to real coordinates
- virtual void GetPadIxy(Float_t x ,Float_t y ,Int_t &ix,Int_t &iy);
+ virtual void GetPadI(Float_t x, Float_t y , Int_t &ix, Int_t &iy);
+ virtual void GetPadI(Float_t x, Float_t y , Float_t z, Int_t &ix, Int_t &iy)
+ {GetPadI(x, y, ix, iy);}
// Transform from real to pad coordinates
- virtual void GetPadCxy(Int_t ix,Int_t iy,Float_t &x ,Float_t &y );
+ virtual void GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y);
+ virtual void GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y, Float_t &z)
+ {z=0; GetPadC(ix, iy, x , y);}
//
// Initialisation
- virtual void Init(AliRICHChamber* chamber);
+ virtual void Init(Int_t id);
//
// Get member data
//
// Pad size in x
- virtual Float_t Dpx(){return fDpx;}
+ virtual Float_t Dpx() const {return fDpx;}
//
// Pad size in y
- virtual Float_t Dpy(){return fDpy;}
+ virtual Float_t Dpy() const {return fDpy;}
// Pad size in x by Sector
- virtual Float_t Dpx(Int_t) {return fDpx;}
+ virtual Float_t Dpx(Int_t) const {return fDpx;}
// Pad size in y by Sector
- virtual Float_t Dpy(Int_t) {return fDpy;}
+ virtual Float_t Dpy(Int_t) const {return fDpy;}
// Max number of Pads in x
- virtual Int_t Npx(){return fNpx;}
+ virtual Int_t Npx() const {return fNpx;}
// Max number of Pads in y
- virtual Int_t Npy(){return fNpy;}
+ virtual Int_t Npy() const {return fNpy;}
// set pad position
virtual void SetPad(Int_t ix, Int_t iy);
// set hit position
virtual void SetHit(Float_t xhit , Float_t yhit);
+ virtual void SetHit(Float_t xhit, Float_t yhit, Float_t zhit)
+ {SetHit(xhit, yhit);}
//
// Iterate over pads
// Initialiser
virtual void FirstPad(Float_t xhit, Float_t yhit, Float_t dx, Float_t dy);
+ virtual void FirstPad(Float_t xhit, Float_t yhit, Float_t zhit, Float_t dx, Float_t dy)
+ {FirstPad(xhit, yhit, dx, dy);}
// Stepper
virtual void NextPad();
// Condition
//
// Current Pad during Integration
// x-coordinate
- virtual Int_t Ix(){return fIx;}
+ virtual Int_t Ix() {return fIx;}
// y-coordinate
- virtual Int_t Iy(){return fIy;}
+ virtual Int_t Iy() {return fIy;}
// current sector
- virtual Int_t ISector(){return 1;}
+ virtual Int_t ISector() {return 1;}
// calculate sector from x-y coordinates
- virtual Int_t Sector(Float_t x, Float_t y){return 1;}
+ virtual Int_t Sector(Int_t ix, Int_t iy) {return 1;}
//
// Signal Generation Condition during Stepping
virtual Int_t SigGenCond(Float_t x, Float_t y, Float_t z);
virtual void IntegrationLimits
(Float_t& x1, Float_t& x2, Float_t& y1, Float_t& y2);
// Test points for auto calibration
- virtual void GiveTestPoints(Int_t &n, Float_t *x, Float_t *y);
+ virtual void GiveTestPoints(Int_t &n, Float_t *x, Float_t *y) const;
// Debugging utilities
- virtual void Draw();
+ virtual void Draw(const char* = "") const;
// Function for systematic corrections
virtual void SetCorrFunc(Int_t dum, TF1* func) {fCorr=func;}
- virtual TF1* CorrFunc(Int_t) {return fCorr;}
+ virtual TF1* CorrFunc(Int_t) const {return fCorr;}
ClassDef(AliRICHSegmentationV0,1)
protected:
//
/*
$Log$
+ Revision 1.2 2000/10/02 15:48:55 jbarbosa
+ Fixed coding conventions.
+
Revision 1.1 2000/06/12 15:34:28 jbarbosa
Cleaned up version.
}
-void AliRICHSegmentationV1::GetPadIxy(Float_t x, Float_t y, Int_t &ix, Int_t &iy)
+void AliRICHSegmentationV1::GetPadI(Float_t x, Float_t y, Int_t &ix, Int_t &iy)
{
// returns pad coordinates (ix,iy) for given real coordinates (x,y)
//
}
void AliRICHSegmentationV1::
-GetPadCxy(Int_t ix, Int_t iy, Float_t &x, Float_t &y)
+GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y)
{
// returns real coordinates (x,y) for given pad coordinates (ix,iy)
//
y1=fYhit-fY-fDpy/2.;
y2=y1+fDpy;
}
+
+
+
+
+
+
AliRICHSegmentationV1();
virtual ~AliRICHSegmentationV1();
// current sector
- virtual Int_t ISector(){return fSector;}
+ virtual Int_t ISector() {return fSector;}
// calculate sector from x-y coordinates
virtual Int_t Sector(Float_t x, Float_t y);
// Transform from pad to real coordinates
- virtual void GetPadIxy(Float_t x ,Float_t y ,Int_t &ix,Int_t &iy);
+ virtual void GetPadI(Float_t x ,Float_t y ,Int_t &ix,Int_t &iy);
+ virtual void GetPadI(Float_t x, Float_t y , Float_t z, Int_t &ix, Int_t &iy)
+ {GetPadI(x, y, ix, iy);}
// Transform from real to pad coordinates
- virtual void GetPadCxy(Int_t ix,Int_t iy,Float_t &x ,Float_t &y );
+ virtual void GetPadC(Int_t ix,Int_t iy,Float_t &x ,Float_t &y );
+ virtual void GetPadC(Int_t ix, Int_t iy, Float_t &x, Float_t &y, Float_t &z)
+ {z=0; GetPadC(ix, iy, x , y);}
// Current integration limits
virtual void IntegrationLimits
(Float_t& x1, Float_t& x2, Float_t& y1, Float_t& y2);
#include "AliRICHTresholdMap.h"
-#include "AliRICHSegmentation.h"
+#include "AliSegmentation.h"
#include "AliRICHDigit.h"
#include <TObjArray.h>
ClassImp(AliRICHTresholdMap)
-AliRICHTresholdMap::AliRICHTresholdMap(AliRICHSegmentation *seg)
+AliRICHTresholdMap::AliRICHTresholdMap(AliSegmentation *seg)
{
// Constructor for AliRICHTresholdMap
if (fHitMap) delete[] fHitMap;
}
-void AliRICHTresholdMap::Clear()
+void AliRICHTresholdMap::Clear(const char *opt = "")
{
// Clear contents of hit map
memset(fHitMap,0,sizeof(int)*fMaxIndex);
}
-Int_t AliRICHTresholdMap::CheckedIndex(Int_t ix, Int_t iy)
+Int_t AliRICHTresholdMap::CheckedIndex(Int_t ix, Int_t iy) const
{
// Check if index is valid
-TMath::Abs(fHitMap[CheckedIndex(ix, iy)]);
}
-Int_t AliRICHTresholdMap::GetHitIndex(Int_t ix, Int_t iy)
+Int_t AliRICHTresholdMap::GetHitIndex(Int_t ix, Int_t iy) const
{
// Return hit coordinates from index
}
-TObject* AliRICHTresholdMap::GetHit(Int_t ix, Int_t iy)
+TObject* AliRICHTresholdMap::GetHit(Int_t ix, Int_t iy) const
{
// Return index from coordinates
$Id$
*/
-#include "AliRICHHitMap.h"
+#include "AliHitMap.h"
class TObjArray;
-class AliRICHSegmentation;
+class AliSegmentation;
-class AliRICHTresholdMap : public AliRICHHitMap
+class AliRICHTresholdMap : public AliHitMap
{
public:
- AliRICHTresholdMap(AliRICHSegmentation *seg);
+ AliRICHTresholdMap(AliSegmentation *seg);
//AliRICHTresholdMap() {}
virtual ~AliRICHTresholdMap();
virtual void FillHits();
- virtual void Clear();
+ virtual void Clear(const char *opt = "");
virtual void SetHit(Int_t ix, Int_t iy, Int_t idigit);
virtual void DeleteHit(Int_t ix, Int_t iy);
- virtual Int_t GetHitIndex(Int_t ix, Int_t iy);
- virtual TObject* GetHit(Int_t ix, Int_t iy);
+ virtual Int_t GetHitIndex(Int_t ix, Int_t iy) const;
+ virtual TObject* GetHit(Int_t ix, Int_t iy) const;
virtual void FlagHit(Int_t ix, Int_t iy);
virtual FlagType TestHit(Int_t ix, Int_t iy);
private:
- Int_t CheckedIndex(Int_t ix, Int_t iy);
+ Int_t CheckedIndex(Int_t ix, Int_t iy) const;
private:
- AliRICHSegmentation *fSegmentation; //Segmentation model
+ AliSegmentation *fSegmentation; //Segmentation model
Int_t fNpx; //Pads in x
Int_t fNpy; //Pads in y
Int_t *fHitMap; // !
/*
$Log$
+ Revision 1.15 2000/10/02 15:54:55 jbarbosa
+ New default version (15 mm freon).
+
Revision 1.14 2000/07/10 15:28:39 fca
Correction of the inheritance scheme
#include <TRandom.h>
#include "AliRICHv0.h"
-#include "AliRICHSegmentation.h"
+#include "AliSegmentation.h"
#include "AliRICHResponse.h"
#include "AliRICHSegmentationV0.h"
#include "AliRICHResponseV0.h"
printf("* *\n");
- AliRICHSegmentation* segmentation;
+ AliSegmentation* segmentation;
AliRICHGeometry* geometry;
AliRICHResponse* response;
//
for (Int_t i=1; i<kNCH; i++) {
//printf ("i:%d",i);
- ( (AliRICHChamber*) (*fChambers)[i])->Init();
+ ( (AliRICHChamber*) (*fChambers)[i])->Init(i);
}
//
/*
$Log$
+ Revision 1.6 2000/07/10 15:28:39 fca
+ Correction of the inheritance scheme
+
Revision 1.5 2000/06/30 16:38:51 dibari
Removed setters.
#include "AliRICHv1.h"
#include "AliRICHHit.h"
-#include "AliRICHSegmentation.h"
+#include "AliSegmentation.h"
#include "AliRICHResponse.h"
#include "AliRICHSegmentationV0.h"
#include "AliRICHResponseV0.h"
printf("* *\n");
- AliRICHSegmentation* segmentation;
+ AliSegmentation* segmentation;
AliRICHGeometry* geometry;
AliRICHResponse* response;
//
for (Int_t i=1; i<kNCH; i++) {
//printf ("i:%d",i);
- ( (AliRICHChamber*) (*fChambers)[i])->Init();
+ ( (AliRICHChamber*) (*fChambers)[i])->Init(i);
}
//
/*
$Log$
+ Revision 1.2 2000/07/10 15:28:39 fca
+ Correction of the inheritance scheme
+
Revision 1.1 2000/06/30 16:40:03 dibari
New configurale version.
printf("* *\n");
- AliRICHSegmentation* segmentation;
+ AliSegmentation* segmentation;
AliRICHGeometry* geometry;
AliRICHResponse* response;
//
for (Int_t i=1; i<kNCH; i++) {
//printf ("i:%d",i);
- ( (AliRICHChamber*) (*fChambers)[i])->Init();
+ ( (AliRICHChamber*) (*fChambers)[i])->Init(i);
}
//
SRCS = AliRICH.cxx AliRICHv0.cxx AliRICHv1.cxx AliRICHv2.cxx\
AliRICHDisplay.cxx AliRICHPoints.cxx AliRICHGeometry.cxx\
- AliRICHHitMap.cxx AliRICHHitMapA1.cxx AliRICHSegmentation.cxx \
+ AliRICHHitMapA1.cxx \
AliRICHSegmentationV0.cxx AliRICHTresholdMap.cxx\
AliRICHSegmentationV1.cxx AliRICHResponse.cxx AliRICHResponseV0.cxx \
AliRICHClusterFinder.cxx \
#pragma link C++ class AliRICHRawCluster;
#pragma link C++ class AliRICHRecHit;
#pragma link C++ class AliRICHCerenkov;
-#pragma link C++ class AliRICHSegmentation;
#pragma link C++ class AliRICHSegmentationV0;
#pragma link C++ class AliRICHSegmentationV1;
#pragma link C++ class AliRICHResponse;
#pragma link C++ class AliRICHDisplay;
#pragma link C++ class AliRICHEllipse;
#pragma link C++ class AliRICHDetect;
-#pragma link C++ class AliRICHHitMap;
#pragma link C++ class AliRICHHitMapA1;
#pragma link C++ class AliRICHTresholdMap;
#pragma link C++ class AliRICHClusterFinder-;