//-*- Mode: C++ -*- // $Id: AliHLTD0Trigger.h #ifndef ALIHLTD0TRIGGER_H #define ALIHLTD0TRIGGER_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 AliHLTD0Trigger.h /// @author Gaute Ovrebekk /// @date 2009-10-28 /// @brief HLT trigger component for D0->Kpi #include "AliHLTTrigger.h" #include #include "AliHLTD0toKpi.h" class TH1F; class TObjArray; class AliESDVertex; class AliExternalTrackParam; class TTree; class TClonesArray; /** * @class AliHLTD0Trigger * * HLT trigger component for D0->Kpi * *

General properties:

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

Mandatory arguments:

* * TODO: code audit 2010-07-23 describe component arguments * *

Optional arguments:

* * *

Configuration:

* * \li -pt pt cut for decay products
* \li -dca dca cut for distance between decay tracks
* \li -invmass inv. mass half width of D0
* \li -costhetastar cos of decay angle
* \li -d0 Impact parameter for decay products
* \li -d0d0 Product of impact parameter for decay products
* \li -cospoint pointing angle
* \li -plothistogram ploting the inv. mass and pt of D0
* \li -useV0 will use the V0's found by the vertexer and stored in the ESD
* \li -useKF will use partilce KF for vertex finding
* \li -send-candidates will send out an array of candidates for each event
* \li -write-file will store a local file. Only use for small local tests.
* * By default, configuration is loaded from OCDB, can be overridden by * component arguments. * *

Default CDB entries:

* HLT/ConfigHLT/D0Trigger: TObjString storing the arguments * *

Performance:

* * *

Memory consumption:

* * *

Output size:

* * * \ingroup alihlt_trigger_components */ class AliHLTD0Trigger : public AliHLTTrigger { public: AliHLTD0Trigger(); ~AliHLTD0Trigger(); /// inherited from AliHLTTrigger: name of this trigger virtual const char* GetTriggerName() const; /// inherited from AliHLTComponent: create an instance virtual AliHLTComponent* Spawn(); /// inherited from AliHLTComponent: return OCDB requirements void GetOCDBObjectDescription( TMap* const targetMap); 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 re-configuration event int Reconfigure(const char* cdbEntry, const char* chainId); /// inherited from AliHLTComponent, scan one argument and /// its parameters int ScanConfigurationArgument(int argc, const char** argv); private: /// Not implemented. Do not allow copying of this object. AliHLTD0Trigger(const AliHLTD0Trigger& ); /// Not implemented. Do not allow copying of this object. AliHLTD0Trigger& operator=(const AliHLTD0Trigger& ); /// inherited from AliHLTTrigger: calculate the trigger virtual int DoTrigger(); /// Adding single track cut on input tracks, and split in pos. and neg. void SingleTrackSelect(AliExternalTrackParam*,const AliESDVertex*,Double_t field); /// Useing the V0's in the ESD found by the V0 finder Int_t RecV0(const TObject* iter); /// Reconstructing the D0 from K and pi void RecD0(Int_t&,const AliESDVertex*,Double_t field); /// pt cut for decay, minimum [GeV/c] float fPtMin; //! transient /// Distance between decay tracks [cm] ?? float fdca; //! transient /// Inv. mass half width [GeV] float finvMass; //! transient /// Decay angle float fcosThetaStar; //! transient /// Distance from primary vertex for decay tracks [cm] float fd0; //! transient /// Product of d0 for the two decay tracks [cm^2] float fd0d0; //! transient /// Pionting angle float fcosPoint; //! transient /// Option for ploting InvMass and Pt of D0's bool fplothisto; //! transient /// Option for useing the V0' from V0 finder bool fUseV0; //! transient /// D0 mass Double_t fD0PDG; //! transient /// D0 inv. mass plot TH1F *fD0mass; //! transient /// Pt plot of D0's TH1F *fD0pt; //! transient /// Vector for positive tracks vector fPos; //! transient /// Vector for negative tracks vector fNeg; //! transient /// Object for calculations AliHLTD0toKpi *fd0calc; //! transient /// Array of the two decay products TObjArray *ftwoTrackArray; //! transient /// Counters for D0 Int_t fTotalD0; //! transient /// Option for useing KF particle for vertexing bool fuseKF; //!transient /// Option for storing MC information bool fSendCandidate; //!transient /// Tree for storing the MC information TTree *fCandidateTree; //!transient /// Array with D0 candidates TClonesArray *fCandidateArray; //!transient /// Option for writing MC information to file bool fWriteFile; //!transient /// the default configuration entry for this component static const char* fgkOCDBEntry; //!transient ClassDef(AliHLTD0Trigger, 0) }; #endif //ALIHLTD0TRIGGER_H