]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Corrections on Kaon cut for phi in PbPb and added management of event plane informati...
authorpulvir <pulvir@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 15 Jun 2011 15:23:32 +0000 (15:23 +0000)
committerpulvir <pulvir@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 15 Jun 2011 15:23:32 +0000 (15:23 +0000)
PWG2/RESONANCES/AliRsnCutKaonForPhi2010.cxx
PWG2/RESONANCES/AliRsnCutKaonForPhi2010.h
PWG2/RESONANCES/AliRsnMiniAnalysisTask.cxx
PWG2/RESONANCES/AliRsnMiniAnalysisTask.h

index a390aafb810493d82c925060a40d7f38940df44a..72ecd52aedb0fd0fd4a243d0c0c2f5862b638077 100644 (file)
@@ -81,28 +81,30 @@ Bool_t AliRsnCutKaonForPhi2010::IsSelected(TObject *obj)
       return kFALSE;
    }
    
-   // PID 
-   Double_t nsigmaTPC = TMath::Abs(pid->NumberOfSigmasTPC(track, AliPID::kKaon));
-   Double_t nsigmaTOF = TMath::Abs(pid->NumberOfSigmasTOF(track, AliPID::kKaon));
-   Bool_t   matchTOF  = MatchTOF(track);
+   // check if TOF is matched
+   // and computes all values used in the PID cut
+   Bool_t   isTOF  = MatchTOF(track);
+   Double_t nsTPC  = TMath::Abs(pid->NumberOfSigmasTPC(track, AliPID::kKaon));
+   Double_t nsTOF  = TMath::Abs(pid->NumberOfSigmasTOF(track, AliPID::kKaon));
    
    // if only one detector is chosen, do this here
    if (fOnlyTPC) {
-      return (nsigmaTPC <= fCutTPC);
+      return (nsTPC <= fCutTPC);
    } else if (fOnlyTOF) {
-      return (matchTOF && (nsigmaTOF <= fCutTOF));
+      return (isTOF && (nsTOF <= fCutTOF));
    } else {
       // combined PID:
       // below momentum threshold, start with TPC
       if (track->P() < fTOFthreshold) {
-         if (nsigmaTPC > fCutTPC) return kFALSE;
-         if (matchTOF && (nsigmaTOF > fCutTOF)) return kFALSE;
-         return kTRUE;
+         if (isTOF)
+            return ((nsTPC <= fCutTPC) && (nsTOF <= fCutTOF));
+         else
+            return (nsTPC <= fCutTPC);
       } else {
-         if (!matchTOF) return kFALSE;
-         if (nsigmaTOF > fCutTOF) return kFALSE;
-         if (nsigmaTPC > 4.0) return kFALSE;
+         if (isTOF) 
+            return ((nsTPC <= fCutTPC) && (nsTOF <= fCutTOF));
+         else
+            return kFALSE;
       }
-      return kTRUE;
    }
 }
index 085d255afbfdbfe92cf4c74fa2e823b1b3bc0577..b08209390753cdebedc5adf7bcf74a92612581d2 100644 (file)
@@ -24,17 +24,16 @@ public:
    AliRsnCutTrackQuality *CutQuality()            {return &fCutQuality;}
    Double_t               GetTOFthreshold() const {return fTOFthreshold;}
    
-   void  SetTOFthreshold(Double_t value)   {fTOFthreshold = value;}
-   void  SetOnlyQuality(Bool_t yn = kTRUE) {fOnlyQuality = yn;}
-   void  SetOnlyTPC(Bool_t yn = kTRUE)     {fOnlyTPC = yn;}
-   void  SetOnlyTOF(Bool_t yn = kTRUE)     {fOnlyTOF = yn;}
-   void  SetCutTPC(Double_t cut)           {fCutTPC = cut;}
-   void  SetCutTOF(Double_t cut)           {fCutTOF = cut;}
+   void   SetTOFthreshold(Double_t value)   {fTOFthreshold = value;}
+   void   SetOnlyQuality(Bool_t yn = kTRUE) {fOnlyQuality = yn;}
+   void   SetOnlyTPC(Bool_t yn = kTRUE)     {fOnlyTPC = yn;}
+   void   SetOnlyTOF(Bool_t yn = kTRUE)     {fOnlyTOF = yn;}
+   void   SetCutTPC(Double_t cut)           {fCutTPC = cut;}
+   void   SetCutTOF(Double_t cut)           {fCutTOF = cut;}
+   Bool_t MatchTOF(const AliVTrack *vtrack);
 
 private:
 
