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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

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

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.5

  ViewVC Help
Powered by ViewVC 1.1.23