1 |
bendavid |
1.1 |
//--------------------------------------------------------------------------------------------------
|
2 |
|
|
// $Id: $
|
3 |
|
|
//
|
4 |
|
|
// DiMuonResonance
|
5 |
|
|
//
|
6 |
|
|
// This is an analysis module which allows to study the properties of dimuon resonances. The
|
7 |
|
|
// implementation is reasonably general to at least allow the study of Jpsis and Upsilons without
|
8 |
|
|
// any code change.
|
9 |
|
|
//
|
10 |
|
|
// Authors: C.Paus
|
11 |
|
|
//--------------------------------------------------------------------------------------------------
|
12 |
|
|
#ifndef MODS_CONVERSIONS_H
|
13 |
|
|
#define MODS_CONVERSIONS_H
|
14 |
|
|
|
15 |
|
|
#include <TH2F.h>
|
16 |
|
|
#include <TStopwatch.h>
|
17 |
|
|
|
18 |
|
|
#include "MitAna/TAM/interface/TAModule.h"
|
19 |
|
|
#include "MitAna/DataTree/interface/Collections.h"
|
20 |
|
|
|
21 |
|
|
class TH1F;
|
22 |
|
|
|
23 |
|
|
namespace mithep
|
24 |
|
|
{
|
25 |
|
|
class Conversions : public TAModule
|
26 |
|
|
{
|
27 |
|
|
public:
|
28 |
|
|
Conversions(const char *name = "Conversions",
|
29 |
|
|
const char *title = "Analysis Module of photon conversions");
|
30 |
|
|
~Conversions() {}
|
31 |
|
|
|
32 |
|
|
// Standard entry points allowing data processing
|
33 |
|
|
void Begin ();
|
34 |
|
|
void Process ();
|
35 |
|
|
void SlaveBegin ();
|
36 |
|
|
void SlaveTerminate();
|
37 |
|
|
void Terminate ();
|
38 |
|
|
Bool_t PassCuts(const Photon* p);
|
39 |
|
|
Bool_t PassConvCuts(const Conversion* p);
|
40 |
|
|
Bool_t PassElectronCuts(const Electron* p);
|
41 |
|
|
Bool_t PassSimCuts(const MCParticle* p);
|
42 |
|
|
|
43 |
|
|
protected:
|
44 |
|
|
TrackCol *fTracks; //! point to track branch
|
45 |
|
|
TrackCol *fGsfTracks; //! point to track branch
|
46 |
|
|
TrackCol *fInOutTracks; //!
|
47 |
|
|
TrackCol *fOutInTracks; //!
|
48 |
|
|
ElectronCol *fElectrons; //! point to electron branch
|
49 |
|
|
PhotonCol *fPhotons; //! point to photon branch
|
50 |
|
|
MCParticleCol *fMCParticles; //!
|
51 |
|
|
|
52 |
|
|
TString fMCPartName; // name of particle collection
|
53 |
|
|
TString fTrackName; // name of track collection
|
54 |
|
|
TString fConvElectronName; // name of electron collection
|
55 |
|
|
TString fPhotonName; // name of photon collection
|
56 |
|
|
TStopwatch fTimer;
|
57 |
|
|
|
58 |
|
|
TH1F *hConversionRadius; //! Conversion radius
|
59 |
|
|
TH2F *hConversionRPhi; //! conversion position in R-phi plane
|
60 |
|
|
TH1F *hGammaPt; //! photon pt
|
61 |
|
|
TH1F *hGammaEta; //! photon eta
|
62 |
|
|
TH1F *hGammaMass; //! photon mass
|
63 |
|
|
TH1F *hConvProb; //! conversion vertex fit probability
|
64 |
|
|
TH1F *hConvEOverP; //! conversion E over P
|
65 |
|
|
TH1F *hElectronPt; //! pt of conversion electrons
|
66 |
|
|
TH1F *hElectronEta; //! eta of conversion electrons
|
67 |
|
|
TH1F *hEPairMass; //! invariant mass of electron track pair
|
68 |
|
|
TH1F *hEPairDeltaPhi; //! angle between electron momentum vectors
|
69 |
|
|
TH1F *hGenNumDaughters; //!
|
70 |
|
|
TH1F *hGenDaughterPt; //!
|
71 |
|
|
TH1F *hGenDecayRadius; //!
|
72 |
|
|
TH1F *hSimPt; //!
|
73 |
|
|
TH1F *hSimConvRadius; //!
|
74 |
|
|
TH2F *hSimConvPosition; //!
|
75 |
|
|
TH1F *hTrackD0; //!
|
76 |
|
|
TH1F *hTrackSimMatchType; //!
|
77 |
|
|
TH1F *hParentSimMatchType; //!
|
78 |
|
|
TH1F *hSimMatchedConvRadius; //!
|
79 |
|
|
TH1F *hSimMatchedConvProb; //!
|
80 |
|
|
TH1F *hSimMatchedEPairMass; //!
|
81 |
|
|
TH1F *hSimMatchedEPairDeltaPhi; //!
|
82 |
|
|
TH1F *hSimMatchedSimConvRadius; //!
|
83 |
|
|
TH1F *hSimMatchedConvResolution; //!
|
84 |
|
|
TH1F *hSimMatchedConvPhiRes; //!
|
85 |
|
|
TH1F *hSimMatchedConvEOverP; //!
|
86 |
|
|
TH1F *hSimMatchedElectronPt; //!
|
87 |
|
|
|
88 |
|
|
|
89 |
|
|
|
90 |
|
|
|
91 |
|
|
ClassDef(Conversions,1)
|
92 |
|
|
};
|
93 |
|
|
}
|
94 |
|
|
#endif
|