]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Multiplicity selection in pp as cut number
authoramarin <amarin@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 16 Nov 2010 17:14:24 +0000 (17:14 +0000)
committeramarin <amarin@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 16 Nov 2010 17:14:24 +0000 (17:14 +0000)
PWG4/GammaConv/AliAnalysisTaskGammaConversion.cxx
PWG4/GammaConv/AliAnalysisTaskGammaConversion.h
PWG4/macros/ConfigGammaConversion.C

index 0b52aed7dfd1c57854ef170d1a45b023bcbb0d5f..d6bcc0abf00ee20f580752a5856ddbb031f8c07e 100644 (file)
@@ -137,7 +137,10 @@ AliAnalysisTaskSE(),
   fKFReconstructedGammasV0Index(),
   fRemovePileUp(kFALSE),
   fSelectV0AND(kFALSE),
-  fTriggerAnalysis(NULL)
+  fTriggerAnalysis(NULL),
+  fMultiplicity(0),
+  fUseMultiplicity(0), 
+  fUseMultiplicityBin(0)
 {
   // Default constructor
 
@@ -228,7 +231,10 @@ AliAnalysisTaskGammaConversion::AliAnalysisTaskGammaConversion(const char* name)
   fKFReconstructedGammasV0Index(),
   fRemovePileUp(kFALSE),
   fSelectV0AND(kFALSE),
-  fTriggerAnalysis(NULL)
+  fTriggerAnalysis(NULL),
+  fMultiplicity(0),
+  fUseMultiplicity(0), 
+  fUseMultiplicityBin(0)
 {
   // Common I/O in slot 0
   DefineInput (0, TChain::Class());
@@ -537,7 +543,6 @@ void AliAnalysisTaskGammaConversion::UserExec(Option_t */*option*/)
     return;
   }
 
   Bool_t v0A       = fTriggerAnalysis->IsOfflineTriggerFired(fV0Reader->GetESDEvent(), AliTriggerAnalysis::kV0A);
   Bool_t v0C       = fTriggerAnalysis->IsOfflineTriggerFired(fV0Reader->GetESDEvent(), AliTriggerAnalysis::kV0C);
   Bool_t v0AND = v0A && v0C;
@@ -547,10 +552,26 @@ void AliAnalysisTaskGammaConversion::UserExec(Option_t */*option*/)
     fHistograms->FillHistogram("ESD_EventQuality",eventQuality);
     return;
   }
+  fMultiplicity = fEsdTrackCuts->CountAcceptedTracks(fV0Reader->GetESDEvent());
+
+  if( CalculateMultiplicityBin() != fUseMultiplicityBin){
+    eventQuality=6;
+    fHistograms->FillHistogram("ESD_EventQuality",eventQuality);
+    return;
+  }
 
   eventQuality=3;
   fHistograms->FillHistogram("ESD_EventQuality",eventQuality);
 
+
+
+  fHistograms->FillHistogram("ESD_NumberOfGoodESDTracks",fMultiplicity);
+  if (fV0Reader->GetNumberOfContributorsVtx()>=1){
+    fHistograms->FillHistogram("ESD_NumberOfGoodESDTracksVtx",fMultiplicity);
+  } 
+
+
+
   // Process the MC information
   if(fDoMCTruth){
     ProcessMCData();
@@ -2935,11 +2956,12 @@ void AliAnalysisTaskGammaConversion::CreateListOfChargedParticles(){
       numberOfESDTracks++;
     }
   }
