]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
improved readability/maintainability of AliPHOSClusterSelection to/from string
authorhqvigsta <hqvigsta@cern.ch>
Mon, 17 Feb 2014 22:52:13 +0000 (23:52 +0100)
committerhqvigsta <hqvigsta@cern.ch>
Tue, 4 Mar 2014 13:02:47 +0000 (14:02 +0100)
PWGGA/PHOSTasks/ClusterSelection/AliPHOSClusterSelection.cxx
PWGGA/PHOSTasks/ClusterSelection/AliPHOSClusterSelection.h

index 52501b368838ca6069471ec0b439ca031a978650..1f3e52f6b4e2f4f14ae41bff195d1898a84fe595 100644 (file)
@@ -198,53 +198,63 @@ AliPHOSClusterSelection* AliPHOSClusterSelection::SetMaxTOF(Float_t maxTOF)
 
 TString AliPHOSClusterSelection::ToString() const
 {
-  // returns a string an quasi-unique string for whatever selection 
+  // returns a string an quasi-unique string for whatever selection
   // parameters the instance contains. The uniqueness of the string
   // is limited by the precision given in the formatting of the string.
   // Take care that the precision is sufficient for your needs.
 
-  return TString::Format("%.1f_%i_%.1f_%.1f_%.1f",
-                        fMinChargedParticleTrackDistance,
-                        fNotUnfolded,
-                        fMaxDispR2,
-                        fMaxTOF
-                        );
+  TString string ="v1";
+  string+=Form("_%.2f", fMinChargedParticleTrackDistance);
+  string+=Form("_%i", fNotUnfolded);
+  string+=Form("_%.2f", fMaxDispR2);
+  string+=Form("_%i", fIsCore);
+  string+=Form("_%.2f", fMaxTOF);
+  return string;
 }
 
 
 Float_t AliPHOSClusterSelection::GetMinChargedParticleTrackDistance(const TString& string)
 {
-  TString * s =&(static_cast<TObjString*>(string.Tokenize("_")->At(0))->String());
-  Float_t flt= s->Atof();
-  //delete s; //s is defined in the stack, no delete necessary
+  TObjArray* array = string.Tokenize("_");
+  TObjString* objString = (TObjString*) array->At(kMinChargedParticleTrackDistance);
+  Float_t flt = objString->String().Atof();
+  delete array;
   return flt;
 }
 
 Bool_t AliPHOSClusterSelection::GetUnfolded(const TString& string)
 {
-  TString * s =&(static_cast<TObjString*>(string.Tokenize("_")->At(1))->String());
-  Bool_t bl = s->Atoi(); 
-  return bl;
+  TObjArray* array = string.Tokenize("_");
+  TObjString* objString = (TObjString*) array->At(kNotUnfolded);
+  Float_t flt = objString->String().Atoi();
+  delete array;
+  return flt;
 }
 
 Float_t AliPHOSClusterSelection::GetMaxDispR2(const TString& string)
 {
-  TString * s =&(static_cast<TObjString*>(string.Tokenize("_")->At(2))->String());
-  Float_t flt = s->Atof(); 
+  TObjArray* array = string.Tokenize("_");
+  TObjString* objString = (TObjString*) array->At(kMaxDispR2);
+  Float_t flt = objString->String().Atof();
+  delete array;
   return flt;
 }
 
 Bool_t AliPHOSClusterSelection::GetIsCore(const TString& string)
 {
-  TString * s =&(static_cast<TObjString*>(string.Tokenize("_")->At(3))->String());
-  Bool_t blt = s->Atoi(); 
-  return blt;
+  TObjArray* array = string.Tokenize("_");
+  TObjString* objString = (TObjString*) array->At(kIsCore);
+  Float_t flt = objString->String().Atoi();
+  delete array;
+  return flt;
 }
 
 Float_t AliPHOSClusterSelection::GetMaxTOF(const TString& string)
 {
-  TString * s =&(static_cast<TObjString*>(string.Tokenize("_")->At(4))->String());
-  Float_t flt = s->Atof(); 
+  TObjArray* array = string.Tokenize("_");
+  TObjString* objString = (TObjString*) array->At(kMaxTOF);
+  Float_t flt = objString->String().Atof();
+  delete array;
   return flt;
 }
 
index 157ca2cf3532637d70c130fd6714b442e84d8e5a..f1c14d6a283a12bd68b1f7e9e9480c5da47837bc 100644 (file)
@@ -23,7 +23,7 @@ class AliPHOSClusterSelection : public TObject {
  public:
   AliPHOSClusterSelection();
   virtual ~AliPHOSClusterSelection();
-  
+
   // Selection functions
   virtual Bool_t IsSelected(AliVCluster* cluster) const;
 
@@ -38,7 +38,7 @@ class AliPHOSClusterSelection : public TObject {
   AliPHOSClusterSelection* SetMaxDispR2(Float_t maxR2);
   AliPHOSClusterSelection* SetIsCore(Bool_t isCore);
   AliPHOSClusterSelection* SetMaxTOF(Float_t maxTOF);
-  
+
   //AliPHOSClusterSelection* SetMinSelection();
 
   virtual TString ToString() const;
@@ -52,10 +52,11 @@ class AliPHOSClusterSelection : public TObject {
  protected:
   AliPHOSClusterSelection(const AliPHOSClusterSelection&); // not implemented
   AliPHOSClusterSelection& operator=(const AliPHOSClusterSelection&); // not implemented
-  
+
   Double_t TestCPV(Double_t dx, Double_t dz, Double_t pt, Int_t charge, Double_t mf) const;//Copied from Pi0Flow task
   void  EvalCoreLambdas(AliVCluster  *  clu, AliVCaloCells * cells,Double_t &m02, Double_t &m20) const;//Copied from Pi0Flow task
   Bool_t TestLambda(Double_t pt,Double_t l1,Double_t l2) const;//Copied from Pi0FlowTask
+
   // Selection Parameters
   Float_t fMinChargedParticleTrackDistance; // CPV, Charged Particle Veto
   Bool_t fNotUnfolded; // if true, rejects Unfolded Clusters
@@ -63,10 +64,12 @@ class AliPHOSClusterSelection : public TObject {
   Bool_t fIsCore; // If true, core radius disp is calculated
   Float_t fMaxTOF; // TOF cut
 
+  enum ParameterIndex {kVersion, kMinChargedParticleTrackDistance, kNotUnfolded,
+    kMaxDispR2, kIsCore, kMaxTOF, kNParameters };
+
   AliVEvent* GetCurrentEvent() const;
 
   ClassDef(AliPHOSClusterSelection, 1);
 };
 
 #endif
-