2 /**************************************************************************
3 * This file is property of and copyright by the ALICE HLT Project *
4 * All rights reserved. *
6 * Primary Authors: Svein Lindal *
8 * Permission to use, copy, modify and distribute this software and its *
9 * documentation strictly for non-commercial purposes is hereby granted *
10 * without fee, provided that the above copyright notice appears in all *
11 * copies and that both the copyright notice and this permission notice *
12 * appear in the supporting documentation. The authors make no claims *
13 * about the suitability of this software for any purpose. It is *
14 * provided "as is" without express or implied warranty. *
15 **************************************************************************/
17 #ifndef ALIHLTCALOHISTOINVMASS_H
18 #define ALIHLTCALOHISTOINVMASS_H
21 * @file AliHLTCaloHistoInvMass
22 * @author Albin Gaignette and Svein Lindal slindal@fys.uio.no
24 * @brief Produces Invariant mass histograms of PHOS clusters
27 // see header file for class documentation
29 // refer to README to build package
31 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
34 #include "AliHLTCaloHistoProducer.h"
38 class AliHLTCaloClusterDataStruct;
44 * @class AliHLTCaloHistoInvMass
46 * Class produces physics histograms for PHOS. It takes a TClonesArray
47 * of AliESDCalocluster as input and fills several histograms
50 * * - Invariant mass of two clusters
52 * @ingroup alihlt_phos
57 class AliHLTCaloHistoInvMass : public AliHLTCaloHistoProducer {
62 AliHLTCaloHistoInvMass(TString det);
65 virtual ~AliHLTCaloHistoInvMass();
67 //** Loops of the calo clusters and fills histos
68 Int_t FillHistograms(Int_t nc, TRefArray * clusterArray);
69 Int_t FillHistograms(Int_t nc, vector<AliHLTCaloClusterDataStruct*> &cVec);
70 // template <class T> Int_t FillHistograms(Int_t nc, vector<T*> clusterVec);
74 // Int_t FillHistograms(Int_t nc, vector<T*> &cVec);
78 /** Default constructor prohibited */
79 AliHLTCaloHistoInvMass();
81 /** Copy constructor */
82 AliHLTCaloHistoInvMass(const AliHLTCaloHistoInvMass &);
84 /** Assignment operator */
85 AliHLTCaloHistoInvMass & operator= (const AliHLTCaloHistoInvMass &);
87 /** Calculate 2 cluster inv mass and fill histograms */
88 Int_t FillInvariantMassHistograms(Int_t nc, Float_t cPos[][3], Float_t cEnergy[]);
90 /** Histogram of the 2 cluster invariant mass */
91 TH1F *fHistTwoClusterInvMass0; //!transient
92 TH1F *fHistTwoClusterInvMass1; //!transient
93 TH1F *fHistTwoClusterInvMass2; //!transient
94 TH1F *fHistTwoClusterInvMass3; //!transient
95 TH1F *fHistTwoClusterInvMass4; //!transient
97 ClassDef(AliHLTCaloHistoInvMass, 0);