Distance to CPV in x and z separated
authorkharlov <kharlov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 6 Mar 2007 06:53:55 +0000 (06:53 +0000)
committerkharlov <kharlov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 6 Mar 2007 06:53:55 +0000 (06:53 +0000)
PHOS/AliPHOSLink.cxx
PHOS/AliPHOSLink.h
PHOS/AliPHOSTrackSegment.cxx
PHOS/AliPHOSTrackSegment.h

index 63a431a..6673c83 100644 (file)
 ClassImp(AliPHOSLink)
 //____________________________________________________________________________
   AliPHOSLink::AliPHOSLink() : 
-    fEmcN(-1), fCpvN(-1), fR(-1.), fTrack(-1)
+    fEmcN(-1), fCpvN(-1), fTrack(-1), fx(-1.), fz(-1.) 
 {
 }
 
 //____________________________________________________________________________
-AliPHOSLink::AliPHOSLink(Float_t r, Int_t emc, Int_t cpv, Int_t track):
+AliPHOSLink::AliPHOSLink(Float_t dx, Float_t dz, Int_t emc, Int_t cpv, Int_t track):
   fEmcN(emc),
   fCpvN(cpv),
-  fR(r),
-  fTrack(track)
+  fTrack(track),
+  fx(dx),
+  fz(dz)
 {
   // ctor
 }
@@ -55,7 +56,7 @@ Int_t AliPHOSLink::Compare(const TObject * obj) const
 
   AliPHOSLink * link = (AliPHOSLink *) obj ;
 
-  if(this->fR < link->GetR() ) 
+  if(fx*fx+fz*fz < link->fz*link->fz+link->fx*link->fx ) 
     rv = -1 ;
   else 
     rv = 1 ;
