Additional histogram in PID monitor + adding lines to ESDTrackCut to make sqrt of...
authormajanik <majanik@cern.ch>
Wed, 28 May 2014 12:31:26 +0000 (14:31 +0200)
committermajanik <majanik@cern.ch>
Wed, 28 May 2014 12:33:25 +0000 (14:33 +0200)
PWGCF/FEMTOSCOPY/AliFemto/AliFemtoCutMonitorParticlePID.cxx
PWGCF/FEMTOSCOPY/AliFemto/AliFemtoCutMonitorParticlePID.h
PWGCF/FEMTOSCOPY/AliFemtoUser/AliFemtoESDTrackCut.cxx

index d8c4e34..dd0fa17 100644 (file)
@@ -15,16 +15,18 @@ AliFemtoCutMonitorParticlePID::AliFemtoCutMonitorParticlePID():
   fTPCdEdx(0),
   fTOFParticle(0),
   fTOFTime(0x0),
-    fTOFNSigma(0),
-    fTPCNSigma(0),
-    fTPCTOFNSigma(0)
+  fTOFNSigma(0),
+  fTPCNSigma(0),
+  fTPCTOFNSigma(0),
+  fTPCvsTOFNSigma(0)
 {
   // Default constructor
-    fTPCdEdx =  new TH2D("TPCdEdx", "TPC dEdx vs. momentum", 100, 0.0, 5.0, 250, 0.0, 500.0);
-    fTOFTime = new TH2D("TOFTime", "TOF Time vs. momentum", 100, 0.1, 5.0, 400, -4000.0, 4000.0);
-    fTOFNSigma = new TH2D("TOFNSigma","TOF NSigma vs. momentum", 100, 0.0, 5.0, 100, -5.0, 5.0);
-    fTPCNSigma = new TH2D("TPCNSigma","TPC NSigma vs. momentum", 100, 0.0, 5.0, 100, -5.0, 5.0);
-    fTPCTOFNSigma = new TH2D("TPCTOFNSigma","TPC & TOF NSigma vs. momentum", 100, 0.0, 5.0, 100, 0.0, 10.0);
+  fTPCdEdx =  new TH2D("TPCdEdx", "TPC dEdx vs. momentum", 100, 0.0, 5.0, 250, 0.0, 500.0);
+  fTOFTime = new TH2D("TOFTime", "TOF Time vs. momentum", 100, 0.1, 5.0, 400, -4000.0, 4000.0);
+  fTOFNSigma = new TH2D("TOFNSigma","TOF NSigma vs. momentum", 100, 0.0, 5.0, 100, -5.0, 5.0);
+  fTPCNSigma = new TH2D("TPCNSigma","TPC NSigma vs. momentum", 100, 0.0, 5.0, 100, -5.0, 5.0);
+  fTPCTOFNSigma = new TH2D("TPCTOFNSigma","TPC & TOF NSigma vs. momentum", 100, 0.0, 5.0, 100, 0.0, 10.0);
+  fTPCvsTOFNSigma = new TH2D("TPCvsTOFNSigma","TPC vs TOF Nsigma",100, -5.0, 5.0, 100, -5.0, 5.0);
 
 }
 
