Fixing bug in lumi part
authorMichal Broz <Michal.Broz@cern.ch>
Mon, 16 Dec 2013 14:33:14 +0000 (15:33 +0100)
committerMichal Broz <Michal.Broz@cern.ch>
Mon, 16 Dec 2013 14:33:14 +0000 (15:33 +0100)
PWGUD/UPC/AliAnalysisTaskUpcPsi2s.cxx
PWGUD/UPC/AliAnalysisTaskUpcPsi2s.h

index c35e3eb..f32674b 100644 (file)
@@ -64,7 +64,8 @@ using std::endl;
 AliAnalysisTaskUpcPsi2s::AliAnalysisTaskUpcPsi2s() 
   : AliAnalysisTaskSE(),fType(0),fRunTree(kTRUE),fRunHist(kTRUE),fJPsiTree(0),fPsi2sTree(0),
     fRunNum(0),fPerNum(0),fOrbNum(0),fL0inputs(0),fL1inputs(0),
-    fVtxContrib(0),fVtxPosX(0),fVtxPosY(0),fVtxPosZ(0),fVtxErrX(0),fVtxErrY(0),fVtxErrZ(0),fVtxChi2(0),fVtxNDF(0),fVtxType(0),
+    fTOFtrig1(0), fTOFtrig2(0),
+    fVtxContrib(0),fVtxPosX(0),fVtxPosY(0),fVtxPosZ(0),fVtxErrX(0),fVtxErrY(0),fVtxErrZ(0),fVtxChi2(0),fVtxNDF(0),
     fBCrossNum(0),fNtracklets(0),
     fZDCAenergy(0),fZDCCenergy(0),fV0Adecision(0),fV0Cdecision(0),
     fDataFilnam(0),fRecoPass(0),fEvtNum(0),
@@ -85,7 +86,8 @@ AliAnalysisTaskUpcPsi2s::AliAnalysisTaskUpcPsi2s()
 AliAnalysisTaskUpcPsi2s::AliAnalysisTaskUpcPsi2s(const char *name) 
   : AliAnalysisTaskSE(name),fType(0),fRunTree(kTRUE),fRunHist(kTRUE),fJPsiTree(0),fPsi2sTree(0),
     fRunNum(0),fPerNum(0),fOrbNum(0),fL0inputs(0),fL1inputs(0),
-    fVtxContrib(0),fVtxPosX(0),fVtxPosY(0),fVtxPosZ(0),fVtxErrX(0),fVtxErrY(0),fVtxErrZ(0),fVtxChi2(0),fVtxNDF(0),fVtxType(0),
+    fTOFtrig1(0), fTOFtrig2(0),
+    fVtxContrib(0),fVtxPosX(0),fVtxPosY(0),fVtxPosZ(0),fVtxErrX(0),fVtxErrY(0),fVtxErrZ(0),fVtxChi2(0),fVtxNDF(0),
     fBCrossNum(0),fNtracklets(0),
     fZDCAenergy(0),fZDCCenergy(0),fV0Adecision(0),fV0Cdecision(0),
     fDataFilnam(0),fRecoPass(0),fEvtNum(0),
@@ -168,6 +170,9 @@ void AliAnalysisTaskUpcPsi2s::UserCreateOutputObjects()
   fJPsiTree ->Branch("fNtracklets", &fNtracklets, "fNtracklets/s");
   fJPsiTree ->Branch("fVtxContrib", &fVtxContrib, "fVtxContrib/I");
   
+  fJPsiTree ->Branch("fTOFtrig1", &fTOFtrig1, "fTOFtrig1/O");
+  fJPsiTree ->Branch("fTOFtrig2", &fTOFtrig2, "fTOFtrig2/O");
+  
   fJPsiTree ->Branch("fVtxPosX", &fVtxPosX, "fVtxPosX/D");
   fJPsiTree ->Branch("fVtxPosY", &fVtxPosY, "fVtxPosY/D");
   fJPsiTree ->Branch("fVtxPosZ", &fVtxPosZ, "fVtxPosZ/D");
