]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
addition to #96201: forgot to add the new files
authoragheata <agheata@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 23 Jul 2012 13:12:45 +0000 (13:12 +0000)
committeragheata <agheata@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 23 Jul 2012 13:12:45 +0000 (13:12 +0000)
STEER/AOD/AliAODHMPIDrings.cxx [new file with mode: 0644]
STEER/AOD/AliAODHMPIDrings.h [new file with mode: 0644]

diff --git a/STEER/AOD/AliAODHMPIDrings.cxx b/STEER/AOD/AliAODHMPIDrings.cxx
new file mode 100644 (file)
index 0000000..f80af83
--- /dev/null
@@ -0,0 +1,164 @@
+/**************************************************************************
+ * Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
+ *                                                                        *
+ * Author: The ALICE Off-line Project.                                    *
+ * Contributors are mentioned in the code where appropriate.              *
+ *                                                                        *
+ * Permission to use, copy, modify and distribute this software and its   *
+ * documentation strictly for non-commercial purposes is hereby granted   *
+ * without fee, provided that the above copyright notice appears in all   *
+ * copies and that both the copyright notice and this permission notice   *
+ * appear in the supporting documentation. The authors make no claims     *
+ * about the suitability of this software for any purpose. It is          *
+ * provided "as is" without express or implied warranty.                  *
+ **************************************************************************/
+
+
+
+//
+// Class to handle the AOD tracks with good HMPID data 
+// Author: Levente Molnar
+// levente.molnar@cern.ch , March 2012
+// 
+
+#include "AliAODHMPIDrings.h"
+
+ClassImp(AliAODHMPIDrings)
+
+//________________________________________________________________________________________________________________________________________________________
+
+AliAODHMPIDrings::AliAODHMPIDrings()
+                   :TObject(),
+                    fHmpidAODtrkId(0),
+                    fHmpidAODqn(0),
+                    fHmpidAODcluIdx(0),
+                    fHmpidAODtrkTheta(0),
+                    fHmpidAODtrkPhi(0),
+                    fHmpidAODsignal(0),
+                    fHmpidAODocc(0),
+                    fHmpidAODchi2(0),
+                    fHmpidAODtrkX(0),
+                    fHmpidAODtrkY(0),
+                    fHmpidAODmipX(0),
+                    fHmpidAODmipY(0)
+
+{
+  //default ctor 
+   for(Int_t isp = 0 ; isp <AliPID::kSPECIES; isp++)   fHmpidAODpid[isp] = 0;
+       for ( Int_t ico = 0 ; ico < 3; ico++) fHMPIDmom[ico] = 0;
+}
+
+//________________________________________________________________________________________________________________________________________________________
+AliAODHMPIDrings::AliAODHMPIDrings(
+                    Int_t trkId,
+                    Int_t qn, 
+                    Int_t cluIdx,
+                    Double32_t  trkTheta,
+                    Double32_t trkPhi,
+                    Double32_t signal,
+                    Double32_t occ,
+                    Double32_t chi2,
+                    Double32_t trkX,
+                    Double32_t trkY,
+                    Double32_t mipX,
+                    Double32_t mipY,
+                    Double32_t *pid,
+                    Double32_t *p         ):
+                    TObject(),
+                    
+                    fHmpidAODtrkId(trkId),
+                    fHmpidAODqn(qn),
+                    fHmpidAODcluIdx(cluIdx),
+                    fHmpidAODtrkTheta(trkTheta),
+                    fHmpidAODtrkPhi(trkPhi),
+                    fHmpidAODsignal(signal),
+                    fHmpidAODocc(occ),
+                    fHmpidAODchi2(chi2),
+                    fHmpidAODtrkX(trkX),
+                    fHmpidAODtrkY(trkY),
+                    fHmpidAODmipX(mipX),
+                    fHmpidAODmipY(mipY)
+
+                    
+{
+       //             
+       for(Int_t isp = 0 ; isp <AliPID::kSPECIES; isp++)   fHmpidAODpid[isp] = pid[isp];
+       for ( Int_t ico = 0 ; ico < 3; ico++) fHMPIDmom[ico] = p[ico];
+                           
+}
+//________________________________________________________________________________________________________________________________________________________
+AliAODHMPIDrings::AliAODHMPIDrings(const AliAODHMPIDrings& hmpidAOD):
+    
+                    TObject(hmpidAOD),
+                    fHmpidAODtrkId(hmpidAOD.fHmpidAODtrkId),
+                    fHmpidAODqn(hmpidAOD.fHmpidAODqn),
+                    fHmpidAODcluIdx(hmpidAOD.fHmpidAODcluIdx),
+                    fHmpidAODtrkTheta(hmpidAOD.fHmpidAODtrkTheta),
+                    fHmpidAODtrkPhi(hmpidAOD.fHmpidAODtrkPhi),
+                    fHmpidAODsignal(hmpidAOD.fHmpidAODsignal),
+                    fHmpidAODocc(hmpidAOD.fHmpidAODocc),
+                    fHmpidAODchi2(hmpidAOD.fHmpidAODchi2),
+                    fHmpidAODtrkX(hmpidAOD.fHmpidAODtrkX),
+                    fHmpidAODtrkY(hmpidAOD.fHmpidAODtrkY),
+                    fHmpidAODmipX(hmpidAOD.fHmpidAODmipX),
+                    fHmpidAODmipY(hmpidAOD.fHmpidAODmipY)
+
+                    
+{
+       //             
+       for(Int_t isp = 0 ; isp <AliPID::kSPECIES; isp++)   fHmpidAODpid[isp] = hmpidAOD.fHmpidAODpid[isp];
+       for ( Int_t ico = 0 ; ico < 3; ico++) fHMPIDmom[ico] = hmpidAOD.fHMPIDmom[ico];
+                           
+}
+
+//________________________________________________________________________________________________________________________________________________________
+AliAODHMPIDrings& AliAODHMPIDrings::operator=(const AliAODHMPIDrings& hmpidAOD)
+{
+     if (this!=&hmpidAOD) {   
+                    AliAODHMPIDrings::operator=(hmpidAOD);  
+                    fHmpidAODtrkId = hmpidAOD.fHmpidAODtrkId;        
+                    fHmpidAODqn = hmpidAOD.fHmpidAODqn;
+                    fHmpidAODcluIdx = hmpidAOD.fHmpidAODcluIdx;
+                    fHmpidAODtrkTheta = hmpidAOD.fHmpidAODtrkTheta;
+                    fHmpidAODtrkPhi = hmpidAOD.fHmpidAODtrkPhi;
+                    fHmpidAODsignal = hmpidAOD.fHmpidAODsignal;
+                    fHmpidAODocc = hmpidAOD.fHmpidAODocc;
+                    fHmpidAODchi2 = hmpidAOD.fHmpidAODchi2;
+                    fHmpidAODtrkX = hmpidAOD.fHmpidAODtrkX;
+                    fHmpidAODtrkY = hmpidAOD.fHmpidAODtrkY;
+                    fHmpidAODmipX = hmpidAOD.fHmpidAODmipX;
+                    fHmpidAODmipY = hmpidAOD.fHmpidAODmipY;
+                    
+                    for(Int_t isp = 0 ; isp <AliPID::kSPECIES; isp++)   fHmpidAODpid[isp] = hmpidAOD.fHmpidAODpid[isp];
+                    for ( Int_t ico = 0 ; ico < 3; ico++) fHMPIDmom[ico] = hmpidAOD.fHMPIDmom[ico];
+
+     }
+     
+     return *this;
+                                  
+}
+//________________________________________________________________________________________________________________________________________________________
+void AliAODHMPIDrings::GetHmpPidProbs(Double32_t *pid)
+{
+  // Gets probabilities of each particle type (in HMPID)
+  for (Int_t i=0; i<AliPID::kSPECIES; i++) pid[i]=fHmpidAODpid[i];
+}
+//________________________________________________________________________________________________________________________________________________________
+void  AliAODHMPIDrings::GetHmpMom(Double32_t *mom)
+{
+  for( Int_t ico = 0 ; ico < 3; ico++) mom[ico] = fHMPIDmom[ico];
+}
+//________________________________________________________________________________________________________________________________________________________
+void AliAODHMPIDrings::SetHmpPidProbs(Double32_t *pid)
+{
+  // Gets probabilities of each particle type (in HMPID)
+  for (Int_t i=0; i<AliPID::kSPECIES; i++) fHmpidAODpid[i] = pid[i];
+}
+
+//________________________________________________________________________________________________________________________________________________________
+void  AliAODHMPIDrings::SetHmpMom(Double32_t *mom)
+{
+  for( Int_t ico = 0 ; ico < 3; ico++) fHMPIDmom[ico] = mom[ico];  
+}
+//________________________________________________________________________________________________________________________________________________________
+
diff --git a/STEER/AOD/AliAODHMPIDrings.h b/STEER/AOD/AliAODHMPIDrings.h
new file mode 100644 (file)
index 0000000..939295c
--- /dev/null
@@ -0,0 +1,125 @@
+#ifndef ALIAODHMPIDRINGS_H
+#define ALIAODHMPIDRINGS_H
+
+
+//
+// Class to handle the AOD tracks with good HMPID rings 
+// Author: Levente Molnar
+// levente.molnar@cern.ch , March 2012
+// 
+
+
+
+//___ROOT includes
+#include <TMath.h>
+//___AliRoot includes
+#include "AliPID.h"
+
+
+class AliAODHMPIDrings : public TObject {
+  
+ public:
+  
+  AliAODHMPIDrings();
+  AliAODHMPIDrings(
+                    Int_t trkId,
+                    Int_t qn, 
+                    Int_t cluIdx,
+                    Double32_t  trkTheta,
+                    Double32_t trkPhi,
+                    Double32_t signal,
+                    Double32_t occ,
+                    Double32_t chi2,
+                    Double32_t trkX,
+                    Double32_t trkY,
+                    Double32_t mipX,
+                    Double32_t mipY,
+                    Double32_t *pid,
+                    Double32_t *p                  );      //              
+      
+      
+  AliAODHMPIDrings(const AliAODHMPIDrings& hmpidAOD);//
+  AliAODHMPIDrings &operator=(const AliAODHMPIDrings& hmpidAOD);//
+  virtual ~AliAODHMPIDrings() {};
+    
+  //___ Getters
+  Double32_t GetHmpTrkID()                { return fHmpidAODtrkId; }
+  
+  Double32_t GetHmpMipCharge()            { return fHmpidAODqn%1000000; }
+  Double32_t GetHmpNumOfPhotonClusters()  { return fHmpidAODqn/1000000;}
+  Int_t      GetHmpChamber()              { return fHmpidAODcluIdx/1000000; }
+  
+  Double32_t GetHmpTrackTheta()           { return fHmpidAODtrkTheta;}
+  Double32_t GetHmpTrackPhi()             { return fHmpidAODtrkPhi;}
+  
+  Double32_t GetHmpSignal()               { return fHmpidAODsignal;}
+  Double32_t GetHmpOccupancy()            { return fHmpidAODocc;}
+  
+  Double32_t GetHmpChi2()                 { return fHmpidAODchi2;}
+
+  Double32_t GetHmpTrackX()               { return fHmpidAODtrkX;}
+  Double32_t GetHmpTrackY()               { return fHmpidAODtrkY;}
+
+  Double32_t GetHmpMipX()                 { return fHmpidAODmipX;}
+  Double32_t GetHmpMipY()                 { return fHmpidAODmipY;}
+
+  Double32_t GetHmpDX()                   { return fHmpidAODmipX - fHmpidAODtrkX;}
+  Double32_t GetHmpDY()                   { return fHmpidAODmipY - fHmpidAODtrkY;}
+  Double32_t GetHmpDist()                 { return TMath::Sqrt((fHmpidAODmipX - fHmpidAODtrkX)*(fHmpidAODmipX - fHmpidAODtrkX) + (fHmpidAODmipY - fHmpidAODtrkY)*(fHmpidAODmipY - fHmpidAODtrkY));}
+  
+  
+  void GetHmpPidProbs(Double32_t *pid);   //defined in cxx
+  void GetHmpMom(Double32_t *mom);        //defined in cxx
+  
+  //___ Setters
+  
+  void SetHmpMipCharge(Int_t q)               { fHmpidAODqn = q; }
+  void SetHmpCluIdx(Int_t ch,Int_t idx)       { fHmpidAODcluIdx=ch*1000000+idx;}
+  
+  void SetHmpNumOfPhotonClusters(Int_t nph)   { fHmpidAODqn = 1000000 * nph;}
+  
+  void SetHmpTrackTheta(Double32_t trkTheta)  { fHmpidAODtrkTheta = trkTheta;}
+  void SetHmpTrackPhi(Double32_t trkPhi)      { fHmpidAODtrkPhi = trkPhi;}
+  
+  void SetHmpSignal(Double32_t thetaC)        { fHmpidAODsignal = thetaC;}
+  void SetHmpOccupancy(Double32_t occ)        { fHmpidAODocc =  occ;}
+  
+  void SetHmpChi2(Double32_t chi2)            { fHmpidAODchi2 = chi2;}
+
+  void SetHmpTrackX(Double32_t trkX)          { fHmpidAODtrkX = trkX;}
+  void SetHmpTrackY(Double32_t trkY)          { fHmpidAODtrkY = trkY;}
+
+  void SetHmpMipX(Double32_t mipX)            { fHmpidAODmipX = mipX;}
+  void SetHmpMipY(Double32_t mipY)            { fHmpidAODmipY = mipY;}
+  void SetHmpPidProbs(Double32_t *pid);       
+  void SetHmpMom(Double32_t *mom);        
+  
+  
+  // blablabla
+  
+  
+  
+ protected:
+  
+  Int_t       fHmpidAODtrkId;                      // Unique track id as in ESD
+  Int_t       fHmpidAODqn;                         // 1000000*number of photon clusters + QDC
+  Int_t       fHmpidAODcluIdx;                     // 1000000*chamber id + cluster idx of the assigned MIP cluster
+  
+  Double32_t  fHmpidAODtrkTheta;                   // [-2*pi,2*pi,16] theta of the track extrapolated to the HMPID, LORS
+  Double32_t  fHmpidAODtrkPhi;                     // [-2*pi,2*pi,16] theta of the track extrapolated to the HMPID, LORS
+  Double32_t  fHmpidAODsignal;                     // [0,0.9,8] HMPID signal (Theta ckov, rad)
+  Double32_t  fHmpidAODocc;                        // [0,0,,8]  chamber occupancy where the track passed through: number of pads
+  Double32_t  fHmpidAODchi2;                       // [0.,0.,8] chi2 in the HMPID  
+  Double32_t  fHmpidAODtrkX;                       // [0.,0.,8] x of the track impact, LORS 
+  Double32_t  fHmpidAODtrkY;                       // [0.,0.,8] y of the track impact, LORS 
+  Double32_t  fHmpidAODmipX;                       // [0.,0.,8] x of the MIP in LORS
+  Double32_t  fHmpidAODmipY;                       // [0.,0.,8] y of the MIP in LORS
+  Double32_t  fHmpidAODpid[AliPID::kSPECIES];      // [0.,0.,8] "detector response probabilities" (for the PID)
+  Double32_t  fHMPIDmom[3];                          // [0.,0.,8] track momentum at the HMPID ring reconstruction
+  
+  ClassDef(AliAODHMPIDrings,1)  
+        
+};
+#endif