/[PAMELA software]/calo/flight/CaloDoubleShower/inc/CaloDoubleShower.h
ViewVC logotype

Contents of /calo/flight/CaloDoubleShower/inc/CaloDoubleShower.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (show annotations) (download) (vendor branch)
Fri Aug 10 12:23:34 2007 UTC (17 years, 4 months ago) by mocchiut
Branch: CaloDoubleShower
CVS Tags: start, v1r00
Changes since 1.1: +0 -0 lines
File MIME type: text/plain
Imported sources

1
2
3 /**
4 * \file CaloDoubleShower.h
5 * \author Emiliano Mocchiutti (2007/08/09)
6 */
7 #ifndef calodblsh_h
8 #define calodblsh_h
9
10 #include <PamLevel2.h>
11
12 #include <TTree.h>
13 #include <TFriendElement.h>
14 #include <TChain.h>
15 #include <TFile.h>
16 #include <TList.h>
17 #include <TKey.h>
18 #include <TSystemFile.h>
19 #include <TSystemDirectory.h>
20 #include <TSQLServer.h>
21
22 #include <iostream>
23 //
24 // Declaration of the core fortran routines
25 //
26 #define getdblsh getdblsh_
27 extern "C" int getdblsh();
28
29 using namespace std;
30
31 struct Calo2sh {
32 Float_t pos;
33 Float_t angol;
34 Float_t dblsq;
35 Float_t dbls;
36 };
37
38 /**
39 *
40 * Class to store and calculate variables useful for recognizing double showers in the calorimeter
41 */
42 class CaloDoubleShower : public TObject {
43
44 private:
45 //
46 PamLevel2 *L2;
47 Bool_t debug;
48 //
49 // needed to avoid reprocessing the same event over and over to obtain the variables;
50 //
51 UInt_t OBT;
52 UInt_t PKT;
53 UInt_t atime;
54 UInt_t tr;
55 UInt_t sntr;
56 //
57 Bool_t simulation; ///< True when using simulated data, false by default;
58 CaloLevel0 *event; ///< Pointer to calorimeter level0 structure needed to process the data
59 CaloStrip *cstrip; ///< CaloStrip object needed to easily recover parameter files
60 struct Calo2sh *c2s; ///< Fortran i/o common
61 //
62 Int_t dbls;///< Double shower flag: 0 : NO DOUBLE SHOWER 1 : DOUBLE SHOWER ONLY ACCORDING TO DBLSC 3 : TOO LITTLE BENDING FOR THE CHARGED PARTICLE AND SO NO DOUBLE SHOWER ACCORDING TO DBLSC 10 : DOUBLE SHOWER ONLY ACCORDING TO DUBSC 11 : DOUBLE SHOWER ACCORDING TO DBLSC AND TO DUBSC 13 : CASE 3 + CASE 10
63 //
64 Float_t qdbls;///< Energy (MIP) on the X view of the secondary shower (one not on the particle trajectory as defined by the tracker)
65 //
66 public:
67 //
68 //
69 Int_t GetDblsFlag(){ Process(); return dbls;}; ///< Retrieve dbls variable
70 Float_t GetDblsQ(){ Process(); return qdbls;}; ///< Retrieve qdbls variable
71 //
72 Bool_t IsDouble(){ Process(); if ( dbls == 11 ) return true; return false;}; ///< True if the double shower has been recognized by both the algorithms
73 //
74 CaloDoubleShower();
75 CaloDoubleShower(PamLevel2 *L2);
76 ~CaloDoubleShower(){ Delete(); };
77 //
78 void SetDebug(Bool_t d){ debug=d; };
79 //
80 void Clear();
81 void Clear(Option_t *option){Clear();};
82 void Delete();
83 //
84 void Process(UInt_t tr); ///< Process data for track number tr
85 void Process(); ///< Process data for track number 0
86 void Print(UInt_t tr);
87 void Print();
88 //
89 void LoadMagneticField();
90 //
91 ClassDef(CaloDoubleShower,1);
92 };
93
94 #endif
95

  ViewVC Help
Powered by ViewVC 1.1.23