]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
add SPD to plots
authorjthaeder <jthaeder@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sat, 6 Nov 2010 12:31:35 +0000 (12:31 +0000)
committerjthaeder <jthaeder@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sat, 6 Nov 2010 12:31:35 +0000 (12:31 +0000)
HLT/global/physics/AliHLTMultiplicityCorrelations.cxx
HLT/global/physics/AliHLTMultiplicityCorrelations.h
HLT/global/physics/AliHLTMultiplicityCorrelationsComponent.cxx
HLT/libAliHLTGlobal.pkg

index 9775ef4970e97554938bf7e574361336c86e62c7..f2543a21182f52a7020faa9ffc902f5fed09fec7 100644 (file)
@@ -57,6 +57,7 @@ AliHLTMultiplicityCorrelations::AliHLTMultiplicityCorrelations() :
   fTpcTracks(0), fTpcTracksA(0),
   fVzeroMult(0.), fVzeroMultA(0.), fVzeroMultC(0.),
   fVzeroMultFlagged(0.), fVzeroMultFlaggedA(0.), fVzeroMultFlaggedC(0.),
+  fSpdNClusters(0),
   fVzeroBinning(350), fVzeroBinningMin(0.), fVzeroBinningMax(35000.),
   fTpcBinning(200),fTpcBinningMin(0.),fTpcBinningMax(8000.),
   fZdcBinning(280),fZdcBinningMin(0.),fZdcBinningMax(140.),
@@ -64,7 +65,8 @@ AliHLTMultiplicityCorrelations::AliHLTMultiplicityCorrelations() :
   fZnpBinning(200),fZnpBinningMin(0.),fZnpBinningMax(100.),
   fProcessPhos(true), fProcessEmcal(true),
   fPhosTotalEt(0.0), fEmcalTotalEt(0.0),