@@ -33,27 +35,28 @@ AliFemtoCutMonitorParticlePID::AliFemtoCutMonitorParticlePID(const char *aName,
   fTPCdEdx(0),
   fTOFParticle(aTOFParticle),
   fTOFTime(0x0),
-    fTOFNSigma(0),
-    fTPCNSigma(0),
-    fTPCTOFNSigma(0)
+  fTOFNSigma(0),
+  fTPCNSigma(0),
+  fTPCTOFNSigma(0),
+  fTPCvsTOFNSigma(0)
 {
   // Normal constructor
   char name[200];
   snprintf(name, 200, "TPCdEdx%s", aName);
-    // fTPCdEdx = new TH2D(name, "TPC dEdx vs. momentum", 100, 0.0, 6.0, 250, 0.0, 500.0);
-    fTPCdEdx = new TH2D(name, "TPC dEdx vs. momentum", 200, 0.1, 4.0, 250, 0.0, 500.0);
+  // fTPCdEdx = new TH2D(name, "TPC dEdx vs. momentum", 100, 0.0, 6.0, 250, 0.0, 500.0);
+  fTPCdEdx = new TH2D(name, "TPC dEdx vs. momentum", 200, 0.1, 4.0, 250, 0.0, 500.0);
 
   snprintf(name, 200, "TOFTime%s", aName);
-    fTOFTime = new TH2D(name, "TOF Time vs. momentum", 100, 0.1, 5.0, 400, -4000.0, 4000.0);
+  fTOFTime = new TH2D(name, "TOF Time vs. momentum", 100, 0.1, 5.0, 400, -4000.0, 4000.0);
 
-    snprintf(name, 200, "TOFNSigma%s", aName);
-    fTOFNSigma = new TH2D(name,"TOF NSigma vs. momentum", 100, 0.0, 5.0, 100, -5.0, 5.0);
+  snprintf(name, 200, "TOFNSigma%s", aName);
+  fTOFNSigma = new TH2D(name,"TOF NSigma vs. momentum", 100, 0.0, 5.0, 100, -5.0, 5.0);
 
-    snprintf(name, 200, "TPCNSigma%s", aName);
-    fTPCNSigma = new TH2D(name,"TPC NSigma vs. momentum", 100, 0.0, 5.0, 100, -5.0, 5.0);
+  snprintf(name, 200, "TPCNSigma%s", aName);
+  fTPCNSigma = new TH2D(name,"TPC NSigma vs. momentum", 100, 0.0, 5.0, 100, -5.0, 5.0);
 
-    snprintf(name, 200, "TPCTOFNSigma%s", aName);
-    fTPCTOFNSigma = new TH2D(name,"TPC & TOF NSigma vs. momentum", 100, 0.0, 5.0, 100, 0.0, 10.0);
+  snprintf(name, 200, "TPCTOFNSigma%s", aName);
+  fTPCTOFNSigma = new TH2D(name,"TPC & TOF NSigma vs. momentum", 100, 0.0, 5.0, 100, 0.0, 10.0);
 
 }
 
@@ -62,9 +65,10 @@ AliFemtoCutMonitorParticlePID::AliFemtoCutMonitorParticlePID(const AliFemtoCutMo
   fTPCdEdx(0),
   fTOFParticle(0),
   fTOFTime(0x0),
-    fTOFNSigma(0),
-    fTPCNSigma(0),
-    fTPCTOFNSigma(0)
+  fTOFNSigma(0),
+  fTPCNSigma(0),
+  fTPCTOFNSigma(0),
+  fTPCvsTOFNSigma(0)
 
 {
   // copy constructor
@@ -74,14 +78,14 @@ AliFemtoCutMonitorParticlePID::AliFemtoCutMonitorParticlePID(const AliFemtoCutMo
   if (fTOFTime) delete fTOFTime;
   fTOFTime = new TH2D(*aCut.fTOFTime);
 
-    if (fTOFNSigma) delete fTOFNSigma;
-    fTOFNSigma= new TH2D(*aCut.fTOFNSigma);
+  if (fTOFNSigma) delete fTOFNSigma;
+  fTOFNSigma= new TH2D(*aCut.fTOFNSigma);
 
-    if (fTPCNSigma) delete fTPCNSigma;
-    fTPCNSigma= new TH2D(*aCut.fTPCNSigma);
+  if (fTPCNSigma) delete fTPCNSigma;
+  fTPCNSigma= new TH2D(*aCut.fTPCNSigma);
 
-    if (fTPCTOFNSigma) delete fTPCTOFNSigma;
-    fTPCTOFNSigma= new TH2D(*aCut.fTPCTOFNSigma);
+  if (fTPCTOFNSigma) delete fTPCTOFNSigma;
+  fTPCTOFNSigma= new TH2D(*aCut.fTPCTOFNSigma);
 }
 
 AliFemtoCutMonitorParticlePID::~AliFemtoCutMonitorParticlePID()
@@ -89,9 +93,10 @@ AliFemtoCutMonitorParticlePID::~AliFemtoCutMonitorParticlePID()
   // Destructor
   delete fTPCdEdx;
   delete fTOFTime;
-    delete fTOFNSigma;
-    delete fTPCNSigma;
-    delete fTPCTOFNSigma;
+  delete fTOFNSigma;
+  delete fTPCNSigma;
+  delete fTPCTOFNSigma;
+  delete fTPCvsTOFNSigma;
 
 }
 
@@ -107,14 +112,17 @@ AliFemtoCutMonitorParticlePID& AliFemtoCutMonitorParticlePID::operator=(const Al
   if (fTOFTime) delete fTOFTime;
   fTOFTime = new TH2D(*aCut.fTOFTime);
 
-    if(fTOFNSigma) delete fTOFNSigma;
-    fTOFNSigma = new TH2D(*aCut.fTOFNSigma);
+  if(fTOFNSigma) delete fTOFNSigma;
+  fTOFNSigma = new TH2D(*aCut.fTOFNSigma);
 
-    if(fTPCNSigma) delete fTPCNSigma;
-    fTPCNSigma = new TH2D(*aCut.fTPCNSigma);
+  if(fTPCNSigma) delete fTPCNSigma;
+  fTPCNSigma = new TH2D(*aCut.fTPCNSigma);
 
-    if(fTPCTOFNSigma) delete fTPCTOFNSigma;
-    fTPCTOFNSigma = new TH2D(*aCut.fTPCTOFNSigma);
+  if(fTPCTOFNSigma) delete fTPCTOFNSigma;
+  fTPCTOFNSigma = new TH2D(*aCut.fTPCTOFNSigma);
+
+  if(fTPCvsTOFNSigma) delete fTPCvsTOFNSigma;
+  fTPCvsTOFNSigma = new TH2D(*aCut.fTPCvsTOFNSigma);
 
   return *this;
 }
@@ -160,6 +168,11 @@ void AliFemtoCutMonitorParticlePID::Fill(const AliFemtoTrack* aTrack)
     if (fTOFParticle == 1) fTPCTOFNSigma->Fill(tMom, TMath::Hypot( aTrack->NSigmaTPCK(), aTrack->NSigmaTOFK() ) );
     if (fTOFParticle == 2) fTPCTOFNSigma->Fill(tMom, TMath::Hypot( aTrack->NSigmaTPCP(), aTrack->NSigmaTOFP() ) );
 
+    if (fTOFParticle == 0) fTPCvsTOFNSigma->Fill( aTrack->NSigmaTPCPi(), aTrack->NSigmaTOFPi());
+    if (fTOFParticle == 1) fTPCvsTOFNSigma->Fill( aTrack->NSigmaTPCK(), aTrack->NSigmaTOFK());
+    if (fTOFParticle == 2) fTPCvsTOFNSigma->Fill( aTrack->NSigmaTPCP(), aTrack->NSigmaTOFP());
+
+
 }
 
 void AliFemtoCutMonitorParticlePID::Write()
@@ -167,10 +180,10 @@ void AliFemtoCutMonitorParticlePID::Write()
   // Write out the relevant histograms
   fTPCdEdx->Write();
   fTOFTime->Write();
-    fTOFNSigma->Write();
-    fTPCNSigma->Write();
-    fTPCTOFNSigma->Write();
-
+  fTOFNSigma->Write();
+  fTPCNSigma->Write();
+  fTPCTOFNSigma->Write();
+  fTPCvsTOFNSigma->Write();
 }
 
 TList *AliFemtoCutMonitorParticlePID::GetOutputList()
