LCOV - code coverage report
Current view: top level - HLT/MUON/OfflineInterface - AliHLTMUONRecHitsSource.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 1 100.0 %
Date: 2016-06-14 17:26:59 Functions: 1 8 12.5 %

          Line data    Source code
       1             : #ifndef ALIHLTMUONRECHITSSOURCE_H
       2             : #define ALIHLTMUONRECHITSSOURCE_H
       3             : /**************************************************************************
       4             :  * This file is property of and copyright by the ALICE HLT Project        *
       5             :  * All rights reserved.                                                   *
       6             :  *                                                                        *
       7             :  * Primary Authors:                                                       *
       8             :  *   Artur Szostak <artursz@iafrica.com>                                  *
       9             :  *                                                                        *
      10             :  * Permission to use, copy, modify and distribute this software and its   *
      11             :  * documentation strictly for non-commercial purposes is hereby granted   *
      12             :  * without fee, provided that the above copyright notice appears in all   *
      13             :  * copies and that both the copyright notice and this permission notice   *
      14             :  * appear in the supporting documentation. The authors make no claims     *
      15             :  * about the suitability of this software for any purpose. It is          *
      16             :  * provided "as is" without express or implied warranty.                  *
      17             :  **************************************************************************/
      18             : 
      19             : // $Id$
      20             : 
      21             : ///
      22             : /// @file   AliHLTMUONRecHitsSource.h
      23             : /// @author Artur Szostak <artursz@iafrica.com>
      24             : /// @date   28 May 2007
      25             : /// @brief  Class for generating reconstructed hits data blocks from AliRoot data.
      26             : ///
      27             : 
      28             : #include "AliHLTOfflineDataSource.h"
      29             : 
      30             : class AliMUONMCDataInterface;
      31             : class AliMUONDataInterface;
      32             : 
      33             : /**
      34             :  * AliHLTMUONRecHitsSource is a HLT-AliRoot data source object which generates
      35             :  * and serves AliHLTMUONRecHitsBlockStruct type data blocks to the HLT system.
      36             :  * This is meant as a debugging utility which can optionally generate the data
      37             :  * blocks from simulated GEANT hits or MUON offline reconstructed hits.
      38             :  *
      39             :  * Command line flags:
      40             :  *  -simdata
      41             :  *      Specify this option to publish GEANT hits.
      42             :  *  -recdata
      43             :  *      Specify this option to publish offline reconstructed raw clusters.
      44             :  *  -plane left|right|all
      45             :  *      Specifies if data from the left (x < 0), right (x >= 0) or the whole XY
      46             :  *      plane should be published.
      47             :  *  -chamber <number>|<number>-<number>[,<number>|<number>-<number>]...
      48             :  *      Selects the chambers from which to publish data. Valid chamber numbers
      49             :  *      in the range [1..10]. The string after '-chamber' is a comma separated
      50             :  *      list of numbers or ranges. Some examples of strings:
      51             :  *      1  1-2  1,2,3  1,3-5,7 etc...
      52             :  *  -firstevent <number>
      53             :  *      Indicates the first event number to fetch from AliRoot. The default is to
      54             :  *      start from zero and increment the event number after every GetEvent call.
      55             :  *      This mode causes the component to ignore the event number passed to it by
      56             :  *      the system and rather use an internal counter. This mode can be overriden
      57             :  *      with the -event_number_literal flag.
      58             :  *  -event_number_literal
      59             :  *      This flag indicates to use the event numbers as literal indices into the
      60             :  *      AliRoot trees. This option will cause the component to ignore the -firstevent
      61             :  *      flag.
      62             :  */
      63             : class AliHLTMUONRecHitsSource : public AliHLTOfflineDataSource
      64             : {
      65             : public:
      66             : 
      67             :         AliHLTMUONRecHitsSource();
      68             :         virtual ~AliHLTMUONRecHitsSource();
      69             :         
      70             :         virtual const char* GetComponentID();
      71             : 
      72             :         virtual AliHLTComponentDataType GetOutputDataType();
      73             : 
      74             :         virtual void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
      75             : 
      76             :         virtual AliHLTComponent* Spawn();
      77             : 
      78             : protected:
      79             : 
      80             :         virtual int DoInit(int argc, const char** argv);
      81             :         virtual int DoDeinit();
      82             :         
      83             :         virtual int GetEvent(
      84             :                         const AliHLTComponentEventData& evtData,
      85             :                         AliHLTComponentTriggerData& trigData,
      86             :                         AliHLTUInt8_t* outputPtr, 
      87             :                         AliHLTUInt32_t& size,
      88             :                         AliHLTComponentBlockDataList& outputBlocks
      89             :                 );
      90             :         
      91             :         using AliHLTOfflineDataSource::GetEvent;
      92             :         
      93             : private:
      94             : 
      95             :         // Prevent copying of these objects.
      96             :         AliHLTMUONRecHitsSource(const AliHLTMUONRecHitsSource& /*object*/);
      97             :         AliHLTMUONRecHitsSource& operator = (const AliHLTMUONRecHitsSource& /*object*/);
      98             :         
      99             :         AliMUONMCDataInterface* fMCDataInterface; // access to MUON MC-related data
     100             :         AliMUONDataInterface* fDataInterface; // access to MUON data
     101             : 
     102             :         enum SelectionType
     103             :         {
     104             :                 kLeftPlane,  // everything from x < 0
     105             :                 kRightPlane, // everything from x >= 0
     106             :                 kWholePlane  // for all x
     107             :         };
     108             :         
     109             :         /**
     110             :          * Parses a string with the following format:
     111             :          *   <number>|<number>-<number>[,<number>|<number>-<number>]...
     112             :          * For example: 1  1,2,3  1-2   1,2-4,5  etc...
     113             :          * Flags in the fServeChamber will be set to 'true' for all appropriate
     114             :          * values parsed.
     115             :          * @param str  The string to parse.
     116             :          * @return  Zero on success and EINVAL if there is a parse error.
     117             :          */
     118             :         int ParseChamberString(const char* str);
     119             : 
     120             :         SelectionType fSelection; //! Indicates if we should publish from the left, right or whole XY plane.
     121             :         bool fServeChamber[10]; //! Flag to indicate if hits from a given chamber should be published.
     122             :         
     123             :         Int_t fCurrentEventIndex;  //! The current event index that is loaded.
     124             :                                    //  -1 indicates that we should rather use the event
     125             :                                    // numbers as given by the system.
     126             : 
     127           6 :         ClassDef(AliHLTMUONRecHitsSource, 0); // dHLT data source for reconstructed hit data blocks.
     128             : };
     129             : 
     130             : #endif // ALIHLTMUONRECHITSSOURCE_H

Generated by: LCOV version 1.11