]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGGA/PHOSTasks/ClusterSelection/AliPHOSClusterSelection.cxx
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGGA / PHOSTasks / ClusterSelection / AliPHOSClusterSelection.cxx
index 52501b368838ca6069471ec0b439ca031a978650..1e432148e7728545cd979d76ab37d55bdecdd9fa 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;
 }
 
@@ -285,7 +295,8 @@ void  AliPHOSClusterSelection::EvalCoreLambdas(AliVCluster  * clu, AliVCaloCells
 { 
   //calculate dispecrsion of the cluster in the circle with radius distanceCut around the maximum
   //Copied from pi0flowtask
-  Int_t fRunNumber;
+  AliVEvent* vevent = AliPHOSClusterSelection::GetCurrentEvent();
+  Int_t runNumber = vevent->GetRunNumber();
   const Double32_t * elist = clu->GetCellsAmplitudeFraction() ;  
   // Calculates the center of gravity in the local PHOS-module coordinates
   Float_t wtot = 0;
@@ -302,18 +313,9 @@ void  AliPHOSClusterSelection::EvalCoreLambdas(AliVCluster  * clu, AliVCaloCells
     Float_t zi=0. ;
     Int_t absId = clu->GetCellAbsId(iDigit) ;
 
-
-    AliESDEvent* EventESD = dynamic_cast<AliESDEvent*> (AliPHOSClusterSelection::GetCurrentEvent());//dynamic cast to test for ESD or AOD
-
-    AliAODEvent* EventAOD = dynamic_cast<AliAODEvent*> (AliPHOSClusterSelection::GetCurrentEvent());
-    if(EventESD)
-      fRunNumber = EventESD->GetRunNumber() ;
-    if(EventAOD)
-      fRunNumber = EventESD->GetRunNumber() ;
-
     AliOADBContainer geomContainer("phosGeo");//Initialize Geometry
     geomContainer.InitFromFile("$ALICE_ROOT/OADB/PHOS/PHOSGeometry.root","PHOSRotationMatrixes");
-    TObjArray *matrixes = (TObjArray*)geomContainer.GetObject(fRunNumber,"PHOSRotationMatrixes");
+    TObjArray *matrixes = (TObjArray*)geomContainer.GetObject(runNumber,"PHOSRotationMatrixes");
     AliPHOSGeometry * fPHOSGeo =  AliPHOSGeometry::GetInstance("IHEP") ;
     for(Int_t mod=0; mod<5; mod++) {
       if(!matrixes->At(mod)) {