@@ -178,9 +191,10 @@ TList *AliFemtoCutMonitorParticlePID::GetOutputList()
   TList *tOutputList = new TList();
   tOutputList->Add(fTPCdEdx);
   tOutputList->Add(fTOFTime);
-    tOutputList->Add(fTOFNSigma);
-    tOutputList->Add(fTPCNSigma);
-    tOutputList->Add(fTPCTOFNSigma);
+  tOutputList->Add(fTOFNSigma);
+  tOutputList->Add(fTPCNSigma);
+  tOutputList->Add(fTPCTOFNSigma);
+  tOutputList->Add(fTPCvsTOFNSigma);
 
   return tOutputList;
 }
index a8bfd08..8072fc1 100644 (file)
@@ -49,9 +49,11 @@ private:
   TH2D *fTPCdEdx;     // TPC dEdx information
   Int_t fTOFParticle; // Select TOF time hypothesis, 0-pion, 1-kaon, 2-proton
   TH2D *fTOFTime;     // TOF time
-    TH2D *fTOFNSigma;   // TOF NSigma values
-    TH2D *fTPCNSigma;   // TPC NSigma values
-    TH2D *fTPCTOFNSigma;   // TPC & TOF NSigma values
+  TH2D *fTOFNSigma;   // TOF NSigma values vs mom
+  TH2D *fTPCNSigma;   // TPC NSigma values vs mom
+  TH2D *fTPCTOFNSigma;   // TPC^2+ TOF^2 NSigma values vs mom
+  TH2D *fTPCvsTOFNSigma; // TPC vs TOF
+  
 
 };
 
