Updating MultiplicityCorrelations Component
authorjthaeder <jthaeder@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 10 Nov 2011 14:53:50 +0000 (14:53 +0000)
committerjthaeder <jthaeder@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 10 Nov 2011 14:53:50 +0000 (14:53 +0000)
- adding centrality
- adding trigger selection
- adding peudo physics selection

HLT/global/physics/AliHLTMultiplicityCorrelations.cxx
HLT/global/physics/AliHLTMultiplicityCorrelations.h
HLT/global/physics/AliHLTMultiplicityCorrelationsComponent.cxx
HLT/global/physics/AliHLTMultiplicityCorrelationsComponent.h
HLT/global/physics/macros/makeConfigurationObjectMultiplicityCorrelations.C
HLT/global/physics/macros/runMultiplicityCorrelationsTest.sh

index 75808ca..6d43f97 100644 (file)
@@ -54,8 +54,9 @@ AliHLTMultiplicityCorrelations::AliHLTMultiplicityCorrelations() :
   fESDZDC(NULL),
   fESDVZERO(NULL),
   fESDTrackCuts(NULL),
+  fCentHistV0Mpercentile(NULL),
   fProcessTPC(kTRUE), fProcessSPD(kTRUE),
-  fProcessVZERO(kTRUE), fProcessZDC(kTRUE),
+  fProcessVZERO(kTRUE), fProcessZDC(kTRUE), fProcessCentrality(kTRUE),
   fEsdTracks(0), fEsdTracksA(0),
   fTpcTracks(0), fTpcTracksA(0),
   fTpcTracksRef(0),
