]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOSFastRecParticle.cxx
provide non-void return type for operator=() to make the
[u/mrichter/AliRoot.git] / PHOS / AliPHOSFastRecParticle.cxx
index 61cbe85d7c04cbc689fc78c01f2b1f43a7271a89..e8ec464235c755a8af1e1b0803f24cd67012ec85 100644 (file)
@@ -45,6 +45,7 @@ AliPHOSFastRecParticle::AliPHOSFastRecParticle() : TParticle()
 
 //____________________________________________________________________________
  AliPHOSFastRecParticle::AliPHOSFastRecParticle(const AliPHOSFastRecParticle & rp)
+   : TParticle(rp)
 {
   // copy ctor
 
@@ -128,7 +129,7 @@ Int_t AliPHOSFastRecParticle::DistancetoPrimitive(Int_t px, Int_t py)
  }
 
 //______________________________________________________________________________
-void AliPHOSFastRecParticle::ExecuteEvent(Int_t event, Int_t px, Int_t py)
+void AliPHOSFastRecParticle::ExecuteEvent(Int_t event, Int_t , Int_t )
 {
   //  Execute action corresponding to one event
   //  This member function is called when a AliPHOSFastRecParticle is clicked with the locator
@@ -167,16 +168,17 @@ void AliPHOSFastRecParticle::ExecuteEvent(Int_t event, Int_t px, Int_t py)
 }
 
 //____________________________________________________________________________
-Bool_t AliPHOSFastRecParticle::IsPhoton(const char* purity) const
+Bool_t AliPHOSFastRecParticle::IsPhoton(TString purity) const
 {
   // Rec.Particle is a photon if it has a photon-like shape, fast and neutral
   // photon-like shape is defined with a purity "low", "medium" or "high"
 
+  purity.ToLower();
   Bool_t photonLike = kFALSE;
-  if      (strcmp(purity,"low")   ==0) photonLike = TestPIDBit(6);
-  else if (strcmp(purity,"medium")==0) photonLike = TestPIDBit(7);
-  else if (strcmp(purity,"high")  ==0) photonLike = TestPIDBit(8);
-  else Error("IsPhoton","Wrong purity type: \'%s\'",purity);
+  if      (purity == "low"   ) photonLike = TestPIDBit(6);
+  else if (purity == "medium") photonLike = TestPIDBit(7);
+  else if (purity == "high"  ) photonLike = TestPIDBit(8);
+  else Error("IsPhoton","Wrong purity type: \'%s\'",purity.Data());
   if (photonLike                                   && //  photon by PCA
       (TestPIDBit(5)||TestPIDBit(4)||TestPIDBit(3))&& //  fast by TOF
       (TestPIDBit(2)||TestPIDBit(1)||TestPIDBit(0)))  //  neutral by CPV
@@ -186,16 +188,17 @@ Bool_t AliPHOSFastRecParticle::IsPhoton(const char* purity) const
 }
 
 //____________________________________________________________________________
-Bool_t AliPHOSFastRecParticle::IsPi0(const char* purity) const
+Bool_t AliPHOSFastRecParticle::IsPi0(TString purity) const
 {
   // Rec.Particle is a pi0 if it has a pi0-like shape, fast and neutral
   // pi0-like shape is defined with a purity "low", "medium" or "high"
 
+  purity.ToLower();
   Bool_t pi0Like = kFALSE;
-  if      (strcmp(purity,"low")   ==0) pi0Like = TestPIDBit(9);
-  else if (strcmp(purity,"medium")==0) pi0Like = TestPIDBit(10);
-  else if (strcmp(purity,"high")  ==0) pi0Like = TestPIDBit(11);
-  else Error("IsPi0","Wrong purity type: %s",purity);
+  if      (purity == "low"   ) pi0Like = TestPIDBit(9);
+  else if (purity == "medium") pi0Like = TestPIDBit(10);
+  else if (purity == "high"  ) pi0Like = TestPIDBit(11);
+  else Error("IsPi0","Wrong purity type: %s",purity.Data());
   if (pi0Like                                      && //  pi0 by PCA
       (TestPIDBit(5)||TestPIDBit(4)||TestPIDBit(3))&& //  fast by TOF
       (TestPIDBit(2)||TestPIDBit(1)||TestPIDBit(0)))  //  neutral by CPV
@@ -205,24 +208,47 @@ Bool_t AliPHOSFastRecParticle::IsPi0(const char* purity) const
 }
 
 //____________________________________________________________________________