index 11f6e83..864f6ca 100644 (file)
@@ -937,29 +937,41 @@ bool AliFemtoESDTrackCut::IsKaonNSigma(float mom, float nsigmaTPCK, float nsigma
 //old
 bool AliFemtoESDTrackCut::IsKaonNSigma(float mom, float nsigmaTPCK, float nsigmaTOFK)
 {
-
-  if(mom<0.4)
-    {
-      if(nsigmaTOFK<-999.)
-       {
-         if(TMath::Abs(nsigmaTPCK)<2.0) return true;
-       }
-      else if(TMath::Abs(nsigmaTOFK)<3.0 && TMath::Abs(nsigmaTPCK)<3.0) return true;
-    }
-  else if(mom>=0.4 && mom<=0.6)
-    {
-      if(nsigmaTOFK<-999.)
-       {
-         if(TMath::Abs(nsigmaTPCK)<2.0) return true;
-       }
-      else if(TMath::Abs(nsigmaTOFK)<3.0 && TMath::Abs(nsigmaTPCK)<3.0) return true;
+  if (fNsigmaTPCTOF) {
+    if (mom > 0.5) {
+      //        if (TMath::Hypot( nsigmaTOFP, nsigmaTPCP )/TMath::Sqrt(2) < 3.0)
+      if (TMath::Hypot( nsigmaTOFK, nsigmaTPCK ) < fNsigma)
+       return true;
     }
-  else if(nsigmaTOFK<-999.)
-    {
-      return false;
+    else {
+      if (TMath::Abs(nsigmaTPCK) < fNsigma)
+       return true;
     }
-  else if(TMath::Abs(nsigmaTOFK)<3.0 && TMath::Abs(nsigmaTPCK)<3.0) return true;
+  }
+  else {
 
+    if(mom<0.4)
+      {
+       if(nsigmaTOFK<-999.)
+         {
+           if(TMath::Abs(nsigmaTPCK)<2.0) return true;
+         }
+       else if(TMath::Abs(nsigmaTOFK)<3.0 && TMath::Abs(nsigmaTPCK)<3.0) return true;
+      }
+    else if(mom>=0.4 && mom<=0.6)
+      {
+       if(nsigmaTOFK<-999.)
+         {
+           if(TMath::Abs(nsigmaTPCK)<2.0) return true;
+         }
+       else if(TMath::Abs(nsigmaTOFK)<3.0 && TMath::Abs(nsigmaTPCK)<3.0) return true;
+      }
+    else if(nsigmaTOFK<-999.)
+      {
+       return false;
+      }
+    else if(TMath::Abs(nsigmaTOFK)<3.0 && TMath::Abs(nsigmaTPCK)<3.0) return true;
+  }
   return false;
 }
 
@@ -967,24 +979,36 @@ bool AliFemtoESDTrackCut::IsKaonNSigma(float mom, float nsigmaTPCK, float nsigma
 
 bool AliFemtoESDTrackCut::IsPionNSigma(float mom, float nsigmaTPCPi, float nsigmaTOFPi)
 {
-  if(mom<0.65)
-    {
-      if(nsigmaTOFPi<-999.)
-       {
-         if(mom<0.35 && TMath::Abs(nsigmaTPCPi)<3.0) return true;
-         else if(mom<0.5 && mom>=0.35 && TMath::Abs(nsigmaTPCPi)<3.0) return true;
-         else if(mom>=0.5 && TMath::Abs(nsigmaTPCPi)<2.0) return true;
-         else return false;
-       }
-      else if(TMath::Abs(nsigmaTOFPi)<3.0 && TMath::Abs(nsigmaTPCPi)<3.0) return true;
+  if (fNsigmaTPCTOF) {
+    if (mom > 0.5) {
+      //        if (TMath::Hypot( nsigmaTOFP, nsigmaTPCP )/TMath::Sqrt(2) < 3.0)
+      if (TMath::Hypot( nsigmaTOFPi, nsigmaTPCPi ) < fNsigma)
+       return true;
     }
-  else if(nsigmaTOFPi<-999.)
-    {
-      return false;
+    else {
+      if (TMath::Abs(nsigmaTPCPi) < fNsigma)
+       return true;
     }
-  else if(mom<1.5 && TMath::Abs(nsigmaTOFPi)<3.0 && TMath::Abs(nsigmaTPCPi)<5.0) return true;
-  else if(mom>=1.5 && TMath::Abs(nsigmaTOFPi)<2.0 && TMath::Abs(nsigmaTPCPi)<5.0) return true;
-
+  }
+  else {
+    if(mom<0.65)
+      {
+       if(nsigmaTOFPi<-999.)
+         {
+           if(mom<0.35 && TMath::Abs(nsigmaTPCPi)<3.0) return true;
+           else if(mom<0.5 && mom>=0.35 && TMath::Abs(nsigmaTPCPi)<3.0) return true;
+           else if(mom>=0.5 && TMath::Abs(nsigmaTPCPi)<2.0) return true;
+           else return false;
+         }
+       else if(TMath::Abs(nsigmaTOFPi)<3.0 && TMath::Abs(nsigmaTPCPi)<3.0) return true;
+      }
+    else if(nsigmaTOFPi<-999.)
+      {
+       return false;
+      }
+    else if(mom<1.5 && TMath::Abs(nsigmaTOFPi)<3.0 && TMath::Abs(nsigmaTPCPi)<5.0) return true;
+    else if(mom>=1.5 && TMath::Abs(nsigmaTOFPi)<2.0 && TMath::Abs(nsigmaTPCPi)<5.0) return true;
+  }
   return false;
 }
 
@@ -993,7 +1017,7 @@ bool AliFemtoESDTrackCut::IsProtonNSigma(float mom, float nsigmaTPCP, float nsig
 {
 
   if (fNsigmaTPCTOF) {
-    if (mom > 0.8) {
+    if (mom > 0.5) {
 //        if (TMath::Hypot( nsigmaTOFP, nsigmaTPCP )/TMath::Sqrt(2) < 3.0)
         if (TMath::Hypot( nsigmaTOFP, nsigmaTPCP ) < fNsigma)
             return true;