/[PAMELA software]/PamCut/CollectionActions/Histo2DActions/TofDedxVsBetaHistoAction/TofDedxVsBetaHistoAction.cpp
ViewVC logotype

Annotation of /PamCut/CollectionActions/Histo2DActions/TofDedxVsBetaHistoAction/TofDedxVsBetaHistoAction.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (hide annotations) (download)
Tue Dec 20 17:41:49 2011 UTC (12 years, 11 months ago) by pam-fi
Branch: MAIN
Changes since 1.3: +21 -2 lines
Patch to exlude PMT S115b in dE/dx computation.

1 pam-fi 1.1 /*
2     * TofDedxVsBetaHistoAction.cpp
3     *
4     * Created on: 25-giu-2009
5     * Author: Nicola Mori
6     */
7    
8     /*! @file TofDedxVsBetaHistoAction.cpp The TofDedxVsBetaHistoAction class implementation file. */
9    
10     #include "TofDedxVsBetaHistoAction.h"
11    
12     TofDedxVsBetaHistoAction::TofDedxVsBetaHistoAction(const char *actionName, unsigned int layers, bool standAlone,
13     TString outFileBase, TString mode, bool outRoot, bool outText, TString title) :
14 pam-fi 1.4 Histo2DAction<Int_t>(actionName, title, outFileBase, mode, outRoot, outText), _layers(layers), _nLayers(0), _badEvents(
15     0), _standAlone(standAlone) {
16 pam-fi 1.1
17 pam-fi 1.3 bool buildTitle = false;
18 pam-fi 1.1 if (title == "") {
19 pam-fi 1.3 buildTitle = true;
20 pam-fi 1.1 title = "TOF dE/dx (";
21 pam-fi 1.2 }
22     if ((_layers & S11) == S11) {
23 pam-fi 1.3 if (buildTitle)
24     title += "S11";
25 pam-fi 1.2 _nLayers++;
26     }
27     if ((_layers & S12) == S12) {
28 pam-fi 1.3 if (buildTitle) {
29     if (_nLayers > 0)
30     title += ",";
31     title += "S12";
32     }
33 pam-fi 1.2 _nLayers++;
34     }
35     if ((_layers & S21) == S21) {
36 pam-fi 1.3 if (buildTitle) {
37     if (_nLayers > 0)
38     title += ",";
39     title += "S21";
40     }
41 pam-fi 1.2 _nLayers++;
42     }
43     if ((_layers & S22) == S22) {
44 pam-fi 1.3 if (buildTitle) {
45     if (_nLayers > 0)
46     title += ",";
47     title += "S22";
48     }
49 pam-fi 1.2 _nLayers++;
50     }
51     if ((_layers & S31) == S31) {
52 pam-fi 1.3 if (buildTitle) {
53     if (_nLayers > 0)
54     title += ",";
55     title += "S31";
56     }
57 pam-fi 1.2 _nLayers++;
58     }
59     if ((_layers & S32) == S32) {
60 pam-fi 1.3 if (buildTitle) {
61     if (_nLayers > 0)
62     title += ",";
63     title += "S32";
64     }
65 pam-fi 1.2 _nLayers++;
66     }
67 pam-fi 1.3 if (buildTitle)
68     title += ") Vs Beta";
69 pam-fi 1.1
70 pam-fi 1.2 SetTitle(title);
71 pam-fi 1.1
72     }
73    
74     void TofDedxVsBetaHistoAction::OnGood(PamLevel2 *event) {
75    
76     static float dEdx;
77     static float dEdxLayer;
78     static unsigned int badLayers;
79    
80     static int trkSeqNo;
81     if (_standAlone)
82     trkSeqNo = 0;
83     else
84     for (int i = 0; i < event->GetToFLevel2()->ntrk(); i++) {
85     if (event->GetToFLevel2()->GetToFTrkVar(i)->trkseqno == event->GetTrack(0)->GetTrkTrack()->GetSeqNo())
86     trkSeqNo = i;
87     }
88    
89     dEdx = 0.;
90     badLayers = 0;
91     if ((_layers & S11) == S11) {
92     dEdxLayer = event->GetToFLevel2()->GetdEdx(trkSeqNo, 0, 100);
93 pam-fi 1.4 // Patch to exclude S115b
94     ToFTrkVar *tofTrk = event->GetToFLevel2()->GetToFTrkVar(trkSeqNo);
95     bool has8 = false, has9 = false;
96     float dedx9 = 0.;
97     for (Int_t ib = 0; ib < tofTrk->npmtadc; ib++) {
98     if (tofTrk->pmtadc[ib] == 8) {
99     has8 = true;
100     }
101     if (tofTrk->pmtadc[ib] == 9) {
102     has9 = true;
103     dedx9 = tofTrk->dedx[ib];
104     }
105     }
106    
107     if (has9) {
108     dEdxLayer -= (dedx9 / ((int) has8 + 1));
109     dEdxLayer *= 2.;
110     }
111     //End of patch
112 pam-fi 1.1 if (dEdxLayer > 0. && dEdxLayer < 4090)
113     dEdx += dEdxLayer;
114     else
115     badLayers++;
116     }
117     if ((_layers & S12) == S12) {
118     dEdxLayer = event->GetToFLevel2()->GetdEdx(trkSeqNo, 1, 100);
119     if (dEdxLayer > 0. && dEdxLayer < 4090)
120     dEdx += dEdxLayer;
121     else
122     badLayers++;
123     }
124     if ((_layers & S21) == S21) {
125     dEdxLayer = event->GetToFLevel2()->GetdEdx(trkSeqNo, 2, 100);
126     if (dEdxLayer > 0. && dEdxLayer < 4090)
127     dEdx += dEdxLayer;
128     else
129     badLayers++;
130     }
131     if ((_layers & S22) == S22) {
132     dEdxLayer = event->GetToFLevel2()->GetdEdx(trkSeqNo, 3, 100);
133     if (dEdxLayer > 0. && dEdxLayer < 4090)
134     dEdx += dEdxLayer;
135     else
136     badLayers++;
137     }
138     if ((_layers & S31) == S31) {
139     dEdxLayer = event->GetToFLevel2()->GetdEdx(trkSeqNo, 4, 100);
140     if (dEdxLayer > 0. && dEdxLayer < 4090)
141     dEdx += dEdxLayer;
142     else
143     badLayers++;
144     }
145     if ((_layers & S32) == S32) {
146     dEdxLayer = event->GetToFLevel2()->GetdEdx(trkSeqNo, 5, 100);
147     if (dEdxLayer > 0. && dEdxLayer < 4090)
148     dEdx += dEdxLayer;
149     else
150     badLayers++;
151     }
152     if (badLayers == 0) {
153 pam-fi 1.2 dEdx /= _nLayers;
154 pam-fi 1.1 Fill(event->GetToFLevel2()->GetToFTrkVar(trkSeqNo)->beta[12], dEdx);
155     }
156     else
157     _badEvents++;
158     }
159    

  ViewVC Help
Powered by ViewVC 1.1.23