]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG2/SPECTRA/AliAnalysisCentralCutESD.cxx
added ration ITS global/TPC
[u/mrichter/AliRoot.git] / PWG2 / SPECTRA / AliAnalysisCentralCutESD.cxx
index 5c378ffd020bdde90d894b73cd5fae1e1c2d3cba..e5e572c12a6eedeed1d7496e4f4d4aa8ee00ae64 100644 (file)
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/
 
-//  *******************************************
-//  * particle level cuts for azimuthal isotropic      *
-//  * expansion in highly central collisions analysis *
-//  * author: Cristian Andrei                                    *
-//  *         acristian@niham.nipne.ro                        *
-//  * *****************************************
+// -----------------------------------------------
+// particle level cuts for azimuthal isotropic
+// expansion in highly central collisions analysis
+// author: Cristian Andrei
+//         acristian@niham.nipne.ro
+// ------------------------------------------------
 
 #include <TF1.h>
 #include <TFile.h>
@@ -61,7 +61,7 @@ AliAnalysisCentralCutESD::AliAnalysisCentralCutESD(const Char_t* name, const Cha
        TFile *f = TFile::Open("$ALICE_ROOT/PWG2/data/PriorProbabilities.root ");
        if(!f){
            printf("Can't open PWG2 prior probabilities file!\n Exiting ...\n");
-           exit(1);
+           return;
        }
        fElectronFunction = (TF1 *)f->Get("fitElectrons");
        fMuonFunction = (TF1 *)f->Get("fitMuons");
@@ -76,13 +76,13 @@ AliAnalysisCentralCutESD::~AliAnalysisCentralCutESD() {
 // Destructor
 // Delete the created priors
 
-       if(fPartPriors) delete [] fPartPriors;
 
        if(fElectronFunction) delete fElectronFunction;
        if(fMuonFunction) delete fMuonFunction;
        if(fPionFunction) delete fPionFunction;
        if(fKaonFunction) delete fKaonFunction;
        if(fProtonFunction) delete fProtonFunction;
+
 }
 
 
@@ -93,7 +93,7 @@ Bool_t AliAnalysisCentralCutESD::IsSelected(TObject *obj){
 
     if(!track){
                printf("AliAnalysisCentralCutESD:IsSelected ->Can't get track!\n");
-               exit(1);
+               return kFALSE;
     }
 
     if(fReqCharge){
@@ -101,7 +101,7 @@ Bool_t AliAnalysisCentralCutESD::IsSelected(TObject *obj){
     } 
 
     if(fReqPID){
-               if(!IsA(track, fPartType)) return kFALSE;    
+               if(!IsA(track, fPartType)) return kFALSE;
     }
 
     return kTRUE;
@@ -128,8 +128,16 @@ Double_t priors=0;
 
 
 
-Bool_t AliAnalysisCentralCutESD::IsA(AliESDtrack *track, PDG_t fPartType){
+Bool_t AliAnalysisCentralCutESD::IsA(AliESDtrack *track, PDG_t reqPartType){
 // Determines the type of the particle
+    Int_t charge;
+
+       if(reqPartType < 0){
+               charge = -1;
+       }
+       else{
+               charge = 1;
+       }
 
     Double_t probability[5];
     Double_t w[5];
@@ -168,22 +176,23 @@ Bool_t AliAnalysisCentralCutESD::IsA(AliESDtrack *track, PDG_t fPartType){
 
     else{
                printf("Unknown PID method!\n");
-               exit(1);
+               return kFALSE;
     }
 
-    if((AliPID::ParticleCode(partType)) != fPartType){
+    if((AliPID::ParticleCode(partType)) != reqPartType){
                return kFALSE;
     }
 
+       if(track->Charge() != charge) return kFALSE;
 
     return kTRUE;
 
 }
 
 Bool_t AliAnalysisCentralCutESD::IsCharged(AliESDtrack* const track) const{
-    
+
     if(track->Charge() == 0) return kFALSE;
-    
+
     return kTRUE;
 
 }