]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOSTrackSegment.h
simple analysis task for MC efficiency calculations and more
[u/mrichter/AliRoot.git] / PHOS / AliPHOSTrackSegment.h
index 7a78504beee64125b95d5a36c59c7d58daa41e2f..9ecd65edd41dad19e383120a30b07b990e1bc11a 100644 (file)
@@ -1,68 +1,84 @@
-#ifndef ALIPHOSSUBTRACK_H
-#define ALIPHOSSUBTRACK_H
+#ifndef ALIPHOSTRACKSEGMENT_H
+#define ALIPHOSTRACKSEGMENT_H
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
-/////////////////////////////////////////////////
-//  Short description                          //
-//  Version SUBATECH                           //
-//  Author Dmitri Peressounko RRC KI           //
-//      comment: contains pairs (triplets) of  //  
-//               EMC+PPSD(+PPSD) clusters, and //
-//               evaluates particle type,      // 
-//               energy, etc                   //
-/////////////////////////////////////////////////
+/* $Id$ */
+
+/* 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.
+ *
+ */
+
+//_________________________________________________________________________
+//  Track segment in PHOS
+//  Can be : 1 EmcRecPoint
+//           1 EmcRecPoint + 1 CPV
+//                  
+//*-- Author:  Dmitri Peressounko (RRC KI & SUBATECH)
 
 // --- ROOT system ---
 
 #include "TObject.h"
-#include "TVector3.h"
+class TClonesArray ; 
 
 // --- Standard library ---
 
 // --- AliRoot header files ---
+class AliPHOSRecPoint ; 
+class AliPHOSEmcRecPoint ; 
+class AliPHOSCpvRecPoint ; 
+class AliESDtrack ; 
 
-#include "AliPHOSEmcRecPoint.h"
-#include "AliPHOSPpsdRecPoint.h"
+class AliPHOSTrackSegment : public TObject  {
 
+public:
 
+  AliPHOSTrackSegment() ;
+  AliPHOSTrackSegment(AliPHOSEmcRecPoint * EmcRecPoint , 
+                     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() {  } 
 
-class AliPHOSTrackSegment : public TObject  {
+  void    SetCpvDistance(Float_t x,Float_t z){fDcpv[0]=x ; fDcpv[1]=z ; }
 
-public:
+  void Copy(TObject & obj) const;  
 
-  AliPHOSTrackSegment() {} ; // ctor 
-  AliPHOSTrackSegment(AliPHOSEmcRecPoint * EmcRecPoint , AliPHOSPpsdRecPoint * PpsdUp, 
-                  AliPHOSPpsdRecPoint * PpsdLow  ) ;                    
-  virtual ~AliPHOSTrackSegment() ; // dtor 
+  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 Int_t  DistancetoPrimitive(Int_t px, Int_t py);
-  virtual void   Draw(Option_t * option="") ;
-  virtual void   ExecuteEvent(Int_t event, Int_t px, Int_t py);
-  Int_t GetPartType() ;          // Returns 0 - gamma, 1 - e+, e- ;  2 - neutral hadron ; 3 - charged hadron
-  Float_t GetEnergy(){ return fEmcRecPoint->GetTotalEnergy() ;}   // Returs energy in EMC
-  
-  Float_t GetDistanceInPHOSPlane(void) ;    // computes in PHOS plane the relative position between EMC and PPSD clusters 
-  virtual Int_t  GetPHOSMod(void) {return fEmcRecPoint->GetPHOSMod();  }
-  Bool_t GetMomentumDirection( TVector3 & dir ) ;   // True if determined
-  void GetPosition( TVector3 & pos ) ;              // Returns positions of hits
-  virtual  void  Paint(Option_t * option="");
-  void Print() ;
-  void SetDispersionCutOff(Float_t Dcut) {fCutOnDispersion = Dcut ; }    
-  
-  
+  virtual void  Print(const Option_t * = "") const;
+  void    SetIndexInList(Int_t val){ fIndexInList = val ;     } 
+  void    SetCpvRecPoint(AliPHOSRecPoint * CpvRecPoint ); //sets CPV Rec Point
+
+  typedef TClonesArray TrackSegmentsList ; 
 private:
+  AliPHOSTrackSegment & operator = (const AliPHOSTrackSegment & /*ts*/);
+ private:
   
-  AliPHOSEmcRecPoint  * fEmcRecPoint ;
-  AliPHOSPpsdRecPoint * fPpsdLow ;
-  AliPHOSPpsdRecPoint * fPpsdUp ;
-  
-  Float_t fCutOnDispersion ;   
-  
-public:
+  Int_t fEmcRecPoint ;     // The EMC reconstructed point index in array stored in TreeR/PHOSEmcRP
+  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)  // description , version 1
+ ClassDef(AliPHOSTrackSegment,1)  // Track segment in PHOS
 
 };
 
-#endif // AliPHOSSUBTRACK_H
+#endif // ALIPHOSTRACKSEGMENT_H