AliMUONSegmentation and AliMUONHitMap have been replaced by AliSegmentation and AliHi...
[u/mrichter/AliRoot.git] / MUON / AliMUONClusterInput.cxx
index 3e786cf55f487b5768721704c033da351e06e290..a2042828c502dc500bb7ef6f16004e1adf96d5ae 100644 (file)
 
 /*
 $Log$
+Revision 1.3  2000/06/28 15:16:35  morsch
+(1) Client code adapted to new method signatures in AliMUONSegmentation (see comments there)
+to allow development of slat-muon chamber simulation and reconstruction code in the MUON
+framework. The changes should have no side effects (mostly dummy arguments).
+(2) Hit disintegration uses 3-dim hit coordinates to allow simulation
+of chambers with overlapping modules (MakePadHits, Disintegration).
+
+Revision 1.2  2000/06/28 12:19:18  morsch
+More consequent seperation of global input data services (AliMUONClusterInput singleton) and the
+cluster and hit reconstruction algorithms in AliMUONClusterFinderVS.
+AliMUONClusterFinderVS becomes the base class for clustering and hit reconstruction.
+It requires two cathode planes. Small modifications in the code will make it usable for
+one cathode plane and, hence, more general (for test beam data).
+AliMUONClusterFinder is now obsolete.
+
+Revision 1.1  2000/06/28 08:06:10  morsch
+Avoid global variables in AliMUONClusterFinderVS by seperating the input data for the fit from the
+algorithmic part of the class. Input data resides inside the AliMUONClusterInput singleton.
+It also naturally takes care of the TMinuit instance.
+
 */
 #include "AliRun.h"
 #include "AliMUON.h"
 #include "AliMUONChamber.h"
 #include "AliMUONClusterInput.h"
-#include "AliMUONSegmentation.h"
+#include "AliSegmentation.h"
 #include "AliMUONResponse.h"
 #include "AliMUONRawCluster.h"
 #include "AliMUONDigit.h"
@@ -47,8 +67,12 @@ AliMUONClusterInput* AliMUONClusterInput::Instance()
 void AliMUONClusterInput::SetDigits(Int_t chamber, TClonesArray* dig1, TClonesArray* dig2)
 {
 // Set pointer to digits with corresponding segmentations and responses (two cathode planes)
+    fChamber=chamber;
     fDigits[0]=dig1;
     fDigits[1]=dig2; 
+    fNDigits[0]=dig1->GetEntriesFast();
+    fNDigits[1]=dig2->GetEntriesFast();
+    
     AliMUON *pMUON;
     AliMUONChamber* iChamber;
 
@@ -79,6 +103,7 @@ void AliMUONClusterInput::SetDigits(Int_t chamber, TClonesArray* dig)
 void  AliMUONClusterInput::SetCluster(AliMUONRawCluster* cluster)
 {
 // Set the current cluster
+    printf("\n %p \n", cluster);
     fCluster=cluster;
     Float_t qtot;
     Int_t   i, cath, ix, iy;
@@ -120,7 +145,7 @@ Float_t AliMUONClusterInput::DiscrChargeS1(Int_t i,Double_t *par)
 
    fSegmentation[0]->SetPad(fix[i][0], fiy[i][0]);
 //  First Cluster
-   fSegmentation[0]->SetHit(par[0],par[1]);
+   fSegmentation[0]->SetHit(par[0],par[1],0);
    Float_t q1=fResponse->IntXY(fSegmentation[0]);
     
    Float_t value = fQtot[0]*q1;
@@ -134,7 +159,7 @@ Float_t AliMUONClusterInput::DiscrChargeCombiS1(Int_t i,Double_t *par, Int_t cat
 
    fSegmentation[cath]->SetPad(fix[i][cath], fiy[i][cath]);
 //  First Cluster
-   fSegmentation[cath]->SetHit(par[0],par[1]);
+   fSegmentation[cath]->SetHit(par[0],par[1],0);
    Float_t q1=fResponse->IntXY(fSegmentation[cath]);
     
    Float_t value = fQtot[cath]*q1;
@@ -153,11 +178,11 @@ Float_t AliMUONClusterInput::DiscrChargeS2(Int_t i,Double_t *par)
 
    fSegmentation[0]->SetPad(fix[i][0], fiy[i][0]);
 //  First Cluster
-   fSegmentation[0]->SetHit(par[0],par[1]);
+   fSegmentation[0]->SetHit(par[0],par[1],0);
    Float_t q1=fResponse->IntXY(fSegmentation[0]);
     
 //  Second Cluster
-   fSegmentation[0]->SetHit(par[2],par[3]);
+   fSegmentation[0]->SetHit(par[2],par[3],0);
    Float_t q2=fResponse->IntXY(fSegmentation[0]);
     
    Float_t value = fQtot[0]*(par[4]*q1+(1.-par[4])*q2);
@@ -175,11 +200,11 @@ Float_t AliMUONClusterInput::DiscrChargeCombiS2(Int_t i,Double_t *par, Int_t cat
 
    fSegmentation[cath]->SetPad(fix[i][cath], fiy[i][cath]);
 //  First Cluster
-   fSegmentation[cath]->SetHit(par[0],par[1]);
+   fSegmentation[cath]->SetHit(par[0],par[1],0);
    Float_t q1=fResponse->IntXY(fSegmentation[cath]);
     
 //  Second Cluster
-   fSegmentation[cath]->SetHit(par[2],par[3]);
+   fSegmentation[cath]->SetHit(par[2],par[3],0);
    Float_t q2=fResponse->IntXY(fSegmentation[cath]);
    Float_t value;
    if (cath==0) {
@@ -190,6 +215,6 @@ Float_t AliMUONClusterInput::DiscrChargeCombiS2(Int_t i,Double_t *par, Int_t cat
    return value;
 }
 
-
+void AliMUONClusterInput::Streamer(TBuffer &R__b) {}