@@ -176,7 +181,6 @@ void AliAnalysisTaskUpcPsi2s::UserCreateOutputObjects()
   fJPsiTree ->Branch("fVtxErrZ", &fVtxErrZ, "fVtxErrZ/D");
   fJPsiTree ->Branch("fVtxChi2", &fVtxChi2, "fVtxChi2/D");
   fJPsiTree ->Branch("fVtxNDF", &fVtxNDF, "fVtxNDF/D");
-  fJPsiTree ->Branch("fVtxType", &fVtxType, "fVtxType/B");
   
   fJPsiTree ->Branch("fZDCAenergy", &fZDCAenergy, "fZDCAenergy/D");
   fJPsiTree ->Branch("fZDCCenergy", &fZDCCenergy, "fZDCCenergy/D");
@@ -205,6 +209,9 @@ void AliAnalysisTaskUpcPsi2s::UserCreateOutputObjects()
   fPsi2sTree ->Branch("fNtracklets", &fNtracklets, "fNtracklets/s");
   fPsi2sTree ->Branch("fVtxContrib", &fVtxContrib, "fVtxContrib/I");
   
+  fPsi2sTree ->Branch("fTOFtrig1", &fTOFtrig1, "fTOFtrig1/O");
+  fPsi2sTree ->Branch("fTOFtrig2", &fTOFtrig2, "fTOFtrig2/O");
+  
   fPsi2sTree ->Branch("fVtxPosX", &fVtxPosX, "fVtxPosX/D");
   fPsi2sTree ->Branch("fVtxPosY", &fVtxPosY, "fVtxPosY/D");
   fPsi2sTree ->Branch("fVtxPosZ", &fVtxPosZ, "fVtxPosZ/D");
@@ -213,7 +220,6 @@ void AliAnalysisTaskUpcPsi2s::UserCreateOutputObjects()
   fPsi2sTree ->Branch("fVtxErrZ", &fVtxErrZ, "fVtxErrZ/D");
   fPsi2sTree ->Branch("fVtxChi2", &fVtxChi2, "fVtxChi2/D");
   fPsi2sTree ->Branch("fVtxNDF", &fVtxNDF, "fVtxNDF/D");
-  fPsi2sTree ->Branch("fVtxType", &fVtxType, "fVtxType/B");
   
   fPsi2sTree ->Branch("fZDCAenergy", &fZDCAenergy, "fZDCAenergy/D");
   fPsi2sTree ->Branch("fZDCCenergy", &fZDCCenergy, "fZDCCenergy/D");
@@ -339,7 +345,8 @@ void AliAnalysisTaskUpcPsi2s::RunAODtrig()
   AliCentrality *centrality = aod->GetCentrality();
   UInt_t selectionMask = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
   
-  Double_t percentile = centrality->GetCentralityPercentile("V0M");
+  Double_t percentile = centrality->GetCentralityPercentileUnchecked("V0M");
+  //Double_t percentile = centrality->GetCentralityPercentile("V0M");
   
   if(((selectionMask & AliVEvent::kMB) == AliVEvent::kMB) && percentile<80 && percentile>0) fHistMBTriggersPerRun->Fill(fRunNum);
   
@@ -573,6 +580,9 @@ void AliAnalysisTaskUpcPsi2s::RunAODtree()
   //trigger inputs
   fL0inputs = aod->GetHeader()->GetL0TriggerInputs();
   fL1inputs = aod->GetHeader()->GetL1TriggerInputs();
+  
+  //TOF trigger info (0OMU)
+  
 
   //Event identification
   fPerNum = aod ->GetPeriodNumber();
@@ -592,7 +602,6 @@ void AliAnalysisTaskUpcPsi2s::RunAODtree()
   fVtxErrZ = CovMatx[2];
   fVtxChi2 = fAODVertex->GetChi2();
   fVtxNDF = fAODVertex->GetNDF();
