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;
}
public:
AliPHOSClusterSelection();
virtual ~AliPHOSClusterSelection();
-
+
// Selection functions
virtual Bool_t IsSelected(AliVCluster* cluster) const;
AliPHOSClusterSelection* SetMaxDispR2(Float_t maxR2);
AliPHOSClusterSelection* SetIsCore(Bool_t isCore);
AliPHOSClusterSelection* SetMaxTOF(Float_t maxTOF);
-
+
//AliPHOSClusterSelection* SetMinSelection();
virtual TString ToString() const;
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
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
-