]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliAODCaloCluster.h
Example train to produce HF candidates
[u/mrichter/AliRoot.git] / STEER / AliAODCaloCluster.h
index 1b6fd729e943d4ddc96af2aa9d48738beeb547ab..45fe8a182735d30ecbd253b6058877475f86a8cb 100644 (file)
@@ -16,6 +16,8 @@
 #include <TRefArray.h>
 #include <TArrayS.h>
 
+class TLorentzVector;
+
 class AliAODCaloCluster : public AliAODCluster {
 
  public:
@@ -26,7 +28,7 @@ class AliAODCaloCluster : public AliAODCluster {
                    Int_t *label,
                    Double_t energy,
                    Double_t x[3],
-                   Double_t pid[9],
+                   Double_t pid[13],
                    Char_t ttype=kUndef,
                    UInt_t selectInfo=0);
   
@@ -35,7 +37,7 @@ class AliAODCaloCluster : public AliAODCluster {
                    Int_t *label,
                    Float_t energy,
                    Float_t x[3],
-                   Float_t pid[9],
+                   Float_t pid[13],
                    Char_t ttype=kUndef,
                    UInt_t selectInfo=0);
   
@@ -48,45 +50,58 @@ class AliAODCaloCluster : public AliAODCluster {
   Double_t GetDistToBadChannel() const { return fDistToBadChannel; }
   Double_t GetDispersion() const { return fDispersion; }
   Double_t GetM20() const { return fM20; }
-  Double_t GetM01() const { return fM01; }
   Double_t GetM02() const { return fM02; }
-  Double_t GetM11() const { return fM11; }
   Double_t GetEmcCpvDistance() const { return fEmcCpvDistance; }
   UShort_t GetNExMax() const { return fNExMax; }
+  Double_t GetTOF() const { return fTOF; }
 
   Int_t    GetNTracksMatched() const { return fTracksMatched.GetEntriesFast(); }
   TObject *GetTrackMatched(Int_t i) const { return fTracksMatched.At(i); }
-  Int_t    GetNCellNumbers() const { return fCellNumber.GetSize(); }
-  UShort_t GetCellNumber(Int_t i) const { return fCellNumber.At(i); }
+  void SetNCells(Int_t n) { fNCells = n;}
+  Double_t GetNCells() const   { return fNCells;}
+  
+  void SetCellsAbsId(UShort_t *array);
+  UShort_t *GetCellsAbsId() {return  fCellsAbsId;}
+  
+  void SetCellsAmplitudeFraction(Double32_t *array);
+  Double32_t *GetCellsAmplitudeFraction() {return  fCellsAmpFraction;}
+  
+  Int_t GetCellAbsId(Int_t i) const {  
+    if (fCellsAbsId && i >=0 && i < fNCells ) return fCellsAbsId[i];    
+    else return -1;}
+  
+  Double_t GetCellAmplitudeFraction(Int_t i) const {  
+    if (fCellsAmpFraction && i >=0 && i < fNCells ) return fCellsAmpFraction[i];    
+    else return -1;}
 
   // setters
   void SetDistToBadChannel(Double_t dist) { fDistToBadChannel = dist; }
   void SetDispersion(Double_t disp) { fDispersion = disp; }
   void SetM20(Double_t m20) { fM20 = m20; }
-  void SetM01(Double_t m01) { fM01 = m01; }
   void SetM02(Double_t m02) { fM02 = m02; }
-  void SetM11(Double_t m11) { fM11 = m11; }
   void SetEmcCpvDistance(Double_t emcCpvDist) { fEmcCpvDistance = emcCpvDist; }
   void SetNExMax(UShort_t nExMax) { fNExMax = nExMax; }
+  void SetTOF(Double_t tof) { fTOF = tof; }
 
   void SetCaloCluster(Double_t dist = -999., 
                      Double_t disp = -1., 
                      Double_t m20 = 0., 
-                     Double_t m01 = 0., 
                      Double_t m02 = 0., 
-                     Double_t m11 = 0., 
                      Double_t emcCpvDist = -999., 
-                     UShort_t nExMax = 0) 
+                     UShort_t nExMax = 0, 
+                     Double_t tof = 0.) 
   {
     fDistToBadChannel = dist;
     fDispersion = disp;
     fM20 = m20;
-    fM01 = m01;
     fM02 = m02;
-    fM11 = m11;
     fEmcCpvDistance = emcCpvDist;
     fNExMax = nExMax;
+    fTOF = tof ;
   }
+  
+  void GetMomentum(TLorentzVector& p, Double_t * vertexPosition );
 
   void AddTrackMatched(TObject *trk) { fTracksMatched.Add(trk); }
   void RemoveTrackMatched(TObject *trk) { fTracksMatched.Remove(trk); }
@@ -97,16 +112,18 @@ class AliAODCaloCluster : public AliAODCluster {
   Double32_t   fDistToBadChannel; // Distance to nearest bad channel
   Double32_t   fDispersion;       // cluster dispersion, for shape analysis
   Double32_t   fM20;              // 2-nd moment along the main eigen axis
-  Double32_t   fM01;              // 
   Double32_t   fM02;              // 2-nd moment along the second eigen axis
-  Double32_t   fM11;              // 2-nd mixed moment Mxy
   Double32_t   fEmcCpvDistance;   // the distance from PHOS EMC rec.point to the closest CPV rec.point
   UShort_t     fNExMax;           // number of (Ex-)maxima before unfolding
+  Double32_t fTOF;        ////[0,0,12] time-of-flight
 
   TRefArray    fTracksMatched;    // references to tracks close to cluster. First entry is the most likely match.
-  TArrayS      fCellNumber;       // fired calorimeter cell numbers
 
-  ClassDef(AliAODCaloCluster,1);
+  Int_t       fNCells ;
+  UShort_t   *fCellsAbsId;        //[fNCells] array of cell absId numbers
+  Double32_t *fCellsAmpFraction;  //[fNCells][0.,1.,16] array with cell amplitudes fraction.
+
+  ClassDef(AliAODCaloCluster,5);
 };
 
 #endif