-  fVtxType = fAODVertex->GetType();
 
   //Tracklets
   fNtracklets = aod->GetTracklets()->GetNumberOfTracklets();
@@ -642,7 +651,6 @@ void AliAnalysisTaskUpcPsi2s::RunAODtree()
                
                }
   fJPsiTree ->Fill();
-  PostData(1, fJPsiTree);
   }
 
   nGoodTracks = 0;
@@ -678,8 +686,10 @@ void AliAnalysisTaskUpcPsi2s::RunAODtree()
                
                }
   fPsi2sTree ->Fill();
-  PostData(2, fPsi2sTree);
   }
+  
+  PostData(1, fJPsiTree);
+  PostData(2, fPsi2sTree);
 
 }//RunAOD
 
@@ -702,6 +712,20 @@ void AliAnalysisTaskUpcPsi2s::RunESDtrig()
   
   if(esd->GetHeader()->IsTriggerInputFired("1ZED")) fHistZedTriggersPerRun->Fill(fRunNum); //1ZED trigger inputs
   
+   //MB, Central and SemiCentral triggers
+  AliCentrality *centrality = esd->GetCentrality();
+  UInt_t selectionMask = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
+  
+  //Double_t percentile = centrality->GetCentralityPercentile("V0M");
+  Double_t percentile = centrality->GetCentralityPercentileUnchecked("V0M");
+  
+  if(((selectionMask & AliVEvent::kMB) == AliVEvent::kMB) && percentile<80 && percentile>0) fHistMBTriggersPerRun->Fill(fRunNum);
+  
+  if(((selectionMask & AliVEvent::kCentral) == AliVEvent::kCentral) && percentile<6 && percentile>0) fHistCentralTriggersPerRun->Fill(fRunNum);
+
+  if(((selectionMask & AliVEvent::kSemiCentral) == AliVEvent::kSemiCentral) && percentile<50 && percentile>15) fHistSemiCentralTriggersPerRun->Fill(fRunNum);
+
+  
 PostData(3, fListTrig);
 
 }
@@ -753,7 +777,7 @@ void AliAnalysisTaskUpcPsi2s::RunESDhist()
   
   fZDCAenergy = fZDCdata->GetZN2TowerEnergy()[0];
   fZDCCenergy = fZDCdata->GetZN1TowerEnergy()[0];
-  if( fZDCAenergy > 12000 || fZDCCenergy > 12000) return;
+  if( fZDCAenergy > 8200 || fZDCCenergy > 8200) return;
   
   fHistNeventsJPsi->Fill(4);
   fHistNeventsPsi2s->Fill(4);
@@ -768,24 +792,27 @@ void AliAnalysisTaskUpcPsi2s::RunESDhist()
   Double_t jRecTPCsignal[5];
   Int_t mass[3]={-1,-1,-1};
 
-  //Track loop
+ //Two Track loop
   for(Int_t itr=0; itr<esd ->GetNumberOfTracks(); itr++) {
     AliESDtrack *trk = esd->GetTrack(itr);
     if( !trk ) continue;
 
       if(!(trk->GetStatus() & AliESDtrack::kTPCrefit) ) continue;
       if(!(trk->GetStatus() & AliESDtrack::kITSrefit) ) continue;
-      if(trk->GetTPCNcls() < 50)continue;
+      if(trk->GetTPCNcls() < 70)continue;
       if(trk->GetTPCchi2()/trk->GetTPCNcls() > 4)continue;
+      if((!trk->HasPointOnITSLayer(0))&&(!trk->HasPointOnITSLayer(1))) continue;
       Float_t dca[2] = {0.0,0.0}; AliExternalTrackParam cParam;
       if(!trk->RelateToVertex(fESDVertex, esd->GetMagneticField(),300.,&cParam)) continue;
       trk->GetImpactParameters(dca[0],dca[1]);
       if(TMath::Abs(dca[1]) > 2) continue;
+      if(TMath::Abs(dca[1]) > 0.2) continue;
       
       TrackIndex[nGoodTracks] = itr;
       nGoodTracks++;
-      if(nGoodTracks > 4) break;   
+      if(nGoodTracks > 2) break;   
   }//Track loop