-Bool_t AliPHOSFastRecParticle::IsElectron(const char* purity) const
+Bool_t AliPHOSFastRecParticle::IsElectron(TString purity) const
 {
   // Rec.Particle is an electron if it has a photon-like shape, fast and charged
   // photon-like shape is defined with a purity "low", "medium" or "high"
 
+  purity.ToLower();
   Bool_t photonLike = kFALSE;
-  if      (strcmp(purity,"low")   ==0) photonLike = TestPIDBit(6);
-  else if (strcmp(purity,"medium")==0) photonLike = TestPIDBit(7);
-  else if (strcmp(purity,"high")  ==0) photonLike = TestPIDBit(8);
-  else Error("IsElectron","Wrong purity type: %s",purity);
+  if      (purity == "low"   ) photonLike = TestPIDBit(6);
+  else if (purity == "medium") photonLike = TestPIDBit(7);
+  else if (purity == "high"  ) photonLike = TestPIDBit(8);
+  else Error("IsElectron","Wrong purity type: %s",purity.Data());
   if (photonLike                                   && //  photon by PCA
-      (TestPIDBit(5)||TestPIDBit(4)||TestPIDBit(3))&& //  fast by TOF
-     !(TestPIDBit(2)||TestPIDBit(1)||TestPIDBit(0)))  //  charged by CPV
+      (TestPIDBit(5)|| TestPIDBit(4)|| TestPIDBit(3))&& //  fast by TOF
+     (!TestPIDBit(2)||!TestPIDBit(1)||!TestPIDBit(0)))  //  charged by CPV
     return kTRUE ;
   else
     return kFALSE;
 }
 
+//____________________________________________________________________________
+Bool_t AliPHOSFastRecParticle::IsHardPhoton() const
+{
+  // Rec.Particle is a hard photon (E > 30 GeV) if its second moment M2x
+  // corresponds to photons
+  if (TestPIDBit(12))
+    return kTRUE;
+  else
+    return kFALSE;
+}
+
+//____________________________________________________________________________
+Bool_t AliPHOSFastRecParticle::IsHardPi0() const
+{
+  // Rec.Particle is a hard pi0 (E > 30 GeV) if its second moment M2x
+  // corresponds to pi0
+  if (TestPIDBit(13))
+    return kTRUE;
+  else
+    return kFALSE;
+}
+
 //____________________________________________________________________________
 Bool_t AliPHOSFastRecParticle::IsHadron() const
 {
@@ -332,41 +358,41 @@ TString AliPHOSFastRecParticle::Name() const
   name = "Undefined particle" ;
   
   if      (IsPhoton("low"))
-    name = "Photon low purity ";
+    name = "Photon low purity, ";
   else if (IsPhoton("medium"))
-    name = "Photon medium purity";
+    name = "Photon medium purity";
   else if (IsPhoton("high"))
-    name = "Photon high purity ";
+    name = "Photon high purity, ";
 
   if      (IsPi0("low"))
-    name += "Pi0 low purity ";
+    name += "Pi0 low purity, ";
   else if (IsPi0("medium"))
-    name += "Pi0 medium purity ";
+    name += "Pi0 medium purity, ";
   else if (IsPi0("high"))
-    name += "Pi0 high purity ";
+    name += "Pi0 high purity, ";
 
   if      (IsElectron("low"))
-    name += "Electron low purity ";
+    name += "Electron low purity, ";
   else if (IsElectron("medium"))
-    name += "Electron medium purity ";
+    name += "Electron medium purity, ";
   else if (IsElectron("high"))
-    name += "Electron high purity ";
+    name += "Electron high purity, ";
 
   if     (IsHadron()) {
     name = "hadron";
     if      (IsChargedHadron()) {
-      name.Prepend("charged ");
+      name.Prepend("charged, ");
       if      (IsFastChargedHadron())
-       name.Prepend("fast ");
+       name.Prepend("fast, ");
       else if (IsSlowChargedHadron())
-       name.Prepend("slow ");
+       name.Prepend("slow, ");
     }
     else if (IsNeutralHadron()) {
-      name.Prepend("neutral ");
+      name.Prepend("neutral, ");
       if      (IsFastNeutralHadron())
-       name.Prepend("fast ");
+       name.Prepend("fast, ");
       else if (IsSlowNeutralHadron())
-       name.Prepend("slow ");
+       name.Prepend("slow, ");
     }
   }
 
@@ -435,7 +461,7 @@ void AliPHOSFastRecParticle::Paint(Option_t *)
 }
 
 //____________________________________________________________________________
-void AliPHOSFastRecParticle::Print(Option_t * opt)const
+void AliPHOSFastRecParticle::Print()const
 {
   // Print the type, energy and momentum of the reconstructed particle