]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/TPCLib/AliHLTTPCSliceTrackerComponent.h
treatment of MC labels added
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCSliceTrackerComponent.h
index ec6b4356678843dab986be598b4122279135a2e4..e7911966058c9c5123b4c02bdd3a38ddfb3802d3 100644 (file)
@@ -3,8 +3,9 @@
 
 #ifndef ALIHLTTPCSLICETRACKERCOMPONENT_H
 #define ALIHLTTPCSLICETRACKERCOMPONENT_H
-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice                               */
+//* This file is property of and copyright by the ALICE HLT Project        * 
+//* ALICE Experiment at CERN, All rights reserved.                         *
+//* See cxx source for full Copyright notice                               *
 
 /** @file   AliHLTTPCSliceTrackerComponent.h
     @author Timm Steinbeck, Matthias Richter
     @brief  The TPC conformal mapping tracker component.
 */
 
-// see below for class documentation
-// or
-// refer to README to build package
-// or
-// visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
-
 #include "AliHLTProcessor.h"
 
 class AliHLTTPCConfMapper;
@@ -28,13 +23,45 @@ class AliHLTTPCInterMerger;
  * @class AliHLTTPCSliceTrackerComponent
  * The TPC conformal mapping tracker component.
  * 
- * The component has the following component arguments:
- * - disable-merger  disable merging of track segments
- * - pp-run          parameter set for pp run
- * - multiplicity    multiplicity to choose parameter set for
- * - bfield          magnatic field
+ * Component ID: \b TPCSliceTracker <br>
+ * Library: \b libAliHLTTPC.
+ *
+ * Mandatory arguments: <br>
+ * \li -bfield     <i> magnetic field   </i> <br> 
+ *      should allways be used. If there is no magnetic field, use 0.00001
  * 
- * @ingroup alihlt_tpc
+ * Optional arguments: <br>
+ * \li -pp-run <br>  
+ *      will give fixed trackparameters for p-p runs.
+ * \li -Pb-Pb-run <br>  
+ *      will give fixed trackparameters for Pb-Pb runs.
+ * \li -multiplicity     <i> multiplicity  </i> <br> 
+ *      set the multiplicity of your collitions. Used for Pb-Pb events.
+ * \li -disable-merger <br>
+ *      turns off the intermerging on sectorlevel. Only use in spacial cases.
+ * \li -nonvertextracking <br> 
+ *      the tracking will do a reconstruction of clusters without vertex constraint.
+ * \li -mainvertextrackingoff <br>
+ *      will turn off the tracking with vertex constraint. Use together with -nonvertextracking.
+ * \li -etarange   <i> eta range   </i> <br> 
+ *      sets the eta range for the tracking.
+ * \li -etasegment <i> eta segments   </i> <br> 
+ *      let you set the number of eta segments in the trscker.
+ * \li -chi2cut <i> chiĀ²   </i> <br> 
+ *      set the chiĀ² for the tracker.
+ * \li -rowscopetracklet <i> number of padrows   </i> <br> 
+ *     tells the tracker how many padrows down it should look for the next cluster when making tracklets.
+ * \li -rowscopetrack <i> number of padrows   </i> <br>
+ *     tells the tracker how many padrows down it should look for the next cluster when making track.
+ * \li -trackletlength <i> number of clusters   </i> <br>
+ *     the minimum number of clusters to be on a tracklet.
+ * \li -tracklength <i> number of clusters   </i> <br>
+ *     the minimum number of clusters to be on a track.
+ * \li -clusterZ <i> cutoff in z-direction (cm)   </i> <br>
+ *     makes the tracker to not read in Clusters with a higher value then the
+ *     one given in both directions
+ *
+ * @ingroup alihlt_tpc_components
  */
 class AliHLTTPCSliceTrackerComponent : public AliHLTProcessor
 {
@@ -47,15 +74,15 @@ public:
   // Public functions to implement AliHLTComponent's interface.
   // These functions are required for the registration process
 
-  /** interface function, see @ref AliHLTComponent for description */
+  /** interface function, see AliHLTComponent for description */
   const char* GetComponentID();
-  /** interface function, see @ref AliHLTComponent for description */
+  /** interface function, see AliHLTComponent for description */
   void GetInputDataTypes(AliHLTComponentDataTypeList& list);
-  /** interface function, see @ref AliHLTComponent for description */
+  /** interface function, see AliHLTComponent for description */
   AliHLTComponentDataType GetOutputDataType();
-  /** interface function, see @ref AliHLTComponent for description */
+  /** interface function, see AliHLTComponent for description */
   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
-  /** interface function, see @ref AliHLTComponent for description */
+  /** interface function, see AliHLTComponent for description */
   AliHLTComponent* Spawn();
 
 protected:
@@ -71,15 +98,17 @@ protected:
                       Double_t minPtFit=0,Double_t maxangle=1.31,
                       Double_t goodDist=5,Double_t hitChi2Cut=10,
                       Double_t goodHitChi2=20,Double_t trackChi2Cut=50,
-                      Int_t maxdist=50,Double_t maxphi=0.1,Double_t maxeta=0.1,
-                      bool vertexconstraint=true);
+                      Int_t maxdist=50,Double_t maxphi=0.1,Double_t maxeta=0.1);
 
   /**
    * Set Tracker parameters
    * Knowledge on that has been lost, so somebody has to insert more
    * documentation.
    */