+
   
   if(nGoodTracks == 2){
          fHistNeventsJPsi->Fill(5);
@@ -829,9 +856,28 @@ void AliAnalysisTaskUpcPsi2s::RunESDhist()
                        }
                }
   }
-  nLepton=0; nPion=0; nHighPt=0;
+  nGoodTracks = 0; nLepton=0; nPion=0; nHighPt=0;
   mass[0]= -1; mass[1]= -1, mass[2]= -1;
   
+    //Four Track loop
+  for(Int_t itr=0; itr<esd ->GetNumberOfTracks(); itr++) {
+    AliESDtrack *trk = esd->GetTrack(itr);
+    if( !trk ) continue;
+
+      if(!(trk->GetStatus() & AliESDtrack::kTPCrefit) ) continue;
+      if(!(trk->GetStatus() & AliESDtrack::kITSrefit) ) continue;
+      if(trk->GetTPCNcls() < 50)continue;
+      if(trk->GetTPCchi2()/trk->GetTPCNcls() > 4)continue;
+      Float_t dca[2] = {0.0,0.0}; AliExternalTrackParam cParam;
+      if(!trk->RelateToVertex(fESDVertex, esd->GetMagneticField(),300.,&cParam)) continue;
+      trk->GetImpactParameters(dca[0],dca[1]);
+      if(TMath::Abs(dca[1]) > 2) continue;
+      
+      TrackIndex[nGoodTracks] = itr;
+      nGoodTracks++;
+      if(nGoodTracks > 4) break;   
+  }//Track loop
+  
   if(nGoodTracks == 4){
          fHistNeventsPsi2s->Fill(5);
          for(Int_t i=0; i<4; i++){
@@ -905,6 +951,10 @@ void AliAnalysisTaskUpcPsi2s::RunESDtree()
   //trigger inputs
   fL0inputs = esd->GetHeader()->GetL0TriggerInputs();
   fL1inputs = esd->GetHeader()->GetL1TriggerInputs();
+  
+  //TOF trigger info (0OMU)
+  fTOFtrig1 = esd->GetHeader()->IsTriggerInputFired("0OMU");
+  fTOFtrig2 = esd->GetHeader()->GetActiveTriggerInputs().Contains("0OMU") ? ((esd->GetHeader()) ? esd->GetHeader()->IsTriggerInputFired("0OMU") : kFALSE) : TESTBIT(esd->GetHeader()->GetL0TriggerInputs(), (kFALSE) ? 21 : 9);
 
   //Event identification
   fPerNum = esd->GetPeriodNumber();
@@ -914,6 +964,16 @@ void AliAnalysisTaskUpcPsi2s::RunESDtree()
   //primary vertex
   AliESDVertex *fESDVertex = (AliESDVertex*) esd->GetPrimaryVertex();
   fVtxContrib = fESDVertex->GetNContributors();
+  fVtxPosX = fESDVertex->GetX();
+  fVtxPosY = fESDVertex->GetY();
+  fVtxPosZ = fESDVertex->GetZ();
+  Double_t CovMatx[6];
+  fESDVertex->GetCovarianceMatrix(CovMatx); 
+  fVtxErrX = CovMatx[0];
+  fVtxErrY = CovMatx[1];
+  fVtxErrZ = CovMatx[2];
+  fVtxChi2 = fESDVertex->GetChi2();
+  fVtxNDF = fESDVertex->GetNDF();
 
   //Tracklets
   fNtracklets = esd->GetMultiplicity()->GetNumberOfTracklets();
@@ -930,23 +990,25 @@ void AliAnalysisTaskUpcPsi2s::RunESDtree()
   Int_t nGoodTracks=0;
   Int_t TrackIndex[5] = {-1,-1,-1,-1,-1};
   
-  //Track loop
+  //Two Track loop
   for(Int_t itr=0; itr<esd ->GetNumberOfTracks(); itr++) {
     AliESDtrack *trk = esd->GetTrack(itr);
     if( !trk ) continue;
 
       if(!(trk->GetStatus() & AliESDtrack::kTPCrefit) ) continue;
       if(!(trk->GetStatus() & AliESDtrack::kITSrefit) ) continue;
-      if(trk->GetTPCNcls() < 50)continue;
+      if(trk->GetTPCNcls() < 70)continue;
       if(trk->GetTPCchi2()/trk->GetTPCNcls() > 4)continue;
+      if((!trk->HasPointOnITSLayer(0))&&(!trk->HasPointOnITSLayer(1))) continue;
       Float_t dca[2] = {0.0,0.0}; AliExternalTrackParam cParam;
       if(!trk->RelateToVertex(fESDVertex, esd->GetMagneticField(),300.,&cParam)) continue;
       trk->GetImpactParameters(dca[0],dca[1]);
       if(TMath::Abs(dca[1]) > 2) continue;
+      if(TMath::Abs(dca[1]) > 0.2) continue;
       
       TrackIndex[nGoodTracks] = itr;
       nGoodTracks++;
-      if(nGoodTracks > 4) break;   
+      if(nGoodTracks > 2) break;   
   }//Track loop
 
   if(nGoodTracks == 2){
@@ -960,9 +1022,28 @@ void AliAnalysisTaskUpcPsi2s::RunESDtree()
                
                }
   fJPsiTree ->Fill();
-  PostData(1, fJPsiTree);
   }
   
+  nGoodTracks = 0;
+  //Four track loop
+  for(Int_t itr=0; itr<esd ->GetNumberOfTracks(); itr++) {
+    AliESDtrack *trk = esd->GetTrack(itr);
+    if( !trk ) continue;
+
+      if(!(trk->GetStatus() & AliESDtrack::kTPCrefit) ) continue;
+      if(!(trk->GetStatus() & AliESDtrack::kITSrefit) ) continue;
+      if(trk->GetTPCNcls() < 50)continue;
+      if(trk->GetTPCchi2()/trk->GetTPCNcls() > 4)continue;
+      Float_t dca[2] = {0.0,0.0}; AliExternalTrackParam cParam;
+      if(!trk->RelateToVertex(fESDVertex, esd->GetMagneticField(),300.,&cParam)) continue;
+      trk->GetImpactParameters(dca[0],dca[1]);
+      if(TMath::Abs(dca[1]) > 2) continue;
+      
+      TrackIndex[nGoodTracks] = itr;
+      nGoodTracks++;
+      if(nGoodTracks > 4) break;   
+  }//Track loop
+  
   if(nGoodTracks == 4){
          for(Int_t i=0; i<4; i++){
                AliESDtrack *trk = esd->GetTrack(TrackIndex[i]);
@@ -974,8 +1055,10 @@ void AliAnalysisTaskUpcPsi2s::RunESDtree()
                
                }
   fPsi2sTree ->Fill();
-  PostData(2, fPsi2sTree);
   }
+  
+  PostData(1, fJPsiTree);
+  PostData(2, fPsi2sTree);
 
 }//RunESD
 
index 51dd40d..ae87cf4 100644 (file)
@@ -47,11 +47,11 @@ class AliAnalysisTaskUpcPsi2s : public AliAnalysisTaskSE {
   //trigger
   Bool_t fTrigger[ntrg];
   UInt_t fL0inputs, fL1inputs;
+  Bool_t fTOFtrig1, fTOFtrig2;
   Int_t fVtxContrib;
   Double_t fVtxPosX,fVtxPosY,fVtxPosZ;
   Double_t fVtxErrX,fVtxErrY,fVtxErrZ;
   Double_t fVtxChi2,fVtxNDF;
-  Char_t fVtxType;
   UShort_t fBCrossNum, fNtracklets;
   //vzero, zdc
   Double_t fZDCAenergy, fZDCCenergy;