@@ -81,8 +82,9 @@ AliHLTMultiplicityCorrelations::AliHLTMultiplicityCorrelations(Char_t* name, Cha
   fESDZDC(NULL),
   fESDVZERO(NULL),
   fESDTrackCuts(NULL),
+  fCentHistV0Mpercentile(NULL),
   fProcessTPC(kTRUE), fProcessSPD(kTRUE),
-  fProcessVZERO(kTRUE), fProcessZDC(kTRUE),
+  fProcessVZERO(kTRUE), fProcessZDC(kTRUE), fProcessCentrality(kTRUE),
   fEsdTracks(0), fEsdTracksA(0),
   fTpcTracks(0), fTpcTracksA(0),
   fTpcTracksRef(0),
@@ -133,6 +135,7 @@ Int_t AliHLTMultiplicityCorrelations::Initialize() {
   if (fProcessTPC)   { HLTInfo ("Processing of TPC enabled"); }
   if (fProcessSPD)   { HLTInfo ("Processing of SPD enabled"); }
   if (fProcessVZERO) { HLTInfo ("Processing of VZERO enabled"); }
+  if (fProcessCentrality) { HLTInfo ("Processing of Centrality enabled"); }
 
   return iResult;
 }
@@ -152,6 +155,7 @@ Int_t AliHLTMultiplicityCorrelations::Initialize( const Char_t* listName) {
   if (fProcessTPC)   { HLTInfo ("Processing of TPC enabled"); }
   if (fProcessSPD)   { HLTInfo ("Processing of SPD enabled"); }
   if (fProcessVZERO) { HLTInfo ("Processing of VZERO enabled"); }
+  if (fProcessCentrality) { HLTInfo ("Processing of Centrality enabled"); }
 
   return iResult;
 }
@@ -163,8 +167,7 @@ Int_t AliHLTMultiplicityCorrelations::Initialize( const Char_t* listName) {
  */
 
 //##################################################################################
-Int_t AliHLTMultiplicityCorrelations::ProcessEvent( AliESDEvent *esd, AliESDVZERO* esdVZERO, 
-                                                   Int_t nSpdClusters) {
+Int_t AliHLTMultiplicityCorrelations::ProcessEvent( AliESDEvent *esd, AliESDVZERO* esdVZERO, Int_t nSpdClusters) {
   // see header file for class documentation  
 
   Int_t iResult = 0;
@@ -194,6 +197,10 @@ Int_t AliHLTMultiplicityCorrelations::ProcessEvent( AliESDEvent *esd, AliESDVZER
   if (fESDZDC && fProcessZDC)
     iResult = ProcessZDC();
  
+  // -- Centrality
+  if (fCentHistV0Mpercentile && fProcessCentrality && fVzeroMult > 0.)
+    iResult = ProcessCentrality();
+
   return iResult;
 }
 
@@ -252,7 +259,8 @@ Int_t AliHLTMultiplicityCorrelations::SetupHistograms() {
   if (fProcessZDC)   iResult = SetupZDC();
   if (fProcessTPC)   iResult = SetupTPC();
   if (fProcessSPD)   iResult = SetupSPD();
-  
+  if (fProcessCentrality)   iResult = SetupCentrality();
+
   iResult = SetupCorrelations();
 
   return iResult;
@@ -411,7 +419,21 @@ Int_t AliHLTMultiplicityCorrelations::SetupSPD() {
 
   return 0;
 }
+//##################################################################################
+Int_t AliHLTMultiplicityCorrelations::SetupCentrality() {
+  // see header file for class documentation  
+
+  
+  if (!fCentHistV0Mpercentile) {
+    fProcessCentrality = kFALSE;
+    return -1;  
+  }
+
+  // Vzero Centrality
+  fHistList->Add(new TH1F("fVzeroCentV0M", "Centrality V0M;Centrality", 100, 0, 100));
 
+  return 0;
+}
 
 /*
  * ---------------------------------------------------------------------------------
@@ -567,3 +589,13 @@ Int_t AliHLTMultiplicityCorrelations::ProcessSPD() {
 
   return 0;
 }
+
+//##################################################################################
+Int_t AliHLTMultiplicityCorrelations::ProcessCentrality() {
+  // see header file for class documentation
+
+  Double_t centV0M = fCentHistV0Mpercentile->GetBinContent(fCentHistV0Mpercentile->FindBin((fVzeroMult)));
+  (static_cast<TH1F*>(fHistList->FindObject("fVzeroCentV0M")))->Fill(centV0M);
+
+  return 0;
+}
index c8d837d..02ed8a6 100644 (file)
@@ -123,6 +123,10 @@ public:
   void SetProcessTPC(Bool_t b = kTRUE)  { fProcessTPC = b; }
   void SetProcessZDC(Bool_t b = kTRUE)  { fProcessZDC = b; }
   void SetProcessVZERO(Bool_t b = kTRUE){ fProcessVZERO = b; }
+  void SetProcessCentrality(Bool_t b = kTRUE){ fProcessCentrality = b; }
+
+  /** Centrality Estimator */
+  void SetCentralityEstimator(TH1F* hist) { fCentHistV0Mpercentile = hist; }
 
   /*
    * ---------------------------------------------------------------------------------
@@ -140,7 +144,7 @@ public:
    */
   
   /** Process current event */
-  Int_t ProcessEvent( AliESDEvent *esd, AliESDVZERO* esdVZERO, Int_t nSpdClusters );
+  Int_t ProcessEvent( AliESDEvent *esd, AliESDVZERO* esdVZERO, Int_t nSpdClusters);
 
   Int_t ProcessEvent( AliESDEvent *esd ) {
     return ProcessEvent(esd, NULL, 0);
@@ -187,6 +191,9 @@ public:
   /** Setup SPD histograms */
   Int_t SetupSPD();
 
+  /** Setup Centrality histograms */
+  Int_t SetupCentrality();
+
   /*
    * ---------------------------------------------------------------------------------
    *                             Process - private
@@ -204,7 +211,10 @@ public:
 
   /** Process current event - ZDC and correlations */
   Int_t ProcessZDC();
-  
+
+  /** Process current event - centrality */
+  Int_t ProcessCentrality();
+
   /*
    * ---------------------------------------------------------------------------------
    *                             Members - private
@@ -226,6 +236,9 @@ public:
   /** Ptr to AliESD track cuts */
   AliESDtrackCuts *fESDTrackCuts;         //! transient
 
+  /** Centrality Estimator */
+  TH1F* fCentHistV0Mpercentile;           //! transient
+
   // -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 
   /** Process TPC information */
@@ -240,6 +253,9 @@ public:
   /** Process ZDC information */
   Bool_t           fProcessZDC;           // see above
 
+  /** Process Centrality information */
+  Bool_t           fProcessCentrality;    // see above
+
   // -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 
   /** N ESD tracks */
@@ -299,6 +315,6 @@ public:
   Float_t fSpdBinningMin;                 // see above
   Float_t fSpdBinningMax;                 // see above
   
-  ClassDef(AliHLTMultiplicityCorrelations, 3);
+  ClassDef(AliHLTMultiplicityCorrelations, 4);
 };
 #endif
index 226a1e5..3fe3b97 100644 (file)
@@ -29,11 +29,14 @@ using namespace std;
 #include "TSystem.h"
 #include "TTimeStamp.h"
 #include "TObjString.h"
+#include "TH1F.h"
+#include "TList.h"
 #include "AliESDVZERO.h"
 #include "AliESDtrackCuts.h"
+#include "AliHLTGlobalTriggerDecision.h"
 #include "AliHLTMultiplicityCorrelations.h"
 #include <AliHLTDAQ.h>
-
+#include "AliHLTCTPData.h"
 #include "AliHLTErrorGuard.h"
 #include "AliHLTDataTypes.h"
 #include "AliHLTMultiplicityCorrelationsComponent.h"
@@ -53,7 +56,11 @@ AliHLTMultiplicityCorrelationsComponent::AliHLTMultiplicityCorrelationsComponent
   AliHLTProcessor(),
   fESDTrackCuts(NULL),  
   fCorrObj(NULL),
-  fUID(0) {
+  fUID(0),
+  fCentHistV0Mpercentile(NULL),
+  fListTriggerDescriptor(NULL),
+  fListTrigger(NULL),
+  fCTPData(NULL) {
   // an example component which implements the ALICE HLT processor
   // interface and does some analysis on the input raw data
   //
@@ -112,6 +119,8 @@ void AliHLTMultiplicityCorrelationsComponent::GetOCDBObjectDescription( TMap* co
   if (!targetMap) return;
   targetMap->Add(new TObjString("HLT/ConfigGlobal/MultiplicityCorrelations"),
                 new TObjString("configuration object"));
+  targetMap->Add(new TObjString("HLT/ConfigGlobal/MultiplicityCorrelationsCentrality"),
+                new TObjString("centrality configuration object"));
 
   return;
 }
@@ -152,8 +161,21 @@ Int_t AliHLTMultiplicityCorrelationsComponent::DoInit( Int_t argc, const Char_t*
       break;
     }
 
+    fListTriggerDescriptor = new TList;
+    if (!fListTriggerDescriptor) {
+      iResult=-ENOMEM;
+      break;
+    }
+    fListTriggerDescriptor->SetOwner(kTRUE);
+
+    fListTrigger = new TList;
+    if (!fListTrigger) {
+      iResult=-ENOMEM;
+      break;
+    }
+    fListTrigger->SetOwner(kTRUE);
+
     fUID = 0;
-    
     // implement further initialization
   } while (0);
 
@@ -181,12 +203,24 @@ Int_t AliHLTMultiplicityCorrelationsComponent::DoInit( Int_t argc, const Char_t*
     if (iResult>=0) {
       iResult=ConfigureFromArgumentString(argc, argv);
     }
+    
+    // -- Read configuration object : HLT/ConfigGlobal/MultiplicityCorrelationsCentrality
+    TString cdbPathCent="HLT/ConfigGlobal/";
+    cdbPathCent+=GetComponentID();
+    cdbPathCent+="Centrality";
+    
+    TObject* obj = LoadAndExtractOCDBObject(cdbPathCent);
+    if (obj && obj->IsA() != TH1F::Class())
+      iResult=-1;
+    else
+      fCentHistV0Mpercentile = static_cast<TH1F*>(obj);
   }
 
   if (iResult>=0) {
     HLTInfo("ESD track cuts : %s",fESDTrackCuts->GetTitle() );
 
     fCorrObj->SetESDTrackCuts(fESDTrackCuts);
+    fCorrObj->SetCentralityEstimator(fCentHistV0Mpercentile);
     fCorrObj->Initialize();
   }
 
@@ -238,7 +272,7 @@ Int_t AliHLTMultiplicityCorrelationsComponent::ScanConfigurationArgument(Int_t a
 
   // ---------------------
 
- // -maxpt
+  // -maxpt
   if (argument.CompareTo("-maxpt")==0) {
     if (++ii>=argc) return -EPROTO;
     argument=argv[ii];
@@ -416,22 +450,6 @@ Int_t AliHLTMultiplicityCorrelationsComponent::ScanConfigurationArgument(Int_t a
     return 4;
   }
 
-  // binningZnp
-  if (argument.CompareTo("-binningZnp")==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->SetBinningZnp(binning, min, max);
-    return 4;
-  }
-
   // binningZem
   if (argument.CompareTo("-binningZem")==0) {
     if (++ii>=argc) return -EPROTO;
@@ -462,26 +480,8 @@ Int_t AliHLTMultiplicityCorrelationsComponent::ScanConfigurationArgument(Int_t a
     fCorrObj->SetBinningCalo(binning, min, max);
     return 4;
   }
-  if (argument.CompareTo("-enablePhos")==0) {
-    if (++ii>=argc) return -EPROTO;
-    argument=argv[ii];
-    Int_t enabled = argument.Atoi();
-    fCorrObj->SetProcessPhos(enabled);
-    return 2;
-  }
-  if (argument.CompareTo("-enableEmcal")==0) {
-    if (++ii>=argc) return -EPROTO;
-    argument=argv[ii];
-    Int_t enabled = argument.Atoi();
-    fCorrObj->SetProcessEmcal(enabled);
-    return 2;
-  }
 
   // -- enable
-  if (argument.CompareTo("-enableCALO")==0) {
-    fCorrObj->SetProcessCALO(kTRUE);
-    return 1;
-  }
   if (argument.CompareTo("-enableVZERO")==0) {
     fCorrObj->SetProcessVZERO(kTRUE);
     return 1;
@@ -498,12 +498,12 @@ Int_t AliHLTMultiplicityCorrelationsComponent::ScanConfigurationArgument(Int_t a
     fCorrObj->SetProcessSPD(kTRUE);
     return 1;
   }
-
-  // -- disable
-  if (argument.CompareTo("-disableCALO")==0) {
-    fCorrObj->SetProcessCALO(kFALSE);
+  if (argument.CompareTo("-enableCentrality")==0) {
+    fCorrObj->SetProcessCentrality(kTRUE);
     return 1;
   }
+
+  // -- disable
   if (argument.CompareTo("-disableVZERO")==0) {
     fCorrObj->SetProcessVZERO(kFALSE);
     return 1;
@@ -520,6 +520,21 @@ Int_t AliHLTMultiplicityCorrelationsComponent::ScanConfigurationArgument(Int_t a
     fCorrObj->SetProcessSPD(kFALSE);
     return 1;
   }
+  if (argument.CompareTo("-disableCentrality")==0) {
+    fCorrObj->SetProcessCentrality(kFALSE);
+    return 1;
+  }
+
+  // -- TRIGGER --------------
+
+  // -add trigger descriptor
+  if (argument.CompareTo("-addTrigger")==0) {
+    if (++ii>=argc) return -EPROTO;
+    fListTriggerDescriptor->Add(new TObjString(argv[ii]));
+    return 2;
+  }
+
+  // -- UNKNOWN --------------
 
   // unknown argument
   return -EINVAL;
@@ -557,8 +572,9 @@ Int_t AliHLTMultiplicityCorrelationsComponent::DoEvent(const AliHLTComponentEven
     TTimeStamp t;
     fUID = ( gSystem->GetPid() + t.GetNanoSec())*10 + evtData.fEventID;
   }
-
-  // -- Get ESD object 
+  
+  // -- Get ESD object
+  // -------------------
   AliESDEvent *esdEvent = NULL;
   for ( const TObject *iter = GetFirstInputObject(kAliHLTDataTypeESDObject); iter != NULL; iter = GetNextInputObject() ) {
     esdEvent = dynamic_cast<AliESDEvent*>(const_cast<TObject*>( iter ) );
@@ -570,7 +586,33 @@ Int_t AliHLTMultiplicityCorrelationsComponent::DoEvent(const AliHLTComponentEven
     esdEvent->GetStdContent();
   }
 
+  // -- Get GlobalTriggerDecision object
+  // -------------------------------------
+  AliHLTGlobalTriggerDecision *globalTrigDec = NULL;
+  for ( const TObject *iter = GetFirstInputObject(kAliHLTDataTypeGlobalTrigger); iter != NULL; iter = GetNextInputObject() ) {
+    globalTrigDec = dynamic_cast<AliHLTGlobalTriggerDecision*>(const_cast<TObject*>( iter ) );
+    if( !globalTrigDec ){ 
+      HLTWarning("Wrong GlobalTriggerDecision object received");
+      iResult = -1;
+      continue;
+    }
+  }
+  
+  // -- Get CTP data object
+  // ------------------------
+  fCTPData = NULL;
+
+  if (globalTrigDec) {
+    for (Int_t idx = 0; idx < globalTrigDec->NumberOfInputObjects(); ++idx) {
+      const TObject *obj = globalTrigDec->InputObject(idx);
+      
+      if (obj && obj->IsA() == AliHLTCTPData::Class())
+       fCTPData = static_cast<const AliHLTCTPData*>(obj);
+    }
+  }
+
   // -- Get VZEROESD object 
+  // ------------------------
   AliESDVZERO *esdVZERO = NULL;
   for ( const TObject *iter = GetFirstInputObject(kAliHLTDataTypeESDContent|kAliHLTDataOriginVZERO); 
        iter != NULL; iter = GetNextInputObject() ) {
@@ -607,7 +649,8 @@ Int_t AliHLTMultiplicityCorrelationsComponent::DoEvent(const AliHLTComponentEven
 
   // -- Process Event
   // ------------------
-  if (esdEvent)
+  // check that event is selected by PhysicsSelection and TriggerSelection
+  if ( esdEvent && IsEventTriggered() && SelectEvent(esdEvent,esdVZERO) )
     iResult = fCorrObj->ProcessEvent(esdEvent,esdVZERO,totalClusters);
 
   if (iResult) {
@@ -647,3 +690,79 @@ Int_t AliHLTMultiplicityCorrelationsComponent::ReadPreprocessorValues(const Char
   ALIHLTERRORGUARD(5, "ReadPreProcessorValues not implemented for this component");
   return 0;
 }
+
+// #################################################################################
+Bool_t AliHLTMultiplicityCorrelationsComponent::IsEventTriggered() {
+  // see header file for class documentation
+
+  if (!fCTPData)
+    return kFALSE;
+  
+  // -- Check if MinBiasTrigger list exists - otherwise create it
+  if ( fListTrigger->GetEntries() == 0 )
+    CreateTriggerList();
+
+  // -- Check if event is selected by one of the MinBiasTriggers
+  for (Int_t ii = 0; ii < fListTrigger->GetEntries(); ++ii) {
+    TObjString *oStr = static_cast<TObjString*>(fListTrigger->At(ii));
+    TString trigger(oStr->String());
+      
+    if (fCTPData->EvaluateCTPTriggerClass(trigger))
+      return kTRUE;
+  }
+
+  return kFALSE;
+}
+
+// #################################################################################
+void AliHLTMultiplicityCorrelationsComponent::CreateTriggerList() {
+  // see header file for class documentation
+
+  // -- loop over all trigger bits
+  for (Int_t idx = 0 ; idx < 49 ; ++idx) {
+
+    TString triggerName(fCTPData->Name(idx));
+
+    // -- used bit
+    if (!triggerName.CompareTo("AliHLTReadoutList"))
+      continue;
+
+    // -- check for interaction trigger
+    if (!triggerName.Contains("-B-") && !triggerName.Contains("-I-"))
+      continue;
+
+    Bool_t isMinBias = kFALSE;
+
+    for (Int_t ii = 0; !isMinBias && ii < fListTriggerDescriptor->GetEntries(); ++ii) {
+      TObjString *oStr = static_cast<TObjString*>(fListTriggerDescriptor->At(ii));
+      TString str(oStr->String());
+      
+      if (triggerName.BeginsWith(oStr->String()+"-") || triggerName.BeginsWith(oStr->String()+"WU-") ||
+         triggerName.BeginsWith(oStr->String()+"_") || triggerName.BeginsWith(oStr->String()+"WU_"))
+       isMinBias = kTRUE;
+    }
+    
+    if (!isMinBias)
+      continue;
+    
+    fListTrigger->Add(new TObjString(triggerName));
+  }
+  
+  return;
+}
+
+// #################################################################################
+Bool_t AliHLTMultiplicityCorrelationsComponent::SelectEvent(AliESDEvent *esdEvent, AliESDVZERO* esdV0) {
+  // see header file for class documentation
+
+  if (!esdEvent) 
+    return kFALSE;
+
+  if (!esdV0)
+    esdV0 = esdEvent->GetVZEROData();
+
+  if (!esdV0)
+    return kFALSE;
+
+  return ((esdV0->GetV0ADecision() == 1) && (esdV0->GetV0CDecision() == 1));
+}
index 5efb751..7c5478f 100644 (file)
 // or
 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
 
-
 #include "AliHLTProcessor.h"
 
+class TH1F;
+class TList;
+
+class AliESDEvent;
+class AliESDVZERO;
 class AliESDtrackCuts;
+class AliHLTCTPData;
 class AliHLTMultiplicityCorrelations;
+class AliHLTGlobalTriggerDecision;
 
 /**
  * @class AliHLTMultiplicityCorrelationsComponent
@@ -66,13 +72,15 @@ class AliHLTMultiplicityCorrelations;
  *       bins (Int_t), minBin (Float_t), maxBin (Float_t)
  * \li -binningZdc      <i> bins min max  </i> <br>
  *       bins (Int_t), minBin (Float_t), maxBin (Float_t)
- * \li -binningZnp    <i> bins min max  </i> <br>
+ * \li -binningZnp     <i> bins min max  </i> <br>
  *       bins (Int_t), minBin (Float_t), maxBin (Float_t)
- * \li -binningZem    <i> bins min max  </i> <br>
+ * \li -binningZem     <i> bins min max  </i> <br>
  *       bins (Int_t), minBin (Float_t), maxBin (Float_t)
  * \li -binningCalo    <i> bins min max  </i> <br>
  *       bins (Int_t), minBin (Float_t), maxBin (Float_t)
  *
+ * \li -addTrigger     <i> TriggerClass beginning (eg CPBI1)  </i> <br>
+
  * <h2>Default CDB entries:</h2>
  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
  *
@@ -208,6 +216,15 @@ private:
   /** Set Default Configuartion for track cuts */
   void SetDefaultConfiguration();
 
+  /** Select event as PhysicsSelection */
+  Bool_t SelectEvent(AliESDEvent *esdEvent, AliESDVZERO* esdV0);
+
+  /** Checks if event was triggered by the selected trigger classes */
+  Bool_t IsEventTriggered();
+  
+  /** Create selection list of triggers to be checked */
+  void CreateTriggerList();
+
   /*
    * ---------------------------------------------------------------------------------
    *                             Members - private
@@ -223,6 +240,18 @@ private:
   /** UID for merging */
   AliHLTUInt32_t fUID;                        // see above
 
+  /** Centrality estimation histogram */
+  TH1F *fCentHistV0Mpercentile;               // see above
+
+  /** List of possible trigger descriptor */
+  TList *fListTriggerDescriptor;              //! transient
+  
+  /** List of trigger classnames */
+  TList *fListTrigger;                        //! transient
+
+  /** Ptr to CTP data */
+  const AliHLTCTPData *fCTPData;              //! transient
+
   ClassDef(AliHLTMultiplicityCorrelationsComponent, 0)
 };
 #endif
index fffe9d7..5d86bc3 100644 (file)
@@ -16,6 +16,7 @@
  * - uri   (opt)    the OCDB URI, default $ALICE_ROOT   
  * - runMin (opt)   default 0
  * - runMax (opt)   default 999999999
+ * - centralityFile (opt) set new centralityFile
  * 
  * Current Param : 
  *  - ""  <pre> aliroot -b -q makeConfigurationObjectMultiplicityCorrelations.C </pre>
@@ -23,8 +24,9 @@
  * @author Jochen Thaeder <jochen@thaeder.de>
  * @ingroup alihlt_physics
  */
-void makeConfigurationObjectMultiplicityCorrelations(const Char_t* param="", const Char_t* cdbUri=NULL,
-                                     Int_t runMin=0, Int_t runMax=AliCDBRunRange::Infinity()) {
+void makeConfigurationObjectMultiplicityCorrelations(const Char_t* param="-addTrigger CPBI1 -addTrigger CPBI2", const Char_t* cdbUri=NULL,
+                                                    Int_t runMin=0, Int_t runMax=AliCDBRunRange::Infinity(),
+                                                    Char_t *centralityFile="centrality.root") {
 
   // --------------------------------------
   // -- Setup CDB
@@ -54,33 +56,65 @@ void makeConfigurationObjectMultiplicityCorrelations(const Char_t* param="", con
     storage = man->GetDefaultStorage()->GetURI();
   }
 
-  TString path("HLT/ConfigGlobal/MultiplicityCorrelations");
-
-  // --------------------------------------
-  // -- Create Config Object
-  // --------------------------------------
-
-  // here is the actual content of the configuration object
-  TObjString configParam=param;
-
-  TObject *configObj = static_cast<TObject*>(&configParam);
-  // --------------------------------------
-  // -- Fill Object
-  // --------------------------------------
-  
-  if ( !configObj ) {
-    cerr << "Error : No configuration object created" << endl;
-    return;
+  if (param) {
+    TString path0("HLT/ConfigGlobal/MultiplicityCorrelations");
+    // --------------------------------------
+    // -- Create Config Object 0
+    // --------------------------------------
+    
+    // here is the actual content of the configuration object
+    TObjString configParam=param;
+    
+    TObject *configObj = static_cast<TObject*>(&configParam);
+    // --------------------------------------
+    // -- Fill Object 0
+    // --------------------------------------
+    
+    if ( !configObj ) {
+      cerr << "Error : No configuration object created" << endl;
+      return;
+    }
+    
+    AliCDBPath cdbPath0(path0);
+    AliCDBId   cdbId0(cdbPath0, runMin, runMax);
+    AliCDBMetaData cdbMetaData0;
+    man->Put(configObj, cdbId0, &cdbMetaData0);
+    
+    printf("Adding %s type OCDB object to %s [%d,%d] in %s \n",
+          configObj->ClassName(), 
+          path0.Data(),
+          runMin, runMax, storage.Data());
   }
+
+  if (centralityFile) {
+    TString path1("HLT/ConfigGlobal/MultiplicityCorrelationsCentrality");
+    // --------------------------------------
+    // -- Create Config Object 1
+    // --------------------------------------
+   
+    // here is the actual content of the configuration object
+    TFile *file = TFile::Open(centralityFile);
+    TH1F *centrality = static_cast<TH1F*>(file->Get("fHOutMultV0M_percentile")); 
     
-  AliCDBPath cdbPath(path);
-  AliCDBId   cdbId(cdbPath, runMin, runMax);
-  AliCDBMetaData cdbMetaData;
-  man->Put(configObj, cdbId, &cdbMetaData);
+    TObject *configObjCentrality = static_cast<TObject*>(centrality);
+    // --------------------------------------
+    // -- Fill Object
+    // --------------------------------------
+    
+    if ( !configObjCentrality ) {
+      cerr << "Error : No centrality configuration object created" << endl;
+      return;
+    }
+    
+    AliCDBPath cdbPath1(path1);
+    AliCDBId   cdbId1(cdbPath1, runMin, runMax);
+    AliCDBMetaData cdbMetaData1;
+    man->Put(configObjCentrality, cdbId1, &cdbMetaData1);
 
-  printf("Adding %s type OCDB object to %s [%d,%d] in %s \n",
-        configObj->ClassName(), 
-        path.Data(),
-        runMin, runMax, storage.Data());
+    printf("Adding %s type OCDB object to %s [%d,%d] in %s \n",
+          configObjCentrality->ClassName(), 
+          path1.Data(),
+          runMin, runMax, storage.Data());
+  }
 }
 
index 5b857dc..ff00021 100755 (executable)
@@ -6,18 +6,18 @@
 # -------------------------------------------
 
 # N events
-NEVENTS=1
+NEVENTS=60
 
 # Path to ESD
-ESDPATH="/lustre/alice/jthaeder/data/v4-20-Rev-01/2760TeV/000001"
-
+#ESDPATH="/lustre/alice/jthaeder/data/compressionSGE/test2010"
+ESDPATH="/lustre/alice/jthaeder/data/compressionSGE/test2011"
 # -------------------------------------------
 
 pushd $ESDPATH > /dev/null
 
 #rm *.root  2> /dev/null
-#rm *.log   2> /dev/null
-#rm *.ps    2> /dev/null
+rm *.log   2> /dev/null
+rm *.ps    2> /dev/null
 
 if [ ! -d ./analysis ] ; then
     mkdir analysis