- implemented argument for the maximum track multiplicity
authorkkanaki <kkanaki@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 4 Mar 2011 12:02:12 +0000 (12:02 +0000)
committerkkanaki <kkanaki@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 4 Mar 2011 12:02:12 +0000 (12:02 +0000)
- example of how this should be defined in the configuration macro of the component, so that the TTreeProcessor recognizes it

HLT/global/AliHLTGlobalHistoComponent.cxx
HLT/global/AliHLTGlobalHistoComponent.h
HLT/global/macros/makeGlobalHistoConfigObject.C

index 3b6a250..7113738 100644 (file)
@@ -46,6 +46,7 @@ AliHLTGlobalHistoComponent::AliHLTGlobalHistoComponent()
   , fVertexY(-99)
   , fVertexZ(-99)
   , fVertexStatus(kFALSE)
+  , fMaxTrackCount(20000)
   , fTrackVariables()
   , fTrackVariablesInt()
   //, fV0Variables()
@@ -64,8 +65,7 @@ AliHLTGlobalHistoComponent::AliHLTGlobalHistoComponent()
 
 }
 
-AliHLTGlobalHistoComponent::~AliHLTGlobalHistoComponent()
-{
+AliHLTGlobalHistoComponent::~AliHLTGlobalHistoComponent(){
   // see header file for class documentation
   fTrackVariables.Reset();
   fTrackVariablesInt.Reset();
@@ -84,9 +84,10 @@ AliHLTComponentDataType AliHLTGlobalHistoComponent::GetOutputDataType(){
 }
 
 TTree* AliHLTGlobalHistoComponent::CreateTree(int /*argc*/, const char** /*argv*/){
-  // create the tree and branches
+// create the tree and branches
   int iResult=0;
-  TTree* pTree=new TTree("ESDproperties", "HLT ESD properties");
+  TTree* pTree = new TTree("ESDproperties", "HLT ESD properties");
   if (!pTree) return NULL;
 
   const char* trackVariableNames = {
@@ -135,14 +136,17 @@ TTree* AliHLTGlobalHistoComponent::CreateTree(int /*argc*/, const char** /*argv*
 //     "py_2 "
 //   };
   
-  int maxTrackCount = 20000; // FIXME: make configurable
+  //int fMaxTrackCount = 20000; // FIXME: make configurable
+  
   //int maxV0Count    = 100000;
   //int maxUPCCount   = 1;
+  
+  printf("KKKKKKKKKKKKKKKK %d\n", fMaxTrackCount);
     
-  if ((iResult=fTrackVariables.Init(maxTrackCount, trackVariableNames))<0) {
+  if ((iResult=fTrackVariables.Init(fMaxTrackCount, trackVariableNames))<0) {
     HLTError("failed to initialize internal structure for track properties (float)");
   }
-  if ((iResult=fTrackVariablesInt.Init(maxTrackCount, trackIntVariableNames))<0) {
+  if ((iResult=fTrackVariablesInt.Init(fMaxTrackCount, trackIntVariableNames))<0) {
     HLTError("failed to initialize internal structure for track properties (int)");
   }
 //   if ((iResult=fV0Variables.Init(maxV0Count, V0VariableNames))<0) {
@@ -267,7 +271,7 @@ int AliHLTGlobalHistoComponent::FillTree(TTree* pTree, const AliHLTComponentEven
 //     } 
 //   }
   
-  AliKFParticle::SetField( esd->GetMagneticField() );
+//  AliKFParticle::SetField( esd->GetMagneticField() );
 
   //const double kKsMass = 0.49767;
   //const double kLambdaMass = 1.11568;
@@ -459,9 +463,8 @@ int AliHLTGlobalHistoComponent::FillTree(TTree* pTree, const AliHLTComponentEven
   return iResult;
 }
 
-int AliHLTGlobalHistoComponent::ResetVariables()
-{
-  /// reset all filling variables
+int AliHLTGlobalHistoComponent::ResetVariables(){
+/// reset all filling variables
   fNofTracks=0;
   //fNofV0s=0;
   fTrackVariables.ResetCount();
@@ -471,8 +474,59 @@ int AliHLTGlobalHistoComponent::ResetVariables()
   return 0;
 }
 
-AliHLTComponentDataType AliHLTGlobalHistoComponent::GetOriginDataType() const
-{
-  // get the origin of the output data
+AliHLTComponentDataType AliHLTGlobalHistoComponent::GetOriginDataType() const{
+// get the origin of the output data
   return kAliHLTDataTypeHistogram|kAliHLTDataOriginHLT;
 }
+
+int AliHLTGlobalHistoComponent::ScanConfigurationArgument(int argc, const char** argv){
+/// inherited from AliHLTComponent, scan argument
+
+  if (argv==NULL || argc<1) return 0;
+
+  int i=0;
+  TString argument=argv[i];
+
+  // -argument1 with one parameter
+  if(argument.CompareTo("-max-track-count")==0){
+    
+    if (++i>=argc) return -EPROTO; // missing parameter
+    argument = argv[i];
+    fMaxTrackCount = argument.Atoi();
+    
+    HLTInfo("got %s with parameter %s", argument.Data(), argv[i]);
+    return ++i; // two arguments scanned
+  }
+
+//   // -argument1 with one parameter
+//   if (argument.CompareTo("-argument1")==0) {
+//     if (++i>=argc) return -EPROTO; // missing parameter
+//     HLTInfo("got %s with parameter %s", argument.Data(), argv[i]);
+//     return ++i; // two arguments scanned
+//   }
+// 
+//   // -argument2 without parameter
+//   if (argument.CompareTo("-argument2")==0) {
+//     HLTInfo("got %s", argument.Data());
+//     return ++i; // one argument scanned
+//   }
+// 
+  // no recognized argument, forward to base class
+  return AliHLTTTreeProcessor::ScanConfigurationArgument(argc, argv);
+}
+
+int AliHLTGlobalHistoComponent::Reconfigure(const char* cdbEntry, const char* /*chainId*/){  
+// see header file for class documentation
+
+  TString cdbPath;
+  if (cdbEntry) {
+    cdbPath=cdbEntry;
+  } else {
+    cdbPath="HLT/ConfigHLT/";
+    cdbPath+=GetComponentID();
+  }
+
+  return ConfigureFromCDBTObjString(cdbPath.Data());
+}
+
+
index 68ea51d..079ff46 100644 (file)
@@ -202,13 +202,16 @@ class AliHLTGlobalHistoComponent : public AliHLTTTreeProcessor
   /// inherited from AliHLTTTreeProcessor: create the tree instance and all branches
   TTree* CreateTree(int argc, const char** argv);
   /// inherited from AliHLTTTreeProcessor: process input blocks and fill tree
-  int FillTree(TTree* pTree, const AliHLTComponentEventData& evtData, 
-                       AliHLTComponentTriggerData& trigData );
+  int FillTree(TTree* pTree, const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
   /// dtOrigin for PushBack.
   AliHLTComponentDataType GetOriginDataType() const;
-
+  /// clean up variables
   int ResetVariables();
-  
+  /// inherited from AliHLTComponent, scan argument
+  int ScanConfigurationArgument(int argc, const char** argv);
+  /// function for online reconfiguration
+  int Reconfigure(const char* cdbEntry, const char* chainId);
+
 private:
   /// copy constructor prohibited
   AliHLTGlobalHistoComponent(const AliHLTGlobalHistoComponent&);
@@ -233,6 +236,8 @@ private:
   float fVertexZ; //!
   /// vertex status, found or not
   bool fVertexStatus; //!
+  /// maximum track multiplicity
+  UInt_t fMaxTrackCount; //!
  
   /// filling arrays for track parameters
   AliHLTGlobalHistoVariables<float> fTrackVariables; //!
index bd791fa..1e65ebb 100644 (file)
@@ -124,6 +124,7 @@ void makeGlobalHistoConfigObject()
 TString makeString(){
   
   TString s = "";
+  s+="-max-track-count 8000 ";
   
   s+="-histogram TrackPt -size 1000 -expression Track_pt -cut Track_Nclusters>0 ";
   s+="-histogram TrackPhi(180,0,360) -size 1000 -expression Track_phi -cut Track_Nclusters>0 ";