#ifndef ALIHLTTRIGGERBARRELGEOMMULTIPLICITY_H #define ALIHLTTRIGGERBARRELGEOMMULTIPLICITY_H //* 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 AliHLTTriggerBarrelGeomMultiplicity.h /// @author Oystein Djuvsland /// @date 2009-10-08 /// @brief HLT trigger component for charged particle multiplicity in /// a geometrical selection of the central barrel. #include "AliHLTTrigger.h" class AliHLTTriggerDecisionParameters; /** * @class AliHLTTriggerBarrelGeomMultiplicity * HLT trigger component for charged particle multiplicity in the * central barrel. * * Triggers on charged particle number in a certain geometrical acceptance * *

General properties:

* * Component ID: \b BarrelGeomMultiplicityTrigger
* Library: \b libAliHLTTrigger.so
* Input Data Types: kAliHLTDataTypeESDObject, kAliHLTDataTypeESDTree * kAliHLTDataTypeTrack
* Output Data Types: ::kAliHLTAnyDataType
* *

Mandatory arguments:

* * \li -triggername n
* specifies which configuration object to use for the trigger * *

Optional arguments:

* * \li -geomfile n
* specifies root file containing configuration objects * *

Configuration:

* * \li -mintracks n
* required number of tracks for a trigger * \li -solenoidBz field
* magnetic field needed if the input is not an ESD object * * By default, configuration is loaded from OCDB, can be overridden by * component arguments. * *

Default CDB entries:

* HLT/ConfigHLT/BarrelGeomMultiplicityTrigger/: TObjArray storing the * geometries and readout parameters. * HLT/ConfigHLT/Solenoidbz: TObjString -solenoidBz field * *

Performance:

* * *

Memory consumption:

* * *

Output size:

* * * \ingroup alihlt_trigger_components */ class AliHLTTriggerBarrelGeomMultiplicity : public AliHLTTrigger { public: AliHLTTriggerBarrelGeomMultiplicity(); ~AliHLTTriggerBarrelGeomMultiplicity(); /// inherited from AliHLTComponent: create an instance virtual AliHLTComponent* Spawn(); /// inherited from AliHLTTrigger: name of this trigger virtual const char* GetTriggerName() const; protected: /// inherited from AliHLTComponent: handle the initialization int DoInit(int argc, const char** argv); /// inherited from AliHLTComponent: handle cleanup int DoDeinit(); /// inherited from AliHLTComponent: handle dcs update event int ReadPreprocessorValues(const char* modules); /// inherited from AliHLTComponent, scan one argument and /// its parameters virtual int ScanConfigurationArgument(int argc, const char** argv); // Get the detector geometries from CDB entry virtual int GetDetectorGeomsFromCDBObject(const char *cdbEntry, const char *chainId); // Get the detector geometries from a root file virtual int GetDetectorGeomsFromFile(const char *filename); /// inherited from AliHLTComponent: handle re-configuration event int Reconfigure(const char* cdbEntry = 0, const char* chainId = 0); private: /// inherited from AliHLTTrigger: calculate the trigger virtual int DoTrigger(); /// check whether a track meets the criteria template bool CheckCondition(T* track, float b); // check whether a track is in the desired detectors template bool IsInDetectors(T* track, float b); // magnetic field (dca estimation for) Float_t fSolenoidBz; // minimum number of tracks satisfying the cut Int_t fMinTracks; // array of (sub-)detectors to trigger on TObjArray *fDetectorArray; // !transient // Trigger decision parameters AliHLTTriggerDecisionParameters *fTriggerDecisionPars; //!transient // The trigger name char *fTriggerName; //!transient // the default configuration entry for this component char* fOCDBEntry; //!transient /** Keep the copy constructor private since it should not be used */ AliHLTTriggerBarrelGeomMultiplicity(const AliHLTTriggerBarrelGeomMultiplicity & ); /** Keep the assignement operator private since it should not be used */ AliHLTTriggerBarrelGeomMultiplicity & operator = (const AliHLTTriggerBarrelGeomMultiplicity &); ClassDef(AliHLTTriggerBarrelGeomMultiplicity, 0); }; #endif