-  fHistograms->FillHistogram("ESD_NumberOfGoodESDTracks",numberOfESDTracks);
-
-  if (fV0Reader->GetNumberOfContributorsVtx()>=1){
-    fHistograms->FillHistogram("ESD_NumberOfGoodESDTracksVtx",numberOfESDTracks);
-  } 
+// Moved to UserExec using CountAcceptedTracks function. runjet is not needed by default
+//   fHistograms->FillHistogram("ESD_NumberOfGoodESDTracks",numberOfESDTracks);
+//   cout<<"esdtracks::"<< numberOfESDTracks<<endl;
+//   if (fV0Reader->GetNumberOfContributorsVtx()>=1){
+//     fHistograms->FillHistogram("ESD_NumberOfGoodESDTracksVtx",numberOfESDTracks);
+//   } 
 }
 void AliAnalysisTaskGammaConversion::RecalculateV0ForGamma(){
   //recalculates v0 for gamma
@@ -4045,7 +4067,6 @@ TClonesArray AliAnalysisTaskGammaConversion::GetTLorentzVector(TClonesArray *con
        
   //  return tlVtrack;
 }
-
 Int_t AliAnalysisTaskGammaConversion::GetProcessType(const AliMCEvent * mcEvt) {
 
   // Determine if the event was generated with pythia or phojet and return the process type
@@ -4101,3 +4122,21 @@ Int_t AliAnalysisTaskGammaConversion::GetProcessType(const AliMCEvent * mcEvt) {
   AliError(Form("Unknown header: %s", htmp->IsA()->GetName()));
   return kProcUnknown;
 }
+
+
+Int_t AliAnalysisTaskGammaConversion::CalculateMultiplicityBin(){
+  // Get Centrality bin
+
+  Int_t multiplicity = 0;
+
+  if ( fUseMultiplicity == 1 ) {
+
+    if (fMultiplicity>= 0 && fMultiplicity<= 5) multiplicity=1;
+    if (fMultiplicity>= 6 && fMultiplicity<= 9) multiplicity=2;
+    if (fMultiplicity>=10 && fMultiplicity<=14) multiplicity=3;
+    if (fMultiplicity>=15 && fMultiplicity<=22) multiplicity=4;
+    if (fMultiplicity>=23 )                     multiplicity=5;
+
+  }
+  return multiplicity;
+}
index b1db962e9b7cd2714b88a8159c01663171d95210..91039dd8d4f8c1324da6fcdc5a3312f4dbf626a5 100644 (file)
@@ -157,7 +157,9 @@ class AliAnalysisTaskGammaConversion : public AliAnalysisTaskSE
   void SetRemovePileUp(Bool_t removePileUp) { fRemovePileUp = removePileUp; }
 
   void SetSelectV0AND(Bool_t selectV0AND) { fSelectV0AND = selectV0AND; }
-
+  void SetUseMultiplicity(Int_t useMultiplicity) {fUseMultiplicity=useMultiplicity;}
+  void SetUseMultiplicityBin(Int_t useMultiplicityBin) {fUseMultiplicityBin=useMultiplicityBin;}
+  Int_t CalculateMultiplicityBin();
  private:
   AliAnalysisTaskGammaConversion(const AliAnalysisTaskGammaConversion&); // Not implemented
   AliAnalysisTaskGammaConversion& operator=(const AliAnalysisTaskGammaConversion&); // Not implemented
@@ -295,7 +297,10 @@ class AliAnalysisTaskGammaConversion : public AliAnalysisTaskSE
   Bool_t fRemovePileUp;                 // Remove Pile Up
   Bool_t fSelectV0AND;                 // Select V0AND
   AliTriggerAnalysis *fTriggerAnalysis; //! Trigger Analysis for Normalisation
-  ClassDef(AliAnalysisTaskGammaConversion, 14); // Analysis task for gamma conversions
+  Int_t fMultiplicity;
+  Int_t fUseMultiplicity;
+  Int_t fUseMultiplicityBin;
+  ClassDef(AliAnalysisTaskGammaConversion, 15); // Analysis task for gamma conversions
 };
 
 #endif //ALIANALYSISTASKGAMMA_H
index 63dda6c5d3bc12be07ffa927d10388995dd16b9e..96271a911e5d03be5e232faf9de74356942fd316 100644 (file)
@@ -15,7 +15,7 @@
  * about the suitability of this software for any purpose. It is          *
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
-const int c_array_size = 22;
+const int c_array_size = 23;
 
 class AliAnalysisDataContainer;
 class AliGammaConversionHistograms;
@@ -48,7 +48,7 @@ Bool_t kGCdoBGProbability=kFALSE;
 //Svein 
 Bool_t kGCRunGammaJetTask = kFALSE;
 /** ---------------------------------- define cuts here ------------------------------------*/
-TString kGCAnalysisCutSelectionId="9003562040100332102200"; // do not change here, use -set-cut-selection in argument instead
+TString kGCAnalysisCutSelectionId="90035620401003321022000"; // do not change here, use -set-cut-selection in argument instead
 
 Int_t kGCNEventsForBGCalculation=20;
 
@@ -104,6 +104,9 @@ Double_t kGCminOpeningAngleGhostCut = 0.005;
 Bool_t kGCRemovePileUp = kFALSE;
 
 Bool_t kGCSelectV0AND = kFALSE;
+Bool_t kGCUseMultiplicity = kFALSE;
+Int_t  kGCUseMultiplicityBin=0;
+
 /** ---------------------------------- define pi0 dalitz cuts here ------------------------------------*/
 
 Bool_t kGCRunStandalone    = kTRUE;
@@ -536,9 +539,9 @@ Double_t kGClastXBinESDtrk = 9999.5;
 
 
 //EventQuality-plot
-Int_t kGCnXBinsEvtQ= 7;
+Int_t kGCnXBinsEvtQ= 8;
 Double_t kGCfirstXBinEvtQ=-1.5;
-Double_t kGClastXBinEvtQ=5.5;
+Double_t kGClastXBinEvtQ=6.5;
 
 //R-plots
 Int_t kGCnXBinsR = 400;
@@ -1544,6 +1547,8 @@ AliAnalysisTaskGammaConversion* ConfigGammaConversion(TString arguments, AliAnal
 
   gammaconversion->SetRemovePileUp(kGCRemovePileUp);
   gammaconversion->SetSelectV0AND(kGCSelectV0AND);
+  gammaconversion->SetUseMultiplicity(kGCUseMultiplicity);
+  gammaconversion->SetUseMultiplicityBin(kGCUseMultiplicityBin);
 
   // for CF
   gammaconversion->SetCFManager(man);
@@ -2455,9 +2460,11 @@ Int_t SetAnalysisCutSelection(TString analysisCutSelection){
   Int_t NumberOfRotations=array[19];
   Int_t removePileUp=array[20];
   Int_t selectV0AND=array[21];
+  Int_t multiplicityBin=array[22];
 
-  cout<<"Select V0AND"<< selectV0AND<<endl;
-  cout<<"Remove PileUp"<< removePileUp<<endl;
+  cout<<"Multiplicity Bin::"<< multiplicityBin<<endl;
+  cout<<"Select V0AND::"<< selectV0AND<<endl;
+  cout<<"Remove PileUp::"<< removePileUp<<endl;
   cout<<"NumberOfRotations::"<<NumberOfRotations<<endl;
   cout<<"DegreesForRotationMethod::"<<DegreesForRotationMethod<<endl;
   cout<<"BackgroundScheme::"<<BackgroundScheme<<endl;
@@ -2932,6 +2939,34 @@ Int_t SetAnalysisCutSelection(TString analysisCutSelection){
     return iResult;
   }
 
+  switch(multiplicityBin){
+  case 0:
+    kGCUseMultiplicity=kFALSE;
+    kGCUseMultiplicityBin=0;
+    break;
+  case 1:
+    kGCUseMultiplicity=kTRUE;
+    kGCUseMultiplicityBin=1;
+     break;
+  case 2:
+    kGCUseMultiplicity=kTRUE;
+    kGCUseMultiplicityBin=2;
+     break;
+  case 3:
+    kGCUseMultiplicity=kTRUE;
+    kGCUseMultiplicityBin=3;
+     break;
+  case 4:
+    kGCUseMultiplicity=kTRUE;
+    kGCUseMultiplicityBin=4;
+     break;
+  case 5:
+    kGCUseMultiplicity=kTRUE;
+    kGCUseMultiplicityBin=5;
+     break;
+  default:
+    return iResult;
+  }
   iResult=1;
   return iResult;
 
@@ -2965,6 +3000,7 @@ void string2array(const std::string& number, int a[c_array_size])
         ASSIGNARRAY(19);
         ASSIGNARRAY(20);
         ASSIGNARRAY(21);
+        ASSIGNARRAY(22);
   }
 }