* provided "as is" without express or implied warranty. *
**************************************************************************/
-/*
-$Log$
-Revision 1.4.10.2 2002/07/24 10:09:30 alibrary
-Updating VirtualMC
+/* $Id$ */
-Revision 1.6 2002/06/12 09:54:35 cblume
-Update of tracking code provided by Sergei
-
-Revision 1.4 2001/05/07 08:08:05 cblume
-Update of TRD code
-
-Revision 1.3 2000/12/08 16:07:02 cblume
-Update of the tracking by Sergei
-
-Revision 1.2 2000/10/06 16:49:46 cblume
-Made Getters const
-
-Revision 1.1.2.1 2000/09/22 14:47:52 cblume
-Add the tracking code
-
-*/
+
+///////////////////////////////////////////////////////////////////////////////
+// //
+// TRD cluster //
+// //
+///////////////////////////////////////////////////////////////////////////////
#include "AliTRDcluster.h"
-#include "AliTRDgeometry.h"
#include "AliTRDrecPoint.h"
ClassImp(AliTRDcluster)
-
+
+ //___________________________________________________________________________
+
+ AliTRDcluster::AliTRDcluster() : AliCluster() {
+ //
+ // default constructor
+ //
+ fQ=0;
+ fTimeBin=0;
+ fDetector=0;
+ fNPads=0;
+ fX =0;
+ for (Int_t i = 0;i<7; i++) fSignals[i]=0;
+}
//_____________________________________________________________________________
AliTRDcluster::AliTRDcluster(const AliTRDrecPoint &p):AliCluster()
{
fSigmaY2 = 0.2;
fSigmaZ2 = 5.;
-
+ fNPads =0;
+ fCenter = 0;
}
//_____________________________________________________________________________
fTracks[1] = c.GetLabel(1);
fTracks[2] = c.GetLabel(2);
+ fX = c.GetX();
fY = c.GetY();
fZ = c.GetZ();
fSigmaY2 = c.GetSigmaY2();
fDetector = c.GetDetector();
fTimeBin = c.GetLocalTimeBin();
fQ = c.GetQ();
-
+ fNPads = c.fNPads;
+ fCenter = c.fCenter;
+ for (Int_t i=0;i<7;i++) fSignals[i] = c.fSignals[i];
}
//_____________________________________________________________________________
// ones are stored first;
//
- const Int_t size = 9;
+ const Int_t kSize = 9;
- Int_t entries[size][2], i, j, index;
+ Int_t entries[kSize][2], i, j, index;
- Bool_t index_added;
+ Bool_t indexAdded;
- for (i=0; i<size; i++) {
+ for (i=0; i<kSize; i++) {
entries[i][0]=-1;
entries[i][1]=0;
}
- for (Int_t k=0; k<size; k++) {
+ for (Int_t k=0; k<kSize; k++) {
index=track[k];
- index_added=kFALSE; j=0;
+ indexAdded=kFALSE;
+ j=0;
if (index >= 0) {
- while ( (!index_added) && ( j < size ) ) {
+ while ( (!indexAdded) && ( j < kSize ) ) {
if ((entries[j][0]==index) || (entries[j][1]==0)) {
entries[j][0]=index;
entries[j][1]=entries[j][1]+1;
- index_added=kTRUE;
+ indexAdded=kTRUE;
}
j++;
}
Int_t swap=1, tmp0, tmp1;
while ( swap > 0) {
swap=0;
- for(i=0; i<(size-1); i++) {
+ for(i=0; i<(kSize-1); i++) {
if ((entries[i][0] >= 0) && (entries[i+1][0] >= 0)) {
if ((entries[i][1] < entries[i+1][1]) ||
((entries[i][1] == entries[i+1][1]) &&
}
+void AliTRDcluster::SetSignals(Short_t*signals){
+ //
+ // write signals in the cluster
+ //
+ for (Int_t i = 0;i<7;i++) fSignals[i]=signals[i];
+}
+
+Float_t AliTRDcluster::GetSumS() const
+{
+ //
+ // return total charge in non unfolded cluster
+ //
+ Float_t sum=0;
+ for (Int_t i = 0;i<7;i++) sum+=fSignals[i];
+ return sum;
+}
+Float_t AliTRDcluster::GetCenterS() const
+{
+ //
+ //
+ //
+ Float_t sum=0;
+ Float_t sum2=0;
+ for (Int_t i = 0;i<7;i++) {
+ sum+=fSignals[i];
+ sum2+=i*fSignals[i];
+ }
+ if (sum>0) return sum2/sum-2;
+ return 0;
+
+}