47 dbe_->showDirStructure();
80 dbe_->setCurrentFolder(
"EcalRecHitsV/EcalTBValidationTask" );
82 hname =
"xtal in beam position";
83 meETBxib_ = dbe_->book2D( hname, hname, 85, 0., 85., 20,0., 20. );
84 hname =
"Max Amplitude vs TDC offset";
85 meETBampltdc_ = dbe_->book2D( hname, hname, 100, 0., 1., 1000, 0., 4000. );
86 hname =
"Beam Profile X";
87 meETBhodoX_ = dbe_->book1D( hname, hname, 100, -20., 20. );
88 hname =
"Beam Profile Y";
89 meETBhodoY_ = dbe_->book1D( hname, hname, 100, -20., 20. );
90 hname =
"E1x1 energy";
91 meETBe1x1_ = dbe_->book1D( hname, hname, 1000, 0., 4000. );
92 hname =
"E3x3 energy";
93 meETBe3x3_ = dbe_->book1D( hname, hname, 1000, 0., 4000. );
94 hname =
"E5x5 energy";
95 meETBe5x5_ = dbe_->book1D( hname, hname, 1000, 0., 4000. );
96 hname =
"E1x1 energy center";
98 hname =
"E3x3 energy center";
100 hname =
"E5x5 energy center";
102 hname =
"E1 over E9 ratio";
103 meETBe1e9_ = dbe_->book1D( hname, hname, 600, 0., 1.2 );
104 hname =
"E1 over E25 ratio";
105 meETBe1e25_ = dbe_->book1D( hname, hname, 600, 0., 1.2 );
106 hname =
"E9 over E25 ratio";
107 meETBe9e25_ = dbe_->book1D( hname, hname, 600, 0., 1.2 );
109 meETBe1vsX_ = dbe_->book2D( hname, hname, 80, -20, 20, 1000, 0., 4000. );
111 meETBe1vsY_ = dbe_->book2D( hname, hname, 80, -20, 20, 1000, 0., 4000. );
112 hname =
"E1 over E9 vs X";
113 meETBe1e9vsX_ = dbe_->book2D( hname, hname, 80, -20, 20, 600, 0., 1.2 );
114 hname =
"E1 over E9 vs Y";
115 meETBe1e9vsY_ = dbe_->book2D( hname, hname, 80, -20, 20, 600, 0., 1.2 );
116 hname =
"E1 over E25 vs X";
117 meETBe1e25vsX_ = dbe_->book2D( hname, hname, 80, -20, 20, 600, 0., 1.2 );
118 hname =
"E1 over E25 vs Y";
119 meETBe1e25vsY_ = dbe_->book2D( hname, hname, 80, -20, 20, 600, 0., 1.2 );
120 hname =
"E9 over E25 vs X";
121 meETBe9e25vsX_ = dbe_->book2D( hname, hname, 80, -20, 20, 600, 0., 1.2 );
122 hname =
"E9 over E25 vs Y";
123 meETBe9e25vsY_ = dbe_->book2D( hname, hname, 80, -20, 20, 600, 0., 1.2 );
124 hname =
"Xtal in Beam Shape";
125 meETBShape_ = dbe_->book2D( hname, hname, 250, 0, 10, 350, 0, 3500 );
146 if(pdigis.isValid()){
194 if(pEventHeader.isValid()){
195 evtHeader = pEventHeader.
product();
206 if (xtalInBeamId==
EBDetId(0)){
return; }
207 int xibEta = xtalInBeamId.
ieta();
208 int xibPhi = xtalInBeamId.
iphi();
211 if (
data_ && (evtHeader->tableIsMoving()))
return;
215 for (
unsigned int icry=0;icry<25;icry++){
216 unsigned int row = icry/5;
217 unsigned int column = icry%5;
218 int ieta = xtalInBeamId.
ieta()+column-2;
219 int iphi = xtalInBeamId.
iphi()+row-2;
223 Xtals5x5[icry] = tempId;
235 for (
unsigned int icry=0;icry<25;icry++) {
236 if (!Xtals5x5[icry].null()){
237 double theAmpl = (theHits->find(Xtals5x5[icry]))->amplitude();
239 if (icry==12){ampl1x1 = theAmpl;}
240 if (icry==6 || icry==7 || icry==8 || icry==11 || icry==12 || icry==13 || icry==16 || icry==17 || icry==18){ampl3x3 += theAmpl;}
245 double sampleSave[10];
246 for(
int ii=0;
ii < 10; ++
ii){ sampleSave[
ii] = 0.0; }
250 if (thisDigi != theDigis->end()){
254 sampleSave[
sample] = analogSample;
255 if ( eMax < analogSample ) {
263 double xBeam = theHodo->posX();
264 double yBeam = theHodo->posY();
288 if ( (fabs(xBeam)<2.5) && (fabs(yBeam)<2.5) ){
MonitorElement * meETBShape_
T getParameter(std::string const &) const
MonitorElement * meETBampltdc_
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * meETBe5x5_
boost::transform_iterator< IterHelp, boost::counting_iterator< int > > const_iterator
MonitorElement * meETBe1e25_
MonitorElement * meETBe3x3_
edm::EDGetTokenT< EcalTBTDCRecInfo > tdcRec_Token_
edm::EDGetTokenT< EBDigiCollection > digi_Token_
MonitorElement * meETBe9e25vsX_
edm::EDGetTokenT< EcalTBHodoscopeRecInfo > hodoRec_Token_
EcalMGPASample sample(int i) const
MonitorElement * meETBe1e25vsX_
std::string eventHeaderProducer_
int ism() const
get the ECAL/SM id
static bool validDetId(int i, int j)
check if a valid index combination
MonitorElement * meETBxib_
int iphi() const
get the crystal iphi
EcalTBValidation(const edm::ParameterSet &)
edm::EDGetTokenT< EBUncalibratedRecHitCollection > hit_Token_
MonitorElement * meETBe9e25_
MonitorElement * meETBe9e25vsY_
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
std::string eventHeaderCollection_
MonitorElement * meETBe1vsX_
std::string hodoRecInfoProducer_
std::string digiProducer_
int ieta() const
get the crystal ieta
MonitorElement * meETBe5x5_center_
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
static const int ETAPHIMODE
std::string hitCollection_
T const * product() const
MonitorElement * meETBe1e9vsX_
MonitorElement * meETBe1e25vsY_
MonitorElement * meETBe1x1_
std::string tdcRecInfoCollection_
std::string tdcRecInfoProducer_
edm::EDGetTokenT< EcalTBEventHeader > eventHeader_Token_
MonitorElement * meETBe1e9_
virtual void analyze(const edm::Event &, const edm::EventSetup &)
MonitorElement * meETBe3x3_center_
static const int SMCRYSTALMODE
MonitorElement * meETBe1e9vsY_
std::string digiCollection_
MonitorElement * meETBhodoY_
MonitorElement * meETBe1vsY_
std::string hodoRecInfoCollection_
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
MonitorElement * meETBe1x1_center_
MonitorElement * meETBhodoX_
int adc() const
get the ADC sample (12 bits)