-  fCaloBinning(100),fCaloBinningMin(0.),fCaloBinningMax(100.){
+  fCaloBinning(100),fCaloBinningMin(0.),fCaloBinningMax(100.),
+  fSpdBinning(200),fSpdBinningMin(0.),fSpdBinningMax(15000.) {
   // see header file for class documentation
   // or
   // refer to README to build package
@@ -111,7 +113,7 @@ Int_t AliHLTMultiplicityCorrelations::Initialize() {
  */
 
 //##################################################################################
-Int_t AliHLTMultiplicityCorrelations::ProcessEvent( AliESDEvent *esd ) {
+Int_t AliHLTMultiplicityCorrelations::ProcessEvent( AliESDEvent *esd, Int_t nSpdClusters) {
   // see header file for class documentation  
 
   Int_t iResult = 0;
@@ -124,6 +126,9 @@ Int_t AliHLTMultiplicityCorrelations::ProcessEvent( AliESDEvent *esd ) {
   // -- TPC .. To be done before the others
   if (fESDEvent->GetNumberOfTracks() > 0)
     iResult = ProcessTPC();
+
+  fSpdNClusters = nSpdClusters;
+  iResult = ProcessSPD();
   
   // -- CALO, process with or without clusters, we want the zero-bin
   iResult = ProcessCALO();
@@ -136,6 +141,8 @@ Int_t AliHLTMultiplicityCorrelations::ProcessEvent( AliESDEvent *esd ) {
   if (fESDZDC)
     iResult = ProcessZDC();
 
+  
+
 
   return iResult;
 }
@@ -195,6 +202,7 @@ Int_t AliHLTMultiplicityCorrelations::SetupHistograms() {
   iResult = SetupZDC();
   iResult = SetupTPC();
   iResult = SetupCALO();
+  iResult = SetupSPD();
   iResult = SetupCorrelations();
 
   return iResult;
@@ -578,36 +586,84 @@ Int_t AliHLTMultiplicityCorrelations::SetupCorrelations() {
   fHistList->Add(new TH2F("fCorrVzeroFlaggedvsTotEt", 
                          "Multiplicity_{flagged}^{VZERO} vs Total E_{T} in Calorimeters;Multiplicity_{flagged}^{VZERO};E_{T} (GeV)", 
                          fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax, fCaloBinning,fCaloBinningMin,fCaloBinningMax));
-                         
+  
+  // ----------------------------------------------------
+  //   SPD vs TPC
+  // ----------------------------------------------------
+
+  fHistList->Add(new TH2F("fCorrSpdTpcNch", "N_{clusters}^{SPD} vs N_{ch}^{TPC};N_{clusters}^{SPD};N_{ch}^{TPC}",   
+                         fSpdBinning,fSpdBinningMin,fSpdBinningMax, fTpcBinning,fTpcBinningMin,fTpcBinningMax));  
+
+  // ----------------------------------------------------
+  //   SPD vs VZERO
+  // ----------------------------------------------------
+
+  fHistList->Add(new TH2F("fCorrVzeroSpd", 
+                         "Multiplicity^{VZERO} vs N_{ch}^{SPD};Multiplicity^{VZERO};N^{SPD}", 
+                         fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax, fSpdBinning,fSpdBinningMin,fSpdBinningMax));
+  fHistList->Add(new TH2F("fCorrVzeroASpd", 
+                         "Multiplicity^{VZERO} vs N_{ch}^{SPD} A;Multiplicity^{VZERO};N^{SPD}", 
+                         fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax, fSpdBinning,fSpdBinningMin,fSpdBinningMax));
+  fHistList->Add(new TH2F("fCorrVzeroCSpd", 
+                         "Multiplicity^{VZERO} vs N_{ch}^{SPD} C;Multiplicity^{VZERO};N^{SPD}", 
+                         fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax, fSpdBinning,fSpdBinningMin,fSpdBinningMax));
+
+  fHistList->Add(new TH2F("fCorrVzeroFSpd", 
+                         "Multiplicity^{VZERO} vs N_{ch}^{SPD};Multiplicity_{flagged}^{VZERO};N^{SPD}", 
+                         fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax, fSpdBinning,fSpdBinningMin,fSpdBinningMax));
+  fHistList->Add(new TH2F("fCorrVzeroFASpd", 
+                         "Multiplicity^{VZERO} vs N_{ch}^{SPD} A;Multiplicity_{flagged}^{VZERO};N^{SPD}", 
+                         fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax, fSpdBinning,fSpdBinningMin,fSpdBinningMax));
+  fHistList->Add(new TH2F("fCorrVzeroFCSpd", 
+                         "Multiplicity^{VZERO} vs N_{ch}^{SPD} C;Multiplicity_{flagged}^{VZERO};N^{SPD}", 
+                         fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax, fSpdBinning,fSpdBinningMin,fSpdBinningMax));
+
   // ----------------------------------------------------
-  //  
+  //   SPD vs ZDC
   // ----------------------------------------------------
 
+  // E_{ZDC} vs Multiplicty SPD
+  fHistList->Add(new TH2F("fCorrEzdcSpd", "E_{ZDC} vs N_{ch}^{SPD};E_{ZDC} (TeV);N^{SPD}",   
+                         fZdcBinning,fZdcBinningMin,fZdcBinningMax, fSpdBinning,fSpdBinningMin,fSpdBinningMax));
+  fHistList->Add(new TH2F("fCorrEzdcASpd","E_{ZDC} vs N_{ch}^{SPD} A;E_{ZDC} (TeV);N^{SPD}", 
+                         fZdcBinning,fZdcBinningMin,fZdcBinningMax, fSpdBinning,fSpdBinningMin,fSpdBinningMax));
+  fHistList->Add(new TH2F("fCorrEzdcCSpd","E_{ZDC} vs N_{ch}^{SPD} C;E_{ZDC} (TeV);N^{SPD}", 
+                         fZdcBinning,fZdcBinningMin,fZdcBinningMax, fSpdBinning,fSpdBinningMin,fSpdBinningMax));
+  
+
   return 0;
 }
 
 //##################################################################################
-Int_t AliHLTMultiplicityCorrelations::SetupCALO()
-{
-  // Calo histos
-  if(fProcessPhos)
-  {
+Int_t AliHLTMultiplicityCorrelations::SetupCALO() {
+  // see header file for class documentation  
+
+  if(fProcessPhos) {
     fHistList->Add(new TH1F("fPhosEt",  "Total E_{T} in PHOS:E (GeV)",   
                            fCaloBinning,fCaloBinningMin,fCaloBinningMax));
   }
-  if(fProcessEmcal)
-  {
+  if(fProcessEmcal) {
     fHistList->Add(new TH1F("fEmcalEt",  "Total E_{T} in EMCAL:E (GeV)",   
                            fCaloBinning,fCaloBinningMin,fCaloBinningMax));
   }
-  if(fProcessPhos || fProcessEmcal)
-  {
+  if(fProcessPhos || fProcessEmcal) {
     fHistList->Add(new TH1F("fTotalEt",  "Total E_{T} in calorimeters:E (GeV)",   
                            fCaloBinning,fCaloBinningMin,fCaloBinningMax));
   }
   return 0;
 }
 
+//##################################################################################
+Int_t AliHLTMultiplicityCorrelations::SetupSPD() {
+  // see header file for class documentation  
+  
+  fHistList->Add(new TH1F("fSpdNClusters", "Multplicity_{SPD};Multplicity_{SPD};N_{Events}",   
+                         fSpdBinning,fSpdBinningMin,fSpdBinningMax));
+
+  return 0;
+}
+
+
 /*
  * ---------------------------------------------------------------------------------
  *                               Process - private
@@ -616,6 +672,7 @@ Int_t AliHLTMultiplicityCorrelations::SetupCALO()
 
 //##################################################################################
 Int_t AliHLTMultiplicityCorrelations::ProcessTPC() {
+  // see header file for class documentation  
 
   Int_t iResult = 0 ;
 
@@ -677,6 +734,7 @@ Int_t AliHLTMultiplicityCorrelations::ProcessTPC() {
 
 //##################################################################################
 Int_t AliHLTMultiplicityCorrelations::ProcessVZERO() {
+  // see header file for class documentation  
 
   Int_t iResult = 0 ;
 
@@ -738,6 +796,17 @@ Int_t AliHLTMultiplicityCorrelations::ProcessVZERO() {
     (static_cast<TH2F*>(fHistList->FindObject("fCorrVzeroFANch")))->Fill(fVzeroMultFlaggedA, fTpcTracksA);
     (static_cast<TH2F*>(fHistList->FindObject("fCorrVzeroFCNch")))->Fill(fVzeroMultFlaggedC, fTpcTracksA);
   }
+
+  // -- VZERO - SPD correlations
+  if (fESDEvent->GetNumberOfTracks() > 0) {
+    (static_cast<TH2F*>(fHistList->FindObject("fCorrVzeroSpd")))->Fill(fVzeroMult, fSpdNClusters);
+    (static_cast<TH2F*>(fHistList->FindObject("fCorrVzeroASpd")))->Fill(fVzeroMultA, fSpdNClusters);
+    (static_cast<TH2F*>(fHistList->FindObject("fCorrVzeroCSpd")))->Fill(fVzeroMultC, fSpdNClusters);
+    
+    (static_cast<TH2F*>(fHistList->FindObject("fCorrVzeroFSpd")))->Fill(fVzeroMultFlagged, fSpdNClusters);
+    (static_cast<TH2F*>(fHistList->FindObject("fCorrVzeroFASpd")))->Fill(fVzeroMultFlaggedA, fSpdNClusters);
+    (static_cast<TH2F*>(fHistList->FindObject("fCorrVzeroFCSpd")))->Fill(fVzeroMultFlaggedC, fSpdNClusters);
+  }
   
   // -- VZERO - CALO correlations
   if (fProcessPhos || fProcessEmcal) {
@@ -759,6 +828,7 @@ Int_t AliHLTMultiplicityCorrelations::ProcessVZERO() {
 
 //##################################################################################
 Int_t AliHLTMultiplicityCorrelations::ProcessZDC() {
+  // see header file for class documentation  
 
   Int_t iResult = 0 ;
 
@@ -832,8 +902,14 @@ Int_t AliHLTMultiplicityCorrelations::ProcessZDC() {
     (static_cast<TH2F*>(fHistList->FindObject("fCorrZdcbANch")))->Fill(fESDZDC->GetImpactParamSideA(), fTpcTracksA);
     (static_cast<TH2F*>(fHistList->FindObject("fCorrZdcbCNch")))->Fill(fESDZDC->GetImpactParamSideC(), fTpcTracksA);
   }
+  
+  // -- ZDC - SPD correlations
+  (static_cast<TH2F*>(fHistList->FindObject("fCorrEzdcSpd")))->Fill(zdcE, fSpdNClusters);
+  (static_cast<TH2F*>(fHistList->FindObject("fCorrEzdcASpd")))->Fill(zdcEA, fSpdNClusters);
+  (static_cast<TH2F*>(fHistList->FindObject("fCorrEzdcCSpd")))->Fill(zdcEC, fSpdNClusters);
+    
 
-  // -- VZERO - TPC correlations
+  // -- VZERO - ZDC correlations
   if (fESDVZERO) {
     (static_cast<TH2F*>(fHistList->FindObject("fCorrEzdcVzero")))->Fill(zdcE, fVzeroMult);
     (static_cast<TH2F*>(fHistList->FindObject("fCorrEzdcVzeroA")))->Fill(zdcEA, fVzeroMultA);
@@ -903,9 +979,8 @@ Int_t AliHLTMultiplicityCorrelations::ProcessZDC() {
 }
 
 //##################################################################################
-Int_t AliHLTMultiplicityCorrelations::ProcessCALO()
-{
-  // CALO 
+Int_t AliHLTMultiplicityCorrelations::ProcessCALO() {
+  // see header file for class documentation  
   
   TH1F* hPhosEt = static_cast<TH1F*>(fHistList->FindObject("fPhosEt")); // PHOS Tot E_T
   TH1F* hEmcalEt = static_cast<TH1F*>(fHistList->FindObject("fEmcalEt")); // EMCAL Tot E_T
@@ -934,3 +1009,13 @@ Int_t AliHLTMultiplicityCorrelations::ProcessCALO()
   
   return 0;
 }
+
+//##################################################################################
+Int_t AliHLTMultiplicityCorrelations::ProcessSPD() {
+  // see header file for class documentation
+  
+  (static_cast<TH2F*>(fHistList->FindObject("fSpdNClusters")))->Fill(fSpdNClusters);
+  (static_cast<TH2F*>(fHistList->FindObject("fCorrSpdTpcNch")))->Fill(fSpdNClusters,fTpcTracksA);
+
+  return 0;
+}
index c3940c848f850587f2bb3a36b5ed4fafd8b99759..07f2e9b1dadaa789cc6f1fb47d68bae0b6e1072a 100644 (file)
@@ -101,6 +101,11 @@ public:
     fCaloBinning = i; fCaloBinningMin = f1; fCaloBinningMax = f2;
   }
 
+  /** Set Binning of SPD */
+  void SetBinningSpd(Int_t i=1, Float_t f1=0., Float_t f2=1.) {
+    fSpdBinning = i; fSpdBinningMin = f1; fSpdBinningMax = f2;
+  }
+
   /** Set process PHOS */
   void SetProcessPhos(Bool_t v = true) {
     fProcessPhos = v;
@@ -126,7 +131,12 @@ public:
    */
   
   /** Process current event */
-  Int_t ProcessEvent( AliESDEvent *esd );
+  Int_t ProcessEvent( AliESDEvent *esd, Int_t nSpdClusters );
+
+  Int_t ProcessEvent( AliESDEvent *esd ) {
+    return ProcessEvent(esd, 0);
+  }
+
 
   ///////////////////////////////////////////////////////////////////////////////////
   
@@ -168,6 +178,9 @@ public:
   /** Setup CALO histograms */
   Int_t SetupCALO();
 
+  /** Setup SPD histograms */
+  Int_t SetupSPD();
+
   /*
    * ---------------------------------------------------------------------------------
    *                             Process - private
@@ -176,6 +189,9 @@ public:
 
   /** Process current event - TPC */
   Int_t ProcessTPC();
+
+  /** Process current event - SPD */
+  Int_t ProcessSPD();
   
   /** Process current event - VZERO */
   Int_t ProcessVZERO();
@@ -186,8 +202,6 @@ public:
   /** Process current event - CALO */
   Int_t ProcessCALO();
   
-  
-
   /*
    * ---------------------------------------------------------------------------------
    *                             Members - private
@@ -241,6 +255,9 @@ public:
   /** VZERO flagged mult C */
   Float_t fVzeroMultFlaggedC;
 
+  /** Spd N clusters */
+  Int_t   fSpdNClusters;
+
   // -- -- -- 
 
   /** Binnning VZERO */
@@ -280,6 +297,11 @@ public:
   Int_t   fCaloBinning;
   Float_t fCaloBinningMin;
   Float_t fCaloBinningMax;
+
+  /** Binnning SPD */
+  Int_t   fSpdBinning;
+  Float_t fSpdBinningMin;
+  Float_t fSpdBinningMax;
   
   ClassDef(AliHLTMultiplicityCorrelations, 1);
 };
index 616492bc5fb1537ea8c987184b7411528109b6a6..37d2155ae982db779ee5523a341df5ba2069166f 100644 (file)
@@ -34,6 +34,7 @@ using namespace std;
 #include "AliHLTErrorGuard.h"
 #include "AliHLTDataTypes.h"
 #include "AliHLTMultiplicityCorrelationsComponent.h"
+#include "AliHLTITSClusterDataFormat.h"
 
 /** ROOT macro for the implementation of ROOT specific class methods */
 ClassImp(AliHLTMultiplicityCorrelationsComponent)
@@ -83,6 +84,7 @@ const Char_t* AliHLTMultiplicityCorrelationsComponent::GetComponentID() {
 void AliHLTMultiplicityCorrelationsComponent::GetInputDataTypes( vector<AliHLTComponentDataType>& list) {
   // see header file for class documentation
   list.push_back(kAliHLTDataTypeESDObject|kAliHLTDataOriginAny);
+  list.push_back(kAliHLTDataTypeClusters|kAliHLTDataOriginITSSPD);
 }
 
 // #################################################################################
@@ -378,6 +380,22 @@ Int_t AliHLTMultiplicityCorrelationsComponent::ScanConfigurationArgument(Int_t a
     return 4;
   }
 
+  // binningSpd
+  if (argument.CompareTo("-binningSpd")==0) {
+    if (++ii>=argc) return -EPROTO;
+    argument=argv[ii];
+    Int_t binning = argument.Atoi();
+    if (++ii>=argc) return -EPROTO;
+    argument=argv[ii];
+    Float_t min = argument.Atof();
+    if (++ii>=argc) return -EPROTO;
+    argument=argv[ii];
+    Float_t max = argument.Atof();
+
+    fCorrObj->SetBinningSpd(binning, min, max);
+    return 4;
+  }
+
   // binningZdc
   if (argument.CompareTo("-binningZdc")==0) {
     if (++ii>=argc) return -EPROTO;
@@ -484,19 +502,37 @@ Int_t AliHLTMultiplicityCorrelationsComponent::DoEvent(const AliHLTComponentEven
   if (!IsDataEvent()) 
     return 0;
 
+
   // -- Get ESD object 
+  AliESDEvent *esdEvent = NULL;
   for ( const TObject *iter = GetFirstInputObject(kAliHLTDataTypeESDObject); iter != NULL; iter = GetNextInputObject() ) {
-
-    AliESDEvent *esdEvent = dynamic_cast<AliESDEvent*>(const_cast<TObject*>( iter ) );
+    esdEvent = dynamic_cast<AliESDEvent*>(const_cast<TObject*>( iter ) );
     if( !esdEvent ){ 
       HLTWarning("Wrong ESDEvent object received");
       iResult = -1;
       continue;
     }
     esdEvent->GetStdContent();
-    iResult = fCorrObj->ProcessEvent(esdEvent);
   }
 
+  // -- Get SPD clusters
+  // ---------------------
+  const AliHLTComponentBlockData* iter = NULL;
+  Int_t totalSpacePoint = 0;
+
+  for ( iter = GetFirstInputBlock(kAliHLTDataTypeClusters|kAliHLTDataOriginITSSPD); 
+       iter != NULL; iter = GetNextInputBlock() ) {
+    
+    const AliHLTITSClusterData* clusterData = (const AliHLTITSClusterData*) iter->fPtr;
+    Int_t nSpacepoint = (Int_t) clusterData->fSpacePointCnt;
+    totalSpacePoint += nSpacepoint;
+  }
+
+  // -- Process Event
+  // ------------------
+  if (esdEvent)
+    iResult = fCorrObj->ProcessEvent(esdEvent,totalSpacePoint);
+
   if (iResult) {
     HLTError("Error while processing event inside multiplicity correlation object");
     return iResult;
index f0a098c453f726c2fdbdafdc0aaf623b9993eb94..5da88776907ba75d9582c91e682bbad9776e633e 100644 (file)
@@ -36,6 +36,7 @@ MODULE_DHDR:=
 EINCLUDE       := HLT/global HLT/global/physics \
                   HLT/BASE \
                   HLT/BASE/util \
+                  HLT/ITS \
                   TPC \
                   RAW \
                   TRD \
@@ -44,7 +45,7 @@ EINCLUDE      := HLT/global HLT/global/physics \
                   ANALYSIS \
                   PWG0 PWG0/dNdPt 
 
-LIBRARY_DEP := -lHLTbase -lAliHLTUtil \
+LIBRARY_DEP := -lHLTbase -lAliHLTUtil -lAliHLTITS \
                -lCDB -lESD -lSTEER -lSTEERBase -lTPCrec -lTPCcalib -lTPCbase \
                -lRAWDatarec -lRAWDatabase -lTRDbase \
                -L$(ROOTLIBDIR) -lEG -lANALYSIS