X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=RICH%2FAliRICH.cxx;h=b60ef07da1a1045720f09d6d80c3add9ea003d88;hb=0ef961ca9dfb37353853ea2377ea96d4d76522bc;hp=ba6800bf14cb1b4c6e2cd10203cc6481c0f286f6;hpb=6e585aa20558e35335cd77fe14351976b68f4cfd;p=u%2Fmrichter%2FAliRoot.git
diff --git a/RICH/AliRICH.cxx b/RICH/AliRICH.cxx
index ba6800bf14c..b60ef07da1a 100644
--- a/RICH/AliRICH.cxx
+++ b/RICH/AliRICH.cxx
@@ -15,6 +15,15 @@
/*
$Log$
+ Revision 1.57 2001/11/09 17:29:31 dibari
+ Setters fro models moved to header
+
+ Revision 1.56 2001/11/02 15:37:25 hristov
+ Digitizer class created. Code cleaning and bug fixes (J.Chudoba)
+
+ Revision 1.55 2001/10/23 13:03:35 hristov
+ The access to several data members was changed from public to protected. The digitisation was adapted to the multi-event case (J.Chudoba)
+
Revision 1.54 2001/09/07 08:38:10 hristov
Pointers initialised to 0 in the default constructors
@@ -189,16 +198,24 @@
#include "AliCallf77.h"
-// Static variables for the pad-hit iterator routines
-static Int_t sMaxIterPad=0;
+
+static Int_t sMaxIterPad=0; // Static variables for the pad-hit iterator routines
static Int_t sCurIterPad=0;
ClassImp(AliRICH)
//___________________________________________
+// RICH manager class
+//Begin_Html
+/*
+
+*/
+//End_Html
+
AliRICH::AliRICH()
{
-// Default constructor for RICH manager class
+// Default ctor should not contain any new operators
+ cout<\n"; // no way to control it as ctor is called before call to SetDebugXXXX()
fIshunt = 0;
fHits = 0;
@@ -211,34 +228,28 @@ AliRICH::AliRICH()
fRawClusters = 0;
fChambers = 0;
fCerenkovs = 0;
- for (Int_t i=0; i<7; i++)
- {
+ for (Int_t i=0; i<7; i++){
fNdch[i] = 0;
fNrawch[i] = 0;
fNrechits1D[i] = 0;
fNrechits3D[i] = 0;
- }
+ }
fFileName = 0;
fMerger = 0;
-}
+}//AliRICH::AliRICH()
-//___________________________________________
AliRICH::AliRICH(const char *name, const char *title)
: AliDetector(name,title)
{
-//Begin_Html
-/*
-
-*/
-//End_Html
-
+// Named ctor
+ cout<\n"; // no way to control it as ctor is called before call to SetDebugXXXX()
+
fHits = new TClonesArray("AliRICHHit",1000 );
gAlice->AddHitList(fHits);
fSDigits = new TClonesArray("AliRICHSDigit",100000);
fCerenkovs = new TClonesArray("AliRICHCerenkov",1000);
gAlice->AddHitList(fCerenkovs);
- //gAlice->AddHitList(fHits);
fNSDigits = 0;
fNcerenkovs = 0;
fIshunt = 0;
@@ -289,19 +300,19 @@ AliRICH::AliRICH(const char *name, const char *title)
(*fChambers)[i] = new AliRICHChamber();*/
fFileName = 0;
+ fMerger = 0;
}
AliRICH::AliRICH(const AliRICH& RICH)
{
-// Copy Constructor
+// Copy ctor
}
-//___________________________________________
AliRICH::~AliRICH()
{
-
-// Destructor of RICH manager class
+// Dtor of RICH manager class
+ if(IsDebugStart()) cout<\n";
fIshunt = 0;
delete fHits;
@@ -336,20 +347,19 @@ AliRICH::~AliRICH()
//_____________________________________________________________________________
Int_t AliRICH::Hits2SDigits(Float_t xhit,Float_t yhit,Float_t eloss, Int_t idvol, ResponseType res)
{
-//
// Calls the charge disintegration method of the current chamber and adds
-// the simulated cluster to the root treee
-//
- Int_t clhits[5];
- Float_t newclust[4][500];
- Int_t nnew;
+// the simulated cluster to the root tree
+ if(IsDebugHit()||IsDebugDigit()) cout<\n";
+
+ Int_t clhits[5];
+ Float_t newclust[4][500];
+ Int_t nnew;
//
// Integrated pulse height on chamber
clhits[0]=fNhits+1;
- //PH ((AliRICHChamber*) (*fChambers)[idvol])->DisIntegration(eloss, xhit, yhit, nnew, newclust, res);
((AliRICHChamber*)fChambers->At(idvol))->DisIntegration(eloss, xhit, yhit, nnew, newclust, res);
Int_t ic=0;
@@ -373,21 +383,21 @@ Int_t AliRICH::Hits2SDigits(Float_t xhit,Float_t yhit,Float_t eloss, Int_t idvol
}
}
- if (gAlice->TreeS())
- {
+ if (gAlice->TreeS()){
gAlice->TreeS()->Fill();
gAlice->TreeS()->Write(0,TObject::kOverwrite);
//printf("Filled SDigits...\n");
- }
+ }
-return nnew;
-}
-//___________________________________________
+ return nnew;
+}//Int_t AliRICH::Hits2SDigits(Float_t xhit,Float_t yhit,Float_t eloss, Int_t idvol, ResponseType res)
+
void AliRICH::Hits2SDigits()
{
-
// Dummy: sdigits are created during transport.
-// Called from alirun.
+// Called from alirun.
+ if(IsDebugHit()||IsDebugDigit()) cout<\n";
+
int nparticles = gAlice->GetNtrack();
cout << "Particles (RICH):" <\n";
AliRICHChamber* iChamber;
@@ -429,9 +438,10 @@ void AliRICH::SDigits2Digits()
//___________________________________________
void AliRICH::Digits2Reco()
{
-
// Generate clusters
-// Called from alirun, single event only.
+// Called from alirun, single event only.
+ if(IsDebugDigit()||IsDebugReco()) cout<\n";
+
int nparticles = gAlice->GetNtrack();
cout << "Particles (RICH):" <\n";
TClonesArray &lhits = *fHits;
new(lhits[fNhits++]) AliRICHHit(fIshunt,track,vol,hits);
}
-//_____________________________________________________________________________
+
void AliRICH::AddCerenkov(Int_t track, Int_t *vol, Float_t *cerenkovs)
{
-
-//
-// Adds a RICH cerenkov hit to the Cerenkov Hits list
-//
+// Adds a RICH cerenkov hit to the Cerenkov Hits list
+ if(IsDebugHit()) cout<\n";
TClonesArray &lcerenkovs = *fCerenkovs;
new(lcerenkovs[fNcerenkovs++]) AliRICHCerenkov(fIshunt,track,vol,cerenkovs);
- //printf ("Done for Cerenkov %d\n\n\n\n",fNcerenkovs);
}
-//___________________________________________
-void AliRICH::AddSDigit(Int_t *clhits)
-{
-//
-// Add a RICH pad hit to the list
-//
+void AliRICH::AddSDigit(Int_t *aSDigit)
+{
+// Adds the current S digit to the RICH list of S digits
+ if(IsDebugDigit()) cout<\n";
- //printf("fsdigits:%p, data: %d\n",fSDigits,clhits[2]);
TClonesArray &lSDigits = *fSDigits;
- new(lSDigits[fNSDigits++]) AliRICHSDigit(clhits);
+ new(lSDigits[fNSDigits++]) AliRICHSDigit(aSDigit);
}
-//_____________________________________________________________________________
+
+
void AliRICH::AddDigits(Int_t id, Int_t *tracks, Int_t *charges, Int_t *digits)
{
+// Add a RICH digit to the list
+ if(IsDebugDigit()) cout<\n";
- //
- // Add a RICH digit to the list
- //
-
- //printf("fdigits:%p, data: %d\n",((TClonesArray*)(*fDchambers)[id]),digits[0]);
- //PH TClonesArray &ldigits = *((TClonesArray*)(*fDchambers)[id]);
- TClonesArray &ldigits = *((TClonesArray*)fDchambers->At(id));
- new(ldigits[fNdch[id]++]) AliRICHDigit(tracks,charges,digits);
+ TClonesArray &ldigits = *((TClonesArray*)fDchambers->At(id));
+ new(ldigits[fNdch[id]++]) AliRICHDigit(tracks,charges,digits);
}
-//_____________________________________________________________________________
void AliRICH::AddRawCluster(Int_t id, const AliRICHRawCluster& c)
{
- //
- // Add a RICH digit to the list
- //
+// Add a RICH digit to the list
+
+ if(IsDebugStart())
+ cout<\n";
//PH TClonesArray &lrawcl = *((TClonesArray*)(*fRawClusters)[id]);
TClonesArray &lrawcl = *((TClonesArray*)fRawClusters->At(id));
@@ -515,12 +514,8 @@ void AliRICH::AddRecHit1D(Int_t id, Float_t *rechit, Float_t *photons, Int_t *pa
//_____________________________________________________________________________
void AliRICH::AddRecHit3D(Int_t id, Float_t *rechit)
{
-
- //
- // Add a RICH reconstructed hit to the list
- //
+// Add a RICH reconstructed hit to the list
- //PH TClonesArray &lrec3D = *((TClonesArray*)(*fRecHits3D)[id]);
TClonesArray &lrec3D = *((TClonesArray*)fRecHits3D->At(id));
new(lrec3D[fNrechits3D[id]++]) AliRICHRecHit3D(id,rechit);
}
@@ -545,7 +540,7 @@ void AliRICH::BuildGeometry()
AliRICHGeometry* geometry;
iChamber = &(pRICH->Chamber(0));
- segmentation=(AliRICHSegmentationV0*) iChamber->GetSegmentationModel(0);
+ segmentation=(AliRICHSegmentationV0*) iChamber->GetSegmentationModel();
geometry=iChamber->GetGeometryModel();
new TBRIK("S_RICH","S_RICH","void",71.09999,11.5,73.15);
@@ -809,7 +804,7 @@ void AliRICH::CreateGeometry()
AliRICHChamber* iChamber;
iChamber = &(pRICH->Chamber(0));
- segmentation=(AliRICHSegmentationV0*) iChamber->GetSegmentationModel(0);
+ segmentation=(AliRICHSegmentationV0*) iChamber->GetSegmentationModel();
geometry=iChamber->GetGeometryModel();
Float_t distance;
@@ -2060,58 +2055,10 @@ void AliRICH::ResetRecHits3D()
}
}
-//___________________________________________
-void AliRICH::SetGeometryModel(Int_t id, AliRICHGeometry *geometry)
-{
-
-//
-// Setter for the RICH geometry model
-//
-
-
- //PH ((AliRICHChamber*) (*fChambers)[id])->GeometryModel(geometry);
- ((AliRICHChamber*)fChambers->At(id))->GeometryModel(geometry);
-}
-
-//___________________________________________
-void AliRICH::SetSegmentationModel(Int_t id, AliSegmentation *segmentation)
-{
-
-//
-// Setter for the RICH segmentation model
-//
-
- //PH ((AliRICHChamber*) (*fChambers)[id])->SetSegmentationModel(segmentation);
- ((AliRICHChamber*)fChambers->At(id))->SetSegmentationModel(segmentation);
-}
-
-//___________________________________________
-void AliRICH::SetResponseModel(Int_t id, AliRICHResponse *response)
-{
-
-//
-// Setter for the RICH response model
-//
-
- //PH ((AliRICHChamber*) (*fChambers)[id])->ResponseModel(response);
- ((AliRICHChamber*)fChambers->At(id))->ResponseModel(response);
-}
-
-void AliRICH::SetReconstructionModel(Int_t id, AliRICHClusterFinder *reconst)
-{
-
-//
-// Setter for the RICH reconstruction model (clusters)
-//
-
- //PH ((AliRICHChamber*) (*fChambers)[id])->SetReconstructionModel(reconst);
- ((AliRICHChamber*)fChambers->At(id))->SetReconstructionModel(reconst);
-}
//___________________________________________
void AliRICH::StepManager()
{
-
// Full Step Manager
Int_t copy, id;
@@ -2615,7 +2562,7 @@ void AliRICH::StepManager()
}
/*************************************************End of MIP treatment**************************************/
//}
-}
+}//void AliRICH::StepManager()
void AliRICH::FindClusters(Int_t nev,Int_t lastEntry)
{
@@ -3234,7 +3181,7 @@ AliRICH *pRICH = (AliRICH*)gAlice->GetDetector("RICH");
AliRICHChamber* chamber;
chamber = &(pRICH->Chamber(0));
- segmentation=(AliRICHSegmentationV0*) chamber->GetSegmentationModel(0);
+ segmentation=(AliRICHSegmentationV0*) chamber->GetSegmentationModel();
Int_t NpadX = segmentation->Npx(); // number of pads on X
Int_t NpadY = segmentation->Npy(); // number of pads on Y
@@ -4094,3 +4041,27 @@ AliRICH *pRICH = (AliRICH*)gAlice->GetDetector("RICH");
printf("\nEnd of analysis\n");
printf("**********************************\n");
}
+
+////////////////////////////////////////////////////////////////////////
+void AliRICH::MakeBranchInTreeD(TTree *treeD, const char *file)
+{
+ //
+ // Create TreeD branches for the RICH.
+ //
+
+ const Int_t kBufferSize = 4000;
+ char branchname[30];
+
+ //
+ // one branch for digits per chamber
+ //
+ for (Int_t i=0; i