-  void SetTrackerParam( bool doPP, int multiplicity, double bField );
+  void SetTrackerParam( Bool_t doPP, Bool_t doPbPb, Int_t multiplicity, 
+                       Double_t bField, Int_t etasegment, Double_t hitchi2cut, 
+                       Int_t rowscopetracklet, Int_t rowscopetrack, 
+                       Int_t trackletlength, Int_t tracklength );
 
   /**
    * Set default tracker parameters
@@ -92,15 +121,18 @@ protected:
   // These functions provide initialization as well as the actual processing
   // capabilities of the component. 
 
-  /** interface function, see @ref AliHLTComponent for description */
+  /** interface function, see AliHLTComponent for description */
   int DoInit( int argc, const char** argv );
-  /** interface function, see @ref AliHLTComponent for description */
+  /** interface function, see AliHLTComponent for description */
   int DoDeinit();
-  /** interface function, see @ref AliHLTComponent for description */
+  /** interface function, see AliHLTComponent for description */
   int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, 
               AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, 
               AliHLTUInt32_t& size, AliHLTComponentBlockDataList& outputBlocks );
 
+  int Reconfigure(const char* cdbEntry, const char* chainId);
+  int ReadPreprocessorValues(const char* modules);
+  
   using AliHLTProcessor::DoEvent;
   
 private:
@@ -108,6 +140,12 @@ private:
   AliHLTTPCSliceTrackerComponent(const AliHLTTPCSliceTrackerComponent&);
   /** assignment operator prohibited */
   AliHLTTPCSliceTrackerComponent& operator=(const AliHLTTPCSliceTrackerComponent&);
+  /**
+   * Configure the component.
+   * Parse a string for the configuration arguments and set the component
+   * properties.
+   */  
+  int Configure(const char* arguments);
 
   /** instance of the tracker */
   AliHLTTPCConfMapper* fTracker;                                   //! transient
@@ -119,6 +157,8 @@ private:
   Bool_t fDoNonVertex;                                             //  see above
   /** */
   Bool_t  fDoPP;                                                   //  see above
+   /** */
+  Bool_t  fDoPbPb;                                                 //  see above
   /** multiplicity estimate */
   Int_t fMultiplicity;                                             //  see above
   /** magnetic field */
@@ -127,6 +167,40 @@ private:
   Bool_t fnonvertextracking;   // enable NONVERTEX Tracking
   Bool_t fmainvertextracking;  // enable MAINVERTEX Tracking
 
+  /** ParameterVariables for the trackeparameters */
+
+
+  /** phi_segments:     Devide the space into phi_segments */
+  Int_t fPhisegment;              //! transient    
+  /** ets_segments:     Devide the space into eta_segments */
+  Int_t fEtasegment;              //! transient
+  /** trackletlength:   Number of hits a tracklet has to have */
+  Int_t fTrackletlength;          //! transient
+  /** tracklength:      Number of hits a track has to have */
+  Int_t fTracklength;             //! transient
+  /** rowscopetracklet: Search range of rows for a tracklet */
+  Int_t fRowscopetracklet;        //! transient
+  /** rowscopetrack:    Search range of rows for a track */
+  Int_t fRowscopetrack;           //! transient
+  /** min_pt_fit:       Cut for moment fit, use:SetMaxDca(min_pt_fit) */
+  Double_t fMinPtFit;             //! transient
+  /** maxangle:         AliHLTTPCTransform::Deg2Rad(10), max angle for the three point look aheand */
+  Double_t fMaxangle;             //! transient
+  /** goodDist:         Threshold distancs between two hits when building tracklets */
+  Double_t fGoodDist;             //! transient
+  /** hitChi2Cut:       Max chi2 of added hit to track */
+  Double_t fHitChi2Cut;           //! transient
+  /** goodHitChi2:      Stop looking for next hit to add if chi2 is less then goodHitChi2 */
+  Double_t fGoodHitChi2;          //! transient
+  /** trackChi2Cut:     Max chi2 for track after final fit */
+  Double_t fTrackChi2Cut;         //! transient
+  /** maxdist:          Maximum distance between two clusters when forming segments */
+  Int_t fMaxdist;                 //! transient
+  /** maxphi:           Max phi difference for neighboring hits */
+  Double_t fMaxphi;               //! transient
+  /** maxeta:           Max eta difference for neighboring hits */
+  Double_t fMaxeta;               //! transient 
   /** merger object */
   AliHLTTPCInterMerger *fpInterMerger;                             //! transient