index da46593..53b59d4 100644 (file)
@@ -24,14 +24,14 @@ class AliPHOSLink : public  TObject{
 public:
   
   AliPHOSLink() ;  // ctor            
-  AliPHOSLink( Float_t r, Int_t emc, Int_t cpv, Int_t track) ;  // ctor            
+  AliPHOSLink( Float_t x, Float_t z, Int_t emc, Int_t cpv, Int_t track) ;  // ctor            
   virtual ~AliPHOSLink(){
     // dtor
   }
   Int_t   Compare(const TObject * obj) const;
   Int_t   GetEmc(void) const { return fEmcN; }
   Int_t   GetCpv(void) const { return fCpvN ; }
-  Float_t GetR(void) const { return fR ; } 
+  void    GetXZ(Float_t &dx, Float_t &dz) const { dx=fx ; dz = fz ; } 
   Int_t   GetTrack(void) const { return fTrack ; }
   Bool_t  IsSortable() const{ 
     // tells if this is a sortable object 
@@ -42,8 +42,9 @@ private:
   
   Int_t fEmcN ;  // Emc index
   Int_t fCpvN ;  // Cpv index 
-  Float_t fR ;   // Distance between EMC and CPV RecPoints in a track segment
   Int_t fTrack;  // Charged tracked within a minimum distance of the EMC
+  Float_t fx ;   // Distance between EMC and CPV RecPoints in a track segment
+  Float_t fz ;   // Distance between EMC and CPV RecPoints in a track segment
   
   ClassDef(AliPHOSLink,2)  // Auxilliary algorithm class used by AliPHOSTrackSegmentMaker
 
index 1119288..6d9707f 100644 (file)
@@ -17,6 +17,9 @@
 /* History of cvs commits:
  *
  * $Log$
+ * Revision 1.30  2006/08/28 10:01:56  kharlov
+ * Effective C++ warnings fixed (Timur Pocheptsov)
+ *
  * Revision 1.29  2005/05/28 14:19:05  schutz
  * Compilation warnings fixed by T.P.
  *
@@ -50,6 +53,8 @@ AliPHOSTrackSegment::AliPHOSTrackSegment()
                          fTrack(0)
 {
   //def ctor
+  fDcpv[0]=999. ;
+  fDcpv[1]=999. ;
 }
 
 //____________________________________________________________________________
@@ -75,6 +80,8 @@ AliPHOSTrackSegment::AliPHOSTrackSegment( AliPHOSEmcRecPoint * emc ,
   fTrack = -1 ; 
 
   fIndexInList = -1 ;
+  fDcpv[0]=999. ;
+  fDcpv[1]=999. ;
 }
 
 //____________________________________________________________________________
@@ -101,6 +108,37 @@ AliPHOSTrackSegment::AliPHOSTrackSegment( AliPHOSEmcRecPoint * emc ,
   fTrack = track ; 
 
   fIndexInList = -1 ;
+  fDcpv[0]=999. ;
+  fDcpv[1]=999. ;
+}
+
+//____________________________________________________________________________
+AliPHOSTrackSegment::AliPHOSTrackSegment( AliPHOSEmcRecPoint * emc , 
+                                         AliPHOSRecPoint * cpvrp1, 
+                                         Int_t track, Float_t dx,Float_t dz)
+                       : fEmcRecPoint(0),
+                         fIndexInList(0),
+                         fCpvRecPoint(0),
+                         fTrack(0)
+{
+  // ctor
+
+  if( emc )   
+    fEmcRecPoint =  emc->GetIndexInList() ;
+  else 
+    fEmcRecPoint = -1 ;
+
+  if( cpvrp1 )  
+    fCpvRecPoint = cpvrp1->GetIndexInList() ;
+ else 
+    fCpvRecPoint = -1 ;
+  
+  fTrack = track ; 
+
+  fIndexInList = -1 ;
+
+  fDcpv[0] = dx ;
+  fDcpv[1] = dz ;
 }
 
 //____________________________________________________________________________
@@ -127,6 +165,8 @@ void AliPHOSTrackSegment::Copy(TObject & obj) const
    ( (AliPHOSTrackSegment &)obj ).fCpvRecPoint     = fCpvRecPoint ; 
    ( (AliPHOSTrackSegment &)obj ).fIndexInList     = fIndexInList ; 
    ( (AliPHOSTrackSegment &)obj ).fTrack           = fTrack ;
+   ( (AliPHOSTrackSegment &)obj ).fDcpv[0]         = fDcpv[0] ;
+   ( (AliPHOSTrackSegment &)obj ).fDcpv[1]         = fDcpv[1] ;
 } 
 
 
@@ -147,6 +187,7 @@ void AliPHOSTrackSegment::Print(const Option_t *) const
     printf(" Charged track #     %d\n", fTrack) ;
   else
     printf(" No Charged track\n");
+  printf(" Distance to CPV: x=%f, z=%f\n",fDcpv[0],fDcpv[1]) ;
 }
 
 //____________________________________________________________________________
@@ -158,4 +199,12 @@ void AliPHOSTrackSegment::SetCpvRecPoint(AliPHOSRecPoint * cpvRecPoint)
  else 
     fCpvRecPoint = -1 ;
 }
+//____________________________________________________________________________
+Float_t AliPHOSTrackSegment::GetCpvDistance(const Option_t* dr) const
+{
+ if(strcmp(dr,"x")==0||strcmp(dr,"X")==0) return fDcpv[0] ; 
+ if(strcmp(dr,"z")==0||strcmp(dr,"Z")==0) return fDcpv[1] ; 
+ if(strcmp(dr,"r")==0||strcmp(dr,"R")==0) return TMath::Sqrt(fDcpv[0]*fDcpv[0]+fDcpv[1]*fDcpv[1]) ; 
+ return 999. ;
 
+}
index f3ca43e..34c161f 100644 (file)
@@ -8,6 +8,9 @@
 /* History of cvs commits:
  *
  * $Log$
+ * Revision 1.23  2006/08/28 10:01:56  kharlov
+ * Effective C++ warnings fixed (Timur Pocheptsov)
+ *
  * Revision 1.22  2005/05/28 14:19:05  schutz
  * Compilation warnings fixed by T.P.
  *
@@ -42,15 +45,21 @@ public:
                      AliPHOSRecPoint * Cpv) ;
   AliPHOSTrackSegment(AliPHOSEmcRecPoint * EmcRecPoint , 
                      AliPHOSRecPoint * Cpv, Int_t track) ;
+  AliPHOSTrackSegment(AliPHOSEmcRecPoint * EmcRecPoint , 
+                     AliPHOSRecPoint * Cpv, Int_t track, 
+                      Float_t dx, Float_t dz) ;
   AliPHOSTrackSegment(const AliPHOSTrackSegment & ts) ;  // ctor                   
   virtual ~AliPHOSTrackSegment() {  } 
 
+  void    SetCpvDistance(Float_t x,Float_t z){fDcpv[0]=x ; fDcpv[1]=z ; }
+
   void Copy(TObject & obj) const;  
 
   Int_t   GetIndexInList() const {  return fIndexInList ;   } 
   Int_t   GetEmcIndex()    const {  return fEmcRecPoint ;   }
   Int_t   GetCpvIndex()    const {  return fCpvRecPoint; }
   Int_t   GetTrackIndex()  const {  return fTrack; }
+  Float_t GetCpvDistance(const Option_t* dr="r") const ;
 
   virtual void  Print(const Option_t * = "") const;
   void    SetIndexInList(Int_t val){ fIndexInList = val ;     } 
@@ -64,8 +73,9 @@ public:
   Int_t fIndexInList ;     // the index of this TrackSegment in the list stored in TreeR (to be set by analysis)
   Int_t fCpvRecPoint ;     // The CPV reconstructed point in array stored in TreeR/PHOSCpvRP
   Int_t fTrack ;           // The charged track index (from global tracking) in ESD file 
+  Float_t fDcpv[2] ;       // Distance to projection of CPV cluster
 
-  ClassDef(AliPHOSTrackSegment,1)  // Track segment in PHOS
+ ClassDef(AliPHOSTrackSegment,1)  // Track segment in PHOS
 
 };