]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Code organization - To come: corrections/container for antiprotons
authorpchrist <pchrist@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 5 Aug 2008 08:49:28 +0000 (08:49 +0000)
committerpchrist <pchrist@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 5 Aug 2008 08:49:28 +0000 (08:49 +0000)
PWG2/AliProtonCorrectionTask.cxx
PWG2/runProtonCorrection.C

index 8a0f664354cb46341e4cdc7efc3f9b98ca37ea14..08f408daec6dd4f9954fd969cb96054d22eb877d 100644 (file)
@@ -65,8 +65,7 @@ AliProtonCorrectionTask::AliProtonCorrectionTask(const Char_t* name) :
   fReadAODData(0),
   fCFManager(0x0),
   fQAHistList(0x0),
-  fHistEventsProcessed(0x0)
-{
+  fHistEventsProcessed(0x0) {
   //
   // Constructor. Initialization of Inputs and Outputs
   //
@@ -82,8 +81,7 @@ AliProtonCorrectionTask::AliProtonCorrectionTask(const Char_t* name) :
 }
 
 //___________________________________________________________________________
-AliProtonCorrectionTask& AliProtonCorrectionTask::operator=(const AliProtonCorrectionTask& c) 
-{
+AliProtonCorrectionTask& AliProtonCorrectionTask::operator=(const AliProtonCorrectionTask& c) {
   //
   // Assignment operator
   //
@@ -105,8 +103,7 @@ AliProtonCorrectionTask::AliProtonCorrectionTask(const AliProtonCorrectionTask&
   fReadAODData(c.fReadAODData),
   fCFManager(c.fCFManager),
   fQAHistList(c.fQAHistList),
-  fHistEventsProcessed(c.fHistEventsProcessed)
-{
+  fHistEventsProcessed(c.fHistEventsProcessed) {
   //
   // Copy Constructor
   //
@@ -124,8 +121,7 @@ AliProtonCorrectionTask::~AliProtonCorrectionTask() {
 }
 
 //_________________________________________________
-void AliProtonCorrectionTask::UserExec(Option_t *)
-{
+void AliProtonCorrectionTask::UserExec(Option_t *) {
   //
   // Main loop function
   //
@@ -165,11 +161,10 @@ void AliProtonCorrectionTask::UserExec(Option_t *)
     if (!fCFManager->CheckParticleCuts(AliCFManager::kPartAccCuts,mcPart)) continue;
     //fill the container for Acceptance-level selection
     fCFManager->GetParticleContainer()->Fill(containerInput,kStepReconstructible);
-  }    
+  }//loop over MC particles
 
-  //Now go to rec level
+  //ESD track loop
   for (Int_t iTrack = 0; iTrack<fEvent->GetNumberOfTracks(); iTrack++) {
-    
     track = fEvent->GetTrack(iTrack);
     
     if (fReadTPCTracks) {
@@ -189,9 +184,7 @@ void AliProtonCorrectionTask::UserExec(Option_t *)
     if (!fCFManager->CheckParticleCuts(AliCFManager::kPartRecCuts,track)) continue;
     
     // is track associated to particle ?
-
     Int_t label = track->GetLabel();
-
     if (label<0) continue;
     AliMCParticle *mcPart  = fMCEvent->GetTrack(label);
     
@@ -199,9 +192,6 @@ void AliProtonCorrectionTask::UserExec(Option_t *)
     if (!fCFManager->CheckParticleCuts(AliCFManager::kPartGenCuts,mcPart)) continue; 
     
     //fill the container
-    Double_t mom[3];
-    track->PxPyPz(mom);
-    Double_t pt=TMath::Sqrt(mom[0]*mom[0]+mom[1]*mom[1]);
     containerInput[0] = Rapidity(track->Px(),
                                  track->Py(),
                                  track->Pz());
@@ -224,8 +214,7 @@ void AliProtonCorrectionTask::UserExec(Option_t *)
 
 
 //___________________________________________________________________________
-void AliProtonCorrectionTask::Terminate(Option_t*)
-{
+void AliProtonCorrectionTask::Terminate(Option_t*) {
   // The Terminate() function is the last function to be called during
   // a query. It always runs on the client, it can be used to present
   // the results graphically or save the results to file.
@@ -247,8 +236,8 @@ void AliProtonCorrectionTask::Terminate(Option_t*)
   TH1D* h12 =   cont->ShowProjection(1,2) ;
   TH1D* h13 =   cont->ShowProjection(1,3) ;
 
-  Double_t max1 = h00->GetMaximum();
-  Double_t max2 = h10->GetMaximum();
+  //Double_t max1 = h00->GetMaximum();
+  //Double_t max2 = h10->GetMaximum();
 
   /*h00->GetYaxis()->SetRangeUser(0,max1*1.2);
   h01->GetYaxis()->SetRangeUser(0,max1*1.2);
index fbeda07fc12eaa38503871bc7164c41b0ac5d0bb..a4d7d43396746fcb7d9ed7731a0f80c2574f28c2 100755 (executable)
@@ -35,18 +35,31 @@ Bool_t runProtonCorrection(Int_t stats = 0, const char* dataset = 0x0) {
   //For the time being: y-pT
   //Next step: add Vz
   //Setting up the container grid...
+  //===============//
+  //Global tracking//
+  //===============//
   const Double_t ymin  = -1.0;
   const Double_t ymax  =  1.0;
+  const Int_t nbin1 = 20; //bins in y
   const Double_t ptmin =  0.4;
   const Double_t ptmax =  3.1;
-  UInt_t iy  = 0;
-  UInt_t ipT = 1;
+  const Int_t nbin2 = 27; //bins in pT 
+  //===============//
+  //  TPC tracking //
+  //===============//
+  /*const Double_t ymin  = -0.5;
+  const Double_t ymax  =  0.5;
+  const Int_t nbin1 = 10; //bins in y
+  const Double_t ptmin =  0.4;
+  const Double_t ptmax =  0.9;
+  const Int_t nbin2 = 15;*/ //bins in pT 
+  
   //Setting up the container grid... 
   UInt_t nstep = 4; //number of selection steps MC 
+  UInt_t iy  = 0;
+  UInt_t ipT = 1;
   const Int_t nvar = 2; //number of variables on the grid:y-pT
-  const Int_t nbin1 = 8; //bins in y
-  const Int_t nbin2 = 8; //bins in pT 
-  //arrays for the number of bins in each dimension
+    //arrays for the number of bins in each dimension
   Int_t iBin[nvar];
   iBin[0]=nbin1;
   iBin[1]=nbin2;
@@ -70,7 +83,19 @@ Bool_t runProtonCorrection(Int_t stats = 0, const char* dataset = 0x0) {
   const Int_t    mintrackrefsITS = 3;
   const Int_t    charge  = 1;
   const Int_t    PDG = 2212; 
+
   const Int_t    minclustersTPC = 50;
+  const Float_t  maxChi2PerTPCCluster = 3.5;
+  const Float_t  maxCov11 = 2.0;
+  const Float_t  maxCov22 = 2.0;
+  const Float_t  maxCov33 = 0.5;
+  const Float_t  maxCov44 = 0.5;
+  const Float_t  maxCov55 = 2.0;
+  const Float_t  maxSigmaToVertexTPC = 2.5;
+
+  const Int_t    minclustersITS = 5;
+  const Float_t  maxSigmaToVertex = 2.5;
+
   // Gen-Level kinematic cuts
   AliCFTrackKineCuts *mcKineCuts = new AliCFTrackKineCuts("mcKineCuts","MC-level kinematic cuts");
   mcKineCuts->SetPtRange(ptmin,ptmax);
@@ -99,11 +124,15 @@ Bool_t runProtonCorrection(Int_t stats = 0, const char* dataset = 0x0) {
 
   AliCFTrackQualityCuts *recQualityCuts = new AliCFTrackQualityCuts("recQualityCuts","rec-level quality cuts");
   recQualityCuts->SetMinNClusterTPC(minclustersTPC);
-  recQualityCuts->SetRequireITSRefit(kTRUE);
+  recQualityCuts->SetMaxChi2PerClusterTPC(maxChi2PerTPCCluster);
+  recQualityCuts->SetMaxCovDiagonalElements(maxCov11,maxCov22,maxCov33,maxCov44,maxCov55);
+  recQualityCuts->SetRequireTPCRefit(kTRUE);
+  
+  //recQualityCuts->SetRequireITSRefit(kTRUE);
   recQualityCuts->SetQAOn(qaList);
 
   AliCFTrackIsPrimaryCuts *recIsPrimaryCuts = new AliCFTrackIsPrimaryCuts("recIsPrimaryCuts","rec-level isPrimary cuts");
-  recIsPrimaryCuts->SetMaxNSigmaToVertex(3);
+  recIsPrimaryCuts->SetMaxNSigmaToVertex(maxSigmaToVertex);
   recIsPrimaryCuts->SetQAOn(qaList);
 
   AliCFTrackCutPid* cutPID = new AliCFTrackCutPid("cutPID","ESD_PID");
@@ -119,14 +148,7 @@ Bool_t runProtonCorrection(Int_t stats = 0, const char* dataset = 0x0) {
   cutPID->SetPriors(prior);
   cutPID->SetProbabilityCut(0.0);
   cutPID->SetDetectors("ITS TPC TOF");
-  switch(TMath::Abs(PDG)) {
-  case 11   : cutPID->SetParticleType(AliPID::kElectron, kTRUE); break;
-  case 13   : cutPID->SetParticleType(AliPID::kMuon    , kTRUE); break;
-  case 211  : cutPID->SetParticleType(AliPID::kPion    , kTRUE); break;
-  case 321  : cutPID->SetParticleType(AliPID::kKaon    , kTRUE); break;
-  case 2212 : cutPID->SetParticleType(AliPID::kProton  , kTRUE); break;
-  default   : printf("UNDEFINED PID\n"); break;
-  }
+  cutPID->SetParticleType(AliPID::kProton  , kTRUE); 
   cutPID->SetQAOn(qaList);
 
   //________________________________________//