-   Bool_t MatchTOF(const AliVTrack *vtrack);
-
    Bool_t                fOnlyQuality;   // switch off PID
    Bool_t                fOnlyTPC;       // use only TPC PID
    Bool_t                fOnlyTOF;       // use only TOF PID
@@ -59,11 +58,10 @@ inline Bool_t AliRsnCutKaonForPhi2010::MatchTOF(const AliVTrack *vtrack)
       return kFALSE;
    }
 
-   Bool_t isTOFpid = ((vtrack->GetStatus() & AliESDtrack::kTOFpid) != 0);
-   Bool_t isTOFout = ((vtrack->GetStatus() & AliESDtrack::kTOFout) != 0);
-   Bool_t isTIME   = ((vtrack->GetStatus() & AliESDtrack::kTIME)   != 0);
+   if (!(vtrack->GetStatus() & AliESDtrack::kTOFout)) return kFALSE;
+   if (!(vtrack->GetStatus() & AliESDtrack::kTIME  )) return kFALSE;
 
-   return (isTOFout && isTIME && isTOFpid);
+   return kTRUE;
 }
 
 #endif
index 7ae43d999967280c09577d804f4e1163a31333c2..3db1437739c3d3e397ff6d0ca297d27c9e097997 100644 (file)
@@ -29,6 +29,7 @@
 #include "AliAODEvent.h"
 #include "AliMCParticle.h"
 #include "AliAODMCParticle.h"
+#include "AliEventplane.h"
 
 #include "AliRsnCutSet.h"
 #include "AliRsnMiniEvent.h"
@@ -277,7 +278,7 @@ void AliRsnMiniAnalysisTask::UserExec(Option_t *)
    // assign event-related values
    miniEvent = new AliRsnMiniEvent;
    miniEvent->Vz() = fInputEvent->GetPrimaryVertex()->GetZ();
-   miniEvent->Angle() = 0.0;
+   miniEvent->Angle() = ComputeAngle();
    miniEvent->Mult() = ComputeCentrality((check == 'E'));
    AliDebugClass(1, Form("Event %d: vz = %f -- mult = %f -- angle = %f", fEvNum, miniEvent->Vz(), miniEvent->Mult(), miniEvent->Angle()));
    
@@ -366,6 +367,7 @@ void AliRsnMiniAnalysisTask::FinishTaskOutput()
          // found a match: increment counter for both events
          fNMixed[i1]++;
          fNMixed[imix]++;
+         //cout << "Mixed " << i1 << " with " << imix << endl;
          ProcessEvents(&evMain, evMix);
          // if mixed enough times, stop
       }
@@ -528,6 +530,22 @@ Char_t AliRsnMiniAnalysisTask::CheckCurrentEvent()
    }
 }
 
+//__________________________________________________________________________________________________
+Double_t AliRsnMiniAnalysisTask::ComputeAngle()
+{
+//
+// Get the plane angle
+//
+
+   AliEventplane *plane = fInputEvent->GetEventplane();
+   if (plane) 
+      return plane->GetEventplane("Q");
+   else {
+      AliWarning("No event plane defined");
+      return 1E20;
+   }
+}
+
 //__________________________________________________________________________________________________
 Double_t AliRsnMiniAnalysisTask::ComputeCentrality(Bool_t isESD)
 {
index d1ca6cd3320eaefd3a436dae3dc58e56ada717a6..edd5d38012f07b3d5ced0c74786d8b048434957a 100644 (file)
@@ -60,6 +60,7 @@ public:
 private:
 
    Char_t   CheckCurrentEvent();
+   Double_t ComputeAngle();
    Double_t ComputeCentrality(Bool_t isESD);
    void     FillTrueMotherESD(AliRsnMiniEvent *event);
    void     FillTrueMotherAOD(AliRsnMiniEvent *event);